Андрей Смирнов
Время чтения: ~13 мин.
Просмотров: 1

Планшет из Raspberry Pi своими руками

Продолжаю публиковать цикл статей об освоении Raspberry Pi и Arduino.

Сегодняшняя статья посвящена подключению сенсорного TFT-дисплея к Raspberry Pi.

Для “малинки” выпускается и продается великое множество различных сенсорных дисплеев, но каких-то особых различий между ними нет. В основе лежит проверенная временем линейка дисплеев от компании Waveshare Electronics, которую копируют и выпускают с использованием тех же комплектующих под своим лейблом другие китайские производители.

Свой дисплей я покупал в интернет-магазине GearBest вместе с самим микрокомпьютером.

Что нам понадобится

Для реализации описываемых в этой статье действий понадобится:

Подразумевается, что перед подключением дисплея Raspberry Pi уже готова к работе. Подробно о том, как установить OS Raspbian и провести первичную настройку я писал в статье “Raspberry Pi 3. Обзор и начало работы”.

TFT-дисплей: краткий обзор и подключение

TFT-дисплеи для Raspberry Pi можно поделить на 3 разновидности:

  • подключаемые через DSI-интерфейс (15-контактный разъем для плоского шлейфа)
  • подключаемые через HDMI-разъем
  • подключаемые через GPIO

Большинство дисплеев с маленькой диагональю (до 4 дюймов) подключаются через GPIO и представляют собой печатную плату, на которой зафиксирован сам TFT-модуль, распаян адаптер и GPIO-разъем для подключения.

Подобные платы в среде Raspberry Pi принято называть HAT: Hardware Attached on Top, что в переводе означает “аппаратура, подсоединенная сверху”.

Краткий обзор

Купленный мною модуль производства китайской фирмы Keyes (не путать с китайской же Keyestudio – это разные компании) представляет собой HAT-плату из красного текстолита.

raspitft-01.jpg

Сверху на нем смонтирован сенсорный дисплей диагональю 3,2″ с разрешением 320×240 пикселей – как на старых смартфонах середины нулевых годов, а также 3 физические кнопки.

Задействованный модуль дисплея имеет название INANBO-TP32D, но практической пользы знание этой подробности не несет.

На обратной стороне расположен 26-контактный GPIO-слот для подключения платы к Raspberry Pi. Тут же виден DSI-интерфейс с уже подключенным к нему шлейфом от TFT-модуля, какой-то контроллер и другие мелкие детали.

По сути, плата является адаптером, который должен подружить конкретный TFT-модуль с конкретными спецификациями, сенсорный интерфейс и хардварные кнопки с “малиной” через GPIO.

Подключается дисплей к “малинке” очень просто – совмещаем расположенный на HAT-плате разъем со штырьками GPIO начиная с самых крайних.

Мне пришлось вытащить свою Raspberry Pi 3 из корпуса – иначе плата не насаживалась на штырьки, упираясь своими “рожками” в боковые стенки. Вообще, эти рожки – голый текстолит, так что можно аккуратно спилить их лобзиком и тогда плата прекрасно поместится в корпус. Но смысла в таком действии я не увидел, и далее объясню почему. Также я пока не стал снимать защитную пленку – она несколько неряшливо смотрится на фото, но не мешает работать с дисплеем.

При подаче питания на Raspberry Pi дисплей засветится сплошным белым цветом, но изображения на нем не возникнет. Это нормально, так и должно быть. Белое свечение свидетельствует о том, что дисплей исправен, правильно подключен и на него поступает питание с GPIO. А вот для вывода на него изображения понадобится скачать и установить драйвера.

Установка драйверов

Загуглив “драйвера для дисплея Raspberry Pi”, я сперва наткнулся на какие-то страшные и громоздкие мануалы, в которых рекомендовалось скачать какие-то файлы из git-репозитория, потом куда-то их установить, затем вручную внести правки в файлы конфигурации и вручную же выставить правильное разрешение экрана путем правки других файлов.

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

Но на данный момент установка драйверов для TFT-дисплея к Raspberry Pi не более сложна, чем процесс физического подключения дисплея к микрокомпьютеру, и займет не более 5 минут времени.

Первым делом нужно скачать архив с драйвером (LCD-show-161112.tar.gz) с вот этой страницы.

Затем распакуем его при помощи консольной команды:

tar xvf LCD-show-161112.tar.gz

Перейдем в директорию с распакованным драйвером:

cd LCD-show/

И запустим скрипт, который сделает всю остальную работу:

./LCD32-show

Обратите внимание, что этот скрипт создан для работы с дисплеем диагональю 3,2″ – как у меня. Поэтому для работы с дисплеями других диагоналей потребуется запуск других скриптов: LCD28-show, LCD35-show, LCD4-show, LCD4-800×480-show, LCD43-show, LCD5-show, LCD7-800×480-show, LCD7-1024×600-show, LCD101-1024×600-show.

Все они идут в комплекте с вышеуказанным драйвером, а для какого дисплея предназначен какой скрипт – понятно из названий.

Если все сделано правильно, то после запуска скрипта Raspberry Pi начнет перезагружаться, а на дисплее появится изображение.

Для переключения обратно с сенсорного TFT-дисплея на HDMI-монитор нужно снова из консоли зайти в папку с драйвером:

cd LCD-show/

И активировать скрипт:

./LCD-hdmi

После этого “малина” опять перезагрузится, экран загорится белым цветом, а изображение будет выводиться на подключенный по HDMI монитор.

Также драйвер позволяет переворачивать изображение на 90, 180 и 270 градусов:

cd LCD-show/  ./LCD32-show 90

После перезагрузки изображение на TFT-дисплее будет повернуто на 90 градусов.

cd LCD-show/  ./LCD32-show 180
cd LCD-show/  ./LCD32-show 270

Вот эти команды поворачивают изображение на 180 и 270 градусов соответственно.

cd LCD-show/  ./LCD32-show 0

Возврат к ориентации экрана по умолчанию.

Сенсорный интерфейс отдельно настраивать не надо – он уже прописан в драйвере и активируется по умолчанию.

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

TFT-дисплей для Raspberry Pi 3 в работе

Подвох заключается в том, что графический интерфейс Raspbian не предназначен для работы в разрешении 320×240.

Вот так выглядит рабочий стол Raspbian PIXEL. Я заранее установил в настройках интерфейса самый маленький из возможных размер ярлыков в панели задач – иначе в столь низком разрешении они накладываются друг на друга.

Открываем меню. Более-менее терпимо, хотя конечно же это ненормально, когда меню занимает больше половины ширины экрана.

Откроем браузер Chromium. Всё! Ярлыки и шрифты в панели задач съехали и полезли друг на друга – уменьшение их размера до минимально возможного не помогло. Сам браузер к такому разрешению экрана абсолютно не адаптирован, и серфинг сайтов практически невозможен. То есть, он как бы есть, но необходимость постоянно скроллить веб-страницы не только по вертикали, но и в горизонтальном направлении делает это занятие бессмысленным.

А вот с консолью работать вполне можно. Тут низкое разрешение не помеха. А если выгрузиться из GUI вообще, то пользование консолью станет еще удобнее.

Заключение

Небольшие подключаемые TFT-дисплеи для Raspberry Pi отлично подходят для работы с консолью в полевых условиях и способны стать заменой обычному полноразмерному монитору.

Также они могут использоваться в DIY-устройствах на базе Raspberry Pi (умный дом, медиацентр, 3d-принтер, станок с ЧПУ) для вывода информации и управления через специально созданный с учетом низкого разрешения и малой диагонали графический интерфейс.

Но для работы в Raspbian PIXEL они непригодны по причине отсутствия адаптации к разрешениям ниже 1024×600 в этом GUI.

К качеству работы обозреваемого в этой статье дисплея у меня претензий нет. Но на данный момент мне просто некуда его применить, так что он отправляется отдыхать на полку. Планирую в дальнейшем задействовать его в устройстве “умного дома”.

Микрокомпьютер Raspberry Pi отличается не только широчайшим спектром применения, но и поддержкой устройств сторонних разработчиков, значительно расширяющих функциональность платы. Сегодня мы рассмотрим простейший способ научить работать Raspberry Pi с сенсорным экраном. А на выходе получим крошечный планшет с настольной операционной системой.

Какие есть экраны для Raspberry Pi

IMG_20160621_201532_1467056075-630x510.jpg

Есть как минимум три возможности подключить экран:

  1. Display-порт в виде зажимного разъёма на фронтальной поверхности.
  2. HDMI-разъём.
  3. Пины GPIO — разъёма универсального ввода-вывода.

Все они позволяют подключать к Raspberry Pi экраны с тачскрином.

Через дисплейный разъём работают некоторые стандартные LCD-панели (для разработчиков и встраиваемых устройств). Есть и оригинальный 7-дюймовый экран, устанавливаемый с обратной стороны Raspberry. К сожалению, этот вариант очень дорогой, зато для его запуска не требуется ничего. Просто скачать систему и вставить флешку с ней. В обычном Raspbian (Debian для Raspberry Pi) обеспечивается нативная поддержка этой железки.

IMG_20160621_201805_1467056090-630x507.jpg

Более доступным вариантом, особенно в странах СНГ, где доставка из Великобритании убивает всю прелесть «Малинки», стали экраны компании WaveShare, работающие через GPIO. Почему? Это позволяет реализовать поддержку экрана в любых вариантах NIX-систем для Raspberry Pi с любыми версиями платы (для Raspberry Pi 2 и 3 используется один дистрибутив, для первой ревизии — отдельный) и упростить настройку и отладку полученной системы. К тому же они всегда есть в наличии и стоят всего 23 доллара.

Как подключить

Нет ничего проще: нужно всё распаковать, а потом подключить экран к GPIO-разъёмам Raspberry Pi. Не потребуется даже считать пины — просто совместите платы так, чтобы экран был ровно над основной платой.

Как настроить

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

Второй способ подойдёт уже знакомым с Linux пользователям и сначала потребует установить в систему драйверы, а затем перевести работу компьютера на резистивный дисплей. С инструкцией можно ознакомиться на официальном сайте. Кстати, по этой же технологии можно подключить аналогичный экран стороннего производителя.

К сожалению, ни тот ни другой способ не заставит работать одновременно и экран, подключённый через GPIO, и HDMI-порт. Реализовать трансляцию на телевизор или монитор можно уже внутри системы, подключая монитор в качестве дополнительного экрана.

tormozedisonЭлектроника / Компьютерные самоделкиДобавлено 10 комментариев Карманный телевизор Casio или Citizen в девяностых считался почти элитным гаджетом — это вам не говорящие часы какие-нибудь. Теперь же, когда аналоговое телевидение доживает последние дни, он годится разве что для украшения интерьера — или…Если такой телевизор имеет НЧ-вход, к нему можно подключать самые разнообразные источники сигнала: игровые приставки, LD- и DVD-проигрыватели, видеомагнитофоны, караоке-системы, тюнеры DVB-T2, одноплатные компьютеры Raspberry Pi и Maximite, старые домашние компьютеры… Автор Instrictables под ником MisterM решил поместить Raspberry Pi прямо под крышку предварительно удалённого батарейного отсека гаджета, приобретённого всего за два британских фунта, и запитать оба устройства сразу одним USB-кабелем от пауэрбанка. Вот так это выглядит, когда крышка снята:Но сначала… Итак, на его столе — телевизор Casio EV-510 образца 1997 года. Прежде, чем приступать к переделке, он решил убедиться, что аппарат исправен и совместим с композитным видеосигналом одноплатника. Это оказалось чуть труднее, чем он думал, поскольку совмещённый аудио-видеовход древнего гаджета для компактности выполнен в виде обычного трёхконтактного 3,5мм джека. Где общий, где аудио, где видео? Возможных комбинаций — девять, и одна из них подошла. Отличное изображение, а звук он решил не подключать: без дополнительных аппаратных средств снять аудиосигнал с Pi Zero можно только программно, ШИМом с одной из линий GPIO.Далее. Что будет, если питание телевизора и компьютера запараллелить? Первому из них требуется 4,5 В в батарейный отсек либо 6 — в гнездо для внешнего блока питания. Второму — ровно 5 В. Но на практике от 5 В заработало и то и другое, и суммарный ток потребления (600-700 мА у телевизора и 180-500 у Raspberry Pi без периферийных устройств) не превысил нагрузочной способности имеющегося у него пауэрбанка.MisterM приступает к разборке телевизора, а вы, если будете повторять вслед за ним, помните, что белых светодиодов в девяностых ещё не было, а значит, для подсветки служит небольшая люминесцентная лампа. Преобразователь, от которого она питается — весьма «кусачий»!Что ж, корпус открыт, и вот сюрприз: вся электроника расположена в его передней половинке, а батарейный отсек — тоже там. Да, под той самой серебристой крышкой.Чтобы его удалить, оставив побольше места для Raspberry Pi, придётся аккуратно всё снять. Одно неосторожное движение — и телевизор испорчен. Особенно страшно было отключать шлейф, идущий к матрице, но как только это удалось, стало возможным отодвинуть платы и получить доступ к крепежу матрицы.И вот передняя панель полностью осовобождена от всего, что на ней было. А было на ней вот что:MisterM спилил дремелем батарейный отсек.Но «малинка» всё равно не поместилась. Мешали гребёнка GPIO и расширитель Button Shim. Пришлось удалить и то и другое, а ещё часть разъёма для камеры. Только тогда одноплатник поместился, но по бокам от него не осталось ни миллиметра.Подключить питание по Micro USB из-за габаритных ограничений тоже не удалось. Но там, где раньше была впаяна гребёнка GPIO, есть контактные площадки, подключённые не только к входам и выходам, но и к шинам питания и общего провода. Туда MisterM и подал питание.Настала пора снять видеосигнал. Можно было бы просто припаять к соответствующим контактным площадкам Raspberry Pi два провода, но MisterM сделал чуть сложнее. Он припаял к плате угловую гребёнку с четырьмя штырьками, расположенными по сторонам квадрата. Хватило бы и двух, но с четырьмя прочнее.К штырькам можно подключать соединители как на джамперах материнских плат, только одинарные и с проводами. А с противоположного конца — вилка для 3,5мм джека. Общая схема получилась такая:После того, как все соединители были подключены правильно, телевизор стал в режиме НЧ-входа показывать изображение с компьютера.Аппаратная часть собрана, можно готовить программное обеспечение. Сначала MisterM поставил на карту памяти Raspbian. Затем разрешил управление по SSH по локальной сети через такое меню:Preferences > Raspberry Pi Configuration > InterfacesПомните, он снял с платы Button Shim — маленький модуль с кнопками? Поэтому теперь управлять ей получится только так.Следующая операция необходима лишь если ТВ не мультисистемный. MisterM запустил редактирование конфигурационного файла такой командой:

sudo nano /boot/config.txt

Когда редактор загрузился, он раскомментировал строку:

sdtv_mode = 2

Отлично, на видеовыходе — сигнал системы ПАЛ!Осталось настроить ПО для выполнения той или иной практической задачи. Так, MisterM решил проигрывать на телевизоре потоковое видео:

omxplayer --live http://192.168.0.59:8081

где 192.168.0.59:8081 — URL и порт источника видеопотока (в данном случае — в составе домашней CCTV-системы в той же локальной сети).Только так оно будет работать лишь до ближайшей перезагрузки. Потом — опять подключаться и вводить команду. MisterM открыл редактором другой конфигурационный файл:

nano ~/.config/lxsession/LXDE-pi/autostart

И добавил такую строку:

@omxplayer --live http://192.168.0.59:8081

Сохраняться, сохраняться не забываем! Теперь при каждой загрузке проигрыватель будет запускаться сам. Он проверил. Получилось.Впереди самое трудное — собрать телевизор. MisterM взял кабель с USB-вилкой и припаял провода питания в правильной полярности к входам питария Raspberry Pi и телевизора. И изогнул проводники так, чтобы компьютер располагался приблизительно в том месте батарейного отсека, где ему предстоит находиться после сборки.Собирал телевизор он в обратном порядке, одновременно возвращая в прежние места все винтики и подключая шлейфы. Перед самым моментом соединения половинок корпуса он зафиксировал «малинку» в правильном положении клеевым пистолетом. Осторожно и равномерно сжимая половинки корпуса, мастер добился соединения их с щелчком и ввернул на свои месте оставшиеся четыре винтика. Включаем — «пашет»!Последний штрих — пауэрбанк, приклеенный к дну вместо наклонной подставки.Что ещё можно сделать с этой конструкцией? MisterM приобрёл ещё несколько подобных телевизоров (один даже трубочный, в нём источник высокого напряжения ещё страшнее, а кинескоп — отличный конденсатор, так что осторожность, осторожность и ещё раз осторожность!) и хочет попробовать поэкспериментировать и с ними.Например, так:- добавить одну кнопку и написать скрипт на Питоне для переключения нескольких потоков по кольцу.- взять Pi Zero без WiFi и проигрывать файлы с карты памяти.- подключить (снаружи, конечно) джойстик Adafruit Joy Bonnet, поставить RetroPie и играть до посинения. Только в этом случае лучше генерировать звук не ШИМом, а звуковой картой с интерфейсом USB, приклеив её где-нибудь снаружи.— подключить ИК-приёмник, поставить OSMC и получить мини-медиацентр с управлением от пульта.- и самое интересное: подключить к другой плате Raspberry Pi DVB-T2-приёмник TV HAT, чтобы по локалке отправлять видеопоток с него на эту конструкцию и использовать её в первоначальном качестве — как телевизор. Современный цифровой телевизор. Говорите, проще подключить обычную приставку DVB-T2 к телевизору непосредственно? Да, но одно дело таскать вместе с ним и приёмную антенну, другое — разместить её неподвижно в месте уверенного приёма, а с телевизором ходить по всей квартире. Да и потребляет приставка больше, чем Raspberry Pi, а в батарейный отсек не поместится, даже если её извлечь из корпуса.А может быть, вы придумаете ещё интереснее? Главное — задействовать классный гаджет девяностых, особенно, если тогда у вас его не было. Доставка новых самоделок на почту

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

*Заполняя форму вы соглашаетесь на обработку персональных данных

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

  • https://dmitrysnotes.ru/raspberry-pi-3-podklyuchenie-tft-displeya
  • https://lifehacker.ru/planshet-iz-raspberry-pi/
  • https://usamodelkina.ru/12130-korpus-i-displej-dlja-raspberry-pi-iz-karmannogo-televizora.html

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации