如何使用Arduino制作ThinkPad键盘USB适配器

电子说

1.3w人已加入

描述

步骤1:获取插座

Arduino

部分,即。对适配器板进行编程和设计,您需要找到一种将键盘连接到PCB的方法。

大多数经典的ThinkPad键盘都使用板对板连接器。根据eBay的说法,如果您搜索T60键盘,则会发现ThinkPad T60,T60p,Z61p,Z61t,Z60,T61,R400,R500,T400,T500,X41 。..共享相同的键盘,并且它们的键盘矩阵也可能

从互联网上浮动的ThinkPad T60的示意图中(参见图片),我发现T60使用JAE AA01B-S040VA1-R3000。由于这些产品是专有产品,因此没有多少供应商出售它们。多数确实出售这些产品的人,其最低订购量为100。每件产品的价格约为4.90美元,加上运费,价格非常昂贵。因此,如果您有兴趣获得这些信息,请给我发消息。

有关ThinkPad T60插座的更多信息,请查看Felix的照片和尺寸:http://electronics.stackexchange.com/questions/64112/how找到用于键盘连接器的插座

步骤2:使用键盘示意图

从上一步的示意图中可以看出,T60键盘矩阵使用8行16列,其中1个用于热键(FN),TrackPoint使用时钟线,数据线和复位线。总共需要28个数字引脚,而Arduino Micro/Leonardo只有20个数字引脚。

使用CD4017这样的十进制计数器在行中循环,并使用MCP23S17等SPI 16位输入IC进行读取。输入为16列,Arduino端的引脚总数减少到10行。

通常,键盘矩阵是被动的-它们不指定行或列必须是输入还是输出。但是,对于该项目,16列输出将需要更多的外部IC,无源元件,并使设计复杂化。因此,我选择了8个输出和16个输入。

到目前为止,零件清单已经到了:

Arduino Micro:官方模块〜32美元,13美元用于克隆(在eBay上克隆)

CD4017

MCP23S17

16 x 10k电阻作为MCP23S17

的上拉电阻Arduino安装板和插座板(接下来的几个步骤)

AA01B-S040VA1插座

在https://www.tindie.com/products/rampadc/arduino-thinkpad获取该套件-usb-keyboard-adapter/

步骤3:设计原理图和PCB

Arduino

Arduino

Arduino

Arduino

由于T60的插座是间距为0.5mm的表面安装组件,因此我决定将SMD用于其他组件。

在此项目中,我决定将该板分成两块板:

Arduino Micro安装板

带有电阻和支持IC的插座板。

这可以使将来的主板修订版更具模块化,并且从长远来看可能会更便宜。例如,如果我决定添加蓝牙连接,则不再需要使用Arduino Micro的USB功能。我可以改用Arduino Nano,而只需要在Arduino一侧设计PCB,就可以清楚地知道我的插座板将以相同的方式工作,无论我决定使用哪种微控制器。

我提供了以下示例我的Elecrow的PCB布局,原理图和预制板。板子是双面的,适合50x50mm。

第4步:编写代码!

该项目非常简单,足以与Arduino庞大的社区进行编码。我写了一个简短的草图。该代码可在GitHub上找到:https://github.com/rampadc/arduino-thinkpadkb-usb。

该代码可以使用一些优化来加速矩阵扫描。从代码中删除了FN + NumLock功能,键盘键和自定义键盘组合功能,因为它显着降低了扫描速度。

步骤5:结果和结论

Arduino平台使构建USB适配器非常容易。但是,它有一些严重的缺点:

•有限的键码支持:没有键盘键,打印屏幕,滚动锁定,暂停,中断等的定义。•Keyboard.press()和Keyboard.release()的笨拙实现。 )。 Arduino API不会接受和发送未经修改的键码,而是强制用户发送可打印的字符。

•无远程唤醒:如果计算机进入待机状态,则按键盘上的某个键或移动鼠标都不会将其唤醒。

•引脚数少

•慢。可以进行代码优化和改进,但是使用Arduino从直接端口操纵中提取的东西会大大增加延迟,增加低引脚数,迫使用户使用扩展IC进一步降低了速度。

出于测试目的,我使用跨接电缆将两块板连接在一起。对于最终产品,我将使用一些细得多的电线直接焊接到板上并在键盘下方运行。

这是操作键盘的视频:http://youtu.be/gDHS0D_EtOc

设计建议改进和代码优化!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分