ThimbleKrox-指でマウスを操作する
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 |
必要なツールとマシン
> |
|
アプリとオンラインサービス
> |
|
このプロジェクトについて
みなさん、こんにちは。これが私の最初のプロジェクト、ThimbleKroxです。これは、インデックス(または任意の指)を動かしてマウスポインタを制御できるシンブルです。
ステップ1:必要な材料とツール
必要な材料:
- Arduino Micro
- MPU-6050
- ArduinoとPCを接続するケーブル(マイクロUSBからUSB)
- ジャンパー(ArduinoとMPU-6050を接続するため)
- エラスティック(Arduinoを手に取り付けたい場合)
必要なツール:
- Arduino IDEがインストールされているコンピューター(Arduinoでコードを起動するため)
- はんだごて(Arduinoにピンコネクタが事前に組み立てられていない場合のみ)
- 3Dプリンター(指ぬきをかっこよく見せたい場合)
ステップ2:接続
arduinoのピンをMPU-6050のピンに接続します:
- arduinoのVCCをピンVCCにピン留め
- GNDをGNDに固定
- ピン2をSDAに
- ピン3をSCLに接続します。
ステップ3:3D印刷(オプション)
指ぬきの見栄えを良くしたい場合、および3Dプリンターを使用している場合は、物理的な指ぬきを印刷できます。
私は2つのバージョンでそれを行いました。1つはサポートを印刷する必要がなく、かさばりすぎないクリアです。もう1つは、かさばりすぎずにスチームパンクスタイルでやろうとしたものです(クリアよりもかさばります)。 1つ)、しかしこれはサポートが印刷され、着色されている場合にのみ最良に戻る必要があります(PLAの場合、私はテンペラとうまくやっています)。どちらも、下部に2つの内部突起があるパーツで印刷する必要があります
<図> <図>
ステップ4:組み立て
3Dプリントされたシンブルを使用
印刷されたシンブルですべてを取り付けるには、接続を行った後、下部キャビティのケーブルを収容するシンブルの上部キャビティ内にMPU-6050を挿入する必要があります
3Dプリントされた指ぬきなし
この場合、組み立てはよりアマチュアな方法で行われます。つまり、MPU-6050を関心のある指の最後の指骨に配置し、粘着テープまたはゴムでブロックします。
ステップ5:コードとキャリブレーション
コードを実行するために最初に行うことは、Wire.h、I2Cdev.h、MPU6050.h、およびMouse.hである必要なライブラリをインストールすることです
これを行った後、ThimbleKroxキャリブレーションコードをロードし、シンブルを装着してシリアルモニターを開くことをお勧めします(Ctrl + Shift + M)。
次のように表示されます:
right | gx =3165 gy =469 gz =-1055 | ax =15232 ay =2064 az =-4496
正しくキャリブレーションされている場合、ポインターを動かしたい方向と、キャリブレーションに必要ないくつかの値が示されています。
ここで、コードを再度開いて、「//キャリブレーションライン」とマークされたラインに移動し、正しい方向が得られるまで数値を変更する必要があります。 (コードの値を変更するたびに、Arduinoに再アップロードする必要があります)
例
シリアルモニター:
左| gx =3165 gy =469 gz =-1055 | ax =5232 ay =2064 az =-4496
キャリブレーションコード:
if(ax> =15000){//検量線
right();
}
シリアルモニターは「左」をマークしますが、この行を「右」とマークしたいので、「15000」の値を「5000」に変更する必要があります。これは、この場合、検出された「ax」がコードの値よりも大きいことを確認する必要があるためです。コードには大きな符号があるため、それは大きくなければならないこと、およびコードには「ax」があるため、シリアルモニターの「ax」を確認する必要があることを理解しています。 (コードの数値のみを変更する必要があります)
Arduinoにコードをリロードすると、次のようになります。
シリアルモニター:
right | gx =3165 gy =469 gz =-1055 | ax =5232 ay =2064 az =-4496
キャリブレーションコード:
if(ax> =5000){//検量線
right();
}
キャリブレーションコード内のすべてのキャリブレーションラインが調整され、キャリブレーションバージョンのシンブルが機能する場合、メインコードの値をキャリブレーションコードと一致するように調整する必要があります。
例
キャリブレーションコード:
if(ax> =5000){//検量線
right();
}
メインコード:
if(ax> =15000){//検量線
right();
}
メインコードを次のように変更する必要があります:
if(ax> =5000){//検量線
right();
}
次に、メインコードをアップロードします
ステップ6:プロジェクトを終了する
今こそ指ぬきを身に着けて遊んでみましょう!
コード
- ThimbleKroxコード
- ThimbleKroxキャリブレーションコード
ThimbleKroxコード Arduino
ThimbleKrokのメインコード//指の動きでマウスポインタを制御するコード//デバイスを調整するには、「ThimbleKrox調整コード」を実行し、https://www.hackster.io/projectsにあるチュートリアルに従います。 / dd8881 ///キャリブレーションのために変更する必要のあるラインには「//キャリブレーションライン」があります// 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()){//(1)の間に動作する接続停止がない場合は、MPU-6050との接続を確認します。 }} 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){//検量線down(); } //次の行のコメントを解除して、スプリントを上にした右クリックとスプリントを下にした左クリックを設定します(作業中の部分)/ * if(gy> =20000){//キャリブレーションラインMouse.click(MOUSE_RIGHT); delay(100); } if(gy <=-20000){//キャリブレーションラインMouse.click(MOUSE_LEFT); delay(100); } * / delay(10);}
ThimbleKroxキャリブレーションコード Arduino
ThimbleKroxのキャリブレーション用コード// ThimbleKroxをキャリブレーションするためのコード//デバイスをキャリブレーションするには、このコードを実行し、https://www.hackster.io/projects/dd8881///にあるチュートリアルに従ってください。キャリブレーションのために(他のコードとして)変更されるのは「//キャリブレーションライン」// 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(Nwrong);間違った++; delay(1000); } else {Nwrong =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){//検量線down(); } //次の行のコメントを解除して、スプリントを上にした右クリックとスプリントを下にした左クリックを設定します(作業中の部分)/ * if(gy> =20000){//検量線rightclick(); delay(100); } if(gy <=-20000){//検量線leftclick(); delay(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"); delay(5000); }
ThimbleKrox
https://github.com/Magform/ThimbleKrox カスタムパーツとエンクロージャー
ThimbleKrox3D印刷可能モデル
thingsiverse.comのThingiverseCADファイルからモデルを取得することを好む人のために 回路図
製造プロセス
- ArduinoとRaspberryPiを使用してインターネット制御のビデオストリーミングロボットを構築する
- シーリングファンに対してAlexaコントロールを有効にする
- Arduinoでコインアクセプターを制御する
- Arduinoコントロールセンター
- LEDを制御するBluetoothを搭載したArduino!
- Arduino加湿器制御
- Arduino Nano:ジョイスティックで2つのステッピングモーターを制御
- CortanaでLEDを制御する
- AlexaとArduinoIoTCloudを使用したテレビのフルコントロール
- スマートフォンを使用してライトシステムを制御する
- ArduinoUnoを使用した25kHz4ピンPWMファン制御