Raspberry Pi — это универсальный компьютер, который можно использовать как угодно. Есть тысячи вариантов, где его применить. Поэтому не совсем понятно: что считать стандартным, а что — нестандартным вариантом использования? Например, управление станками или умный дом — вполне логичное применение «малинки», тем более что Home Assistant отлично работает на RPi OS. Блокировка рекламы/соцсетей из домашней сети на общем файрволе Pi-Hole или простейший piVPN — тоже очевидная и общепринятая практика.
Но есть гораздо более странные примеры.
▍ Второй разъём HDMI для ноутбука
На некоторых недорогих моделях ноутбуков бывает только один разъём HDMI, а DisplayPort отсутствует, не говоря уже о втором HDMI или хотя бы VGA. В общем, к такому ноутбуку никак не подключить два внешних монитора в привычной рабочей конфигурации, а только один.
Французский разработчик Пьер Куи (Pierre Couy) не хотел мириться с таким неудобством и придумал интересный хак: второй виртуальный HDMI через Raspberry Pi.
Если подключить второй монитор по HDMI к «малинке», то есть несколько вариантов, как передать картинку на ноутбук. Сначала автор выбрал самый логичный способ по Ethernet с использованием медиаплееров типа VNC, Steam Remote Play и всяких VNC-оболочек, разработанных для этой цели. Но его не удовлетворяло общее качество видео: фреймрейт, скорость сети, нагрузка на CPU, обязательный запуск десктопной сессии на стареньком RPi 3.
Поэтому он решил оптимизировать установку — и вместо готового видеоплеера использовать для трансляции видео по сети утилиту командной строки ffmpeg, о богатых возможностях которой уже рассказывали на Хабре.
Этот универсальный инструмент берёт на себя захват видео, транскодирование, инкапсуляцию в сетевой трафик, передачу по сети, обеспечивая тонкий контроль над каждым шагом. На стороне приёма можно выбрать любой из ffmpeg-совместимых плееров c поддержкой Direct Rendering Manager, включая
mpv
, vlc
и ffplay
.В общем виде передача потока выглядит примерно так.
На стороне отправителя (ноутбук):
$ ffmpeg -video_size 1920x1080 -framerate 5 -f x11grab -i :0.0+0x0 -f mpegts tcp://10.0.0.1:1234
На стороне получателя (RPi + второй монитор):
$ mpv -vo=gpu --gpu-context=drm --input-cursor=no --input-vo-keyboard=no --input-default-bindings=no --hwdec=drm --untimed --no-cache --profile=low-latency --opengl-glfinish=yes --opengl-swapinterval=0 --gpu-hwdec-interop=drmprime-drm --drm-draw-plane=overlay --drm-drmprime-video-plane=primary --framedrop=no --speed=1.01 --video-latency-hacks=yes --opengl-glfinish=yes --opengl-swapinterval=0 tcp://10.0.0.1:1234\?listen
Или родной для
ffmpeg
плеер ffplay:$ ffplay -autoexit -flags low_delay -framedrop -strict experimental -vf setpts=0 -tcp_nodelay 1 "tcp://10.0.0.1:1234\?listen"
Для оптимизации кодировщика и объяснения команд см. отчёт с описанием всех подводных камней.
В итоге получается «виртуальный HDMI» для подключения второго монитора, если вы хотите избежать установки проприетарных драйверов и адаптера DisplayLink, а интерфейс USB-С на ноутбуке не поддерживает работу в режиме «HDMI over USB-C».
Вообще, по такому алгоритму с помощью
ffmpeg
и RPi можно подключить практически любое видеоустройство по сети. Столько интересных знаний получено благодаря тому, что не хватило денег на нормальный ноутбук!▍ Дешёвый NAS
Недорогой файл-сервер на SSD — практически стандартное применение RPi. Блогер Джефф Гирлинг собирает такие пачками в разных конфигурациях, а по производительности они не уступают специализированным NAS нижнего ценового сегмента (на ARM-процессорах).
Правда, его последняя поделка базируется на более мощном одноплатнике Rock 5 с 8-ядерным процессором Rockchip RK3588 SoC (четыре A76, четыре A55, по системе big.LITTLE), но принцип тот же. Внешний разъём PCIe Gen 3 x4 M.2 используется для подключения шести SSD-накопителей в компактной конфигурации.
Главное — не забыть о вентиляторе.
Примерно такую же конструкцию можно соорудить на базе RPi+SSD. Если подключать HDD, получится дешевле, но компактность потеряется, вот примеры:
Хотя цена такого элегантного решения может оказаться дороже самого дешёвого NAS, собранного из бэушных старых деталей.
▍ Карманный компьютер
На одноплатнике можно собрать оригинальный карманный компьютер.
Комплект для сборки включает Raspbery Pi CM4, плату расширения BTT Pad 5, дисплей 800×480, сменный аккумулятор (ячейки US18650VTC6), порт зарядки USB-C на 10 Вт и Bluetooth-клавиатура (полный список компонентов). Всё это размещается в специальном корпусе, напечатанном на 3D-принтере (чертёж корпуса):
Карманный компьютер Decktility на основе RPi сделан по образцу Yarh.io Micro 2, uConsole и других любительских ретро-КПК на базе RPi.
Пошаговую инструкцию по сборке см. здесь.
▍ Высококачественная кинокамера
Довольно экзотическая штука — видеокамера CinePI с прицелом на профессиональную киносъёмку.
Её уникальная функция: съёмка видео в несжатом формате 2K RAW Cinema DNG с частотой кадров до 50 fps и 12-битным цветом. Хоть это не 4K, а всего 1080p, но профессиональные видеокамеры такого класса стоят многие тысячи долларов.
Четырёхдюймовый дисплей высокого разрешения HyperPixel 4.0 Square, плата управления питанием и все остальные компоненты видеокамеры подключены к Raspberry Pi по единой шине.
Видеозапись без сжатия в 12-битном цвете обеспечивает высочайшую цветопередачу, особенно в сравнении с дефолтным кодеком H.264, который Raspberry Pi поддерживает на аппаратном уровне.
Некоторые кадры подводной видеосъёмки для оценки цветопередачи:
▍ Сервер на плате mini ITX
Интересный вариант моддинга — установка Compute Module 4 на плате формата Mini-ITX, которая подходит для настольных компьютеров, а особенно — серверов. Она моментально превращает CM4 в полноценный сервер.
В 2021 году проект по созданию такой платы Over:Board не собрал достаточного финансирования на платформе краудфандинга Indiegogo. Хотя выглядел красиво:
Аналогичную плату Seaberry Mini ITX тоже сняли с производства. Опять же, идея материнской платы для Raspberry Pi CM4 с 11 разъёмами mini PCIe, M.2 и проч. была великолепной. Только представьте, сколько SSD-накопителей можно подключить к одному модулю:
Seaberry Mini ITX
Но идею подхватили — и платы Mini ITX всё-таки появились, пусть и в другом виде. Например, модель Turing Pi 2. Это мини-кластер с четырьмя разъёмами для установки вычислительных модулей Raspberry Pi CM4, Turing RK1 или Nvidia Jetson в любой комбинации.
▍ Лучшие аксессуары для Raspberry Pi
Для самого популярного в мире одноплатника выпускаются сотни аксессуаров: периферия, платы расширения, самые разнообразные гаджеты.
Там можно найти очень экзотические штуки, которые расширяют функциональность «малинки» и позволяют использовать её очень нестандартным способом. Тут большой выбор плат расширения для вывода контактной панели (HATs), моторов, сенсоров и проч.
▍ Планы на будущее
По мнению экспертов, у Raspberry Pi отличные перспективы в промышленных компьютерах. Особенно большие планы связываются с линейкой CM4.
Если продажи будут расти такими темпами и компании удастся масштабировать производство, то не исключён вариант выхода на IPO. В таком случае это будет первая в мире корпорация, у которой основная сфера деятельности — производство дешёвых одноплатных компьютеров и развитие экосистемы вокруг них.
▍ Когда исчезнет дефицит?
Люди заказывают дешёвые компьютеры оптом, россыпью и про запас, так что с 2021 года на рынке наблюдался постоянный дефицит «малинок».
По словам исполнительного директора Raspberry Pi Ltd. Эбена Аптона, по итогам июля 2023 года подрядчики должны выйти на объём производства 1 миллион плат в месяц. Это почти вчетверо больше, чем в начале года, когда за весь квартал произвели всего 800 000 плат, т. е. по 267 000 в месяц. Это был худший квартал с 2015 года из-за дефицита компонентов (в первую очередь, речь о SoC Broadcom BCM2835).
В 2022−2023 гг. практически полностью остановилось производство RPi Zero, Zero 2 W, 3 и 3B+, официальные реселлеры постоянно обозначали статус «Out of stock». В продажу пускали только модели 3А+ и 4. Что касается CM4, он только периодически появляется в продаже.
Но сейчас ситуация с запасами стала полегче, а Sony как контрактный производитель начал помогать с запасами других компонентов (конденсаторы и проч.), так что в июле 2023 года объём производства увеличился в несколько раз.
Все Raspberry Pi традиционно выпускаются Британским технологическим центром Sony в Пенкоеде (Южный Уэльс), см. экскурсию по заводу. Интересно, что некоторые машины на заводе по производству Raspberry Pi сами работает под управлением Raspberry Pi (например, камера охлаждения после пайки и 64 автоматических тестировочных стенда).
Катушки с компонентами Raspberry Pi на конвейере
Катушка с кристаллами Broadcom — главный дефицит на производстве
Конвейер по упаковке RPi 3
В день экскурсии с конвейера сходила такая коробка на 150 плат примерно каждые пять минут. Это соответствует максимальной пропускной способности конвейера 43 200 плат в сутки, т. е. 1,3 млн в месяц
К сожалению, из-за увеличения стоимости компонентов пришлось увеличить розничную цену ряда продуктов, включая Raspberry Pi 4 (2GB), Compute Module 4 и Raspberry Pi Zero.
Raspberry Pi — это уже не только игрушка для энтузиастов, а коммерческий продукт, который используется и в промышленном секторе, и в бизнесе. Поэтому и вырос спрос. Очевидно, что компания Raspberry Pi Ltd. в первую очередь обслуживает оптовых клиентов, перед которыми у неё контрактные обязательства. Так что на розничный рынок попадают только остатки продукции (или ничего).
Возможно, запас компонентов поможет роботам ABB на конвейере Sony увеличить производство и наконец-то устранить глобальный дефицит Raspberry Pi.
Telegram-канал с розыгрышами призов, новостями IT и постами о ретроиграх ????️
Комментарии (43)
dlinyj
26.07.2023 09:17Я сначала подумал, что Селектел снова об одноплатниках пишет (это вроде его тема, чуть ли не каждую неделю постят). А тут вон оно что.
Понимаю, что взять просто прошерстить интернет по запросу Raspberry Pi за несколько месяцев, и потом сделать такой рерайт и аппликацию — проблем нет. Другое дело, что малинка плохо годится для подобных проектов, хотя бы своей закрытостью. Могли бы уж тогда в обзор закинуть "ЭЛТ фильтр для картинок", который тоже есть у вас в блоге ;).
Polaris99
26.07.2023 09:17+1Управление станками? Конечно, а почему бы нет, она ж надежная как швейцарские часы! Удивляют меня эти люди, вот честно...
dlinyj
26.07.2023 09:17+1Просто пишут те, кто не понимают в теме. Там главная проблема, при управлении станками, будет помехи по электропитанию. Места экономить смысла нет, а цена БУ материнки будет дешевле, чем малины с большей надёжностью.
MikeDeblin
26.07.2023 09:17У меня древняя малинка (которая Raspberry Pi 1 Model B с 512МБ памяти) "трудится" в качестве автомата включения/выключения настольной лампы YEELIGHT.
Малинка вычисляет время восхода/заката Солнца (встроенная функция на php) и по Wi-Fi управляет лампой. За 8 месяцев непрерывной работы 1 раз сдохла древняя SD-шка.
dlinyj
26.07.2023 09:17За 8 месяцев непрерывной работы 1 раз сдохла древняя SD-шка.
Надо было её в RO перевести
MikeDeblin
26.07.2023 09:17+2Надо, но лень )
dlinyj
26.07.2023 09:17Если прям совсем лень, можно просто в /etc/fstab прописать (так делать нельзя, но и rw оставлять тоже нельзя).
Lexicon
26.07.2023 09:17+4Если это нестандартные применения, то что тогда стандартные?
Малинка сегодня стоит слишком дорого, поэтому пожалуй самое необычно в списке HDMI/Ethernet адаптер. Жалко платформу, до сих пор есть десяток малинок, купленных ощутимо дешевле того, что пришлось бы отвалить сейчас.
BARSRAB
Вот не пойму, чего именно с малинкой так носятся? Среди одноплатников она же самое дно по соотношению цена/функционал и производительность. Да, поддержка чуть лучше, но на этом все и заканчивается...
red-cat-fat
Большое количество проектов готовых. Которые "взял и повторил".
ruzhic
Я может ткну пальцем в небо, но конкретно на моей прошлой работе выбирали малинки для своих задач из-за стабильного качества. Т.е. ты можешь быть +- уверен, что устройство будет прогнозируемо долго работать.
пробовали многое другое из более бюджетных arm, или более производительных сопоставимой с малинкой цены - обычно кончалось возвратом к малинкам, т.к. тестовые устройства загибались за пару месяцев там, где малинки пашут годами.
BARSRAB
Ну не думаю, что тот же рокчип будет работать хуже малинки, т.к. на нем довольно много всего делают, включая автомобильную технику. А у нас в фирме планшеты на рокчипе спокойно катаются на тракторах, а это пыль/жара/тряска/вибрация.
Areso
у нас корейские одроиды работали неплохо.
lonelymyp
Цена/функционал бессмысленны, если оно из коробки не работает.
Те же оранж просто отвечают sorry, когда пишешь им про какой-то баг в дистрибутиве. Тебе надо ты и чини, они банально дистрибутив полноценно рабочий не предоставляют, вот свежий пример почему дешевый аналог мало кому нужен: https://habr.com/ru/companies/vstack/articles/750156/
На каждом углу проблема, а малина это как ардуина, минимальная сложность входа, обширное сообщество, даже дети могут собирать поделки на малине из примеров готового ПО.
BARSRAB
А что именно не работает? У меня с Rock Pi 3проблем не было. Единственно, я не запускал на ней GPIO блок, т.к. в моем дистрибутиве работа с частью интерфейсов не поддерживалась вообще. Но как медиасервер с хранилищем в виде М2 в штатном разъеме платы она завелась из коробки, без каких-либо танцев с бубном. Настройка вот вообще ничем не отличалась от малинки. Но по скорости работы, конечно, не сравнимы, Rock намного шустрее, плюс нормально реализованная гигибитная сетевуха и нормально реализованные USB, а не висящие на одном хабе, как у малинки.
Iv38
У малинки гигабитный сетевой интерфейс отдельно от USB как минимум в 4-й версии, а вообще кажется, что даже и в 3B+.
Когда надо решать простейшие задачи, то часто один хрен какая железка. Дебиан есть, сеть работает — ну и норм. Но шаг влево, шаг в право и разница всплывает. Те же GPIO, банально работа с хардварным PWM не реализована в софте, не говоря уже про более сложные протоколы. Или работа с графическим ядром. Да даже с вайфаем я однажды бился на OrangePi.
BARSRAB
В 3 точно нет.
Faster Ethernet (Gigabit Ethernet over USB 2.0)
В 4 да, наконец-то смогли более-менее нормальный проц засунуть, вот только за такую цену толку с него никакого. Плюс у того же Rock еще и ОЗУ двухканальная, и EMMC на плату ставится.
А вы дргих плат не знаете?
Iv38
Я знаю другие платы. Но вот чего я не знаю, огребу я с ними проблемы или нет. От апельсинки я подставы тоже не ждал. В этом плане RPi как раз и хороша, вероятность проблем минимальна, а возникшие проще решить.
select26
Классика жанра: не знаю, но осуждаю.
Могу сказать про Orange: у меня промпроекты на OPI работают уже пятый год без проблем. Не единичные исталляции. И OPI zero, и OPI PC. И с документацией все свои вопросы я решил. Да, для меня нет особой проблемы пересобрать модуль или ядро. Но я не гуру программирования - просто читаю документацию. И да - Open Source именно так и работает: что хочешь, то и делаешь - все исходники открыты. Сделал красиво - не забудь поделиться с сообществом.
И нет никаких "проблем на каждом углу". Просто есть люди, которые не хотят вникать, а хотят чтобы кто то потратил свое время и собрал для них готовый образ.
BoberMod
Потому что есть комьюнити и поддержка. А про очередную поделку, вроде орандж пи, через год забудут, так как вышла новая версия, а на старую всем всё равно ????♀️
BARSRAB
Что-то про тот же Rosck pi не забывают...
Iv38
Отличная поддержка в софте, огромное комьюнити. Для многих проектов RPi — эталонная платформа. Для Home Assistant, например. Для OctoPrint многие плагины, работающие с внешними железками через GPIO, написаны именно под RPi.
BARSRAB
Да, но ведь можно немного пошевелить мозгами и переделать и под другие платы. А то получается как ардуйня. Медленная и бесполезная, зато с комьюнити...
Iv38
Ну вы хотите писать модули ядра? Мало кто хочет, не только лишь все.
Iv38
Не всем надо ковыряться в железе, одноплатниками решают и прикладные задачи. Тот же Октопринт или Клиппер для 3D-печати. Или Home Assistant для умного дома. Люди хотят чтобы у них просто работало. Многие даже не знают что такое этот ваш линукс, просто записывают образ на флешку.
Да и на Ардуино наезд зазря. Ардуино шикарно и легко решает некоторые задачи домашней автоматизации. Я, например, могу спроектировать устройство, развести плату, вытравить её или заказать на производстве, собрать, написать прошивку на чистом Си. Ну и зачем я буду это делать, если мне надо через USB пин дёргать туда-сюда по команде? Ардуино Нано и вперёд!
BARSRAB
Для того же умного дома дешевле и проще купить готовое оборудование, а не использовать одноплатники. А те, кто хочет именно делать сам - могут и заморочиться с настройкой.
Ровно до тех пор, пока не начинают пытаться писать код в их
блокнотеIDE с кучей кривых либ. А так чисто как плата - более-менее сойдет. Ну а ножкой можно дергать и при помощи той же FTDI, вообще без МК.Iv38
Какое готовое оборудование для Home Assistant? Их собственный компьютер Yellow? Его хрен купишь, а внутри у него RPi CM 4. Потому что RPi и есть эталонное железо для HA.
BARSRAB
А на Home Assistant свет клином сошелся?
Iv38
Нет, но это ведущая платформа. Да и другие мало отличаются от него в плане железа, если мы говорим о DIY умнодомостоении, а не старорежимных решениях от интеграторов на ПЛК или противоположных консьюмеристских решениях вроде УДЯ, Google Home и HomeKit.
randomsimplenumber
opensoursce оно такое, даа.. Не пользуйтесь кривыми либами, пользуйтесь прямыми.
А так микроконтроллер раскрученный, документированный, кривизну распрямить никто не мешает. Дороговатый, правда.
Iv38
Всё верно. Кривые либы, они, как правило, не абсолютно кривые. Они, вероятно, отлично решали задачу, для которой авторы их писали. Как механика Ньютона супротив теории относительности является не неверной теорией, а частным случаем. И кому-то кривая либа отлично подойдёт. А кому-то не подойдёт, и придётся поискать либу получше, или создать более лучшую самостоятельно.
BARSRAB
Вот самое плохое, что "не совсем" и когда вылезет это самое "не совсем" никому не известно. Т.к. либа может быть написана не пойми кем и не пойми как.
Я вообще никогда не понимал смысла пытаться чужие либы пихать в свой проект. Что мешает просто открыть даташит и написать свою либу?
Iv38
Действительно, для чего вообще нужны либы? Чтобы переиспользовать код и сократить время разработки.
BARSRAB
Вся проблема в том, что на написание либы тратится от 15-20 минут до часа, а вот на отладку чужой либы можно потратить значительно больше времени просто из-за того, что ее работу не протестировали нормально, или же поленились внимательно прочесть даташит/эрраташит, да или просто перепутали пару команд. Особенно интересно это потом делать когда используется ардуйня, где об отладчике никто не слышал. Так где же тут экономия времени?
iig
Вы нереально крутой дядька.
Я
800400 строк (будем считать что половина - комментарии) осмысленного кода 2 дня буду писать. И ещё сколько же отлаживать.BARSRAB
Я просто никогда не использовал ардуйню, поэтому накатать либу вот вообще не проблема. Все ведь стандартно, отправка/получение данных по большей части. Плюс когда есть нормальный отладчик, а не только унылый вывод в консоль, то отладка кода очень сильно ускоряется. А так у меня в проектах только в файле main.c может быть 5000 строк, плюс к ним кучка либ и отдельных файлов с API под всякие интерфейсы и протоколы, в которых от 400 строк чистого кода. Вот комментарии да, жуть как не люблю писать))
BARSRAB
Ардуйня - это, оказывается, микроконтроллер такой. Вот это новость.
Я вообще никогда не пользуюсь чужими либами. Всегда быстрее свою написать, чем выловить все косяки чужой. Да и ардуйней не пользуюсь.
iig
Ну, вам наверное интересно упарываться в платформозависимое битоложество ;) А под arduino framework базовые задачи, типа инициализации таймеров и прочего низкоуровневого железа, уже решены, и 5000 строк кода писать необязательно ;)
BARSRAB
А так открою страшную тайну, ардуйня бывает как минимум на 5 разных МК и SoC: AVR, AVR32, STM32, ESP32, Ublox.
Breathe_the_pressure
Вы это поймёте, когда запустите что-то нестандартное, которое на китайских г-платах просто не работает и нет ответа почему. Нужна стабильность и поддержка, а не мощность. Я тоже сначала перебрал кучу Оранджей и прочего барахла, пока меня не осенило что надо взять.
kAIST
Аха, помню перенес свой проект с Малинки на орендж и неделю отлавливал баг с тем что один процесс у меня просто исчезал бесследно. Оказалось, что на это плате под нагрузкой одно из ядер просто брало и выключалось. Я уж не говорю про квест, какой дистр из рекомендованных поставить: в одном работает это, но не работает то, а в другом все наоборот.
buldo
Если говорить про CSI камеры, то это чуть ли не единственный SBC, который их нормально поддерживает. У других одноплатников с камерами вообще дичайшие проблемы.