Чи можу я зробити повну клавіатуру USB за допомогою Makey Makey + Raspberry Pi


15

Нещодавно я придбав Makey Makey (на базі Ардуїно Леонардо / ATMega32u4), сподіваючись побудувати повну клавіатуру USB-стимпанку з деяких металевих деталей. Перш ніж він прибув, я перечитав деталі та зрозумів, що у нього є лише 18 можливих входів, тому 85+ клавіш не працюватимуть. Хтось має ідеї, як я міг створити такого звіра, можливо, за допомогою Raspberry Pi? (яка з'єднується досить легко, з попередніх дописів )


Це неймовірно.
Стрибки

1
Замість введення для кожної клавіші ви можете використовувати матрицю та використовувати 18 входів для обробки 81 клавіші (матриця 9x9), наскільки я знаю, що в RPi є менше входів, ніж у arduino, тому я не думаю, що це допоможе.
Крейг

@Craig, значить, ви маєте на увазі поєднання вхідних даних таким чином: arduino.cc/playground/Main/KeypadTutorial
sventechie

@sventech так. Я не знайомий з макіяжем макіяжу, тому не знаю, як його комутація високого опору буде взаємодіяти з матрицею.
Крейг

Відповіді:


6

Якщо ви просто хочете зробити клавіатуру, не використовуючи Makey Makey, ви можете це зробити, використовуючи функцію GPIO Raspberry Pi. Але, як і раніше, як це зазначалося, у Raspberry Pi немає достатньої кількості штифтів, щоб зробити клавіатуру, яка насправді корисна.

Однак якщо ви готові додати 2 ІС, ви можете зробити собі клавіатуру з такою кількістю клавіш, що у вас виникнуть проблеми придумати функцію для кожної клавіші!

Я пропоную підключити 2 I2C IC до шини I2C на Raspberry Pi і використовувати їх для створення власної матриці сканування.

Якщо ви використовуєте один PCF8574, у вас є 8 контактів вводу / виводу, якщо ви отримаєте PCF8575, у вас навіть 16 штифтів вводу / виводу. Поєднавши потім, ви можете отримати матрицю сканування:

  • 64 клавіші: (2x PCF8574)
  • 128 клавіш: (1x PCF8574 та 1x PCF8575)
  • 256 клавіш: (2x PCF8575)

Ви завжди повинні використовувати один з них як вихідний, а один - як вхідний. На виході ви дозволяєте трохи "ходити" від біта 0 до біта n (7 або 15), це стовпці матриці. З іншого ви постійно читаєте значення вводу, і це рядки матриці. Комбінація того, який вихідний біт активний та який вхідний біт - "1" - це клавіша, яку натискають.

принцип матриці сканування

Насправді створення матриці є найбільшою роботою, і, хоча ви знаходитесь на ній, не забудьте додати діод після кожного перемикання, який ви введете в матрицю, цей діод (звичайний 1N4148 буде добре) повинен бути розміщений разом з анодом до вимикача і катода до рядкової лінії. Падіння напруги на 0,6 В над цим діодом не повинно бути проблемою, а решта (3,3 В - 0,6 В) 2,7 В все одно повинна бути логічною '1'.

практична матриця сканування

Причина цього вантажопідйомності діодів полягає в тому, що це запобіжить такі речі, як привид і маскування клавіш. Привид - це ефект, що якщо натиснути більше, ніж три клавіші одночасно, можливо, це інтерпретується як абсолютно інша клавіша, оскільки більше рядків матиме логічне значення "1". Маскування - це ефект, який, якщо ви натискаєте кілька клавіш і відпускаєте клавішу, ця (в деяких ситуаціях) не буде виявлена, оскільки рядок для цієї клавіші все ще є логічним "1".

приклад привид

На малюнку показаний приклад привидів, натискаються кнопки A, B, D, окрім рядка 1 (для кнопки A) також рядок 2 (для кнопки C) високий, на даний момент стовпець 1 активний, що невірно.

Після всієї апаратної пригоди вам потрібно написати або адаптувати драйвер ядра, щоб фактично використовувати клавіатуру під Linux. Приємною відправною точкою може бути посилання: Драйвер клавіш на розширювачі IO TCA6416 I2C , це схожа ідея, але використовується лише клавіатура 16 клавіш.

Сподіваюсь, це вам трохи допоможе.


3

Якщо ви хочете зробити повну клавіатуру, щоб насправді набрати, вам, мабуть, найкраще буде використовувати ІМ-код із USB-клавіатури. Або збережіть друковану плату, закопану глибоко у вашій системі, де її неможливо побачити і запустити провід до ваших комутаторів, або виготовити щось на замовлення з тією ж матрицею.

Якщо вам дійсно потрібно змінити електричну матрицю, то, можливо, вам доведеться зробити власний дизайн з нуля, але в іншому випадку це насправді не потрібно.

Навіть за допомогою спеціальної дошки ви все одно можете перераховувати щось, що перераховує та функціонує як USB-клавіатура, усуваючи необхідність користувацьких драйверів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.