HID Relay, 有线键盘转蓝牙项目学习:记一次失败的尝试

HID Relay, 有线键盘转蓝牙项目学习:记一次失败的尝试

开始学习嵌入式后,最难受的一个点在于电脑端口不够。我的电脑有两个USB口一个TypeC口,鼠标和键盘都要插USB口,stm32和51也都要插USB口。

那么烧录的时候,要么就把键盘拔了先烧录。代码错了就再插上键盘打字,然后拔下来烧录,再插上键盘打字,再拔下来。

后来入了一款秒控键盘,但是手感远不如我的alice。

你怎么知道我的键盘是ACR Pro Alice Plus?

我是不想购置新鼠标和键盘的(电脑更不行)。很巧的是,我找到了有同样想法的嵌入式前辈,他开发了一个有线键盘转蓝牙的设备。

image-20230506042504272

使用的主开发板是arduino pro mini。如果完成了,这将是我第一次成功制作项目的经历。所以我觉得这个有趣的项目非常值得一试。

因此我从选购芯片、硬件、电烙铁开始,跑了无数次五金店,焊了好几排引脚,甚至左手大拇指为此受到了烫伤和被扎破的双重代价,终于——

我失败了。

半成品展示

为什么失败了还要拿出来说事,而不是把它改进的更好,或者重做到成功为止?

因为5月实在是太忙了。除了课程内作业要求,还有许多课外大大小小的活动,要写的代码要做的视频要考的试……我知道我真的没有时间花在修好他上了,至少现在来说是这样。

但是这是我第一次尝试的项目,哪怕是失败,对我来说,这个小东西也很有价值。而且我也从中学到了很多。

所以我决定,敲下这一篇“失败”的经验总结,来暂时为他画上分号。也许在将来的某一天,能力更强的我从纸箱中翻出这个小玩意,可以把他修好,补充完这篇文章。

原视频链接

选材

  1. 主开发板:arduino pro mini,3.3V。相比以前玩过的arduino板子,pro mini 体积小,功耗低,用它来设计有线键盘蓝牙转换器不仅小巧,而且省电。

    The Arduino Pro Mini board

  2. USB Host Shield 2.0 拓展板,提供 usb 接口,可以让 arduino 等拥有 usb 主机功能,比如接鼠标,键盘,u盘。也有 spi 接口,可以利用其进行通信。

image-20230506043809303

  1. FT232RL,FTDI公司生产的一款常用的USB接口转换IC。它能够将USB接口转换成标准的串口接口。

image-20230506044149507

  1. 蓝牙模块。

image-20230506044233998

  1. 面包板,面包板供电模块。

原理图

简要原理:

image-20230506044916586

首先 mini 板子没法连电脑通信,我们要用 FT232RL 作为中介,转换电脑的 USB 接口为 arduino 可以接收的 IC 串口接口。这样通信烧录都可以进行了。

然后键盘的输入数据没法直接交给 arduino。我们可以通过 USB Host Shield 进行转换,也把数据转换为 USB 可以接收的串口接口类型。

焊接

图片来源:给模块添加 USB 支持的 USB Host Shield Mini - schaepher - 博客园 (cnblogs.com)

img

首先,把 USB Host Shield 的Vcc-2k2部分切断,一会连线到arduino上。

image-20230506045308088

为什么这么做?我们的键盘需要5V供电的,但是 USB Host Shield 的Vcc连到3.3V,所以我们要把其断开,连到arduino上的5V引脚。

因此把Vcc上面的孔焊上,连上一根导线引出来,一会连arduino。

image-20230506045521692

  1. arduino pro mini 就直接把引脚排针都焊上,并且正对着 USB Host Shield 插上就好。导线连到右下角 RAW 引脚。

image-20230506045654918

  1. 用六根母对母杜邦线链接FT232RL和Arduino Pro mini。或者像图片一样焊一排排针。

image-20230506045806972

  1. 把 Arduino Pro mini 下面的排针插到面包板上,连面包板3.3V供电。

image-20230506050012950

RAW和GND引出来连到3.3V和GND。如果FT232和arduino都亮灯了,且arduino还有一个闪烁的灯,说明准备好烧录程序了。(把USB Host Shield 连上有线键盘)

烧录

代码下载:

https://github.com/felis/USB_Host_Shield_2.0

  1. 代码包解压到 arduino 文件夹下的 libraries 文件夹中。

    image-20230506050236487

  2. 打开arduino,打开示例中的项目:

image-20230506050413479

image-20230506050431597

  1. 链接电脑和FT232,下载程序。下载过程中FT232上的黄灯会狂闪,闪完就下载成功了。

image-20230506050656593

打开串口:

image-20230506050742302

哦~就到这里就失败了。如果运行正常,应该会显示start,且按下按键后实时输出按键信息。

image-20230506050905781

反思

这里我的问题可能有很多。因为按下按键后也不输出按键信息,说明不只是串口监视器的乱码问题,可能是链接电路问题,使得数据传输时出错。

但是通过这次尝试和记录,至少是学习了电烙铁的使用方法,以及对这几个硬件都有了一定的了解。如果以后有机会,可以从单独模块学起,再研究项目上的代码逻辑,逐步排查出现问题的原因~

晚安,HID Relay。

猜你喜欢

转载自blog.csdn.net/jtwqwq/article/details/130518600