-Как начать работу с Raspberry Pi?
-Залить на SD-карту образ, подключить к питанию и пойти в магазин докупить всё, чего не хватает.


Raspberry Pi в стандартной поставке — не подарок. По крайней мере, если вы собрались подарить Pi кому-то на этот Новый Год, удостоверьтесь, что счастливому получателю будет доступен комплект клавиатура-монитор-мышь, или хотя бы USB-UART адаптер.


Что же делать, если хочется заняться своим проектом, но есть только плата и к ней проблематично подключить хоть что-либо? Я мучался с такого рода проблемами 3 года, пока не разработал pyLCI. О том, как начать использовать pyLCI и что оно даёт, я и расскажу сегодня.


О каких проблемах я говорю?

Начнём с подключения к Pi. Есть много способов, и у каждого свои недостатки.


USB-UART
    Требует наличия USB-UART (ещё и на 3.3V)
    Требует компьютера с совместимыми драйверами (FTDI, я смотрю на вас)
Монитор(composite/HDMI)+мышь+клавиатура
    Требует наличия всего этого добра (монитор ещё и с HDMI), да ещё и питания 220
    Компактные варианты либо дороги, либо неудобны
    Часто избыточно - подключать кучу всего, чтобы узнать IP?
    Монитор должен быть подключен при старте
Ethernet
    Требует роутер или DHCP-сервер на компе или Pi
    Нужно искать IP, что не всегда легко (они ещё и меняются!)
    Нужно Ethernet-подключение к сети ()
WiFi и wpa_supplicant.conf на boot разделе
    Плохо документирован
    Нужно искать IP (опять!)
    Трудно дебажить (ой, WiFi переопределился как wlan2 и не подрубается...)

Как сделать интерфейс для своего умного дома/медиацентра/робота?


GUI
    Требуется монитор или VNC
        Для VNC требуется отдельный компьютер
    Для совсем урезанного GUI нужно ещё и добавлять стандартные функции (Shutdown/Reboot/WiFi/IP/shell commands)
SSH+CLI
    Требуется отдельный компьютер
    Требуется сетевое подключение
    Хорошее знание команд крайне желательно
WEB
    Требуется отдельное устройство и сетевой доступ к нему
    Нужно добавлять стандартные функции либо дополнительно устанавливать Webmin/Ajenti/whatever

За три года, что я работаю с Raspberry Pi, я обучился Linux, программированию на Python и использованию всего этого для создания различных интересных устройств. Всё это время я натыкался на одни и те же проблемы, корень которых в том, что у Raspberry Pi нету простых встроенных методов взаимодействия с ОС — к примеру, встроенных монитора/клавиатуры. В результате подключить к WiFi какой-нибудь ноутбук с Linux просто, а для Raspberry Pi нужно использовать дополнительное железо, копаться с командами или таскать мониторы. Этого, как по мне, пока не избежать, но можно решить минимальным количеством усилий.


Чем больше я разрабатывал различных проектов, тем больше различных решений пробовал. За это время я использовал:


  • UART через Bluetooth (HC-05)
  • Просто UART
  • SSH
  • Полноразмерный монитор
  • Кнопки на GPIO
  • Аудио оповещения
  • Дисплей, показывающий IP

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


  • Интерфейс должен быть дешёвым. Покупать дополнительное железо всегда проблематично, поэтому чем меньше цена, тем легче оборудовать интерфейсом проект.
  • Интерфейс должен быть универсальным. Самое дешёвое железо — то, что уже куплено или можно откуда-то выпаять.
  • Интерфейс должен быть простым. Чем проще он для использования, тем большего можно достичь.



В итоге — в прошлом (2015) году я начал проект, использующий дешёвые дисплеи и кнопки и дающий мне возможность задействовать базовые функции Raspberry Pi. Казалось бы, идея очень простая — такие интерфейсы были довольно долгое время популярны в различных устройствах — но при поиске готовых решений под Linux был виден только LCDProc, который больше всё-таки status monitor. Большая часть людей, которые хотели использовать такой интерфейс, колхозили что-то на Питоне с готовыми либами для дисплеев и как-то работающим кодом навигации, порой даже не вынесенным в классы для повторного ипользования.


В апреле этого года, кучу проектов и множество ошибок спустя, я допилил проект до версии 1.0, назвал pyLCI и выложил на ГТ на всеобщее обозрение. С того момента многое изменилось — pyLCI использовался в каждом моём Raspberry Pi-проекте, добавлялись фичи, пропадали баги, а изредка я получал письма с вопросами о каких-то нюансах pyLCI. Теперь моя цель — рассказать об этом проекте всем, кому он может оказаться полезен.


Что из себя представляет pyLCI?


pyLCI — это простой интерфейс для настройки и управления функциями Raspberry Pi, использующий 2x16 экраны, кнопки и Python. Он простой, дешёвый и удобный в использовании.
Установить pyLCI легко — ставишь shield за 5$ на Pi, скачиваешь pyLCI на Pi и ставишь в автозагрузку прилагающимся скриптом.


Примеры использования


Под спойлерами — красивые гифки pyLCI в работе.


Получение IP

Выключение/ребут

Подключение к WiFi в McDonalds

Ввод пароля для WiFi

Запуск своего скрипта

Отмонтирование флешки

Просмотр USB устройств

Перезапуск упавшего сервиса

Своё приложение (Pomodoro таймер)

Где можно использовать pyLCI?


  1. На личной/домашней Raspberry Pi для более простого подключения к ней и выполнения каких-то рутинных задач.
  2. При использовании Raspberry Pi для обучения (к примеру, значительно сократив бюджет на периферию и время на "подключение к Raspberry Pi" в начале урока)
  3. При разработке решений на Raspberry Pi (поднять упавший контроллер escape-room и перезапустить сервис, не доставая компьютер — бесценно)
  4. Для своего переносного компьютера на Pi (что толку от Pi, работающей 10 часов от батареи, если её нельзя подключить к WiFi)
  5. На своей рабочей Pi как вспомогательный интерфейс (переключать музыку/менять громкость, пока смотришь что-то в интернете)

Какое железо нужно для интерфейса?


Простой ответ — берите такой шилд с Китая:



Стоит около 5 долларов, а работает безотказно.


Хочется чего-то качественного или же нужно срочно?

Тогда можно взять шилд от Adafruit:



Дороже, но качественнее выполнен и ждать доставки не придётся (шилд из Китая — почти полная копия этого).


Хочется собрать что-то из того, что есть на месте!

Дисплеи


Нужен простой дисплей, совместимый с командами HD44780, минимальный размер — 16x2, поддерживаются дисплеи разных размеров. Вот такого типа:



Дисплей можно подключить через GPIO (займёт 6 контактов на Raspberry Pi) или I2C. Такие дисплеи часто попадаются во всяких Starter Kits, доступны в каждом мало-мальски себя уважающем магазине/рынке электроники и стоят 2$ с бесплатной доставкой из Китая.


Кнопки/клавиатуры


Нужно как минимум 5 кнопок. Их можно подключать через GPIO, I2C-GPIO экспандеры или же использовать USB HID устройства — типа таких numpad-ов:



Разработка своих приложений


pyLCI — это UI-фреймворк, который предоставляет различные UI-элементы для ускорения разработки и даже позволяет полностью встроить своё приложение в pyLCI. Для сложных приложений, которые нужно запускать отдельно, есть отработанный подход — внедрить в него какой-либо RPC-интерфейс и написать pyLCI-приложение, предоставляющее UI и дёргающее RPC-функции.


Hello World:


menu_name = "Hello world"

from ui import Printer

#Callback global for pyLCI
callback = None
#Some globals for us
i = None
o = None

def init_app(input, output):
    global callback, i, o
    i = input; o = output
    callback = lambda: Printer("Hello world!", i, o)

Что для чего:


  • menu_name — Название приложения в главном меню
  • iустройство ввода, ловит нажатия кнопок и вызывает заданные на них callbacks.
  • oустройство вывода, оперирует дисплеем.
  • Printerфункция простого вывода данных на дисплей. Использует i и o, имеет разные полезные параметры и способы вызова.
  • init_app — функция приложения, вызываемая при старте pyLCI. Передаёт приложению i и o, в ней обычно создаются главные UI-элементы приложения.
  • callback — функция, вызываемая при активации приложения. Обычно активирует главное меню приложения, в нашем случае просто вызывает Printer с нашим сообщением.

Документация на различные доступные UI элементы есть на ReadTheDocs, к тому же много примеров использования можно увидеть в уже написанных приложениях.


Добавление фич


В последнее время я часто добавляю различные возможности и чиню баги. Документ с планами на будущее доступен здесь, но если вам сильно не хватает какой-либо функции или приложения, пишите мне на почту (crimier yandex ru) или в issues на Гитхабе, смогу помочь.


Полезные ссылки




Разработка проекта телефона на Pi Zero, используя pyLCI для изменения настроек системы без подключения по SSH

Поделиться с друзьями
-->

Комментарии (56)


  1. Hellsy22
    27.12.2016 11:36
    +1

    Было бы неплохо так же описать для чего используется RPI. Потому что из текста непонятно, почему нельзя было взять какую-нибудь NodeMCU или самый захудалый рутящийся смартфон с OTG и не заморачиваться с бесконечным потоком проблем от RPI.


    1. CRImier
      27.12.2016 11:46

      Телефон — это отдельная тема, пока что это проект выходного дня just for fun. Сделаю v1.0, если будет заинтересованность, буду развивать дальше =) Плюсы в использовании RPi тоже есть, если интересно, могу рассказать.

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


  1. shurik303
    27.12.2016 13:22

    Уже где только можно спамлю подобным коментом, но всё же. Кто-то уже щупал Android things? Интересует порог вхождения, опыта программирования на Java нет, немного знаю си, в контексте микроконтроллеров. Хочу задействовать raspberry pi для управления освещением с использованием Google assistant (голосовое управление) — тупо ногодрыг, иногда ШИМ. И ещё какой сенсорный экран для малины купить, за качество готов заплатить.


    1. Rumlin
      27.12.2016 13:34
      +1

      How to Setup Your Raspberry Pi Touchscreen
      http://www.makeuseof.com/tag/setup-raspberry-pi-touchscreen/
      image


    1. igrushkin
      27.12.2016 22:29

      Родной от Pi Foundation


      1. Jmann
        29.12.2016 17:30

        Хороший дисплей, поигрался с ним, работает как часы!


  1. Constin
    27.12.2016 13:41
    +2

    А вам не кажется, что проблема надуманна? Зачем нужны клавиатура или монитор, если на свежую Raspberry можно сразу залогиниться по ssh?


    1. CRImier
      27.12.2016 13:55

      Это только для Ethernet-подключения и когда знаешь IP. Если не знаешь — нужно как-то узнать до этого, в pyLCI это есть. Если Ethernet недоступен, но есть WiFi — можно подключиться к нему, в pyLCI это есть. WiFi с паролем? Пароль можно ввести из pyLCI, хоть кнопок и всего 5. (Кстати, надо будет ещё добавить возможность задать IP, должно быть тривиальным).

      Далеко не всегда доступно всё необходимое, будь то монитор с клавиатурой, USB-UART или Ethernet-подключение. Сейчас я могу прийти в любое место с WiFi, нажать пару кнопок на своей портативной Pi и подключиться к ней через ноут, с телефона открыть какой-то вебсервис на ней или просто запустить какой-то скрипт через тот же интерфейс. Большинство решений для подключения к Pi такого не могут в принципе, дёшево — ещё меньше, удобно — ни одного. Так что проблема — не надумана и крайне актуальна.


      1. kontnoor
        27.12.2016 14:13
        +1

        Мне кажется, что проще уже приобрести USB-UART, и дальше работать с ним.
        Здесь же приходится покупать дополнительный шилд (дороже USB-UART в несколько раз), а также устанавливать ПО.


        1. CRImier
          27.12.2016 14:20
          +1

          С USB-UART большой проигрыш по удобству. Железо стоит 5$ вместо 2$ (да, в несколько раз математически, но разница смешная), но пользователю/клиенту/жене не скажешь «Подключись USB-UART и введи такую-то команду» — вы же понимаете, сколько действий за этим стоит? А вот с pyLCI работать быстро и удобно — подключение к WiFi для пользователя в обычном случае займёт от 10 секунд до минуты.


          1. artskep
            27.12.2016 17:15
            +1

            Ну, честно говоря, usb-uart дает все-таки нормальный контроль над бордой, в отличие от…
            Не, я не спорю, что JTAG дает еще больший контроль, а его закупать для того, чтобы подключиться к wifi никто, очевидно, не будет.
            Но как-то странно позиционирование решения — с одной стороны это «малинка», т.е. игрушка для «гика», как не крути. А ваше решение — это типа «для домохозяек». Но если «для домохозяек», то нафига нужна такая железка, пусть даже и подключенная к интернету, если у нее только кнопки да экран?


            1. CRImier
              27.12.2016 17:22
              +1

              Нормальный контроль над бордой можно получить и по SSH. Другое дело — до него добраться. С pyLCI к нему легко добраться самому, а проинструктировать кого-то лишь немного труднее.

              Моё решение и для гиков тоже. Я сам гик, и в какой-то момент меня задолбало каждый раз подключать UART/сканировать сеть/дебажить окольными путями. Уверен, меня можно понять. И я знаю, что я не один такой, кто хочет просто взять и начать работать, а не что-то искать.
              В итоге у меня получилось создать хорошее решение этой проблемы. Более того, оно ещё и служит как интерфейс для разных приложений, которые гики могут писать для решения своих насущных гиковских проблем — и проблем других людей, менее гиков. Так что позиционирование нормальное =)


      1. kgbplus
        27.12.2016 16:13

        IP прописывается прямо на карту в файл /etc/network/interfaces (у вас же linux на десктопе ;-), wifi конфигурится в принципе так же. А как установить ваш фреймворк, не подключаясь к rpi?


        1. CRImier
          27.12.2016 17:10

          Можно прописать IP, но он будет доступен, только пока не подключитесь к другой сетке с другим адресом — к примеру, с 192.168.1.0 на 192.168.8.0. Можно и WiFi прописать так же — почти такие же ограничения. Потом приносите вашу Pi куда-то ещё, говорите «Ой» и монтируете SD-карту, чтобы прописать IP. Впрочем, вдумайтесь — есть успешный краудфандинг на тему софта, который считывает данные сети с флешки и записывает IP. Если посмотреть со стороны — ужасный костыль. Моё решение позволяет делать очень юзер-френдли вещи.

          Один раз подключиться — на самом деле не такая большая проблема, можно, и установить pyLCI при этом. Большая проблема тогда, когда нужно подключаться много раз в разных условиях — или хотя бы один раз. Тогда подход с прописыванием IP и WiFi и ломается.

          Я вот делаю образы Pi со своими настройками — устанавливаю на карточку Raspbian, запускаю Pi, устанавливаю нужный софт (в том числе и pyLCI), делаю настройки, вырубаю Pi и клонирую карточку. Проблем минимум =)

          Хотите установку, ни разу не подключаясь к Pi, но при этом карточку подключать нормально? Извращение, но можно. Монтируете карточку, кладёте в /opt/pylci скачанный pyLCI с GitHub, перекидываете systemd unit в /etc/systemd/system, в /etc/rc.local пишете systemctl daemon-reload, enable pylci.service, start pylci.service. С железом сложнее — для I2C шилда smbus-библиотека по умолчанию не установлена, но можно подключить экран и кнопки через GPIO и записать в конфиг. Да немного сложнее, учитывая, но я на самом деле хорошо поработал над тем, чтобы зависимости были только там, где ну никак иначе — поэтому только одна библиотека зависимости.


      1. Hellsy22
        27.12.2016 22:44

        Не совсем понятна проблема с IP. Разве малинка по-умолчанию не использует DHCP? А если использует, то достаточно посмотреть логи DHCP-сервера, затем приколотить нужный IP к Мак-адресу или же вовсе назначить имя.


        1. CRImier
          28.12.2016 05:47

          Использует, но 1) не всегда доступны логи DHCP 2) не везде можно задать статический адрес 3) к WiFi таким способом не подключишься. Как только пришёл куда-то показать свой проект — всё, запускай nmap и надейся на лучшее =)


          1. Hellsy22
            29.12.2016 15:41

            Мы же про первичную настройку говорим.
            А для демонстрации малинку проще через смартфон пустить.


            1. CRImier
              31.12.2016 06:21

              В случае с Raspberry Pi первичная настройка чаще всего теряет актуальность, если ты переместил её в другое место с другим WiFi (тогда как с другими компьютерами, которые мы используем это признаётся неудобным и недопустимым). Вот эту проблему я и решаю =)

              Через смартфон можно, но решение ограниченное (нужно и другие девайсы подрубать через смартфон, всё равно нужно знать IP и так далее).


              1. Hellsy22
                31.12.2016 10:53

                Тоже верно. Хорошо, а почему бы не взять смартфон с OTG и не использовать коммуникацию по serial? Как бы решение дешевое и выглядит круто )


                1. CRImier
                  01.01.2017 09:06

                  Можно и тоже очень классная идея — просто три года назад, когда я разрабатывал это, у меня не было смартфона с OTG, но была необходимость сделать что-то с дисплеями =)


      1. oxothuk_uae
        27.12.2016 23:38

        на последней прошивке Volumio организовано подключение по WIFI
        при первом включении на малинке создается открытая точка доступа (нужен USB WIFI dongle) — подключаешься к точке доступа, а дальше все что хочешь


      1. oleg0xff
        28.12.2016 00:21

        «Это только для Ethernet-подключения и когда знаешь IP. Если не знаешь — нужно как-то узнать до этого,» Посмотреть что записано в конфигурационном файле или записать туда какой хочется адрес


    1. DarkTiger
      27.12.2016 17:11

      На последнюю, ноябрьскую версию raspbian уже нельзя сразу залогиниться по SSH. Он по умолчанию отключен, не знаю с какого перепугу. Надо запускать raspi-config и включать там. Через монитор с HDMI.
      Но да, SSH + RDP over SSH (в Bitwise SSH, например) решают массу проблем с подключением чего-либо к Raspberry


      1. CRImier
        27.12.2016 17:14

        Очень странно, но, видимо, правда. =( Кстати, на офсайте сказали, что можно сделать touch /boot/ssh (на первом разделе с загрузчиком создать файл ssh) и будет работать.


  1. Solexid
    27.12.2016 13:56

    Телефон на RPI zero? Где можно почитать о том как вы его пилите.? И мне не показалось, там используется esp8266 в качестве wifi чипа?


    1. CRImier
      27.12.2016 14:01

      Всё верно, на Pi Zero и с ESP, подрубленным через SDIO =) Скоро буду по-настоящему пилить и документировать на Hackaday, пока что собрал железо для мотивации закончить один проект побыстрее — всё работает на удивление хорошо. Кстати, будет open-source настолько, насколько возможно — двухслойные платы в KiCad, компоненты дешёвые и доступные, из своего кода всё с открытыми лицензиями.


      1. Solexid
        27.12.2016 14:11

        Вот по поводу платы интересно, особенно платы клавиатуры, ибо мне как раз не помешает вариант платы на ~ 21 телефонную кнопку для очень похожего проекта который конечно еще в стадии разработки — espgui (надеюсь картинка не отвалится) Это открыт таскменеджер, а работает всё это на ESP8266.


        1. CRImier
          27.12.2016 14:26

          Клёво выглядит! Что за предназначение, если не секрет? Какие библиотеки используешь с экраном и какой отзыв о них?

          У меня клавиатура — матрица 5х6, 30 кнопок, считывается отдельным МК для разгрузки процессора Zero и экономии GPIO. Кнопки отдельным слоем, теоретически, можно на одной плате и кнопки и нижнюю плату развести, но не хотелось. Кстати, плата разводится очень просто — на одном слое только вертикальные дорожки, на другом только горизонтальные и всё вмещается без единой проблемы при разводке.


          1. Solexid
            27.12.2016 21:40

            Что за предназначение, если не секрет? Какие библиотеки используешь с экраном и какой отзыв о них?

            Предназначение — 4fun, ну и заодно делаю тоже что то вроде мобильного телефона, только специально без линуксов — так как на линуксе практически всё уже есть готовое, так что не покостылишь. А тут раздолье — Захотел отрисовать гуи? А ничего такого тут нет, придумывай свой класс прослойку и получай гуи! Многозадачность? Сам придумывай как будешь разделять время для процессов и выполнять их «параллельно» друг с другом. Никто за тебя это не придумает, и это прекрасно. В качестве дисплея используется ST7735 на 128x160 пикселей и библиотечка для него с поддержкой HSPI, так что отрисовка мгновенная. LINK


  1. Ungla
    27.12.2016 14:59

    Скажите, пожалуйста, а есть способ у этого экрана на RPi
    1) Погасить подсветку
    2) Помигать светодиодом


    1. CRImier
      27.12.2016 15:07

      1) Есть, o.enable_backlight() и o.disable_backlight(), более того, в pyLCI есть функция автоматического гашения подсветки через какое-то время неактивности, её нужно включить в конфиге. Это пока не задокументировано (не протестировано на всех экранах), но присутствует уже какое-то время.
      2) Есть, o.set_rgb(red, green, blue)

      Код драйвера для этого дисплея здесь, если что =)


      1. Ungla
        27.12.2016 15:13

        Благодарю


  1. Fox_exe
    27.12.2016 18:08

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


    1. CRImier
      27.12.2016 18:13

      Было бы прикольно портировать хотя бы частично на C и использовать очень простую версию для роутеров =) Там, если интерфейсы повисли после изменения конфига, вообще иногда приходится сбрасывать настройки — очень неудобно.


      1. DarkTiger
        27.12.2016 18:46

        Как роутер девайс дорогой, проще готовый купить обычный роутер вдвое дешевле и не мучиться.
        Имеет смысл его использовать как роутер с контент-фильтром, например, dansguardian, но тормоза страшные — я у себя сделал. Даже на RPi3 3 тормозит


        1. CRImier
          27.12.2016 19:07
          +1

          Не, я имею в виду — использовать такой интерфейс на настоящих роутерах из роутерного железа =) Pi — это Pi, действительно несравнимо с даже домашним роутером. Я о том, что роутерам порой такого интерфейса не хватает =)


          1. DarkTiger
            27.12.2016 20:07

            На роутере вебморда обязательна, если нельзя подключиться по ней или по SSH, или по консоли — роутера, по сути, просто нет :)


          1. DarkTiger
            27.12.2016 21:57
            +1

            Понимаете, роутер — это штука массового применения. Если такой дисплей стоит, скажем, 1$ (ну не такой, конечно, а то, что в корпус роутера можно поставить) то в массовом производстве миллиона роутеров это будут затраты в лишний миллион долларов. Может, стоит лучше этот миллион программистам-кастомизаторам отдать, чтобы они веб-интерфейс допилили до ума?
            Я уж не говорю про мелочи типа дополнительных точек отказа, разъемов, щлейфов, потребления энергии и прочего.
            Массовое производство имеет очень много неочевидных тонкостей :)


            1. CRImier
              28.12.2016 05:55

              Это я очень хорошо понимаю. Идея была не о массовом производстве, а о самодельном интерфейсе, который можно сделать для своих роутеров. Впрочем, Микротик встраивает такие интерфейсы в некоторые из своих девайсов и не жалуется — естественно, проблема в том, что они не open-source и нельзя на какой-нибудь свой домашний роутер поставить такое же =)


              1. Rumlin
                28.12.2016 08:55

                Можно на консоль роутера подключить bluetooth и работать с терминалом с телефона.


                1. DarkTiger
                  28.12.2016 22:45

                  А питание брать от USB? :) Да и не во всех роутерах UART или RS232 есть


                  1. CRImier
                    01.01.2017 00:38

                    Обычно в роутерах есть 3.3В на плате. А UART есть в абсолютном большинстве роутеров =) Другой вопрос — что через него можно удобно поменять…


                    1. Rumlin
                      02.01.2017 20:32

                      По крайней мере можно дистанционно экспериментировать и восстанавливать прошивку не снимая роутер со стены


        1. oleg0xff
          03.01.2017 21:07

          >>Как роутер девайс дорогой

          Orange же ж можно использовать. Я на них все собираю.


  1. DarkTiger
    27.12.2016 18:58

    Данное решение полезно для первичной диагностики, если девайс автономен — например, работает в качестве контроллера полива на даче, жене же не скажешь «ну зайди ты по SSH на девайс, посмотри dmesg, что там случилось» — кинется чем-нибудь тяжелым :)
    У меня для подобных целей используется готовый I2C графический дисплей, но на вкус и цвет, как говорится…
    https://ru.aliexpress.com/item/3-5-inch-26P-SPI-TFT-LCD-Display-Screen-with-Touch-Panel-320-480-for-RPi1/32746328272.html


  1. S0ulReaver
    28.12.2016 05:18

    Суть понятна, а вот реальная область применения не очень. Все таки в домашних условиях Raspberry не требует регулярных замен IP, и прочего. Один раз подключил к Wi-Fi и забыл. Если вдруг захочется поменять — у каждого гика дома найдется патчкорд. Разве что использовать как элемент управления для запуска собственных скриптов, тут еще могу понять.


    1. CRImier
      28.12.2016 07:20

      То в домашних условиях — и то не всегда, по моему опыту. Иногда бывает так, что и патчкордом некуда подсоединить.

      А если перестать ограничивать себя домашними условиями, то работать с Pi становится ещё интереснее =)


      1. Jmann
        28.12.2016 09:44

        У меня бывало ни IPScanner, ни cmd arp -a не обнаруживал малину в домашней сети, приходилось подключать монитор и смотреть ifconfig.


        1. CRImier
          28.12.2016 10:24

          Кстати, если будешь пробовать pyLCI со своим шилдом и будут какие-то проблемы — пиши, помогу =)


          1. Jmann
            28.12.2016 13:16

            Хорошо. Пока правда в планах нет, но думаю в дальнейшем пригодиться. Пока малину прикрутил в качестве медиацентра =)


  1. Jmann
    28.12.2016 09:14

    Автору зачет! Я вот тоже играюсь со своей малиной. Попробовал wiringpi: LCD, GPIO, 1Wire (DS18B20), UART. Даже медиаплеер на ней делал. Пол года назад сделал шилд с дисплеем, который вы применяете — Link Чем шилд хорош, экономит GPIO.


    1. CRImier
      28.12.2016 09:55

      Да, I2C и такие дисплеи — клёвое комбо: пины не занимает, проц не нагружает, для интерфейса хватает. Правда, первый шилд по ссылке почти полностью повторяет шилд за 5 долларов от китайцев, но второй — прикольный пример того, что можно сделать, если экспериментировать.

      Единственный минус таких шилдов — на каждый символ для дисплея нужно обновить данные на экспандере 6 раз, что занимает время. Мне больше нравятся серьёзные дисплеи, которые всё ещё символьные, но сразу принимают символы через I2C и вывод данных просто мгновенный. Правда, вот шилдов на них не так много и они не такие дешёвые, да и не так распространены =(


  1. zugzug
    29.12.2016 12:23

    > Простой ответ — берите такой шилд с Китая

    Подскажите, пожалуйста, какую конкретно модель или у какого поставщика можно взять такой шилд?
    Такой сгодится: https://ru.aliexpress.com/item/Free-Shipping-LCD-Keypad-Shield-LCD1602-LCD-1602-Module-Display-for-arduino-ATMEGA328-ATMEGA2560-raspberry-pi/32458411471.html?spm=2114.03010208.3.1.m6Od0Q&ws_ab_test=searchweb0_0,searchweb201602_5_10065_10068_10000009_10084_10083_10080_10082_10081_10060_10061_10062_10056_10055_10037_10054_10059_10032_10099_10078_10079_10077_427_10093_426_10103_10073_10102_10096_10052_10107_10050_10106_10051,searchweb201603_1,afswitch_5&btsid=60fa8fd4-1598-450d-bad1-4af26bd81303?


    1. CRImier
      29.12.2016 12:27

      К сожалению, нет. Эти шилды хоть и очень похожи визуально, но предназначены для Arduino — pinout, как видно, преназначен для Arduino, плюс все пять кнопок повешены на один аналоговый канал через резисторный делитель, что делает считывание кнопок с такого нетривиальной задачей. Я нашёл такой шилд на Али: https://ru.aliexpress.com/item/I2C-IIC-16x2-RGB-LCD-Display-Shield-1602-Blue-Backlight-For-Raspberry-Pi-B-B/32772412372.html, можно видеть, что у него есть соответствующие надписи и коннектор для Raspberry Pi.


      1. zugzug
        29.12.2016 14:30

        Благодарю!


  1. Jmann
    31.12.2016 09:16

    Кстати выше я увидел семидюймовый дисплей с тачскрином. Хорошая вещь, я даже успел поиграться с ним. Как раз было под прошлый НГ. 7 inch RPi Display
    И ссылка с подобным шилдом, что использует автор, правда самодельным (оффтоп, но там битая ссылка) Adafruit Clone
    Тачскрин дороговат, но работает очень шустро. Преимущество еще в том, что подключается к DSI шине самого RPi.