-Как начать работу с 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 в работе.
Где можно использовать pyLCI?
- На личной/домашней Raspberry Pi для более простого подключения к ней и выполнения каких-то рутинных задач.
- При использовании Raspberry Pi для обучения (к примеру, значительно сократив бюджет на периферию и время на "подключение к Raspberry Pi" в начале урока)
- При разработке решений на Raspberry Pi (поднять упавший контроллер escape-room и перезапустить сервис, не доставая компьютер — бесценно)
- Для своего переносного компьютера на Pi (что толку от Pi, работающей 10 часов от батареи, если её нельзя подключить к WiFi)
- На своей рабочей 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 на Гитхабе, смогу помочь.
Полезные ссылки
- Проект на Hackaday.io — там я описывал процесс разработки, а теперь рассказываю о новых фичах
- Документация
- Github
Разработка проекта телефона на Pi Zero, используя pyLCI для изменения настроек системы без подключения по SSH
Комментарии (56)
shurik303
27.12.2016 13:22Уже где только можно спамлю подобным коментом, но всё же. Кто-то уже щупал Android things? Интересует порог вхождения, опыта программирования на Java нет, немного знаю си, в контексте микроконтроллеров. Хочу задействовать raspberry pi для управления освещением с использованием Google assistant (голосовое управление) — тупо ногодрыг, иногда ШИМ. И ещё какой сенсорный экран для малины купить, за качество готов заплатить.
Rumlin
27.12.2016 13:34+1How to Setup Your Raspberry Pi Touchscreen
http://www.makeuseof.com/tag/setup-raspberry-pi-touchscreen/
Constin
27.12.2016 13:41+2А вам не кажется, что проблема надуманна? Зачем нужны клавиатура или монитор, если на свежую Raspberry можно сразу залогиниться по ssh?
CRImier
27.12.2016 13:55Это только для Ethernet-подключения и когда знаешь IP. Если не знаешь — нужно как-то узнать до этого, в pyLCI это есть. Если Ethernet недоступен, но есть WiFi — можно подключиться к нему, в pyLCI это есть. WiFi с паролем? Пароль можно ввести из pyLCI, хоть кнопок и всего 5. (Кстати, надо будет ещё добавить возможность задать IP, должно быть тривиальным).
Далеко не всегда доступно всё необходимое, будь то монитор с клавиатурой, USB-UART или Ethernet-подключение. Сейчас я могу прийти в любое место с WiFi, нажать пару кнопок на своей портативной Pi и подключиться к ней через ноут, с телефона открыть какой-то вебсервис на ней или просто запустить какой-то скрипт через тот же интерфейс. Большинство решений для подключения к Pi такого не могут в принципе, дёшево — ещё меньше, удобно — ни одного. Так что проблема — не надумана и крайне актуальна.kontnoor
27.12.2016 14:13+1Мне кажется, что проще уже приобрести USB-UART, и дальше работать с ним.
Здесь же приходится покупать дополнительный шилд (дороже USB-UART в несколько раз), а также устанавливать ПО.CRImier
27.12.2016 14:20+1С USB-UART большой проигрыш по удобству. Железо стоит 5$ вместо 2$ (да, в несколько раз математически, но разница смешная), но пользователю/клиенту/жене не скажешь «Подключись USB-UART и введи такую-то команду» — вы же понимаете, сколько действий за этим стоит? А вот с pyLCI работать быстро и удобно — подключение к WiFi для пользователя в обычном случае займёт от 10 секунд до минуты.
artskep
27.12.2016 17:15+1Ну, честно говоря, usb-uart дает все-таки нормальный контроль над бордой, в отличие от…
Не, я не спорю, что JTAG дает еще больший контроль, а его закупать для того, чтобы подключиться к wifi никто, очевидно, не будет.
Но как-то странно позиционирование решения — с одной стороны это «малинка», т.е. игрушка для «гика», как не крути. А ваше решение — это типа «для домохозяек». Но если «для домохозяек», то нафига нужна такая железка, пусть даже и подключенная к интернету, если у нее только кнопки да экран?CRImier
27.12.2016 17:22+1Нормальный контроль над бордой можно получить и по SSH. Другое дело — до него добраться. С pyLCI к нему легко добраться самому, а проинструктировать кого-то лишь немного труднее.
Моё решение и для гиков тоже. Я сам гик, и в какой-то момент меня задолбало каждый раз подключать UART/сканировать сеть/дебажить окольными путями. Уверен, меня можно понять. И я знаю, что я не один такой, кто хочет просто взять и начать работать, а не что-то искать.
В итоге у меня получилось создать хорошее решение этой проблемы. Более того, оно ещё и служит как интерфейс для разных приложений, которые гики могут писать для решения своих насущных гиковских проблем — и проблем других людей, менее гиков. Так что позиционирование нормальное =)
kgbplus
27.12.2016 16:13IP прописывается прямо на карту в файл /etc/network/interfaces (у вас же linux на десктопе ;-), wifi конфигурится в принципе так же. А как установить ваш фреймворк, не подключаясь к rpi?
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 и записать в конфиг. Да немного сложнее, учитывая, но я на самом деле хорошо поработал над тем, чтобы зависимости были только там, где ну никак иначе — поэтому только одна библиотека зависимости.
Hellsy22
27.12.2016 22:44Не совсем понятна проблема с IP. Разве малинка по-умолчанию не использует DHCP? А если использует, то достаточно посмотреть логи DHCP-сервера, затем приколотить нужный IP к Мак-адресу или же вовсе назначить имя.
CRImier
28.12.2016 05:47Использует, но 1) не всегда доступны логи DHCP 2) не везде можно задать статический адрес 3) к WiFi таким способом не подключишься. Как только пришёл куда-то показать свой проект — всё, запускай nmap и надейся на лучшее =)
Hellsy22
29.12.2016 15:41Мы же про первичную настройку говорим.
А для демонстрации малинку проще через смартфон пустить.CRImier
31.12.2016 06:21В случае с Raspberry Pi первичная настройка чаще всего теряет актуальность, если ты переместил её в другое место с другим WiFi (тогда как с другими компьютерами, которые мы используем это признаётся неудобным и недопустимым). Вот эту проблему я и решаю =)
Через смартфон можно, но решение ограниченное (нужно и другие девайсы подрубать через смартфон, всё равно нужно знать IP и так далее).Hellsy22
31.12.2016 10:53Тоже верно. Хорошо, а почему бы не взять смартфон с OTG и не использовать коммуникацию по serial? Как бы решение дешевое и выглядит круто )
CRImier
01.01.2017 09:06Можно и тоже очень классная идея — просто три года назад, когда я разрабатывал это, у меня не было смартфона с OTG, но была необходимость сделать что-то с дисплеями =)
oxothuk_uae
27.12.2016 23:38на последней прошивке Volumio организовано подключение по WIFI
при первом включении на малинке создается открытая точка доступа (нужен USB WIFI dongle) — подключаешься к точке доступа, а дальше все что хочешь
oleg0xff
28.12.2016 00:21«Это только для Ethernet-подключения и когда знаешь IP. Если не знаешь — нужно как-то узнать до этого,» Посмотреть что записано в конфигурационном файле или записать туда какой хочется адрес
DarkTiger
27.12.2016 17:11На последнюю, ноябрьскую версию raspbian уже нельзя сразу залогиниться по SSH. Он по умолчанию отключен, не знаю с какого перепугу. Надо запускать raspi-config и включать там. Через монитор с HDMI.
Но да, SSH + RDP over SSH (в Bitwise SSH, например) решают массу проблем с подключением чего-либо к RaspberryCRImier
27.12.2016 17:14Очень странно, но, видимо, правда. =( Кстати, на офсайте сказали, что можно сделать touch /boot/ssh (на первом разделе с загрузчиком создать файл ssh) и будет работать.
Solexid
27.12.2016 13:56Телефон на RPI zero? Где можно почитать о том как вы его пилите.? И мне не показалось, там используется esp8266 в качестве wifi чипа?
CRImier
27.12.2016 14:01Всё верно, на Pi Zero и с ESP, подрубленным через SDIO =) Скоро буду по-настоящему пилить и документировать на Hackaday, пока что собрал железо для мотивации закончить один проект побыстрее — всё работает на удивление хорошо. Кстати, будет open-source настолько, насколько возможно — двухслойные платы в KiCad, компоненты дешёвые и доступные, из своего кода всё с открытыми лицензиями.
Solexid
27.12.2016 14:11Вот по поводу платы интересно, особенно платы клавиатуры, ибо мне как раз не помешает вариант платы на ~ 21 телефонную кнопку для очень похожего проекта который конечно еще в стадии разработки — (надеюсь картинка не отвалится) Это открыт таскменеджер, а работает всё это на ESP8266.
CRImier
27.12.2016 14:26Клёво выглядит! Что за предназначение, если не секрет? Какие библиотеки используешь с экраном и какой отзыв о них?
У меня клавиатура — матрица 5х6, 30 кнопок, считывается отдельным МК для разгрузки процессора Zero и экономии GPIO. Кнопки отдельным слоем, теоретически, можно на одной плате и кнопки и нижнюю плату развести, но не хотелось. Кстати, плата разводится очень просто — на одном слое только вертикальные дорожки, на другом только горизонтальные и всё вмещается без единой проблемы при разводке.Solexid
27.12.2016 21:40Что за предназначение, если не секрет? Какие библиотеки используешь с экраном и какой отзыв о них?
Предназначение — 4fun, ну и заодно делаю тоже что то вроде мобильного телефона, только специально без линуксов — так как на линуксе практически всё уже есть готовое, так что не покостылишь. А тут раздолье — Захотел отрисовать гуи? А ничего такого тут нет, придумывай свой класс прослойку и получай гуи! Многозадачность? Сам придумывай как будешь разделять время для процессов и выполнять их «параллельно» друг с другом. Никто за тебя это не придумает, и это прекрасно. В качестве дисплея используется ST7735 на 128x160 пикселей и библиотечка для него с поддержкой HSPI, так что отрисовка мгновенная. LINK
Ungla
27.12.2016 14:59Скажите, пожалуйста, а есть способ у этого экрана на RPi
1) Погасить подсветку
2) Помигать светодиодомCRImier
27.12.2016 15:071) Есть, o.enable_backlight() и o.disable_backlight(), более того, в pyLCI есть функция автоматического гашения подсветки через какое-то время неактивности, её нужно включить в конфиге. Это пока не задокументировано (не протестировано на всех экранах), но присутствует уже какое-то время.
2) Есть, o.set_rgb(red, green, blue)
Код драйвера для этого дисплея здесь, если что =)
Fox_exe
27.12.2016 18:08Я както аналогичное пилил, но на Bash'е, т.к. не требует вообще никаких зависимостей акромя тулзы для вывода текста на экран (Хотя и это можно реализовать через Bash, но будет шибко медленно).
CRImier
27.12.2016 18:13Было бы прикольно портировать хотя бы частично на C и использовать очень простую версию для роутеров =) Там, если интерфейсы повисли после изменения конфига, вообще иногда приходится сбрасывать настройки — очень неудобно.
DarkTiger
27.12.2016 18:46Как роутер девайс дорогой, проще готовый купить обычный роутер вдвое дешевле и не мучиться.
Имеет смысл его использовать как роутер с контент-фильтром, например, dansguardian, но тормоза страшные — я у себя сделал. Даже на RPi3 3 тормозитCRImier
27.12.2016 19:07+1Не, я имею в виду — использовать такой интерфейс на настоящих роутерах из роутерного железа =) Pi — это Pi, действительно несравнимо с даже домашним роутером. Я о том, что роутерам порой такого интерфейса не хватает =)
DarkTiger
27.12.2016 20:07На роутере вебморда обязательна, если нельзя подключиться по ней или по SSH, или по консоли — роутера, по сути, просто нет :)
DarkTiger
27.12.2016 21:57+1Понимаете, роутер — это штука массового применения. Если такой дисплей стоит, скажем, 1$ (ну не такой, конечно, а то, что в корпус роутера можно поставить) то в массовом производстве миллиона роутеров это будут затраты в лишний миллион долларов. Может, стоит лучше этот миллион программистам-кастомизаторам отдать, чтобы они веб-интерфейс допилили до ума?
Я уж не говорю про мелочи типа дополнительных точек отказа, разъемов, щлейфов, потребления энергии и прочего.
Массовое производство имеет очень много неочевидных тонкостей :)CRImier
28.12.2016 05:55Это я очень хорошо понимаю. Идея была не о массовом производстве, а о самодельном интерфейсе, который можно сделать для своих роутеров. Впрочем, Микротик встраивает такие интерфейсы в некоторые из своих девайсов и не жалуется — естественно, проблема в том, что они не open-source и нельзя на какой-нибудь свой домашний роутер поставить такое же =)
oleg0xff
03.01.2017 21:07>>Как роутер девайс дорогой
Orange же ж можно использовать. Я на них все собираю.
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
S0ulReaver
28.12.2016 05:18Суть понятна, а вот реальная область применения не очень. Все таки в домашних условиях Raspberry не требует регулярных замен IP, и прочего. Один раз подключил к Wi-Fi и забыл. Если вдруг захочется поменять — у каждого гика дома найдется патчкорд. Разве что использовать как элемент управления для запуска собственных скриптов, тут еще могу понять.
CRImier
28.12.2016 07:20То в домашних условиях — и то не всегда, по моему опыту. Иногда бывает так, что и патчкордом некуда подсоединить.
А если перестать ограничивать себя домашними условиями, то работать с Pi становится ещё интереснее =)Jmann
28.12.2016 09:44У меня бывало ни IPScanner, ни cmd arp -a не обнаруживал малину в домашней сети, приходилось подключать монитор и смотреть ifconfig.
Jmann
28.12.2016 09:14Автору зачет! Я вот тоже играюсь со своей малиной. Попробовал wiringpi: LCD, GPIO, 1Wire (DS18B20), UART. Даже медиаплеер на ней делал. Пол года назад сделал шилд с дисплеем, который вы применяете — Link Чем шилд хорош, экономит GPIO.
CRImier
28.12.2016 09:55Да, I2C и такие дисплеи — клёвое комбо: пины не занимает, проц не нагружает, для интерфейса хватает. Правда, первый шилд по ссылке почти полностью повторяет шилд за 5 долларов от китайцев, но второй — прикольный пример того, что можно сделать, если экспериментировать.
Единственный минус таких шилдов — на каждый символ для дисплея нужно обновить данные на экспандере 6 раз, что занимает время. Мне больше нравятся серьёзные дисплеи, которые всё ещё символьные, но сразу принимают символы через I2C и вывод данных просто мгновенный. Правда, вот шилдов на них не так много и они не такие дешёвые, да и не так распространены =(
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?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.
Jmann
31.12.2016 09:16Кстати выше я увидел семидюймовый дисплей с тачскрином. Хорошая вещь, я даже успел поиграться с ним. Как раз было под прошлый НГ. 7 inch RPi Display
И ссылка с подобным шилдом, что использует автор, правда самодельным (оффтоп, но там битая ссылка) Adafruit Clone
Тачскрин дороговат, но работает очень шустро. Преимущество еще в том, что подключается к DSI шине самого RPi.
Hellsy22
Было бы неплохо так же описать для чего используется RPI. Потому что из текста непонятно, почему нельзя было взять какую-нибудь NodeMCU или самый захудалый рутящийся смартфон с OTG и не заморачиваться с бесконечным потоком проблем от RPI.
CRImier
Телефон — это отдельная тема, пока что это проект выходного дня just for fun. Сделаю v1.0, если будет заинтересованность, буду развивать дальше =) Плюсы в использовании RPi тоже есть, если интересно, могу рассказать.
Должен признаться, бесконечного потока проблем не встречал. Впрочем, за 3 года работы я уже выработал кучу привычек, которые помогают избегать самые распространённые проблемы, да и вышеописанный софт неслабо помогает. Не поделитесь опытом?