こんばんは!
今回は、ジョイスティックとタクトスイッチを使ってPC用のマウスを作ってみようと思います。
使用するもの
・Arduinoメインボード(https://amzn.to/2vkPIUH)
・USBケーブル(https://amzn.to/2UHhntl)
・ブレッドボード(https://amzn.to/38eNi8u)
・ジャンパワイヤ (https://amzn.to/39uBU8T)
・ジョイスティック(https://amzn.to/2CfEjVZ)
・タクトスイッチ(https://amzn.to/3aVZe0k)
手順
まずハード側からやっていきます。
以下のように接続します。
今回はプルアップ抵抗を入れています。
これでハード側は終わりです。
次にArduino IDEを起動して、次のコードを書いていきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include <Mouse.h> int yPin = A0; int xPin = A1; int LeftButtonPin = 9; int RightButtonPin = 8; const int adjust = 250; int yPos,xPos; int yIniPos,xIniPos; void setup() { Mouse.begin(); pinMode(yPin, INPUT); pinMode(xPin, INPUT); pinMode(LeftButtonPin, INPUT); pinMode(RightButtonPin, INPUT); delay(1000); yIniPos = analogRead(yPin); xIniPos = analogRead(xPin); } void loop() { yPos = analogRead(yPin) - yIniPos; xPos = analogRead(xPin) - xIniPos; if (yPos != 0) { Mouse.move(0, yPos / adjust, 0); } if (xPos != 0) { Mouse.move(xPos / adjust, 0, 0); } int LbuttonState = digitalRead(LeftButtonPin); int RbuttonState = digitalRead(RightButtonPin); if (LbuttonState == LOW) { if(!Mouse.isPressed(MOUSE_LEFT)){ Mouse.press(MOUSE_LEFT); } }else if(Mouse.isPressed(MOUSE_LEFT)){ Mouse.release(MOUSE_LEFT); } if (RbuttonState == LOW) { if(!Mouse.isPressed(MOUSE_RIGHT)){ Mouse.press(MOUSE_RIGHT); } }else if(Mouse.isPressed(MOUSE_RIGHT)){ Mouse.release(MOUSE_RIGHT); } } |
今回はMouseライブラリを使用しています。
Mouseライブラリは名前の通り、マウスの操作に関する操作や処理がまとめられているライブラリです。
Arduinoに最初から存在しているライブラリなので、Mouseライブラリをインストールする必要はありません。
今回のコードではジョイスティックの傾きをマウスカーソルの移動、タクトスイッチを押すことをマウスのクリックとしています。
マウスの移動の判定は、ジョイスティックの現在の値と1つ前のloop時の値を比較し、その差を移動量としています。
また、左のタクトスイッチのON/OFFを左クリック、右のタクトスイッチのON/OFFを右クリックとし、タクトスイッチが押されたときの信号を読み取って、ArduinoがPCにクリックの命令を出します。
コードのメソッドなどについてはジョイスティックとタクトスイッチの過去記事と、Mouse libraryの公式リファレンスを参照してください。
これをマイコンボードに書き込んで以下の動画のように動かしてみてください。
とても使いづらいですが使用できると思います(笑)
まとめ
今回はArduino leonardo、ジョイスティックとタクトスイッチを使って自作のマウスを作ってみました。
このマウスが役に立つ日が来るのかはわかりませんが、これまで使ったことのある部品で1つのものを作成するとなんだかうれしい気持ちになります。
今回はこれで終わります。
ではまた!