如何制作可自定义的打孔键盘按钮
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要的工具和机器
| ||||
|
应用和在线服务
|
关于这个项目
上班或玩游戏无聊的时候,是不是经常有敲键盘的冲动?
点击这个可打孔的自定义键! 释放你的不快乐!
在这个项目中,我制作了可定制的可打孔键盘按钮,由压电元件、基于 ATmega32U4 的电路板、一个高值电阻器(1 兆欧)和一些海绵组成。
要打字,用户只需点击或踢他们想要的键。
硬件要求:
- Arduino Pro Micro
Micro 基于 ATmega32U4 微控制器,内置 USB,可将 Micro 识别为鼠标或键盘。
您可以使用任何使用ATmega32U4芯片的微控制器。
- 压电圆盘
压电是一种电子设备,当它因振动、声音或机械应变而发生物理变形时会产生电压。
在某些音乐礼品卡的扬声器中可以找到压电圆盘。如果您有压电元件,则无需从商店购买压电元件,使用螺丝刀和/或小刀将扬声器外壳撬开。然后取下金属板并提起电路板(它们可能被卡紧),这样您就可以拿到下面的压电盘。
- 1 兆欧电阻
这个高阻值电阻限制压电产生的电压和电流并保护模拟输入。
- 海绵
当对海绵施加力时,它会变形,当力释放时,它会恢复原来的形状。压电元件将放置在海绵之间,当有人撞击它时,产生的电压将通过arduino micro的模拟引脚发送。
电路图:
工作:
压电陶瓷是极化的,这意味着电压在特定方向上通过它们(或从它们出来)。将黑线(较低电压)接地,将红线(较高电压)连接到模拟引脚 0。另外,将 1 兆欧电阻器并联到压电元件以限制压电元件产生的电压和电流,以及保护模拟输入。
如果压电(作为爆震传感器)的输出强于某个阈值,您的板将根据程序执行键盘操作。
用围栏盖住海绵:
拿一块布,用针和线为海绵做一个围栏。我告诉我妈妈准备一个,她做了一个外壳来盖住电路和海绵。
将压电元件插入海绵:
代码:
#include const int KnockSensor =A0; // 压电连接到模拟引脚 0const int threshold =100; // 阈值 // 这些变量会改变:int sensorReading =0; // 存储从传感器读取的值的变量 pinvoid setup() { Keyboard.begin();}void loop() { // 读取传感器并将其存储在变量 sensorReading:sensorReading =analogRead(knockSensor); // 如果传感器读数大于阈值:if (sensorReading>=threshold) {// 自定义关键功能更改下面的 ASCII 值,请参阅 https://www.arduino.cc/en/Reference/ASCIIchart Keyboard.write (32); //空格键的ASCII值为32,delay(150);键盘.releaseAll(); }}
- 按照电路连接并上传代码
- 只需将其连接到计算机的 USB 端口,即可根据程序执行不同的键盘功能。
如果您想执行不同的键盘操作,请不要忘记修改代码。
更改仅以下 修改代码行
Keyboard.write("ASCII 值");
为什么这很酷?想想使用的可能性:
- 游戏快捷方式或控件
- 打开一个常用的应用程序
- 转到常用网站
- Windows 快捷方式,例如保存文档或缩小所有窗口
- 输入您的电子邮件地址或常用字符串
- 输入您的复杂密码
- 工作中的紧急按钮
非常感谢您的阅读,如果您需要更多信息,请随时在评论中提问,我会尽力回答您。
快乐制作!
代码
- customizable_punchable_keyboard_button.ino
customizable_punchable_keyboard_button.inoArduino
#includeconst int KnockSensor =A0; // 压电连接到模拟引脚 0const int threshold =100; // 阈值 // 这些变量会改变:int sensorReading =0; // 存储从传感器读取的值的变量 pinvoid setup() { Keyboard.begin();}void loop() { // 读取传感器并将其存储在变量 sensorReading 中: sensorReading =analogRead(knockSensor); // 如果传感器读数大于阈值: if (sensorReading>=threshold) { // 自定义关键函数更改下面的 ASCII 值,请参阅 https://www.arduino.cc/en/Reference/ASCIIchart Keyboard.write (32); //空格键的ASCII值为32,delay(150);键盘.releaseAll(); }}
示意图
circuit_diagram_dCHO19d2OK.fzz制造工艺