Arduino Leonardo Mini. Собираем программируемую сенсорную клавиатуру SrachMaster

  • Цена: 10,99(8,19 на момент заказа)

Позабыты хлопоты,
Остановлен бег,
Вкалывают роботы,
Счастлив человек
Как известно, человеку сложно тягаться с роботом.
Впрочем, несложная программируемая сенсорная клавиатура SrachMaster позволит Вам успешно сдерживать натиск превосходящих информационных сил.
Теперь и с USB-C!

Плат Arduino на рынке сейчас есть много и разных:

От пришиваемой на одежду Lilypad до монструозной Mega 2560, на микроконтроллерах от AVR ATMega8 до ARM Cortex-M3 SAM3U4E, ESP8266 и ATSAMD21E18.
Несколько выделяются из этого ряда Arduino Leonardo.
Они не могут похвастаться необъятной памятью или количеством линий расширения, но отличительная особенность их микроконтроллера ATMega32U4 — аппаратная реализация USB-HID, позволяющая без лишних сложностей изобретать велосипеды строить клавиатуры, мышки и что Вам там ещё из устройств ввода придёт в голову.
Итак, плата пришла в запаянном антистатическом пакете:

Внутри плата и пара контактных гребёнок с шагом 2,54 мм.
Размер платы 37х18 мм без учёта выступающего разъёма USB-C.
На верхней стороне текстолита распаяны микроконтроллер с базовой обвязкой, стабилизатор на 5В и кварцевый резонатор на 16 МГц.

На нижней стороне текстолита деталей нет:

Принципиальная схема платы:

Функции выводов:

Ну а теперь переходим к практической части.
В своих запасах я нашёл вот такой сенсорный дисплей от панели управления МФУ:

Непосредственно дисплейная часть практической пользы уже не представляет — разрешение матрицы хоть и 640х480, но это CSTN с адовым временем отклика, под который найти готовую плату управления практически нереально, а делать самому на основе ПЛИС бессмысленно. Поэтому ограничимся тем, что отклеим от неё тачскрин:

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

При нажатии они превращаются в набор из четырех резисторов, абсолютные величины которых зависят от расположения точки нажатия:

Обработку нажатий можно выполнять любым микроконтроллером, в котором есть входной АЦП.
Схема программируемой клавиатуры несложна и состоит буквально из 3-4 деталей:

Кроме Arduino и тачскрина нам понадобятся пьезодинамик-пищалка для озвучивания нажатий и желательно разъём для подключения тачскрина — его шлейф обычно плохо переносит пайку. Разъём можно добыть, например, на плате от струйного принтера:

Выпаиваем его из платы:

И припаиваем к Arduino:

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

Прототип программируемой сенсорной клавиатуры в сборе:

Осталось прошить.
Скетч для Arduino и дополнительные библиотеки
// Резистивная сенсорная панель в качестве USB Macro Keypad
// программируемая клавиатура для горячих клавиш
// Свободно программируемая USB-клавиатура для макросов
// Arduino Leonardo Micro + сенсорная панель
// Поддержка английского и русского языков

// Страница проекта:  http://esp8266-server.de/keypadRU.html

// Автор: Михаил Дворкин

// формат команд: "§"- Начало команды, Команда, Партаметр, пробел -Конец команды  (Пример "слово1§t1000 цслово2" эта команда означает жди 1 секунду )
// §p - Press         "§p0x80 "  нажать Strg
// §r - Release       "§r0x80 "  отпустить Strg
// §a - Release All   "§a "      отпустить все нажатые клавиши
// §w - Write         "§w0xB0 "  напечатать ввод (enter)
// §t - Timer         "§t3000  " 3 секунды ждать
// §l - Sprache       "§l0  "   переключит на 0-английский 1-русский
// Скан-коды смотрите здесь
// https://github.com/MichaelDworkin/KeyboardMultiLanguage/blob/master/src/KeyboardMultiLanguage.h

#include <stdint.h>
#include <EEPROM.h>
#include "TouchScreen.h"
#include <KeyboardMultiLanguage.h>
#include "KeyboardMappingRU.h"  // Таблица русской раскладки



// ------------------- Распиновка тачскрина ----------------
#define X1 A1
#define X2 A3
#define Y1 A0
#define Y2 A2

/*
  #define Y1 A1
  #define Y2 A3
  #define X1 A0
  #define X2 A2
*/

#define PIEZO_PIN 3  // номер ножки с Пьезо

int kalibriere = 0;
boolean losgelassen = 1;
int KalibrWert[4];

// ----------------- Здесь задаётся количество столбцов и строк  -----------------

#define Reihen 3  // строк
#define Spalten 4 // столбцов

// ----------------- Команды и тексты, присвоенны соответствующей ячейке -------------------
// ----------------- Двумерный массив соответствует таблице клавиш ----------------------

// открытие скайпа, поиск абонента, видеовызов
//#define skype "§p0x87 r§r0x87 §t100 \"C:\\Program Files (x86)\\Microsoft\\Skype for Desktop\\Skype.exe\"\n§t3000 §p0x80 §p0x81 s§t500 §a §t500 echo§t3000 §w0xD9 \n§p0x80 §p0x81 k§a "
// открытие ардуино, открытие пследнего проекта, закрытие пустого окна
//#define arduino "§p0x87 r§r0x87 §t100 \"C:\\arduino-1.8.8\\arduino.exe\"\n§t12000 §w0x82 §t100 §w0xD9 §t100 §w0xD9 §t100 §w0xD9 §t100 §w0xD7 §t100 §w0xB0 §t500 §p0x82 §t100 §w0xb3 §t100 §r0x82 §p0x82 §p0xc5 §a "

const String data[Reihen][Spalten] =
{
  { "String1\n", "String2\n", "String3\n", "String4\n"},
  { "String5\n", "String6\n", "String7\n", "String8\n" },
  { "String9\n", "String10\n", "String11\n", "String12\n"},
};
/*
  const String data[Reihen][Spalten]
  {
  { "1", "2", "3", "A" },
  { "4", "5", "6", "B" },
  { "7", "8", "9", "C"},
  };
*/


// Для лучшей точности нам нужно знать сопротивление тачскрина
// между электродами Х1 и Х2. Замерьте его мультиметром.
// У использованного - примерно 700 Ом.

TouchScreen ts = TouchScreen(X1, Y1, X2, Y2, 700);


// ---------------- преобразование HEX String в Integer -----------------------

unsigned int hexToDec(String hexString)
{
  unsigned int decValue = 0;
  int nextInt;
  hexString.toUpperCase();
  for (int i = 0; i < hexString.length(); i++)
  {
    nextInt = int(hexString.charAt(i));
    if (nextInt >= 48 && nextInt <= 57) nextInt = map(nextInt, 48, 57, 0, 9);
    if (nextInt >= 65 && nextInt <= 70) nextInt = map(nextInt, 65, 70, 10, 15);
    if (nextInt >= 97 && nextInt <= 102) nextInt = map(nextInt, 97, 102, 10, 15);
    nextInt = constrain(nextInt, 0, 15);
    decValue = (decValue * 16) + nextInt;
  }
  return decValue;
}

// ---------------- Setup ------------------------------------------

void setup(void)
{
  Serial.begin(115200);
  pinMode(PIEZO_PIN, OUTPUT);
  Keyboard.language(Russian); // выбор языка /раскладки
  delay(1000);
  EEPROM.get( 0 , KalibrWert ); // считываем из памяти значения калибровки сенсорной панельи
  if (KalibrWert[0] >= KalibrWert[1]  || KalibrWert[2] >= KalibrWert[3]) // если дурацкие значения
  {
    KalibrWert[0] = 0;                                                   // то загружаем значения по умолчанию
    KalibrWert[1] = 1000;
    KalibrWert[2] = 0;
    KalibrWert[3] = 1000;
  }
}

// ---------- Вывод текста через HID-клавиатуру и выполнение команд -----

void KeyOutput(const String str)
{
  int pos = str.indexOf('§');   // находим начало первой команды
  while (pos >= 0)
  {
    if (pos > 0) Keyboard.print(str.substring(0, pos - 1)); // выводим текст до команды и между командами
    str.remove(0, pos + 1);
    char kode = str.charAt(0); // выделяем команды
    pos = str.indexOf(' ');
    String Daten = str.substring(1, pos); // выделяем параметр
    byte z;
    switch (kode)             // команды
    {
      case 'w':
        z = hexToDec(Daten);
        Keyboard.write(z);
        break;
      case 't':
        delay(Daten.toInt());
        break;
      case 'p':
        z = hexToDec(Daten);
        Keyboard.press(z);
        break;
      case 'r':
        z = hexToDec(Daten);
        Keyboard.release(z);
        break;
      case 'a':
        Keyboard.releaseAll();
        break;
      case 'l':
        if (Daten == "1") Keyboard.language(Russian);
        else Keyboard.language();
        break;
    }
    str.remove(0, pos + 1);
    pos = str.indexOf('§'); // находим начало следующей команды
  }
  if (str.length() > 0)Keyboard.print(str); // выводим текст после команды
}

void loop(void) {
  TSPoint p = ts.getPoint(); // a point object holds x y and z coordinates

  // we have some minimum pressure we consider 'valid'
  if (p.z < ts.pressureThreshhold) losgelassen = 1; // запоминаем отпускание сенсора
  if (p.z > ts.pressureThreshhold && losgelassen)   // если нажато а раньше было отпущено то
  {
    int x = map( p.x, KalibrWert[0], KalibrWert[1], 0, Spalten);  // вычесляем столбец
    int y = map( p.y, KalibrWert[2], KalibrWert[3], 0, Reihen);   // вычесляем строку
    if (y < Reihen && x < Spalten)
    {
      digitalWrite(PIEZO_PIN, !digitalRead(PIEZO_PIN));  // издаём щелчок
      if (!kalibriere) KeyOutput(data[y][x]);            // если не в модусе отладки то печатаем данные
    }
    else Serial.print(F("номер строки или столбца вне массива данных!"));

    losgelassen = 0;   // сенсор до сих пор нажат
    delay(300);

    switch (kalibriere)             // контроль выбора калибровки и отладки
    {
      case 1:
        kalibriere = 2;
        KalibrWert[0] = p.x; // x min
        KalibrWert[2] = p.y; // y min
        delay(1000);
        Serial.println(F("А теперь в нижнем правом углу\n"));
        break;
      case 2:
        kalibriere = 0;
        Serial.println("");
        KalibrWert[1] = p.x; // x max
        KalibrWert[3] = p.y; // y max
        delay(1000);
        Serial.println(F("калибровка окончина"));
        EEPROM.put( 0, KalibrWert);
        Serial.println(F("X Min \tX Max \tY Min \tY Max"));
        Serial.print(String(KalibrWert[0]) + "\t");
        Serial.print(String(KalibrWert[1]) + "\t");
        Serial.print(String(KalibrWert[2]) + "\t");
        Serial.println(String(KalibrWert[3]) + "\t");
        delay(1000);
        break;
      case 3:
        Serial.println(F("значения аналого-цифрового преобразователя:"));
        Serial.print("X = "); Serial.print(p.x);
        Serial.print("\tY = "); Serial.print(p.y);
        Serial.println(F("  "));
        Serial.println(F("откалиброванные и пересчитанные в таблицу значения:"));
        Serial.print("X = ");
        Serial.print(x);
        Serial.print("\tY = ");
        Serial.println(y);
        Serial.println("  ");
        break;
    }

  }


  // 2 команды через последовательный терминал
  // символ "k" - калибровка
  // символ "r" - показывает абсолютные значения положения и значения сетки

  if (Serial.available())           // Когда ввод сделан
  {
    char  Wahl = Serial.read();     // Получить введенный знак
    Serial.flush();
    Serial.println(Wahl);    
    switch (Wahl)                   // контроль выбора  

        
    {
      case 'k':                     // старт калибровки
        kalibriere = 1;
        Serial.println(F("калибровка"));
        Serial.println(F("Нажмите:"));
        Serial.println(F("В верхнем левом углу\n"));
        break;
      case 'r':                   // старт вывода отладочной информации
        if (!kalibriere)
        {
          kalibriere = 3;
          Serial.println(F("Значения положения и значения сетки"));
          Serial.println(F("чтобы вернутся нажмите \"r\""));
        }
        else
        {
          kalibriere = 0;
          Serial.println(F("USB-Клавиатура снова включина"));
        }
        break;
    }
  }
}

Для прошивки нам понадобятся также эта и эта библиотеки.

В приведённом виде скетч использует 14144 байт из всего доступных 28672 байт. Ещё 14528 байт остаются свободными для подлежащих отправке строк и команд. По умолчанию количество строк и столбцов тап-зон составляет 3 и 4 соответственно, но может быть скорректировано.
После прошивки устройство требует калибровки. В Arduino IDE запускаем монитор порта, к которому подключена плата, и отправляем ей символ «k».

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

А если серьёзно, то помимо автоматизации постинга сообщений в чатах и на форумах устройство может, к примеру хранить логины, пароли и любые клавиатурные макросы для их ввода одним нажатием.
Планирую купить +13 Добавить в избранное +91 +120
+
avatar
  • qzsev
  • 18 августа 2022, 02:20
+19
Клавиатура «СрачМастер»?…
+
avatar
  • nochkin
  • 18 августа 2022, 05:44
+4
String 11, String 12… String 5? String 9!
+
avatar
+2
Объединяя выше описанное «СтрингиМастер»
+
avatar
  • ZeRNoVoz
  • 19 августа 2022, 15:34
+1
это размеры стрингов))
+
avatar
+1
Норм. Плюс поставил.
+
avatar
  • qzsev
  • 18 августа 2022, 03:45
0
Тот же Leonardo, чуть дешевле.
+
avatar
+1
Получается Вы поделили на 12 частей тачскрин. В теории можно и больше…? Или связано это с какой то разрешающей способностью? С тачскринами не работал, но идея очень понравилась. Если каждой области задать свою команду (к примеру включить свет, вытяжку, и тд).
+
avatar
  • riuson
  • 18 августа 2022, 05:17
+5
Можно больше. Нормально будет, если минимальная область нажатия будет совпадать с площадью нажатия пальцем. А так-то можно и стилусом.

А ещё экран с адовым временем отклика можно было использовать для вывода надписей на кнопках и их смены во время работы.
+
avatar
  • oleg235
  • 18 августа 2022, 09:14
+3
А ещё экран с адовым временем отклика можно было использовать для вывода надписей на кнопках и их смены во время работы.
Управление таким экраном будет стоить как пара нормальных 4К мониторов.
+
avatar
  • riuson
  • 18 августа 2022, 09:19
0
Можно другой экран взять. Готовый, с лучшим временем отклика и углами обзора. И стоит будет совсем немного.

А ещё емкостный тачскрин можно поставить, будет ещё лучше.
+
avatar
0
А емкостный тачскрин подключается так же как и резистивный?
+
avatar
  • riuson
  • 18 августа 2022, 12:58
+3
У резистивного 4 проводника идут к контроллеру тачскрина, с которым вы работаете по spi или i2c.
У емкостного линий больше, но все они также идут к контроллеру. Он часто распаян прямо на шлейфе. А дальше те же spi/i2c.
Так что да, также.
+
avatar
  • DiSlord
  • 18 августа 2022, 15:08
+2
Емкостной тач это отдельная микросхема, управление обычно через I2C (реже SPI) и отдельный выход прерывания.
Резистивный тач, это может быть так же отдельная микросхема тоже обычно SPI и прерывание, но можно и совсем дешево, подключая через аналоговые входы программно изменять координаты.

Поэтому как итог, емкостной тач подключается как и резистивный если это не программная реализация через АЦП у резистивного.
+
avatar
  • oleg235
  • 18 августа 2022, 12:58
0
Можно другой экран взять. Готовый, с лучшим временем отклика и углами обзора. И стоит будет совсем немного.
Можно, но этот мне вообще даром достался.
+
avatar
  • Herz
  • 21 августа 2022, 12:45
0
А приведите пример, пожалуйста.
+
avatar
  • nochkin
  • 18 августа 2022, 05:45
-1
По умолчанию количество строк и столбцов тап-зон составляет 3 и 4 соответственно, но может быть скорректировано.
+
avatar
  • ailcat
  • 18 августа 2022, 08:03
0
Можно и больше, если код подправить.
Минимальный размер — чуть больше пальца (из опыта — 3,2'' четко делятся на 3х4, на 4х5 уже ложные срабатывания появляются
+
avatar
  • dkuznets
  • 18 августа 2022, 19:48
0
На резистивный можно когтем нажимать. Или стилусом. Площадь намного меньше. Но для клавы под пальцы — это да. Да и пальцы у всех разные :)
+
avatar
  • Siroc-co
  • 18 августа 2022, 08:14
+3
А если серьёзно, то помимо автоматизации постинга сообщений в чатах и на форумах устройство может, к примеру хранить логины, пароли и любые клавиатурные макросы для их ввода одним нажатием.
Круто! Просто и гениально! Как я не додумался до такого..? А мне очень надо. У меня как раз при составлении тех.отчётов задействовано овер 20 макросов. Можно сделать несколько профилей и подкладывать разные листочки, дёшево, без экрана.
Особенно пригодится там, где пароль нельзя ctrl+v, например в камерах Hikvision.
Вот можно было бы через комп быстренько кнопки переназначать, вообще цены небыло бы.
+
avatar
  • oleg235
  • 18 августа 2022, 08:49
+1
Вот можно было бы через комп быстренько кнопки переназначать, вообще цены небыло бы.
Как вариант, можно просто взять тачскрин побольше и разнести по нему кнопки. На 10" должна влезть сетка 9*12 тап-зон.
Ну или держать на компе Arduino IDE и пачку скетчей с разными командами и зашивать нужную.
+
avatar
  • Siroc-co
  • 18 августа 2022, 10:09
-1
Как вариант, можно просто взять тачскрин побольше и разнести по нему кнопки.
Как вариант — заморочиться с esp32, и хранить пресеты, перезаписывать их в энергонезависимую память. Но это надо драйвер писать, или без драйвера, но поднять web сервер и через web страничку переназначать функции.
Или использовать microSD, вставил в комп, переписал пресеты, вставил в esp32/arduino и используеш.
Если когда-нибудь мне будет прям вообще нефиг делать и я выполню предыдущие 27 пунктов из списка «сделать, когда совсем будет нефиг делать», то займусь реализацией этого проекта.
+
avatar
0
Точно, и через bluetooth подключать как клавиатуру.
+
avatar
0
Automatic Mouse and Keyboard
+
avatar
+1
Automatic Mouse and Keyboard
Если есть USB сканер штрихкодов — то штрихкода с нужным содержимым и сканируй на здоровье.
Всё на бумаге :)
+
avatar
  • Tim000n
  • 18 августа 2022, 10:04
+1
Поищите по слову SAYO на алике. От двух кнопок и больше. Программируемые, есть слои. Для ввода паролей самое оно.
+
avatar
  • tirarex
  • 18 августа 2022, 10:30
+6
Если клавиатура нормальная то можно часть кнопок переназначить под макросы ( раскладки макросы/Fкнопки переключаются через esc+ctrk В моем случае)


Либо идете на али и ищете Macro pad, +-1к рублей, никакого колхоза, и у вас на руках удобный и рабочий пад с кучей кнопок. Бонусом идут сьемные кейкапы, можете сделать гравировку со своими макросами, купить кейкапы с отсеком для бумажек ( напечатаете туда красивые картинки), или пойти во все тяжкие и покупать кастомные кнопки, либо печатать на 3д принтере.



Если денег не жалко то есть elgato stream deck, советую сразу идти на авито, мамкины стримеры любят набрать девайсов, и потом ничего не сделав, продавать все за копейки, девайс со скрина на авито от 10к но предлагают торг.
Каждая кнопка имеет маленький экран, можно выводить что угодно, хоть картинку, хоть гифку, хоть мониторинг температуры процессора.
+
avatar
  • oleg235
  • 18 августа 2022, 16:35
+1
Если клавиатура нормальная то можно часть кнопок переназначить под макросы
Теряется наглядность.
Либо идете на али и ищете Macro pad, +-1к рублей, никакого колхоза, и у вас на руках удобный и рабочий пад с кучей кнопок.
Теряется гибкость. ATMega32U4 потом можно под нормальную клавиатуру перешить, а эти макропады хз на чём построены.
+
avatar
  • tirarex
  • 18 августа 2022, 17:35
+1
а эти макропады хз на чём построены.
На атмегах 90% клавиатур, никаких проблем =)
+
avatar
+1
эти макропады хз на чём построены.
У меня 9 кнопочная на каком то МК в корпусе SOP16. Помимо него еще 4 кондера и все. Прога есть китайская и есть англофицированная, определяющаяся как вирус. На деле 1 раз настроил и забыл
+
avatar
  • val_sav
  • 18 августа 2022, 13:13
+1
Каждый приходит со своим листочком-шифрограммой и подкладывает его под прозрачный тачэкран. Перелогинился и работаешь по своим макросам и паролям
+
avatar
  • oleg235
  • 18 августа 2022, 13:23
0
Без софта на ПК вряд ли выйдет.
+
avatar
  • CuMr
  • 19 августа 2022, 02:12
+2
вокруг тач панельки рфид антенна, а под листочком ответная. Да, не совсем листочек, но зато гибкость перенастройки макросов.
+
avatar
  • CuMr
  • 19 августа 2022, 02:04
0
про пароли. можно на эту матрицу раскидать наборы символов, а пароль вводить их набором.
получается что пароль вроде и на виду, но не так то и просто подобрать.
+
avatar
0
Особенно пригодится там, где пароль нельзя ctrl+v, например в камерах Hikvision.
Используйте менеджер для хранения и автоманического ввода паролей. Макросы тоже проще программно.
+
avatar
  • SEM
  • 18 августа 2022, 08:48
+9
Отломав экран от тача вы лишили эту связку главного — интерактивности. Когда подписи к кнопкам меняются на ходу, в зависимости от структуры системы команд.
А с фиксированным набором String1, String2… — проще и надёжнее поставить 12 кнопок. Или больше. Любой конструкции. И расположить их удобнее чем сетка 3х4 (если надо).
Хотя тач с бумажкой под ним — конечно «стильно, модно, молодёжно».
+
avatar
  • oleg235
  • 18 августа 2022, 09:09
+3
Отломав экран от тача вы лишили эту связку главного — интерактивности. Когда подписи к кнопкам меняются на ходу, в зависимости от структуры системы команд.
Интерактивность резко выводит этот девайс из категории «поделка из трёх деталей за полчаса».
Вот пример реализации управления CSTN матрицей на FPGA. Стоимость решения выходит порядка 450 долларов — извините, за эти деньги можно 5К дисплей 27" собрать.
А с фиксированным набором String1, String2… — проще и надёжнее поставить 12 кнопок. Или больше. Любой конструкции. И расположить их удобнее чем сетка 3х4 (если надо).
Было. Дополнительная клавиатура падонка
+
avatar
  • riuson
  • 18 августа 2022, 09:16
+1
TFT дисплеи для ардуино и нормальных микроконтроллеров от 20-40 баксов, в зависимости от диагонали:

www.buydisplay.com/tft-display/arduino-tft-display?diagonal_size=287

Сложно да, это не типичный для ардуино уровень. Вот и вся проблема.
+
avatar
  • oleg235
  • 18 августа 2022, 13:25
0
Тачскрин — 8 дюймов по диагонали. Найти такой дисплей для Ардуино будет непросто.
+
avatar
  • riuson
  • 18 августа 2022, 14:02
+1
Тачскрины:
«resistive touch screen 8 inch» на aliexpress. Сразу находится.
Или на том же buydisplay, правда, ёмкостные, но контроллер на шлейфе уже есть.

И сборки дисплейные тоже там есть.
+
avatar
0
Подскажите как на buydisplay покупать? Там только PayPal. У нас палка не работает.
Хочу купить 7 дюймовый экран для Андуина на пробу.
+
avatar
  • riuson
  • 18 августа 2022, 20:45
0
Покупал там несколько раз, но до известных событий.
Написал сегодня им запрос, посмотрим, что ответят…

Помимо PayPal там есть Western Union и Wire (как я понял, это SWIFT).
+
avatar
  • riuson
  • 19 августа 2022, 06:12
+1
Ответ:
Hi,

Unfortunately we have no store on aliexpress: (

You could transfer RMB to our HSBC bank acct without a problem, Other customers from Russia are doing this way.

Thanks.
Судя по поиску, есть банки, выполняющие эти переводы к Китай.
Реквизиты для оплаты показываются при выборе способа Wire Transfer на сайте BuyDisplay.

RMB — Renminbi — официальное название китайской валюты.
1 Жэньминьби равно == 8,81 Российский рубль.
+
avatar
0
Я понял, что деньги нужно перечислить банковским переводом.
Спасибо за помощь.
+
avatar
  • SEM
  • 19 августа 2022, 09:23
0
Тачскрин — 8 дюймов по диагонали. Найти такой дисплей для Ардуино будет непросто.
8" автомобильный монитор $55-60, TV-out на ардуино — два резистора.
Но согласен, тогда результат вывалится из зоны «поделка выходного дня из спичек и желудей за три копейки»…
Но у вас был ненужный тач, если его покупать то тоже поделка становится нецелесообразной.
За три копейки — блок кнопок (или плёночная клавиатура, 4х4 40 руб).
+
avatar
  • oleg235
  • 19 августа 2022, 10:49
0
8" автомобильный монитор $55-60
Насколько я знаю, они все широкоформатные. А тач 4:3.
Но у вас был ненужный тач, если его покупать то тоже поделка становится нецелесообразной.
За три копейки — блок кнопок (или плёночная клавиатура, 4х4 40 руб).
Ну это смотря где покупать. На барахолке тач и блок кнопок примерно в одну цену.
+
avatar
  • SEM
  • 19 августа 2022, 16:30
0
Насколько я знаю, они все широкоформатные. А тач 4:3.
Не все. Можно найти и 4:3.
https://aliexpress.ru/item/item/32576928627.html
https://aliexpress.ru/item/item/1005002283752470.html
https://aliexpress.ru/item/item/4001252034370.html
+
avatar
0
Посмотрел я эту ссылку.
Но они работают с PayPal. PayPal в России не работает.
+
avatar
  • ewavr
  • 18 августа 2022, 09:44
+1
Зачем FPGA, если можно купить другой дисплей куда дешевле?
+
avatar
  • oleg235
  • 18 августа 2022, 09:54
+2
Затем, что с конкретным дисплеем с интерфейсом DPI без FPGA не справиться. А так — да, есть дисплеи, которые по UART управляются, но это в любом случае не вписывается в «собрать из хлама и палок».
+
avatar
  • Siroc-co
  • 18 августа 2022, 10:17
0
Хотя тач с бумажкой под ним — конечно «стильно, модно, молодёжно».
А уж если подсветку добавить, то все хипстеры в очередь за таким девайсом встанут.
+
avatar
  • oleg235
  • 18 августа 2022, 10:26
+1
Ага, тачскрин при этом взять широкоформатный от чего-нибудь с hVGA разрешением и упаковать всю конструкцию в кошелёк.
+
avatar
+2
Отломав экран от тача вы лишили эту связку главного — интерактивности.
разве самоделки данного автора хоть когда-то отличались практической ценностью?
+
avatar
  • DigiBoy
  • 18 августа 2022, 11:21
+4
Нужно защищать линии тач — микроконтроллер от ЭМП.
ЧИП феррит + супрессор (NUP4201MR6, например). Иначе это будет работать до первого шерстяного свитера, увы.
+
avatar
  • RatsM
  • 18 августа 2022, 14:44
+1
Только что заказал wemos d1 mini ESP32 S2 за 177 руб. И RP2040 Zero за 330 руб. Что там, что там есть аппаратный USB, ещё с ним есть ESP32 C3 и S3, и на всех esp аппаратный контроллер сенсорных кнопок. А ещё для остальных есть программная реализация USB. Ещё в 11 году делали на tiny45 и подобных
+
avatar
  • oleg235
  • 18 августа 2022, 16:36
+3
А ещё для остальных есть программная реализация USB. Ещё в 11 году делали на tiny45 и подобных
Иногда оно даже работало как надо.
+
avatar
  • CuMr
  • 19 августа 2022, 02:22
+1
Только что заказал wemos d1 mini ESP32 S2 за 177 руб. И RP2040 Zero за 330 руб. Что там, что там есть аппаратный USB, ещё с ним есть ESP32 C3 и S3, и на всех esp аппаратный контроллер сенсорных кнопок.
продолжайте наблюдение и держите нас в курсе покупок.

про софтовый усб уже сказано. Если оно заработало — это исключение, а не правило.
+
avatar
  • smim
  • 18 августа 2022, 17:50
0
Цена, однако, да еще и за доставку банг начал брать…
+
avatar
0
Как увидел oleg235, то подумал тут будет как сделать сенсорный экран… эх
аппаратная реализация USB-HID
У attiny вроде тоже такое есть.
+
avatar
  • oleg235
  • 18 августа 2022, 18:25
+1
У attiny вроде тоже такое есть
Отродясь не было. У них даже аппаратного UART нету, насколько я помню.
+
avatar
0
Поиск выдает какой-то код для клавиатуры на attiny85 и есть в примерах для Arduino IDE DigiparkKeyboard/Mouse/Joystick.
Нужно 4 незанятых аналоговых входа.
На attiny88 вроде можно сделать.
+
avatar
0
Поправка: это не аппаратный usb.
+
avatar
  • Fakel63
  • 18 августа 2022, 21:04
0
очень похожий проект
esp8266-server.de/keypadRU.html
+
avatar
  • oleg235
  • 18 августа 2022, 21:14
+1
Вообще-то прямо на него висит ссылка прямо в тексте скетча.
+
avatar
  • Fakel63
  • 18 августа 2022, 21:18
+1
ну тогда сорри, скетч я не вычитывал
+
avatar
  • klyoshev
  • 21 августа 2022, 16:02
0
а как насчет емкостных дисплеев?
+
avatar
  • riuson
  • 21 августа 2022, 16:05
0
А что вас интересует?