Во второй части были рассмотрены 5 способов использования Raspberry Pi. И как оказывается, этот микрокомпьютер способен ещё на большее. Сейчас мы рассмотрим еще 5, надеюсь, не менее интересных возможностей Raspberry Pi.
Как и в предыдущей части, будут рассмотрены способы, не требующие программирования.
Продолжение под катом.
Для начала, отвечу на вопрос, который задавали в предыдущей части — какую модель Raspberry Pi лучше выбрать. Действительно, разные версии обладают разной производительностью, результаты тестов легко найти в Гугле:
Как нетрудно видеть, из современных моделей наиболее быстрыми являются Raspberry Pi 3 B+ и самая последняя версия Raspberry Pi 4. Недостаток Pi4 лишь в том, что она имеет более редкий разъем Micro HDMI, модель 3B+ в этом плане более универсальна. Если нужна ультра-компактная модель, можно смотреть в сторону Raspberry Pi Zero W, но по большому счету, я бы её не рекомендовал. Во-первых, как можно видеть из тестов, она заметно медленнее, во-вторых, Zero W имеет (опять!) другой видео разъем (Mini HDMI), не имеет Ethernet и требует USB-переходника для подключения клавиатуры или мыши. Zero W стоит брать лишь в том случае, если вы точно знаете зачем вам ультракомпактная модель — обычная версия (Pi 3B+ или Pi 4) является и более быстрой и более универсальной.
Кстати, если нужен ультракомпактный микро-ПК, можно посмотреть в сторону Nano Pi, которые бывают в виде вполне интересных моделей, вроде таких:
А теперь, мы продолжим. Итак, 5 способов использования Raspberry Pi.
1. Информационный киоск
Фото с сайта newscrewdriver.com/2019/08/10/raspberry-pi-web-kiosk-boots-faster-on-raspbian-than-ubuntu-core
Последние версии OS Raspbian имеют вполне современный браузер Chromium, способный корректно отображать даже сложные web-страницы. Так что если нужно отображать на большом экране тикеты из Jira, котировки акций вашей компании, расписание поездов или хотя бы прогноз погоды, Raspberry Pi вполне справится с такой задачей.
Это достаточно просто и не требует никакого программирования, нужно лишь запустить Chromium в kiosk-режиме, спрятать курсор мыши и отключить скринсейвер.
Для интересующихся, пара туториалов:
2. Шлюз LoRaWAN
Если вам нужна беспроводная сеть LoRaWAN для приема данных через радиомодемы LoRa с низким электропотреблением, сделать её можно на базе Raspberry Pi. Существуют варианты разных ценовых категорий, одноканальные шлюзы дешевле, 8-канальные дороже. Примерная цена вопроса от 50$ до 500$ в зависимости от «навороченности» шлюза.
Подробное изучение LoRa выходит за рамки этого текста, материалы для более подробного изучения:
- learn.adafruit.com/lora-and-lorawan-radio-for-raspberry-pi
- www.cooking-hacks.com/documentation/tutorials/lorawan-for-arduino-raspberry-pi-waspmote-868-900-915-433-mhz
- www.thethingsnetwork.org/docs/gateways/start/build.html
3. Интернет-радио и интернет-ТВ
Тема воспроизведения звука на Raspberry Pi чрезвычайно обширна — к устройству можно подключить и китайскую USB-звуковую карту за 3.5$, и HiFi-shield с позолоченными разъемами за 35$, и плату с динамиком, как показано на фото выше. Несложно найти и платы с оптическим выходом, что позволит добавить даже к старой аудиосистеме современные «сетевые» функции.
Что касается софта, то вариантов тоже много. Можно захардкодить и воспроизводить лишь одну интернет-радиостанцию, сделав подобие «радиоточки» для любимой бабушки, можно добавить ЖК-дисплей, кнопки и пр. Имеющие подписку, могут сделать воспроизведение из Spotify.
Желающие могут посмотреть следующие туториалы:
- www.jan-holst.dk/pi-radio/pi-radio.html
- www.hackster.io/Granpino/raspberry-pi-internet-radio-and-mp3-player-with-bluetooth-1aa591
- learn.pimoroni.com/tutorial/sandyj/streaming-spotify-to-your-pi
- pimylifeup.com/raspberry-pi-spotify
Что касается IP-TV, здесь рекомендуют использовать Kodi — софт, специально заточенный под использование в виде медиацентра. Я лично не пробовал настраивать IP-TV, да и платной подписки у меня нет, но для тех например, кто живет заграницей но хочет смотреть русскоязычное ТВ, это может быть актуально.
Желающие могут обратиться к туториалам:
Также к Raspberry Pi можно можно подключить ИК-приемник, что позволит использовать пульт ДУ.
4. FM-трансмиттер
Фото с сайта circuitdigest.com/microcontroller-projects/raspberry-pi-fm-transmitter
Не многие знают, но изменяя программно частоту PLL, на Raspberry Pi можно безо всякого дополнительного «железа» передавать радиосигналы в диапазоне до 500МГц — достаточно просто подсоединить к пину кусок провода, как показано на фото, и запустить программу. Разумеется, HiFi-качества здесь не будет, да и выходная мощность всего лишь около 10мВт, но для тестирования каких-либо радиоустройств или просто для розыгрыша друзей или соседей, это вполне может пригодиться. Мощности в 10мВт хватает, чтобы воспроизводить музыку на FM-радио в пределах комнаты.
Более подробно я описывал эту технологию пару лет назад в статье на geektimes, хотя на сегодня та статья уже устарела, более качественную программу для передачи можно найти здесь.
5. Полетный контроллер для дрона
Следующий проект для Raspberry Pi не менее интересен. Многим наверное известны контроллеры для мультикоптеров, такие как MultiWii, Arducopter или DJI. Аналогичный контроллер может быть сделан и на базе Raspberry Pi. Проект NAVIO2 представляет собой специальный шилд, способный управлять регуляторами моторов и имеющий на борту необходимые сенсоры (акселерометр, барометр, GPS и пр).
Сложно сказать, насколько такая связка лучше «обычных» Arducopter/Pixhawk, но для ряда задач идея может быть достаточно перспективной. Во-первых, управлять или передавать телеметрию (или даже изображение) с такого коптера можно через 3G/4G-модем, что заметно увеличивает дальность линка. Во-вторых, на Raspberry Pi могут работать достаточно сложные алгоритмы, типа фильтра Калмана или какой-то другой математики. Я лично этот контроллер не пробовал, так что более подробно сказать не могу, желающие могут поискать видео полетов в Youtube.
Заключение
Надеюсь, читатели нашли для себя какие-либо полезные идеи.
Это была последняя часть, вторая и первая части доступны по ссылкам.
Всем удачных экспериментов.
Комментарии (56)
DmitrySpb79 Автор
13.11.2019 08:23Информация фрагментарная, противоречивая, автоматизации никакой не предлагается. В общем, DIY во всей красе.
Я делал в офисе по этому туториалу, до сих пор работает без проблем. Да, автоматизации нет, скрипты придется вручную создать, но для умеющего пользоваться nano, работы на 10 минут.
Вычислительные фермы
Пробовал запускать расчеты на Raspberry Pi, нет смысла, десктопный проц рвет их как тузик. Не говоря уже про GPU.
Кластер на Raspberry Pi сделать можно, но чисто в учебных целях, практического смысла никакого.
Ну, и совершенно идиотский вопрос — дробить статью было обязательно?
Никакого умысла делать N частей не было, это чистая импровизация. Что-то вспомнилось по ходу написания, что-то в процессе обсуждения в комментариях.gecube
13.11.2019 10:00Пробовал запускать расчеты на Raspberry Pi, нет смысла, десктопный проц рвет их как тузик. Не говоря уже про GPU.
Я повторюсь, что по абсолютной вычислительной мощи — да, десктопный проц порвет распи. Но вот все равно наверняка можно придумать метрику, по которой распи будет выгоднее (например, вычислительная мощность на единицу потребленной электроэнергии или что-то вроде того).
Кластер на Raspberry Pi сделать можно, но чисто в учебных целях, практического смысла никакого.
Тоже вариант.
Я делал в офисе по этому туториалу, до сих пор работает без проблем.
Как минимум — не рассмотрен вопрос — что делать, если хром завис, или страница в нем перестала обновляться. Киоск, который надо ребутать руками в случае аварии — не киоск вовсе.
DmitrySpb79 Автор
13.11.2019 11:06Но вот все равно наверняка можно придумать метрику, по которой распи будет выгоднее
Есть метрика Gigaflops per watt: web.eece.maine.edu/~vweaver/group/green_machines.html
Ни по абсолютной, ни по относительной мощности Raspberry Pi не в лидерах (да в общем, RPi и не задумывалась как вычислительная платформа).
DmitrySpb79 Автор
13.11.2019 11:48Как минимум — не рассмотрен вопрос — что делать, если хром завис
Я не уверен, что это решается настройками Хрома (хотя может быть и там какой-то авто restart есть). Как посоветовали ниже, если нужны совсем гибкие настройки, пишите свою «обертку» над браузером и обрабатывайте его сообщения в коде.nckma
13.11.2019 12:18По своему опыту скажу так: если компилировать большой сишный проект прямо на RPI3 командой make -j4 то малинка перегревается и виснет наглухо. Только сброс помогает. Пробовал на разных платах.
Пассивный кулер стоит.
Так что сделать чтоб плата не висла — та еще проблема, особенно если ресурсоемкое приложение. Особенно если хочется не чистую плату прикрутить, а в закрытом корпусе, где перегрев еще больше.udvnl
13.11.2019 12:46При компилировании попробуйте останавливать практически все прописанные в системе сервисы, и временно создавайте файл подкачки.
DmitrySpb79 Автор
13.11.2019 12:48Часто бывает достаточно переключиться на компиляцию в один поток — с make -j4 на make -j1 :)
Fox_exe
13.11.2019 11:03+1Я бы для дронов рекомендовал OrangePI — И стоит дешевле и энергии жрет заметно меньше (Что критично), а мощей проца примерно столькоже.
DmitrySpb79 Автор
13.11.2019 11:08Для дронов как раз потребление контроллера не так критично, там основное движки+пропеллеры жрут. Но в целом идея с OrangePI тоже неплохая, да.
gecube
13.11.2019 11:27OrangePI — это который в андроид грузится, если SD нет? Выглядит как китайская подделка под оригинальную малинку.
Дистрибутив линукса у них тоже кривой.DmitrySpb79 Автор
13.11.2019 11:38У них есть интересные модели, например с двумя Ethernet, если надо www.orangepi.org/OrangePiR1
Лично не пробовал, подробнее не знаю.IRT
13.11.2019 12:14А есть такие же, только с двумя гигабитными интерфейсами?
DaemonGloom
13.11.2019 13:30Два интерфейса — сильно критичное ограничение?
Есть просто такой вариант: www.banana-pi.org/r1.html
Banana Pi R1IRT
13.11.2019 13:41Нет, конечно, можно и больше.
Только эта модель уже не продается, как я понял.DmitrySpb79 Автор
13.11.2019 13:46Тогда можно взять роутер, и поставить на него openwrt.
10-0-0-0-1.org/reviews/routers/openwrt
bluegadgettooth.com/best-openwrt-router
DaemonGloom
13.11.2019 13:54На Амазоне продаётся вполне.
www.amazon.com/s?k=banana+pi+r1&ref=nb_sb_noss_1
Есть и более свежая версия без удобного подключения sata диска, но с большим числом sata разъёмов и дополнительным mini pcie.
www.amazon.com/8GBEMMC-Open-source-Development-raspberry-compatible/dp/B079BKMGTS
Fox_exe
13.11.2019 15:22Нет, на первых OrangePI вообще альтернативного флеша небыло.
А когда появился — продавали с пустой флешкой, на скок я помню.
По поводу дистрибутивов — Есть официальный порт Raspbian. Работает отлично.
Да и RetroPie тоже портанули давно (RetrOrangePi).
markoni
14.11.2019 01:09У них моделей 100500. Совершенно нормального вида и производительности. Линукс — armbian. В случае кривых рук, не спасет и macos, конечно.
YoulDHead
13.11.2019 11:39+1достаточно сложные алгоритмы, типа фильтра Калмана
Это ж чего такого сложного или ресурсоемкого в фильтре Калмана, что бы для его реализации требовалась целая Малина? У меня в проектике хедтрекера на тухлой Arduino ProMini этот фильтр реализован для нескольких каналов и вполне успешно работает.DmitrySpb79 Автор
13.11.2019 11:44На старых контроллерах были проблемы с производительностью, на современных уже работает.
ardupilot.org/dev/docs/extended-kalman-filter.html#extended-kalman-filter
Нужна «малина» или нет для еще более сложной математики, как я и написал, вопрос открытый, я этот контроллер не тестировал.
Для меня более интересным в случае RPi было бы управление и передача картинки по 4G.YoulDHead
13.11.2019 11:51А, тогда понятно. Но это проблемы не самого фильтра, а его проблемы его реализации в конкретном софте. Так-то он прост как валенок.
DmitrySpb79 Автор
13.11.2019 12:18В современных полетных контроллерах дофига кода, там и обработка сенсоров, и телеметрия, и полет по точкам, и логи и пр.
dev.px4.io/master/en/concept/architecture.htmlYoulDHead
13.11.2019 12:29Да, я в курсе :) Сам такой разрабатывал для самолетов.
DmitrySpb79 Автор
13.11.2019 12:37Да, когда-то все начиналось с MultiWii и Atmega328 на борту, сейчас уже Linux и RTOS.
Думал себе недавно Pixhawk4 для тестов купить, но запускать все это негде…YoulDHead
13.11.2019 13:57Господи, вы это так сказали, как будто это было еще при дедушке Ленине :) У меня в мелком квадре до сих пор на ардуине автопилот. И OSD на нем же :)
Вот кстати про концепцию, мне всегда нравились решения основанные на мелких независимых железках. То есть с автопилотами я лично шел бы не по пути увеличения мощи центрального контроллера и создания универсального ПО на них, а по пути добавления мелких контроллеров с небольшим функционалом, на универсальной шине.
Опять же, финальная цена :) Pixhawk4 — все таки денег уже серьезных стоит.DmitrySpb79 Автор
13.11.2019 14:03+1Не, при дедушке Ленине были первые Multiwii на распиленных нунчаках :) И трикоптеры с контроллером вообще почти без «мозгов» и с сервой на хвосте, забыл уже как назывались.
gorbln
13.11.2019 14:38Были и вообще без мозгов, на гироскопах от вертолётов.
Но как-то всё это быстро переползло на платку «Captain Kuk» (вроде так)
А Wii с нунчаком лично делал. И с гироскопом от WiiMotionPlus. Когда коптеры, как сейчас модно говорить, ещё не стали мэйнстримом…
DmitrySpb79 Автор
13.11.2019 14:05нравились решения основанные на мелких независимых железках
С одной стороны хорошо, с другой, в одном проце и в одном адресном пространстве куда легче код писать, чем синхронизировать кучу разных девайсов по шине.YoulDHead
13.11.2019 14:07Ну это мое лично мнение, везде есть плюсы и минусы.
DmitrySpb79 Автор
13.11.2019 14:15В автомобилях вроде так и делают — есть CAN-шина и разные девайсы с разным приоритетом. Не знаю, используется ли похожее где-то в коптерах. CAN-регуляторы вроде в продаже были.
YoulDHead
13.11.2019 14:50Да не только в авто. Много где делают. У меня сейчас подобная система сбора данных в разработке. Куча датчиков разнокалиберных, соединенных физически на двух шинах, либо i2c это то что на плате, либо rs485. Очень удобно. Каждый девайс на шине логически законченное устройство, которое собирает и обрабатывает один тип данных. На выходе, стандартизированный пакет с результатами работы в шину, на входе, стандартизированная же команда управления.
DmitrySpb79 Автор
13.11.2019 14:27Pixhawk4 — все таки денег уже серьезных стоит
220$ не такая уж гигантская цена, да и функционал интересный. Другой вопрос, что только выехать в безлюдные поля где можно реализовать возможности контроллера (полеты по точкам и пр) это минимум 1.5 часа на машине из города или 2 часа общественным транспортом. Тут весь интерес пропадает… А просто на поляне в парке висеть уже не так интересно.
В мелких городах с этим проще наверно, хотя там и зарплаты ниже пропорционально плотности населения :)YoulDHead
13.11.2019 14:59Гы, ну кому как. 220 баксов на потестить, это как-то, ну его нафиг :) Я лучше двигатель очередной для самолета куплю. Особенно если учесть, что всякие полеты по точкам и в контроллерах за 20 баксов имеются.
Да и наигрался. Погонять FPV на квадре вся эта чепуха не нужна, а летать в Кронштадт, уже неинтересно. На системах попроще летали за 40 километров еще до того как это стало мейнстримом :)
Так я на полянке на даче летаю. Не свечусь. А было время летали промеж глиссад со стороны Шушар в полях :)
rexen
13.11.2019 13:08Автор в курсе, для чего используют PNG и JPG форматы? Зачем в статье растровые/фото вывалены в несжатом виде? В .jpg будет почти на порядок меньше весить, чем эти 5 МегаБайт .png.
toster.ru/q/589922DmitrySpb79 Автор
13.11.2019 14:16Спасибо. Вообще-то был уверен что движок сайта оптимизирует страницу сам.
rexen
13.11.2019 18:22Может сами форматы изображений и можно заставить движок оптимально сжимать, но вот выбирать формат изображения — пока увы.
Я, собственно, и не заметил бы, но есть у меня такая хомячная привычка — утаскивать понравившиеся материалы в offline. В частности, пользуюсь плагином UnMHT для FireFox + плагином MhtUnPack для Total Commander. Первый позволяет сохранять выделенный кусок, а не всю веб-страницу. Второй — гулять внутри получившегося MHTML файла как в обычном архиве — удалять ненужные файлы и добавлять нужные. Последнюю возможность использую для хранения в этом же файле дополнительных материалов — архивы, прошивки, исходники, комментарии и т.п.
А по сабжу — в качестве антиоффтопа — добавлю ссылку на ещё один вариант применения малинки в публиковавшейся здесь статье: DIY тепловизор на Raspberry PI (правда, специфика поуже упоминавшихся).
udvnl
13.11.2019 13:13Хотя уже не уверен, найдется ли еще 5 более-менее необычных проектов, посмотрим.
Как вариант использования: тестер пропускной способности локальной и Wi-Fi сети. На RPI можно установить jperf, работающий в качестве сервера, на ПК или смартфон, в качестве клиента.
LAG_LAGbI4
13.11.2019 16:42Разве в дронах не используются операционные системы реального времени? На пи можно установить систему реального времени?
DmitrySpb79 Автор
13.11.2019 17:41PX4 может работать как на RTOS (http://nuttx.org/), так и на обычной ОС.
dev.px4.io/master/en/concept/architecture.html
Tomasina
15.11.2019 22:40Nano Pi в качестве терминальной станции мне очень нравится.
Потянет? У кого-нибудь уже есть действующее решение?
gecube
По поводу киоска. Я попробовал воспользоваться приведенными в статье ссылками. И вообще той информацией, что есть в интернете. В общем, сказать, что я поел говна — ничего не сказать. Информация фрагментарная, противоречивая, автоматизации никакой не предлагается. В общем, DIY во всей красе. В моих планах в ближайшее время систематизировать свой опыт и предложить свои мысли как повод к дискуссии — какой же всё-таки правильный подход к построению киоска на ПИшке.
Какие ещё варианты использования распберри остались за кадром.
Тонкий клиент для rdp. Есть опасения, что может тупо не хватить быстродействия, но в остальном — почему нет. А если изобрести способ удобного крепежа к монитору...
Принт-сервер для дешманских принтеров, которые не умеют в wi-fi / ethernet
Вычислительные фермы. Вроде https://turingpi.com/ Но здесь надо точно считать экономику. Т.к. наверняка, что в приведенной вычислительной мощности распберри хорош, но вот в абсолютной…
P.s.
Ну, и совершенно идиотский вопрос — дробить статью было обязательно? Плюсики поставил, но удобнее было бы все прочитать одним текстом, а не фрагментами.
iwram
Запускали тонкий клиент RDP еще на самой первой версии, до сих пор работают. Вполне подходит для простой работы сотрудников, которым необходима только одна программа в рдп сессии.
Так же, в одном диллерском центре видел как оптимизировали под видеоконтент с рекламой и предложениями — вполне себе production решение — все rpi подключаются через опенвпн и за ночь выкачивают необходимый контент, днем показывают FullHD.
al_sh
Берем BuildRoot и собираем рутфс, кроскомпилим Qt поверх eglfs собираем Qtишный пример браузера — имеем загрузку 4-5сек, хромиум поверх eglfs без всяких иксов с возможностью прокидывать сигналы и мигать диодами через GPIO и все это на 64метровой карточке
gecube
Осталось написать годный туториал ;)
/ и не забыть, что нужно каким-то образом еще предусмотреть возможность обновления распберри по воздуху, не через замену SD /
al_sh
В буилдрут есть дефконфиг под малину. Ставим галочку напротив Qt и меняем systemV на systemd, что бы грузилось быстрее. Ну и не собираем ядро, а переписываем готовое из малиногита. На туториал там явно не тянет)
Polaris99
Делали подобное, правда, на iMX6, 4-5 секунд получить не удалось, даже голый линукс без всего грузится чуть дольше. Чтобы запустить хромиум под Qt, требовалось в районе 20 секунд. У малины с этим настолько лучше?
al_sh
С нормальной карточки ситемди до голой консоли 4-5 сек. грузит. Я запускаю хромиум с простейшей локальной страничкой типа заставки сразу после инициализации локалфс, кидаю системд нотифи, по которой поднимается сеть и после этого гружу уже целевую страничку. Через 5-6 сек появляется заставка, а целевая страничка прогружается, в зависимости от сложности. Qtшный Webengine собираю с внешним ffmpeg, что бы mmalные кодеки для h264 пользовать, без Webasm и с системным libjpegturbo.
gecube
Ждем от Вас статью. Очень интересный опыт.
Polaris99
Ок, а сколько реально времени занимает процесс загрузки до момента отображения странички? От включения до полного отображения.
al_sh
Зависит от странички. Если локальная статическая страничка с парой фоток — < 10сек, если тяжелая по сетке сильно дольше. В любом случае намнооого быстрее, чем прогружать иксы, а поверх них хромиум. Кроме того, к моменту начала загрузки странички прога во всю что-то показывает/рассказыват, считывает штрих коды и моргает диодами. Удобно прокинуть сообщения libcec и вызывать JS методы с пульта телевизора
Capacitor10n
CodeSys + cromium (киоск) + куча плат по Modbus + монитор 17".
Плюс еще поднял wifi точку доступа. Можно подключатся и рулить всем этим барахлом так же как и с локальной панели оператора (монитор и тач).
Завелось как нечего делать особенно учитывая что на момент реализации проекта я с линухом не был знаком вообще. Правда проект так и не был доведен до конца по ряду причин :))))
Сейчас вместо хрома и кодесиса QT в полноэкранном режиме.
LeoGV
Wtware. Тонкий клиент для rdp, vnc, отдельный запуск хрома (в том числе в режиме киоска), рабочий принтсервер и ещё маленькая тележка возможностей.