Карта клавиатуры Sinclair Spectrum ZX +2 на Teensy 3.2
Я превращаю Sinclair Spectrum 128 ZX +2 в компьютер с питанием Raspberry Pi и использую плату разработки Teensy 3.2 USB для подключения оригинальной клавиатуры к оригинальной мембране и получения обычной клавиатуры USB. Я не планирую сохранять исходное отображение клавиш, возможно, куплю несколько наклеек и преобразую их в британскую клавиатуру.
Я повторно использовал оригинальные ленточные соединители таким образом:
- 5 рядов> Teensy Pins 1 до 5
- 8 столбцов> Teensy Pins 6 до 13
(Я заметил отключенные кабели после того, как я сделал фотографию, теперь исправленный)
Я нашел код Teensy для чего-то похожего в Интернете (спасибо Чэду Боутону), и я попытался адаптировать его для Sinclair, первой попыткой было просто проверить, все ли ключи работают.
Вот код: 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
- вы печатаете на клавиатуре
5cs
- график печати на клавиатуре
6d4b
Я ожидал 1 символ для одного нажатия клавиши. Что я делаю не так?
Вот руководство по обслуживанию Sinclair с объяснениями мембраны клавиатуры
0 ответов
Если вас все еще интересует эта тема,
Я написал код для обработки специальной клавиатуры ZXSpectrum+ (по сравнению с Legacy Spectrum) с микроконтроллером Arduino MICRO.
только СИМВОЛ + Комбо все равно не работает
на основе отправленного вами PDF-файла... ZXKeyb с arduino micro