ThimbleKrox - 用手指控制鼠标
组件和用品
| × | 1 | ||||
| × | 1 |
必要的工具和机器
|
应用和在线服务
|
关于这个项目
大家好,这里是我的第一个项目,ThimbleKrox,这是一个可以通过食指(或任何手指)的移动来控制鼠标指针的顶针。
第 1 步:所需材料和工具
所需材料:
- Arduino Micro
- MPU-6050
- 用于连接 Arduino 和 PC(微型 USB 转 USB)的电缆
- 跳线(连接 Arduino 和 MPU-6050)
- 一个松紧带(如果您想将 Arduino 固定在您的手上)
所需工具:
- 安装了 Arduino IDE 的计算机(用于启动 Arduino 中的代码)
- 烙铁(仅当 Arduino 没有预组装引脚连接器时)
- 3D 打印机(如果您想让顶针看起来很酷)
第二步:连接
将 arduino 的引脚连接到 MPU-6050 的引脚:
- 将 arduino 的 VCC 引脚连接到 VCC 引脚
- 将 GND 引脚连接到 GND
- 引脚 2 到 SDA
- 将 3 引脚连接到 SCL。
第 3 步:3D 打印(可选)
如果你想让你的顶针好看,如果你有3D打印机,你可以打印实体顶针。
我做了两个版本,一个是透明的,因此不需要印刷支撑,也不会太笨重,第二个是我尝试用蒸汽朋克风格做的,但不会让它太笨重(它仍然比透明的更笨重一个),但是这个需要打印支撑,并且只有在着色时才能返回最佳状态(对于 PLA,我与蛋彩画相处得很好)。两者都需要打印底部有两个内部突起的部分
图>
第 4 步:组装
使用 3D 打印顶针
要使用印刷的顶针安装所有东西,在进行连接后,需要将 MPU-6050 插入顶针的上腔内,将电缆放置在下腔中
没有 3D 打印顶针
在这种情况下,组装以更业余的方式完成,即将 MPU-6050 定位在感兴趣的手指的最后一个指骨中,并用胶带或橡皮筋将其挡住。
第 5 步:编码和校准
运行代码的第一件事是安装所需的库,即 Wire.h、I2Cdev.h、MPU6050.h 和 Mouse.h
这样做之后,我的建议是加载 ThimbleKrox 校准代码,戴上顶针并打开串行监视器(Ctrl + Shift + M)。
您现在应该会看到如下内容:
对 | gx =3165 gy =469 gz =-1055 | ax =15232 ay =2064 z =-4496
哪里显示了如果校准正确,你想让指针移动的方向,然后是校准所需的一些值。
现在您必须重新打开代码并转到标有“//校准线”的行并更改数值,直到获得正确的方向。 (每次更改代码中的值时都需要在Arduino中重新上传)
例如
串行监视器:
left | gx =3165 gy =469 gz =-1055 | ax =5232 ay =2064 z =-4496
校准代码:
if (ax> =15000) { // 校准线
right();
}
串行监视器标记为“左”,但我们希望将此行标记为“右”,因此我们需要将“15000”值更改为“5000”。这是因为,在这种情况下,我们必须确保检测到的“ax”大于代码中的值。我们知道它必须更大,因为在代码中有一个主要标志,我们必须查看串行监视器的“ax”,因为在代码中有“ax”。 (只需要更改代码的数值)
在 Arduino 中重新加载代码后,我们将拥有:
串行监视器:
对 | gx =3165 gy =469 gz =-1055 | ax =5232 ay =2064 z =-4496
校准代码:
if (ax> =5000) { // 校准线
right();
}
当校准代码中的所有校准行都已调整好,因此校准版本顶针起作用时,必须调整主代码的值以匹配校准代码。
例如
校准代码:
if (ax> =5000) { // 校准线
right();
}
主要代码:
if (ax> =15000) { // 校准线
right();
}
主要代码必须改为:
if (ax> =5000) { // 校准线
right();
}
现在是时候上传主要代码了
第六步:完成项目
现在是戴上你的顶针玩它的时候了!
代码
- TimbleKrox 代码
- TimbleKrox 校准代码
TimbleKrox 代码Arduino
ThimbleKrok的主要代码//通过手指移动控制鼠标指针的代码//要校准设备,请运行“ThimbleKrox校准代码”并按照https://www.hackster.io/projects上的教程进行操作/dd8881//校准需要改的行有"//calibration line" //code write by Magform#include#include #include #include MPU6050 mpu;int16_t ax, ay, az, gx, gy, gz;int vx, vy;int sensibility=10; //改变这个值来改变设备的灵敏度 void setup() { Serial.begin(9600); Wire.begin(); mpu.initialize(); if (!mpu.testConnection()) { //检查与MPU-6050的连接,如果没有连接停止工作while (1); }}void up(){ Mouse.move(0, -sensibility); }void down(){ Mouse.move(0, sensibility); }void left(){ Mouse.move(-sensibility, 0); }void right(){ Mouse.move(sensibility, 0); }void loop() { mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); if(ax>=15000){ //校准线 right(); } if(ax<=-9000){ //校准线left(); } if(ay<=-8000){ //校准线向上(); } if(ay>=10000){ //校准线向下(); }//取消注释以下几行以设置右击向上冲刺和左击向下冲刺(工作进行中部分)/* if(gy>=20000){ //校准线Mouse.click(MOUSE_RIGHT);延迟(100); } if(gy<=-20000){ //校准线 Mouse.click(MOUSE_LEFT);延迟(100); }*/延迟(10);}
TimbleKrox 校准代码Arduino
校准 ThimbleKrox的代码//校准 ThimbleKrox 的代码//要校准设备运行此代码并按照 https://www.hackster.io/projects/dd8881///需要的行找到的教程要更改(作为其他代码)校准有“//calibration line” //code write by Magform#include#include #include #include MPU6050 mpu;int16_t ax, ay, az, gx, gy, gz;int vx, vy;int Nwrong=1;void setup() { Nwrong=1; Serial.begin(9600); Wire.begin(); mpu.initialize(); while(Nwrong!=0){ if (!mpu.testConnection()) { Serial.print("错误的连接号:"); Serial.print(错误);错++;延迟(1000); }else{ 错误=0; } }}void up(){ Serial.print(" up "); }void down(){ Serial.print(" down "); }void left(){ Serial.print(" left "); }void right(){ Serial.print(" right "); }void rightclick(){ Serial.print(" RightClick ");; }void leftclick(){ Serial.print(" LeftClick ");; } void loop() { mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); if(ax>=15000){ //校准线 right(); } if(ax<=-9000){ //校准线left(); } if(ay<=-8000){ //校准线向上(); } if(ay>=10000){ //校准线向下(); }//取消注释以下几行以设置右击向上冲刺,左击向下冲刺(工作进行中部分)/* if(gy>=20000){ //校准线 rightclick();延迟(100); } if(gy<=-20000){ //校准线leftclick();延迟(100); }*/ Serial.print(" | gx="); Serial.print(gx); Serial.print(" gy="); Serial.print(gy); Serial.print(" gz="); Serial.print(gz); Serial.print(" | ax="); Serial.print(ax); Serial.print(" ay="); Serial.print(ay); Serial.print(" az="); Serial.print(az); Serial.print("\n");延迟(5000); }
TimbleKrox
https://github.com/Magform/ThimbleKrox定制零件和外壳
ThimbleKrox 3D 打印模型
对于那些喜欢从 thingiverse.com 上的 ThingiverseCAD 文件中获取模型的人 需要支持不需要支持示意图
制造工艺