Привет, Хабр.

Во второй части были рассмотрены 5 способов использования Raspberry Pi. И как оказывается, этот микрокомпьютер способен ещё на большее. Сейчас мы рассмотрим еще 5, надеюсь, не менее интересных возможностей Raspberry Pi.



Как и в предыдущей части, будут рассмотрены способы, не требующие программирования.
Продолжение под катом.

Для начала, отвечу на вопрос, который задавали в предыдущей части — какую модель Raspberry Pi лучше выбрать. Действительно, разные версии обладают разной производительностью, результаты тестов легко найти в Гугле:

image

Как нетрудно видеть, из современных моделей наиболее быстрыми являются 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 выходит за рамки этого текста, материалы для более подробного изучения:


3. Интернет-радио и интернет-ТВ




Тема воспроизведения звука на Raspberry Pi чрезвычайно обширна — к устройству можно подключить и китайскую USB-звуковую карту за 3.5$, и HiFi-shield с позолоченными разъемами за 35$, и плату с динамиком, как показано на фото выше. Несложно найти и платы с оптическим выходом, что позволит добавить даже к старой аудиосистеме современные «сетевые» функции.

Что касается софта, то вариантов тоже много. Можно захардкодить и воспроизводить лишь одну интернет-радиостанцию, сделав подобие «радиоточки» для любимой бабушки, можно добавить ЖК-дисплей, кнопки и пр. Имеющие подписку, могут сделать воспроизведение из 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)


  1. gecube
    13.11.2019 01:13

    По поводу киоска. Я попробовал воспользоваться приведенными в статье ссылками. И вообще той информацией, что есть в интернете. В общем, сказать, что я поел говна — ничего не сказать. Информация фрагментарная, противоречивая, автоматизации никакой не предлагается. В общем, DIY во всей красе. В моих планах в ближайшее время систематизировать свой опыт и предложить свои мысли как повод к дискуссии — какой же всё-таки правильный подход к построению киоска на ПИшке.


    Какие ещё варианты использования распберри остались за кадром.


    1. Тонкий клиент для rdp. Есть опасения, что может тупо не хватить быстродействия, но в остальном — почему нет. А если изобрести способ удобного крепежа к монитору...


    2. Принт-сервер для дешманских принтеров, которые не умеют в wi-fi / ethernet


    3. Вычислительные фермы. Вроде https://turingpi.com/ Но здесь надо точно считать экономику. Т.к. наверняка, что в приведенной вычислительной мощности распберри хорош, но вот в абсолютной…



    P.s.


    . Хотя уже не уверен, найдется ли еще 5 более-менее необычных проектов, посмотрим.

    Ну, и совершенно идиотский вопрос — дробить статью было обязательно? Плюсики поставил, но удобнее было бы все прочитать одним текстом, а не фрагментами.


    1. iwram
      13.11.2019 03:05

      Запускали тонкий клиент RDP еще на самой первой версии, до сих пор работают. Вполне подходит для простой работы сотрудников, которым необходима только одна программа в рдп сессии.
      Так же, в одном диллерском центре видел как оптимизировали под видеоконтент с рекламой и предложениями — вполне себе production решение — все rpi подключаются через опенвпн и за ночь выкачивают необходимый контент, днем показывают FullHD.


    1. al_sh
      13.11.2019 10:16

      Берем BuildRoot и собираем рутфс, кроскомпилим Qt поверх eglfs собираем Qtишный пример браузера — имеем загрузку 4-5сек, хромиум поверх eglfs без всяких иксов с возможностью прокидывать сигналы и мигать диодами через GPIO и все это на 64метровой карточке


      1. gecube
        13.11.2019 10:52

        Осталось написать годный туториал ;)


        / и не забыть, что нужно каким-то образом еще предусмотреть возможность обновления распберри по воздуху, не через замену SD /


        1. al_sh
          13.11.2019 11:01

          В буилдрут есть дефконфиг под малину. Ставим галочку напротив Qt и меняем systemV на systemd, что бы грузилось быстрее. Ну и не собираем ядро, а переписываем готовое из малиногита. На туториал там явно не тянет)


      1. Polaris99
        13.11.2019 19:30

        Делали подобное, правда, на iMX6, 4-5 секунд получить не удалось, даже голый линукс без всего грузится чуть дольше. Чтобы запустить хромиум под Qt, требовалось в районе 20 секунд. У малины с этим настолько лучше?


        1. al_sh
          15.11.2019 11:16
          +1

          С нормальной карточки ситемди до голой консоли 4-5 сек. грузит. Я запускаю хромиум с простейшей локальной страничкой типа заставки сразу после инициализации локалфс, кидаю системд нотифи, по которой поднимается сеть и после этого гружу уже целевую страничку. Через 5-6 сек появляется заставка, а целевая страничка прогружается, в зависимости от сложности. Qtшный Webengine собираю с внешним ffmpeg, что бы mmalные кодеки для h264 пользовать, без Webasm и с системным libjpegturbo.


          1. gecube
            15.11.2019 12:03

            Ждем от Вас статью. Очень интересный опыт.


          1. Polaris99
            15.11.2019 12:36

            Ок, а сколько реально времени занимает процесс загрузки до момента отображения странички? От включения до полного отображения.


            1. al_sh
              15.11.2019 15:32
              +1

              Зависит от странички. Если локальная статическая страничка с парой фоток — < 10сек, если тяжелая по сетке сильно дольше. В любом случае намнооого быстрее, чем прогружать иксы, а поверх них хромиум. Кроме того, к моменту начала загрузки странички прога во всю что-то показывает/рассказыват, считывает штрих коды и моргает диодами. Удобно прокинуть сообщения libcec и вызывать JS методы с пульта телевизора


    1. Capacitor10n
      13.11.2019 11:08

      CodeSys + cromium (киоск) + куча плат по Modbus + монитор 17".
      Плюс еще поднял wifi точку доступа. Можно подключатся и рулить всем этим барахлом так же как и с локальной панели оператора (монитор и тач).
      Завелось как нечего делать особенно учитывая что на момент реализации проекта я с линухом не был знаком вообще. Правда проект так и не был доведен до конца по ряду причин :))))

      Сейчас вместо хрома и кодесиса QT в полноэкранном режиме.


    1. LeoGV
      14.11.2019 10:50

      Wtware. Тонкий клиент для rdp, vnc, отдельный запуск хрома (в том числе в режиме киоска), рабочий принтсервер и ещё маленькая тележка возможностей.


  1. DmitrySpb79 Автор
    13.11.2019 08:23

    Информация фрагментарная, противоречивая, автоматизации никакой не предлагается. В общем, DIY во всей красе.

    Я делал в офисе по этому туториалу, до сих пор работает без проблем. Да, автоматизации нет, скрипты придется вручную создать, но для умеющего пользоваться nano, работы на 10 минут.

    Вычислительные фермы

    Пробовал запускать расчеты на Raspberry Pi, нет смысла, десктопный проц рвет их как тузик. Не говоря уже про GPU.
    Кластер на Raspberry Pi сделать можно, но чисто в учебных целях, практического смысла никакого.

    Ну, и совершенно идиотский вопрос — дробить статью было обязательно?

    Никакого умысла делать N частей не было, это чистая импровизация. Что-то вспомнилось по ходу написания, что-то в процессе обсуждения в комментариях.


    1. gecube
      13.11.2019 10:00

      Пробовал запускать расчеты на Raspberry Pi, нет смысла, десктопный проц рвет их как тузик. Не говоря уже про GPU.

      Я повторюсь, что по абсолютной вычислительной мощи — да, десктопный проц порвет распи. Но вот все равно наверняка можно придумать метрику, по которой распи будет выгоднее (например, вычислительная мощность на единицу потребленной электроэнергии или что-то вроде того).


      Кластер на Raspberry Pi сделать можно, но чисто в учебных целях, практического смысла никакого.

      Тоже вариант.


      Я делал в офисе по этому туториалу, до сих пор работает без проблем.

      Как минимум — не рассмотрен вопрос — что делать, если хром завис, или страница в нем перестала обновляться. Киоск, который надо ребутать руками в случае аварии — не киоск вовсе.


      1. DmitrySpb79 Автор
        13.11.2019 11:06

        Но вот все равно наверняка можно придумать метрику, по которой распи будет выгоднее

        Есть метрика Gigaflops per watt: web.eece.maine.edu/~vweaver/group/green_machines.html

        Ни по абсолютной, ни по относительной мощности Raspberry Pi не в лидерах (да в общем, RPi и не задумывалась как вычислительная платформа).


      1. DmitrySpb79 Автор
        13.11.2019 11:48

        Как минимум — не рассмотрен вопрос — что делать, если хром завис

        Я не уверен, что это решается настройками Хрома (хотя может быть и там какой-то авто restart есть). Как посоветовали ниже, если нужны совсем гибкие настройки, пишите свою «обертку» над браузером и обрабатывайте его сообщения в коде.


        1. nckma
          13.11.2019 12:18

          По своему опыту скажу так: если компилировать большой сишный проект прямо на RPI3 командой make -j4 то малинка перегревается и виснет наглухо. Только сброс помогает. Пробовал на разных платах.
          Пассивный кулер стоит.
          Так что сделать чтоб плата не висла — та еще проблема, особенно если ресурсоемкое приложение. Особенно если хочется не чистую плату прикрутить, а в закрытом корпусе, где перегрев еще больше.


          1. udvnl
            13.11.2019 12:46

            При компилировании попробуйте останавливать практически все прописанные в системе сервисы, и временно создавайте файл подкачки.


            1. DmitrySpb79 Автор
              13.11.2019 12:48

              Часто бывает достаточно переключиться на компиляцию в один поток — с make -j4 на make -j1 :)


  1. Eddyson
    13.11.2019 10:59

    >Интернет-радио
    Сделал такое из строй Nokia N79. Можно и другие модели использовать под такое, например Nokia 5800 или Nokia 603. Полет нормальный, цена — копейки.


    1. YouHim
      13.11.2019 13:12

      А можно подробнее?


      1. Eddyson
        15.11.2019 14:59

        LCG Jukebox + .m3u плейлист с радиостанциями.


  1. Fox_exe
    13.11.2019 11:03
    +1

    Я бы для дронов рекомендовал OrangePI — И стоит дешевле и энергии жрет заметно меньше (Что критично), а мощей проца примерно столькоже.


    1. DmitrySpb79 Автор
      13.11.2019 11:08

      Для дронов как раз потребление контроллера не так критично, там основное движки+пропеллеры жрут. Но в целом идея с OrangePI тоже неплохая, да.


      1. gecube
        13.11.2019 11:27

        OrangePI — это который в андроид грузится, если SD нет? Выглядит как китайская подделка под оригинальную малинку.
        Дистрибутив линукса у них тоже кривой.


        1. DmitrySpb79 Автор
          13.11.2019 11:38

          У них есть интересные модели, например с двумя Ethernet, если надо www.orangepi.org/OrangePiR1

          Лично не пробовал, подробнее не знаю.


          1. IRT
            13.11.2019 12:14

            А есть такие же, только с двумя гигабитными интерфейсами?


            1. DmitrySpb79 Автор
              13.11.2019 12:18

              Не, таких не видел.


            1. DaemonGloom
              13.11.2019 13:30

              Два интерфейса — сильно критичное ограничение?
              Есть просто такой вариант: www.banana-pi.org/r1.html

              Banana Pi R1
              image


              1. IRT
                13.11.2019 13:41

                Нет, конечно, можно и больше.
                Только эта модель уже не продается, как я понял.


                1. DmitrySpb79 Автор
                  13.11.2019 13:46

                  Тогда можно взять роутер, и поставить на него openwrt.

                  10-0-0-0-1.org/reviews/routers/openwrt
                  bluegadgettooth.com/best-openwrt-router


                1. 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


        1. Fox_exe
          13.11.2019 15:22

          Нет, на первых OrangePI вообще альтернативного флеша небыло.
          А когда появился — продавали с пустой флешкой, на скок я помню.
          По поводу дистрибутивов — Есть официальный порт Raspbian. Работает отлично.
          Да и RetroPie тоже портанули давно (RetrOrangePi).


        1. markoni
          14.11.2019 01:09

          У них моделей 100500. Совершенно нормального вида и производительности. Линукс — armbian. В случае кривых рук, не спасет и macos, конечно.


  1. YoulDHead
    13.11.2019 11:39
    +1

    достаточно сложные алгоритмы, типа фильтра Калмана

    Это ж чего такого сложного или ресурсоемкого в фильтре Калмана, что бы для его реализации требовалась целая Малина? У меня в проектике хедтрекера на тухлой Arduino ProMini этот фильтр реализован для нескольких каналов и вполне успешно работает.


    1. DmitrySpb79 Автор
      13.11.2019 11:44

      На старых контроллерах были проблемы с производительностью, на современных уже работает.
      ardupilot.org/dev/docs/extended-kalman-filter.html#extended-kalman-filter

      Нужна «малина» или нет для еще более сложной математики, как я и написал, вопрос открытый, я этот контроллер не тестировал.

      Для меня более интересным в случае RPi было бы управление и передача картинки по 4G.


      1. YoulDHead
        13.11.2019 11:51

        А, тогда понятно. Но это проблемы не самого фильтра, а его проблемы его реализации в конкретном софте. Так-то он прост как валенок.


        1. DmitrySpb79 Автор
          13.11.2019 12:18

          В современных полетных контроллерах дофига кода, там и обработка сенсоров, и телеметрия, и полет по точкам, и логи и пр.

          dev.px4.io/master/en/concept/architecture.html


          1. YoulDHead
            13.11.2019 12:29

            Да, я в курсе :) Сам такой разрабатывал для самолетов.


            1. DmitrySpb79 Автор
              13.11.2019 12:37

              Да, когда-то все начиналось с MultiWii и Atmega328 на борту, сейчас уже Linux и RTOS.

              Думал себе недавно Pixhawk4 для тестов купить, но запускать все это негде…


              1. YoulDHead
                13.11.2019 13:57

                Господи, вы это так сказали, как будто это было еще при дедушке Ленине :) У меня в мелком квадре до сих пор на ардуине автопилот. И OSD на нем же :)

                Вот кстати про концепцию, мне всегда нравились решения основанные на мелких независимых железках. То есть с автопилотами я лично шел бы не по пути увеличения мощи центрального контроллера и создания универсального ПО на них, а по пути добавления мелких контроллеров с небольшим функционалом, на универсальной шине.

                Опять же, финальная цена :) Pixhawk4 — все таки денег уже серьезных стоит.


                1. DmitrySpb79 Автор
                  13.11.2019 14:03
                  +1

                  Не, при дедушке Ленине были первые Multiwii на распиленных нунчаках :) И трикоптеры с контроллером вообще почти без «мозгов» и с сервой на хвосте, забыл уже как назывались.


                  1. gorbln
                    13.11.2019 14:38

                    Были и вообще без мозгов, на гироскопах от вертолётов.
                    Но как-то всё это быстро переползло на платку «Captain Kuk» (вроде так)

                    А Wii с нунчаком лично делал. И с гироскопом от WiiMotionPlus. Когда коптеры, как сейчас модно говорить, ещё не стали мэйнстримом…


                1. DmitrySpb79 Автор
                  13.11.2019 14:05

                  нравились решения основанные на мелких независимых железках

                  С одной стороны хорошо, с другой, в одном проце и в одном адресном пространстве куда легче код писать, чем синхронизировать кучу разных девайсов по шине.


                  1. YoulDHead
                    13.11.2019 14:07

                    Ну это мое лично мнение, везде есть плюсы и минусы.


                    1. DmitrySpb79 Автор
                      13.11.2019 14:15

                      В автомобилях вроде так и делают — есть CAN-шина и разные девайсы с разным приоритетом. Не знаю, используется ли похожее где-то в коптерах. CAN-регуляторы вроде в продаже были.


                      1. YoulDHead
                        13.11.2019 14:50

                        Да не только в авто. Много где делают. У меня сейчас подобная система сбора данных в разработке. Куча датчиков разнокалиберных, соединенных физически на двух шинах, либо i2c это то что на плате, либо rs485. Очень удобно. Каждый девайс на шине логически законченное устройство, которое собирает и обрабатывает один тип данных. На выходе, стандартизированный пакет с результатами работы в шину, на входе, стандартизированная же команда управления.


                1. DmitrySpb79 Автор
                  13.11.2019 14:27

                  Pixhawk4 — все таки денег уже серьезных стоит

                  220$ не такая уж гигантская цена, да и функционал интересный. Другой вопрос, что только выехать в безлюдные поля где можно реализовать возможности контроллера (полеты по точкам и пр) это минимум 1.5 часа на машине из города или 2 часа общественным транспортом. Тут весь интерес пропадает… А просто на поляне в парке висеть уже не так интересно.

                  В мелких городах с этим проще наверно, хотя там и зарплаты ниже пропорционально плотности населения :)


                  1. YoulDHead
                    13.11.2019 14:59

                    Гы, ну кому как. 220 баксов на потестить, это как-то, ну его нафиг :) Я лучше двигатель очередной для самолета куплю. Особенно если учесть, что всякие полеты по точкам и в контроллерах за 20 баксов имеются.

                    Да и наигрался. Погонять FPV на квадре вся эта чепуха не нужна, а летать в Кронштадт, уже неинтересно. На системах попроще летали за 40 километров еще до того как это стало мейнстримом :)

                    Так я на полянке на даче летаю. Не свечусь. А было время летали промеж глиссад со стороны Шушар в полях :)


  1. rexen
    13.11.2019 13:08

    Автор в курсе, для чего используют PNG и JPG форматы? Зачем в статье растровые/фото вывалены в несжатом виде? В .jpg будет почти на порядок меньше весить, чем эти 5 МегаБайт .png.
    toster.ru/q/589922


    1. DmitrySpb79 Автор
      13.11.2019 14:16

      Спасибо. Вообще-то был уверен что движок сайта оптимизирует страницу сам.


      1. rexen
        13.11.2019 18:22

        Может сами форматы изображений и можно заставить движок оптимально сжимать, но вот выбирать формат изображения — пока увы.

        Я, собственно, и не заметил бы, но есть у меня такая хомячная привычка — утаскивать понравившиеся материалы в offline. В частности, пользуюсь плагином UnMHT для FireFox + плагином MhtUnPack для Total Commander. Первый позволяет сохранять выделенный кусок, а не всю веб-страницу. Второй — гулять внутри получившегося MHTML файла как в обычном архиве — удалять ненужные файлы и добавлять нужные. Последнюю возможность использую для хранения в этом же файле дополнительных материалов — архивы, прошивки, исходники, комментарии и т.п. image
        А по сабжу — в качестве антиоффтопа — добавлю ссылку на ещё один вариант применения малинки в публиковавшейся здесь статье: DIY тепловизор на Raspberry PI (правда, специфика поуже упоминавшихся).


  1. udvnl
    13.11.2019 13:13

    Хотя уже не уверен, найдется ли еще 5 более-менее необычных проектов, посмотрим.

    Как вариант использования: тестер пропускной способности локальной и Wi-Fi сети. На RPI можно установить jperf, работающий в качестве сервера, на ПК или смартфон, в качестве клиента.


  1. LAG_LAGbI4
    13.11.2019 16:42

    Разве в дронах не используются операционные системы реального времени? На пи можно установить систему реального времени?


    1. DmitrySpb79 Автор
      13.11.2019 17:41

      PX4 может работать как на RTOS (http://nuttx.org/), так и на обычной ОС.
      dev.px4.io/master/en/concept/architecture.html


  1. Tomasina
    15.11.2019 22:40

    Nano Pi в качестве терминальной станции мне очень нравится.
    Потянет? У кого-нибудь уже есть действующее решение?