Я конвертирую Sinclair Spectrum 128 ZX + 2 в компьютер с Raspberry Pi и использую USB-плату разработки Teensy 3.2 USBдля сопоставления оригинальной клавиатуры с оригинальной мембраной и получения обычной клавиатуры USB.Я не планирую сохранять исходное сопоставление клавиш, возможно, куплю несколько наклеек и преобразую их в британскую клавиатуру.
Я повторно использовал исходные ленточные соединители таким образом:
- 5 рядов> Teensy Pins от 1 до 5
- 8 столбцов> Teensy Pins от 6 до 13
(я заметилотключенные кабели после того, как я сделал фотографию, теперь исправлено)
Я нашел код 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 с описанием мембраны клавиатуры
Клавиатура для справки: