亲,“电路城”已合并升级到更全、更大、更强的「新与非网」。点击查看「新与非网」

本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于Arduino的定制无线键盘

发布时间:2021-11-04
分享到:

基于Arduino的定制无线键盘

发布时间:2021-11-04
分享到:

在这个项目中,我们将制作一些非常有用的东西!它是一个无线键盘,您可以连接到您的 PC 并为每个按钮分配您想要的任何快捷键或键序列!我已经做了这样一种方式,您可以自定义键盘以满足您的确切需求,例如,您想要的按钮数量并轻松配置按钮以执行您想要的任何操作。使用纽扣电池长时间运行也非常高效!我还制作了一个视频来展示这个键盘,我会完成每一步,所以如果你有兴趣,可以看看。这实际上是一个非常好的和简单的项目。让我们开始吧!

补给品

在我们讨论这个项目所需的组件之前,我认为最好先解释一下这个键盘的工作原理,这样你就可以完全了解发生了什么。这个想法是我们将有一个发射器端和一个接收器端。发射器是连接所有按钮的一侧,接收器侧通过 USB 连接连接到您的计算机。我们在发射器和接收器之间进行无线通信的方式是使用无线电信号。这如上图所示。这现在应该让您了解键盘的工作原理。

我们需要两个微控制器,一个用于发送端,一个用于接收端。

对于发射器,我们将使用Attiny84 微控制器。它非常小,价格低廉,可以像任何 Arduino 一样使用,最重要的是,它消耗的电流非常少,这是必需的,因为发射器侧将使用电池供电,当然我们希望它能够持续尽可能长的时间!
对于接收器端,我们将使用Pro Micro,您几乎可以使用任何 Arduino 来实现此目的,但是,它必须具有 HID 支持。我建议使用 Pro Micro。
现在为了在这两个微控制器之间进行通信,我们说我们将使用无线电信号,为此我们将使用nRF24L01无线电模块。您需要其中两个,每个微控制器一个。

为了给 Attiny85 供电,我们需要一块电池,我选择了CR2450纽扣电池,它提供 3 V 电压,容量为 500 mAh,对于这么小的尺寸来说非常棒。您还需要它的电池座。

因为电池的电压不稳定,会随着时间的推移而下降,所以无论电池处于什么电压,我们都需要使用电压调节器来保持电压不变。使用的电压调节器是MCP1700 3.3V,两个电容器(100 或 1000 µF 和 100,000 pF)直接焊接在其上,以保持信号平滑并处理电压尖峰。

您还需要一些按钮!您几乎可以使用任何类型的按钮,但由于我们首先要在面包板上制作它,因此请使用普通的面包板按钮开始。在我们在面包板上完成所有工作之后,我们就可以尽情享受并使用适当的按钮了!现在只是普通的面包板按钮是完美的。

这就是您需要的所有组件!如您所见,这将是一个非常简单的项目,但非常有用和实用。

为方便起见,这里仅列出所有组件,不做任何解释。

  • Attiny85
  • 专业微型
  • nRF24L01 (x2)
  • CR2450 纽扣电池(或任何电池)及其电池座。
  • MCP1700 3.3V 稳压器,上面焊接了两个电容器(100 或 1000 µF 和 100,000 pF)。
  • 按钮(任何种类)。

第 1 步:变送器侧接线

首先,让我们从创建发射器侧的接线开始,只需按照上面的面包板接线图进行操作。

第 2 步:接收器侧接线

然后让我们为接收器侧接线,同样,只需按照上图进行面包板接线即可。确保您仔细检查并确认所有连接。

第 3 步:发射器代码

对于代码来说,非常简单,你只需要做一些改动就可以满足你的需求。所有代码都可以在这个存储库中找到。

您需要使用 Arduino IDE 中的 Arduino 库管理器安装两个库:

  • TMRh20的 RF24。
  • 迈克尔·亚当斯的按钮。

对于发射器代码,您只需要进行两处更改:

的MAX_SHORTCUT_KEYS变量,这是字符的键盘快捷键/序列可以是最大数量。这是指定的,因此只有所需的字节数通过无线电信号发送。例如,如果您只打算使用最多 3 个字符长的快捷方式(例如 CTRL + SHIFT + R),则MAX_SHORTCUT_KEYS应为 3。您需要的字符越多,只需增加此变量即可。
的 BUTTONS_INFO 阵列。我建议在阅读本文时查看上图中的这个数组。每个按钮元素由两个值组成,第一个是按钮连接到微控制器的引脚编号。第二个是由空格分隔的字符串。字符由其十进制/整数值表示,可以在此处 和 此处找到 . 因此,例如,您有一个按钮连接到微控制器上的引脚 12,并且您希望在按下它时复制它(CTRL + C)。因此,您将使用提供的链接查找这些键的十进制值,CTRL 键为 128,“c”键为 99。因此数组中该按钮的条目将是 {12, "128 99"}。通过这种方式,您可以非常轻松地将每个按钮分配给您想做的任何事情(旁注:由于我们只使用字符串中的两个字符,因此在这种情况下我们的MAX_SHORTCUT_KEYS将设置为 2)。
这就是您需要进行的所有更改。现在您只需要将此代码上传到 Attiny。您可以在同一存储库中找到有关如何将代码上传到 Attiny 的说明。

第 4 步:接收方代码

对于接收器代码,您只需要进行一个简单的更改,即确保MAX_SHORTCUT_KEYS变量与发送器端的变量相匹配。然后只需将代码上传到微控制器(Pro Micro)。

第 5 步:面包板演示

现在,它几乎全部完成了。将电池连接到发射器端,然后通过 USB 连接将接收器端连接到计算机,现在您应该能够按下按钮,它会完全按照您对按钮进行编程来执行操作!您还会注意到根本没有明显的延迟,这太棒了!

第 6 步:电池消耗

还有一点要分享的是,这款键盘的预期电池寿命是多少!这一切都在上图中进行了总结。所以我们可以看到总电流消耗为 1.284 mA,这意味着如果键盘始终处于开启状态,我们将获得 16 天的电池寿命。然而,实际上,就像任何无线设备一样,我们在不使用时将其关闭,所以这意味着我们应该至少可以使用一块 CR2450 纽扣电池来使用 30 天,这实际上非常棒!

第 7 步:3D 打印和适当的按钮

现在,如果您有一台 3D 打印机,您可以使用我已经制作的设计(您可以在存储库中找到),也可以根据需要为任意数量的按钮制作您自己的设计。

我最终使用 Attiny88 微控制器作为发送端,因为它有 28 个引脚,因为你添加的每个按钮,你需要的引脚越多。对于按钮,我使用了 MX Cherry 开关。

第 8 步:完成!

就像这样,您已经创建了自己的自定义无线键盘,它将将放在您的办公桌上!

如果有任何不清楚的地方,我强烈建议您观看视频,如果您喜欢或发现该项目/视频对更实用和有趣的项目有用,可留言评论交流。

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论