Teensy 3.2 上的键盘映射 Sinclair Spectrum ZX +2
Keyboard map Sinclair Spectrum ZX +2 on Teensy 3.2
我正在将 Sinclair Spectrum 128 ZX +2 转换为 Raspberry Pi 驱动的计算机,我正在使用Teensy 3.2 USB开发板将原键盘与原膜进行映射,得到一个普通的USB键盘。我不打算保留原来的键映射,可能我会买一些贴纸,然后将其转换为英国键盘。
我以这种方式重复使用了原来的带状连接器:
- 5 行 > 小别针 1 到 5
- 8 列 > 小别针 6 到 13
(拍完照片发现线断了,现在修好了)
我在网上找到了一个类似东西的 Teensy 代码(感谢 Chad Boughton),我试着将它改编为 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
- u 键盘打印
5cs
- graph 键盘打印
6d4b
我预计一次按键 1 个字符。
我做错了什么?
Here the Sinclair service manual with the keyboard membrane explanation
参考键盘:
如果您仍然对这个话题感兴趣,
我编写了一个代码来处理带有 Arduino MICRO MCU 的 ZXSpectrum+ 特定键盘(与 Legacy Spectrum 相比)。
只有SYMBOL+A组合还是不行
基于您发送的 PDF...
ZXKeyb with arduino micro
我正在将 Sinclair Spectrum 128 ZX +2 转换为 Raspberry Pi 驱动的计算机,我正在使用Teensy 3.2 USB开发板将原键盘与原膜进行映射,得到一个普通的USB键盘。我不打算保留原来的键映射,可能我会买一些贴纸,然后将其转换为英国键盘。
我以这种方式重复使用了原来的带状连接器:
- 5 行 > 小别针 1 到 5
- 8 列 > 小别针 6 到 13
我在网上找到了一个类似东西的 Teensy 代码(感谢 Chad Boughton),我试着将它改编为 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
- u 键盘打印
5cs
- graph 键盘打印
6d4b
我预计一次按键 1 个字符。 我做错了什么?
Here the Sinclair service manual with the keyboard membrane explanation
参考键盘:
如果您仍然对这个话题感兴趣,
我编写了一个代码来处理带有 Arduino MICRO MCU 的 ZXSpectrum+ 特定键盘(与 Legacy Spectrum 相比)。
只有SYMBOL+A组合还是不行
基于您发送的 PDF... ZXKeyb with arduino micro