Найти в Дзене
TehnoZet-2

LCD TFT 3,5", 480x320, сенсорный дисплей с интерфейсом SPI для подключения к Raspberry Pi.

Оглавление

Купил сенсорный дисплей для Raspberry Pi 3 с интерфейсом SPI на всеобщей распродаже AliExpress. Вообще я прикупил серию различных дисплеев и продолжаю их тестирования, так вышла статья и видео на канале о 3,5" HDMI LCD экране (ссылки в конце странички). Затем будет сравнение.

Типа сенсорный дисплей
Типа сенсорный дисплей

Обновлено: 19.02.2022

Но пока об этом ЖК-экране. Полное или можно сказать китайское название, для поиска: "LCD TFT-дисплей 3,5 дюйма, 480x320 сенсорный экран для подключения к Raspberry Pi" Покупал на AliExpress, тут. Вот так он поставлялся

Поставка
Поставка

Я заказал не только дисплей, но и корпус под него и под Raspberry Pi 3 (про этот микрокомпьютер на моем канале: "Микрокомпьютер Raspberry Pi 3 B+, общие сведенья."). Корпус именно под Raspberry Pi 3 так как остальные будут не совместимы относительно отверстий под входы/выходы.

Про корпус

Корпус вырезан из оргстекла, на нем упаковочная пленка которую нужно содрать, для того что бы легче было снимать можно воспользоваться феном и прогреть её, а еще лучше, размочить водой можно с мылом (не добавляйте другие чистящие средства), а потом прогреть феном Собирается он как конструктор, ничего сложного нет. И тем не мене одна деталь оказалось лишней, это поперечная планка

Лишняя деталь
Лишняя деталь

С ней невозможно насадить дисплей на гребенку GPIO.

Мешает планка
Мешает планка

Но я разобрался и с этой деталью, оказываются есть подобные дисплеи, но с "разрезанной" гребенкой GPIO и они совместимы полностью с данным корпусом.

"Разрезанная" гребенка альтернативного дисплея.
"Разрезанная" гребенка альтернативного дисплея.

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

Комплектная отвертка
Комплектная отвертка

Для тех кто не понял как собрать данный корпус есть даже инструкция на страничке продавца, вот она

Инструкция по сборке
Инструкция по сборке

Собранный корпус без дисплея

Собрание изделие

Про дисплей

Дисплей
Дисплей

Сам же дисплей подключается к Raspberry Pi через GPIO разъем. Просто вставляйте его методом бутерброда на Raspberry Pi.

Дисплей
Дисплей

Вот так

Характеристики

  • Тип ЖК-дисплея: TFT
  • Интерфейс: SPI
  • Диагональ: 3,5 дюйма
  • Разрешение: 480×320
  • Подсветка светодиодная
  • Рабочее напряжение: 3,3 В
  • Тип тачскрина: Резистивный
  • Контроллер тачскрина: XPT2046
  • Основная система: vision 3.18.9
  • Скорость SPI: 32 МГц

Как сказано выше и видно из снимков дисплей не имеет выхода HDMI соединяется он с микрокомпьютером посредством интерфейса SPI. Нужно помнить о том, что Raspberry Pi не может выдавать одновременно сигнал на HDMI-разъём и дисплей (на самом деле может)

Отрицательные стороны дисплея

  • Дисплей требует обязательной установки драйвера.
  • Скорости обновления по SPI не хватает для видео.
  • Интерфейс SPI дополнительно нагружает CPU.

Используйте SPI-дисплей для пользовательских интерфейсов, которые по большей части статичны.

Производитель

Производитель не обозначен, но как всегда все дорожки ведут к этим двум сайтам:

Spotpear Electronics Co., Ltd. выпускает всякие шилды для микрокомпьютеров и микроконтроллеров, особенно много всяких дисплеев, вот страничка похожего дисплея.

Waveshare Electronics выпускает абсолютно то же самое, вот страничка похожего дисплея и там же ссылка на Wiki и даже драйвер качать отсюда (см. ниже)

Более подробно, схемы

На плате расположены:

  • Сдвиговые регистры 74-й серии, превращающие параллельный интерфейс в SPI
  • контроллер сенсорного экрана XPT2046 и
  • 3.3В стабилизатор AMS1117
  • Разъем PBD-26 для подключение к 26 и 40-пиновому GPIO Rapberry PI

Плата схематично

Плата схематично
Плата схематично

Плата реальная для сравнения

Реальная плата
Реальная плата

Сдвиговые регистры схема

Сдвиговые регистры.
Сдвиговые регистры.

Сенсорная панель (тачскрин)

Тачскрин резистивный

В комплекте идет даже стилус

Комплектный стилус
Комплектный стилус

Подключение, запуск

Стартуем малинку!

Подключаем в сеть нашу малинку и экран загорается белым и всё! Ничего не работает, нужно настраивать!

Пока не работает
Пока не работает

Я подключился через putty, стандартно по SSH, порт 22.

putty
putty

Напомню, что для дистрибутива Raspbian у Raspberry Pi по умолчанию:

  • логин: pi
  • пароль: raspberry

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

Устанавливаем драйвера и программное обеспечение

Входим в терминал и вводим (естественно должно быть подключение к сети, оттуда будем качать драйвер дисплея)

Начнем как всегда с:

sudo apt update
sudo apt dist-upgrade

Далее скачаем драйвер экрана:

git clone https://github.com/waveshare/LCD-show.git

Перейдем в каталог:

cd LCD-show/

Сделаем файл исполняемым:

chmod +x LCD35-show

Запускаем файл:

./LCD35-show

После этого возникает вот такая простыня с сообщениями (на скрине она еще не вся):

Результат запуска LCD35-show
Результат запуска LCD35-show

Ждем и после: "LCD configure 0" putty у меня отключился, а сам Raspberry Pi ушел к перезагрузку и после этого уже начал работать экран, но сам сенсорный дисплей работал криво.

Если сам не перезапустился, перезагружаем

rebot

Примечания:

  • Выполнение apt-get upgrade приведет к неправильной работе ЖК-дисплея. В этом случае вам нужно отредактировать файл config.txt на SD-карте и удалить: dtoverlay = ads7846
  • При использовании с Raspbian-lite команда установки сенсорного драйвера должна быть: ./LCD35-show lite
  • Помните, что работает только один монитор (на самом деле это не так), если вы хотите использовать другой монитор HDMI, выполните команду:
cd LCD-show/
./LCD-HDMI

Команда переключит обратно на встроенный ЖК-дисплей:

./LCD35-show

Примечание в руководстве (выше)сказано, что работает только один дисплей. Но это не так у меня же работало два дисплея и встроенный сенсорный дисплей и HDMI, но изображение было одного разрешения, низкого 480x320 как у сенсорного дисплея.

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

Казалось бы самое простое повернуть экран на 180градусов, но не тут то было

cd LCD-show/
./LCD35-show 180

После применения этих строк микрокомпьютер опять уходит в перезагрузку и вместе с поворотом экрана поворачивается и сенсорная панель и все остаётся так же как было.

Возвращаем все как было

cd LCD-show/
./LCD35-show 0

А еще можно сделать углы поворота:

  • 90 градусов
cd LCD-show/
./LCD35-show 90
  • 270 градусов

cd LCD-show/
./LCD35-show 270

Настраиваем сенсорную панель

Около двух дней я потратил что бы разобраться с калибровкой данной сенсорной панели и кстати до конца так и не разобрался!

Данные калибровки хранятся в файле 99-calibration.conf, иногда он есть, иногда нет, но тогда его нужно создать

sudo mkdir /etc/X11/xorg.conf.d
sudo nano /etc/X11/xorg.conf.d/99-calibration.conf

Или просто открыть

sudo nano /etc/X11/xorg.conf.d/99-calibration.conf

Он может быть пустой или там могут быть значения, выглядит он так:

Section "InputClass"

Identifier "calibration"

MatchProduct "ADS7846 Touchscreen"

Option "Calibration" "2713 2699 28883 3000"

Option "SwapAxess" "0"

EndSection

Давайте подробно разберём все эти значения, что они значат для меня это огромный вопрос?

Section "InputClass" - Секция «Входной класс» - не знаю что это значит.

Identifier "calibration" - Идентификатор калибровка

MatchProduct - Название продукта, в данном случае "ADS7846 Touchscreen"

Option "Calibration" "3839 232 160 3823" - Опции калибровки, всегда четыре цифры

Option "SwapAxess" "0" - Опции "Поменять ось" "0" - Я иногда видел "1"

EndSection - конец секции

Еще видел следующие секции

Option "TransformationMatrix" "0 -1 1 1 0 0 0 0 1" - Матрица трансформации, что это значит? Я точно не знаю, но вот что я нашел, правда это для "CalibrationMatrix" и для HDMI дисплея, н очень похожи и видимо это переворот дисплея:

0 градусов

Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"

180 градусов

Option "CalibrationMatrix" на " 0-1  1 1 0 0 0 0 1"

270 градусов

Option "CalibrationMatrix" "-1 0 1 0 -1 1 0 0 1"

Программа xinput-calibrator

Калибровать можно и с помощью специальной программы xinput-calibrator которая в терминале выдает значение, самая главное строчка это Option "Calibration" "3952 220 217 3926"

Сначала ее устанавливаем:

sudo apt-get install xinput-calibrator
Установка: sudo apt-get install xinput-calibrator
Установка: sudo apt-get install xinput-calibrator

После установки на рабочем столе идем в меню малинки, параметры и там ищем эту программу "Calibrate Touchscreen"

Где искать программу  "Calibrate Touchscreen"
Где искать программу "Calibrate Touchscreen"

Запускаем и тыкаем на крестик

Калибровка
Калибровка

Надпись

-23

Touchsreen Calibration for 'ADS7846 Touchscreen'

Press tht point, use a stylus to increase precision

(To abort? press any keyor wait)

Что значит

Калибровка сенсорного экрана для 'ADS7846 Touchscreen'

Нажмите на точку, используйте стилус для повышения точности

(Отменить? Нажмите любую клавишу или подождите)

Программа выдает вот такие значения, самая главное строчка это Option "Calibration" "3983 231 156 3935"

Значение программы в терминале
Значение программы в терминале

Эти значения вы должны вручную внести в файл "99-calibration.conf"

sudo nano /etc/X11/xorg.conf.d/99-calibration.conf

Или целиком все данные:

Section "InputClass"

Identifier "calibration"

MatchProduct "ADS7846 Touchscreen"

Option "Calibration" "3983 231 156 3935"

Option "SwapAxess" "0"

EndSection

Но у меня это программа тупила и почему то выдавала не верные значения типа таких:

  • Option "Calibration" "1419 1435 3010 3010"
  • Option "Calibration" "2705 2685 3014 2955"
  • Option "Calibration" "2708 2682 2945 3024"
  • Option "Calibration" "2708 2693 3004 2982"

А иногда она вообще не хотела воспринимать нажатия стилуса.

Методом тыка я подобрал более мене рабочую конфигурацию:

  • Option "Calibration" "3000 200 200 3000"

После этого утилита xinput-calibrator стала вдруг показывать вменяемые результаты, типа таких:

  • Option "Calibration" "3839 232 160 3823"
  • Option "Calibration" "3952 220 217 3926"

Что это было? Я не знаю, но пока разбирался с данной проблемой нашел интересную статью на Mysku.ru: "Сенсорный экран 3.5". Запускаем OCTOPRINT на Orange PI" может кому поможет. Процитирую оттуда: "Пока разбирался со всеми этими настройками, нашел альтернативный способ калибровки тача. Все параметры можно указать при загрузке модуля ядра и не возиться с фалами /usr/share/X11/xorg.conf.d/"

modprobe ads7846_device model=7846 cs=0 gpio_pendown=1 keep_vref_on=1 swap_xy=1 pressure_max=255 x_plate_ohms=60 x_min=200 x_max=3900 y_min=200 y_max=3900 busnum=1

И в заключении о настройке калибровки, естественно для того чтобы параметры считались из файла "99-calibration.conf" нужно перезагрузится.

sudo reboot

Все описанное выше можно почитать на Wiki вот тут: https://www.waveshare.com/wiki/3.5inch_RPi_LCD_ (A)

Видео

Видео про этот дисплей, там же вы может оценить качество изображения: "LCD TFT 3,5", 480x320, сенсорный дисплей с интерфейсом SPI (на Яндекс.Дзен, на Youtube)"

Выводы

Он тупит, тупит жутко! Пользоваться им для отображение информации в реальном режиме времени нельзя, можете использовать если нужно отображать статичную информация графики, цифры и так далее. При своей работе он нагружает процессор и соответственно чем меньше его производительность тем больше будет тормозить дисплей. В комментариях мне написали следующую информацию (может кому будет полезна) диагональ выше 1.8 inch (разрешение: 240х160) по SPI использовать затруднительно - очень большие тормоза, так например, дисплей диагональю 2.8 inch по SPI очень сильно "тормозит", очистка подобного дисплея на Ардуине занимает около 4 секунды, что делает затруднительным его использование.

На сегодня все, мои маленькие красноглазые друзья любители пингвинов!

Подписывайтесь на мой канал TehnoZet-2, там много интересного о пингвинах и не только! Мы только развиваемся! Понравилась статья, хотите продолжения - ставьте лайк, жмите палец вверх.

Пользуйтесь рубрикатором по каналу, там все по разделам: "Страничка путеводитель по каналу TehnoZet-2"

Статьи

Видео

Тэги

#микрокомпьютер

#микроэвм

#умныефрукты

#микромалина

#микрокуб

#linix

#красноглазики

#моималенькиекрасноглазыедрузья

#пингвины