Цифровая клавиатура с сенсорным экраном

Опубликовано От sheva

Обычно на каждую клавишу такой клавиатуры назначается выполнение своей задачи. Одно нажатие клавиши запускает макрос, ускоряя рабочий процесс.
Это очень удобно, если нужно переключаться между задачами.
Инструменты и материалы:
-Raspberry Pi Pico;
-ЖК-модуль с сенсорной панелью;
-Паяльник;
-Устройства для зачистки проводов;
-3D-принтер;
-Провода;

Шаг первый: схема
Есть несколько вариантов монтажа. Можно использовать макетную плату, или можно заказать печатную плату специально для подключения ILI9488 + touch к Pi Pico. Конечно, практичней изготовить плату.
Экран работает при напряжении 3,3 В.
Подключение следующее:
Pi Pico -> TFT:
3,3 В -> VCC и LED
GND -> GND
GP20 -> CS
GP21 -> RESET
GP22 -> DC / RS
GP3 -> SDI (MOSI) и T_DIN
GP2 -> SCK и T_CLK
GP14 -> T_CS
GP0 -> T_DO
GP15 -> T_IRQ
SDO (MISO) не используется для экрана TFT, поэтому остается один неподключенный контакт, на модуле TFT.

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

Шаг третий: установка библиотек Arduino IDE
В этой сборке используется ядро arduino-pico.
Переходим в Arduino -> Preferences и кликаем значок Board Managers. Копируем и вставляем следующую ссылку :
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
Два раза подтверждаем (ОК). Переходим в Tools -> Board : -> Board Manager и находим «pico». Установите последнюю версию «Raspberry Pi Pico / RP2040» и нажимаем «Close».
На момент написания этого руководства поддержка Pi Pico в TFT_eSPI недоступна через диспетчер библиотек. Но установка очень проста.
Переходим по адресу https://github.com/Bodmer/TFT_eSPI , нажимаем «Code» и » Download .ZIP «. В Arduino IDE переходим в Sketch -> Include Library -> Add .ZIP library. Находим только что загруженную библиотеку и нажимаем «Choose».

Шаг четвертый: загрузка эскиза
Эскиз простой макроклавиатуры можно скачать здесь.
Чтобы этот скетч работал с Pi Pico, нужно настроить библиотеку TFT_eSPI. Для этого открываем в текстовом редакторе файл:/Documents/Arduino/libraries/TFT_eSPI/User_Setup.h
Выделяем текст и удаляем его. Копируем приведенный ниже код и вставляем его в файл User_Setup.h:

 Показать / Скрыть текст// Stripped down User_Setup.h version for the Pico-Matrix-Touch-Keyboard //<br>
#define ILI9488_DRIVER // WARNING: Do not connect ILI9488 display SDO to MISO if other devices share the SPI bus (TFT SDO does NOT tristate when CS is high)

#define TFT_MISO 0
#define TFT_MOSI 3
#define TFT_SCLK 2
#define TFT_CS 20 // Chip select control pin
#define TFT_DC 22 // Data Command control pin
#define TFT_RST 21 // Reset pin (could connect to Arduino RESET pin)

#define TOUCH_CS 14 // Chip select pin (T_CS) of touch screen

#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
#define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:-.
#define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
//#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT
#define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts

// Comment out the #define below to stop the SPIFFS filing system and smooth font code being loaded
// this will save ~20kbytes of FLASH
#define SMOOTH_FONT#define SPI_FREQUENCY 70000000

// Optional reduced SPI frequency for reading TFT
#define SPI_READ_FREQUENCY 20000000

// The XPT2046 requires a lower SPI clock rate of 2.5MHz so we define that here:
#define SPI_TOUCH_FREQUENCY 2500000
Сохраняем файл.

Шаг пятый: прошивка Pico
Открыв «Pico-Martix-Touch-Keyboard.ino», переходим в «Tools» -> «Boards» и выбираем «Raspberry Pi Pico».
Здесь можно оставить все настройки по умолчанию, кроме «Flash Size». Эскизу клавиатуры нужен небольшой объем хранилища файловой системы для хранения данных калибровки, которые создаются при первом запуске. Итак, в разделе «Flash Size» выбираем «2 МБ».
Перед прошивкой нужно отредактировать код и установить, необходимы функции, которые будут запускаться при нажатии клавиш.
Значения устанавливаются в функции buttonpress (). Ниже мастер приводит несколько примеров.
Чтобы отправить назначит ALT, CTRL, Shift и т. д.:
Keyboard.press();
Для назначения букв или цифр:
Keyboard.print ();
Для Enter, escape, F1 и т. д.:
Keyboard.write ();
Чтобы загрузить эскиз клавиатуры, просто нужно кликнуть » Upload «. Устройство должно включится и откроется экран калибровки. Калибровка делается только при первом запуске скетча, но позже всегда можно ее повторить, установив для » #define REPEAT_CAL false » значение true.
После завершения калибровки ваш компьютер должен распознать, что к нему подключена новая USB-клавиатура.

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

Источник (Source)

Источник: https://usamodelkina.ru/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *