【问题标题】:Keyboard map Sinclair Spectrum ZX +2 on Teensy 3.2Teensy 3.2 上的键盘映射 Sinclair Spectrum ZX +2
【发布时间】:2019-07-09 18:51:05
【问题描述】:

我正在将 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
  • 图形键盘打印6d4b

我希望一次按键有 1 个字符。 我做错了什么?

Here the Sinclair service manual with the keyboard membrane explanation

作为参考的键盘:

【问题讨论】:

    标签: keyboard teensy zxspectrum sinclair


    【解决方案1】:

    如果你仍然对这个话题感兴趣,

    我编写了一个代码来使用 Arduino MICRO MCU 处理 ZXSpectrum+ 特定键盘(与 Legacy Spectrum 相比)。

    只有 SYMBOL+A 组合仍然不起作用

    根据您发送的 PDF... ZXKeyb with arduino micro

    【讨论】:

    • 不错的一个!最后,我买了一块预制板,使用原装带状电缆并转换所有信号,60 英镑,物有所值:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多