当前位置: 首页 > news >正文

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。

http://www.lryc.cn/news/66205.html

相关文章:

  • 天猫数据分析:2023年Q1天猫净水器品牌销售TOP10排行榜
  • TweenMax 源码阅读
  • B/S医院手术麻醉管理系统源码:麻醉知情同意书模板
  • postman 的 console 窗口,助力 http 请求错误时的问题排查
  • 破事精英2◎爬向未来
  • java中session各种使用场景实例,这篇文章就够了。
  • 【AWS入门】利用CloudWatch监控EC2的CPU负载情况
  • 如何使用AndroidStudio编写Java程序
  • 如何充分利用实时聊天系统?
  • [C++基础]-类和对象(下)
  • NP完全性PART1:多项式时间与形式化语言体系
  • 685页40万字某省市场监管智慧应用一体化项目(word可编辑)
  • 【cutlass】cuTe 01 layout
  • 迁移学习
  • 基于session实现共享登录
  • Hudi学习笔记1
  • 嚯——ChatGPT是很强,但也会胡说八道。。。
  • Springboot常用注解总结
  • 让chatGPT给我写一个CSS,我太蠢了
  • 华为OD题目:分奖金
  • 【算法题】2401. 最长优雅子数组
  • 【Vue】Vue快速入门
  • 二本菜鸡,颓废两年的自我救赎
  • Spring boot 常用注解
  • mysql从零开始(05)----锁
  • 《Linux 内核设计与实现》03. 进程管理
  • 深入探究HDFS:高可靠、高可扩展、高吞吐量的分布式文件系统【上进小菜猪大数据系列】
  • GIMP制作艺术字技巧
  • Redis 布隆过滤器总结
  • 云基础设施安全:7个保护敏感数据的最佳实践