Teensy 3.2上的键盘映射Sinclair Spectrum ZX +2

时间:2019-07-09 18:51:05

标签: keyboard teensy zxspectrum sinclair

我正在将 Sinclair Spectrum 128 ZX +2 转换为使用 Raspberry Pi 的计算机,并且我正在使用Teensy 3.2 USB开发板将原始键盘与原始膜映射,并获得普通的USB键盘。我不打算维护原始的键映射,可能我会购买一些贴纸并将其转换为英国键盘。

我以这种方式重复使用了原始的带状连接器:

  • 5行> 1-5针脚小巧
  • 8栏> 6到13针之间的小针脚

enter image description here (拍照后我注意到电缆断开了,现在已经修复了)

我在网上找到了类似的Teensy代码(感谢Chad Boughton),并且我尝试将其改编成Sinclair,第一个尝试是简单地检查所有按键是否正常工作。

代码如下:https://gist.github.com/federicocappelli/7f61d6bc2095cbc278df12519b721435

简而言之,我创建了一个伪造的密钥矩阵:

m

但是结果不是我期望的,例如,按

  • 空格键,键盘会打印k in node_list
  • u 键盘打印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

我希望每次按键输入1个字符。 我在做什么错了?

Here the Sinclair service manual with the keyboard membrane explanation

以键盘为参考: enter image description here

1 个答案:

答案 0 :(得分:1)

如果您仍然对该主题感兴趣,

我编写了一个代码,以使用Arduino MICRO MCU处理ZXSpectrum +专用键盘(与传统频谱相比)。

仅SYMBOL + A组合仍然无效

基于您发送的PDF ... ZXKeyb with arduino micro