5 способов полезного использования Raspberry Pi. Часть третья +12



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

Во второй части были рассмотрены 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
    /#20879598

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


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


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


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


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



    P.s.


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

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

    • iwram
      /#20879748

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

    • al_sh
      /#20880340

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

      • gecube
        /#20880508

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


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

        • al_sh
          /#20880544

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

      • Polaris99
        /#20883114

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

        • al_sh
          /#20889574 / +1

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

          • gecube
            /#20889846

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

          • Polaris99
            /#20890020

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

            • al_sh
              /#20890830 / +1

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

    • Capacitor10n
      /#20880594

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

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

    • LeoGV
      /#20885016

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

  2. DmitrySpb79
    /#20880056

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

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

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

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

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

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

    • gecube
      /#20880292

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

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


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

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


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

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

      • DmitrySpb79
        /#20880584

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

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

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

      • DmitrySpb79
        /#20880824

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

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

        • nckma
          /#20880976

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

          • udvnl
            /#20881102

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

            • DmitrySpb79
              /#20881110

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

  3. Eddyson
    /#20880538

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

    • YouHim
      /#20881264

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

      • Eddyson
        /#20890688

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

  4. Fox_exe
    /#20880562 / +1

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

    • DmitrySpb79
      /#20880596

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

      • gecube
        /#20880708

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

        • Fox_exe
          /#20881990

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

        • markoni
          /#20884092

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

  5. YoulDHead
    /#20880774 / +1

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

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

    • DmitrySpb79
      /#20880804

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

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

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

      • YoulDHead
        /#20880846

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

        • DmitrySpb79
          /#20880978

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

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

          • YoulDHead
            /#20881030

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

            • DmitrySpb79
              /#20881068

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

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

              • YoulDHead
                /#20881510

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

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

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

                • DmitrySpb79
                  /#20881546 / +1

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

                  • gorbln
                    /#20881750

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

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

                • DmitrySpb79
                  /#20881560

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

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

                  • YoulDHead
                    /#20881570

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

                    • DmitrySpb79
                      /#20881604

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

                      • YoulDHead
                        /#20881814

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

                • DmitrySpb79
                  /#20881698

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

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

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

                  • YoulDHead
                    /#20881864

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

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

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

  6. rexen
    /#20881238

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

    • DmitrySpb79
      /#20881614

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

      • rexen
        /#20882870

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

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

  7. udvnl
    /#20881272

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

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

  8. LAG_LAGbI4
    /#20882424

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

  9. Tomasina
    /#20892160

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