HID Relay, 有线键盘转蓝牙项目学习:记一次失败的尝试
HID Relay, 有线键盘转蓝牙项目学习:记一次失败的尝试
开始学习嵌入式后,最难受的一个点在于电脑端口不够。我的电脑有两个USB口一个TypeC口,鼠标和键盘都要插USB口,stm32和51也都要插USB口。
那么烧录的时候,要么就把键盘拔了先烧录。代码错了就再插上键盘打字,然后拔下来烧录,再插上键盘打字,再拔下来。
后来入了一款秒控键盘,但是手感远不如我的alice。

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

使用的主开发板是arduino pro mini。如果完成了,这将是我第一次成功制作项目的经历。所以我觉得这个有趣的项目非常值得一试。
因此我从选购芯片、硬件、电烙铁开始,跑了无数次五金店,焊了好几排引脚,甚至左手大拇指为此受到了烫伤和被扎破的双重代价,终于——
我失败了。

为什么失败了还要拿出来说事,而不是把它改进的更好,或者重做到成功为止?
因为5月实在是太忙了。除了课程内作业要求,还有许多课外大大小小的活动,要写的代码要做的视频要考的试……我知道我真的没有时间花在修好他上了,至少现在来说是这样。
但是这是我第一次尝试的项目,哪怕是失败,对我来说,这个小东西也很有价值。而且我也从中学到了很多。
所以我决定,敲下这一篇“失败”的经验总结,来暂时为他画上分号。也许在将来的某一天,能力更强的我从纸箱中翻出这个小玩意,可以把他修好,补充完这篇文章。
原视频链接
选材
-
主开发板:arduino pro mini,3.3V。相比以前玩过的arduino板子,pro mini 体积小,功耗低,用它来设计有线键盘蓝牙转换器不仅小巧,而且省电。

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

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

- 蓝牙模块。

- 面包板,面包板供电模块。
原理图
简要原理:

首先 mini 板子没法连电脑通信,我们要用 FT232RL 作为中介,转换电脑的 USB 接口为 arduino 可以接收的 IC 串口接口。这样通信烧录都可以进行了。
然后键盘的输入数据没法直接交给 arduino。我们可以通过 USB Host Shield 进行转换,也把数据转换为 USB 可以接收的串口接口类型。
焊接
图片来源:给模块添加 USB 支持的 USB Host Shield Mini - schaepher - 博客园 (cnblogs.com)

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

为什么这么做?我们的键盘需要5V供电的,但是 USB Host Shield 的Vcc连到3.3V,所以我们要把其断开,连到arduino上的5V引脚。
因此把Vcc上面的孔焊上,连上一根导线引出来,一会连arduino。

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

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

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

RAW和GND引出来连到3.3V和GND。如果FT232和arduino都亮灯了,且arduino还有一个闪烁的灯,说明准备好烧录程序了。(把USB Host Shield 连上有线键盘)
烧录
代码下载:
https://github.com/felis/USB_Host_Shield_2.0
-
代码包解压到 arduino 文件夹下的 libraries 文件夹中。

-
打开arduino,打开示例中的项目:


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

打开串口:

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

反思
这里我的问题可能有很多。因为按下按键后也不输出按键信息,说明不只是串口监视器的乱码问题,可能是链接电路问题,使得数据传输时出错。
但是通过这次尝试和记录,至少是学习了电烙铁的使用方法,以及对这几个硬件都有了一定的了解。如果以后有机会,可以从单独模块学起,再研究项目上的代码逻辑,逐步排查出现问题的原因~
晚安,HID Relay。
相关文章:
HID Relay, 有线键盘转蓝牙项目学习:记一次失败的尝试
HID Relay, 有线键盘转蓝牙项目学习:记一次失败的尝试 开始学习嵌入式后,最难受的一个点在于电脑端口不够。我的电脑有两个USB口一个TypeC口,鼠标和键盘都要插USB口,stm32和51也都要插USB口。 那么烧录的时候,要么就…...
天猫数据分析:2023年Q1天猫净水器品牌销售TOP10排行榜
水质的好坏更是与人们的身体健康密切相关。随着社会经济的发展,居民生活水平提升,人们对饮用水质量、安全性的要求也不断提高,净水器也因此逐渐成为现代生活的必需品。 根据鲸参谋电商数据显示,2023年Q1在天猫平台上,净…...
TweenMax 源码阅读
GSAP 之 TweenMax 源码阅读(一) 一、背景 GreenSock (绿袜子) GreenSock 是一家做 专业级 JavaScript 动画的公司,主要产品就是其下的 GSAP (GreenSock Animation Platform),配合着 GSPA 开发了很多专业的…...
B/S医院手术麻醉管理系统源码:麻醉知情同意书模板
麻醉知情同意书模板 姓名: 性别: 年龄: 科别: 床号: 住院号: 疾病介绍和治疗建议: 医生已告知我因手术,而接受麻醉。 1.麻醉作用的产生主要是利用麻醉药使中枢神经系统或神经中某些部位受到抑制的结果,临床麻醉的主要任务是: 2.为…...
postman 的 console 窗口,助力 http 请求错误时的问题排查
postman 是个很不错的 http 请求测试工具,有时我们使用它发送 http 请求,但是因为各种原因,导致请求失败,没有 response 返回,可能只有一个状态码,这让我们排查起来非常困难,比如下图所示&#…...
破事精英2◎爬向未来
胡强的2033未免有些过去可怕,海星果然又是反派。 只剩“脑子”的胡强 400百斤只剩“嘴”的庞小白 将自己身体分成一个个“方块”的苏克杰 苍蝇满天飞“衣服堆”的金若愚 “脑子”送到月球打两份工的沙乐乐 有机器人或者分身帮我们干活赚钱,我们去吃喝玩…...
java中session各种使用场景实例,这篇文章就够了。
目录 java原生使用Session详解什么是SessionSession的使用Session的配置Session的安全性总结 SpringCloud中使用session详解1. 添加依赖2. 配置Redis3. 配置Session4. 使用Session5. Session超时时间6. Session共享7. Session序列化8. 总结 Spring Boot中Session使用详解Spring…...
【AWS入门】利用CloudWatch监控EC2的CPU负载情况
创建一个 EC2 实例 User data 配置如下 #!/bin/bash sudo -i amazon-linux-extras install epel -y yum install stress -y导航到 Cloudwatch->Metrics->All metrics-EC2->Per-Instance Metrics,选中创建的 EC2的 CPU 利用率,点击铃铛标识创建 alarm 设…...
如何使用AndroidStudio编写Java程序
文章目录 使用场景使用方法整体的思路具体的步骤经验总结使用场景 在开发Android项目中有时候需要写一些Java程序做示例或者验证,这里说的Java程序是指Java控制台程序,程序中带有独立的main()方法。如果把Java示例程序放到Android项目中那么需要运行整个项目才能编译Java示例…...
如何充分利用实时聊天系统?
随着商业和电子商务领域经历快速的数字革命,必须迅速适应的一个因素是我们与客户的互动方式。几年前,电子邮件和电话还是主要的客户联系方式。如今,客户期望更好的服务和更即时的沟通。实时聊天支持系统可以解决此问题,如SaleSmar…...
[C++基础]-类和对象(下)
前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正。 目录 一、深入学…...
NP完全性PART1:多项式时间与形式化语言体系
算法导论第三版,CH34笔记 NP完全性 Chapter Introduction 一般来说,我们认为可以在多项式时间内求解的问题是易处理的问题,在超多项式时间内解决的问题是不易处理的问题。 下面列出的几对问题,前者可以用多项式时间算法求解&…...
685页40万字某省市场监管智慧应用一体化项目(word可编辑)
1.2.3.1 数字XX公共能力建设现状 1.2.3.1.1 数字XX通用基础应用平台现状 通用基础应用平台提供具有共性特征的跨部门、跨层级业务应用,与本项目有关的平台包括某省网上办事大厅、某省政务服务 APP 统一平台(X政通 APP)、某省公共信用信息平…...
【cutlass】cuTe 01 layout
简介 Layout将坐标映射到地址空间,其对阵列单元在内存中如何排布进行抽象,并提供了获取多维阵列的接口。用户可以以正常的方式(不需要做复杂的地址计算)写多维阵列存取代码,对于存取的不同方式可以改变Layout来实现&a…...
迁移学习
迁移学习 什么是迁移学习 迁移学习【斯坦福21秋季:实用机器学习中文版】 迁移学习(Transfer Learning)是一种机器学习方法,它通过将一个领域中的知识和经验迁移到另一个相关领域中,来加速和改进新领域的学习和解决问…...
基于session实现共享登录
基于session实现登录 1.发送短信验证码 Override public Result sendCode(String phone, HttpSession session) {//1.校验手机号是否合规if (RegexUtils.isPhoneInvalid(phone)) {//2.不合规直接返回 错误信息return Result.fail("手机号错误");}//3.如果合规生成验…...
Hudi学习笔记1
使用注意 从 0.10.0 版本开始,primaryKey 为必须的,不再支持没有主键的表。 primaryKey、primaryKey 和 type 均大小写敏感。 对于 MOR 类型的表,preCombineField 为必须的。 当设置 primaryKey、primaryKey 或 type 等 hudi 配置时&#…...
嚯——ChatGPT是很强,但也会胡说八道。。。
现在的ChatGPT确实强,但是也会一本正经的胡说八道,例如它回答“nineteen”中有12个字母、或是旗鱼是哺乳动物…… 尽管ChatGPT可以生成流畅甚至优雅的散文,轻松通过困扰了AI领域超过70年的图灵测试基准,但它也可能看起来非常愚蠢…...
Springboot常用注解总结
目录 一、什么是Spring Boot二、Spring常用注解三、Spring Boot常用注解1、SpringBootApplication2、ImportAutoConfiguration3、SpringBootConfiguration4、ImportResource5、PropertySource6、PropertySources7、Role8、Scope9、Lazy11、Profile12、DependsOn13、PostConstru…...
让chatGPT给我写一个CSS,我太蠢了
前言 CSS这东西,让AI写的确有点难度,毕竟它写出来的东西,没办法直接预览,这是其次。重要的是CSS这东西怎么描述,不好描述啊,比如我让他给我制作一个这样的效果出来,没办法描述,所以…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
Axure 下拉框联动
实现选省、选完省之后选对应省份下的市区...
深度解析:etcd 在 Milvus 向量数据库中的关键作用
目录 🚀 深度解析:etcd 在 Milvus 向量数据库中的关键作用 💡 什么是 etcd? 🧠 Milvus 架构简介 📦 etcd 在 Milvus 中的核心作用 🔧 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...
