Карта клавиатуры Sinclair Spectrum ZX +2 на Teensy 3.2 - PullRequest
0 голосов
/ 09 июля 2019

Я конвертирую Sinclair Spectrum 128 ZX + 2 в компьютер с Raspberry Pi и использую USB-плату разработки Teensy 3.2 USBдля сопоставления оригинальной клавиатуры с оригинальной мембраной и получения обычной клавиатуры USB.Я не планирую сохранять исходное сопоставление клавиш, возможно, куплю несколько наклеек и преобразую их в британскую клавиатуру.

Я повторно использовал исходные ленточные соединители таким образом:

  • 5 рядов> Teensy Pins от 1 до 5
  • 8 столбцов> Teensy Pins от 6 до 13

enter image description here (я заметилотключенные кабели после того, как я сделал фотографию, теперь исправлено)

Я нашел код Teensy для чего-то похожего в Интернете (спасибо Чеду Боутону), и я попытался адаптировать его для Синклера, первая попытка былапросто проверить, все ли ключи работают.

Вот код: https://gist.github.com/federicocappelli/7f61d6bc2095cbc278df12519b721435

Вкратце, я создал матрицу поддельных ключей:

const byte ROWS = 5;
const byte COLS = 8;
char keys[ROWS][COLS] = {
  {KEY_1,KEY_2,KEY_3,KEY_4,KEY_5,KEY_6,KEY_7,KEY_8},
  {KEY_9,KEY_0,KEY_A,KEY_B,KEY_C,KEY_D,KEY_E,KEY_F},
  {KEY_G,KEY_H,KEY_I,KEY_J,KEY_K,KEY_L,KEY_M,KEY_N},
  {KEY_O,KEY_P,KEY_Q,KEY_R,KEY_S,KEY_T,KEY_U,KEY_V},
  {KEY_W,KEY_X,KEY_Y,KEY_Z,KEY_ENTER,KEY_TILDE,KEY_DELETE,KEY_BACKSPACE}
};
byte rowPins[ROWS] = {1,2,3,4,5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6,7,8,9,10,11,12,13}; //connect to the column pinouts of the keypad

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

  • пробел на клавиатуре печатает 12345678
  • u на клавиатурепечатает 5cs
  • график клавиатура печатает 6d4b

Я ожидал 1 символ для одной клавишиESS.Что я делаю не так?

Вот руководство по обслуживанию Sinclair с описанием мембраны клавиатуры

Клавиатура для справки: enter image description here

...