工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

ジョイスティック制御のマウス

コンポーネントと消耗品

>
Arduino UNO
× 1
デュアルアクシスジョイスティック
× 1

アプリとオンラインサービス

>
Arduino IDE
IDLE(Python GUI)

このプロジェクトについて

マウスまたはトラックパッドを使用してコンピューターのカーソルを追跡する代わりに、ジョイスティックを使用してこれと同じアプリケーションを作成しました。ジョイスティックはカーソルを任意の方向(x軸とY軸)に移動でき、内蔵のジョイスティックのスイッチでクリック機能も実行します。

基本-

ジョイスティックは、x方向とy方向に配置された2つのポテンショメータで構成されています。 arduinoは、ジョイスティックから0から1023の範囲のアナログ値を読み取ります。したがって、ジョイスティックがデフォルト(中央)の位置にある場合、アナログ値も500に近くなります(0から1023の間)。

<図>

arduinoスケッチは、ジョイスティックを中心から離すと、位置に応じて-sensitiveから+ sensitive値(デフォルトのvlaueセットは10)の範囲の値を出力するようにプログラムされています。したがって、ジョイスティックを1つの極端な位置に動かすと、arduinoは値10を出力し、ジョイスティックを他の極端な位置に動かすと、-10を出力します。

x方向とy方向に別々の値を出力するには、x方向とy方向の値の間に「:」を使用します。例:

<図>

ジョイスティックボタン(SW)のステータスは、x値とy値の後にシリアルモニターに印刷されます(1/0)。

ラップトップ/コンピューターが値を認識するためには、Pythonのpyautoguiモジュールが必要です。

Pythonプログラミング

(2020年12月11日編集-ライブラリを「pyautogui」から「mouse」に変更)

ユーザーは、ラップトップ/コンピューターにpython3をインストールする必要があります。こちらからダウンロードできます。

インストール後、Pythonファイルの場所のパスをコピーします。

<図>

コマンドプロンプトで次の手順を実行します。コマンドプロンプトを開き、次のように入力します-

1. cd

2. py –m pip install –-upgrade pip

3. py –mpipインストールマウス

4. py -m pip install pyserial

マウス モジュールは、マウスアクションと pyserial を実行するために使用されます モジュールは、arduinoからデータを送受信するために使用されます。必要なモジュールをすでにインストールしているので、これを入手しました

<図>

Pythonプログラムは、Arduinoによって印刷されたデータを読み取り、 x を認識するように作成されています。 および y 方向の値とスイッチ(SW)のステータス。

カーソルの現在の座標は、マウス関数 mouse.get_position()から取得されます。 これは、カーソルのX座標とY座標をピクセルの形式で提供します。

ジョイスティックを動かすと、arduinoによって提供されるアナログ値が現在のカーソルの位置に追加され、カーソルが目的の方向に移動します。

カーソルを指定された方向に移動するには、関数 mouse.move(X + x、Y + y) この目的を満たします。

ここで、XとYは現在のカーソルの位置であり、xとyはarduinoによって提供されるインクリメント/デクリメント位置です。

例: mouse.moveTo(100,150) カーソルをx軸で100ピクセル、y軸で150ピクセルに移動します。

SWステータスに基づいてクリック操作を実行するには、 mouse.click(button ="left") 使用されます。

最終実行

arduinoスケッチ(以下に表示)をarduino UNOにアップロードし、回路図に示されているようにジョイスティックをarduinoピンに接続します。

マウスとpyserialがコンピュータ/ラップトップにインストールされていることを確認したら、次の手順を実行します。

1.pythonスケッチをメモ帳ファイルにコピーします。 arduinoの正しいCOMポートを指定してください。デバイスマネージャから、arduinoボードが接続されているCOMポートを取得できます。変更を加えたら、ファイルを「.py」として保存します。

<図> <図>

2. pythonのIDLE(python GUI)を開き、そこからメモ帳ファイルを開きます。

<図> <図>

3.モジュールを実行します。

<図>

その後、図4の画面に戻ります

エラーが表示された場合は、IDLEを再起動し、arduinoの正しいCOMポートについて言及しているかどうかを確認してください。

エラーがない場合は、ジョイスティックを動かすと、カーソルの動きが表示されます。

コード

  • Arduinoコード
  • Pythonコード
Arduinoコード Arduino
 /////////////////////////////////ジョイスティック制御マウス////// by Shubham Santosh / //////////////////////////////////// void setup(){Serial.begin(9600); pinMode(9、INPUT); // SWピンdigitalWrite(9、HIGH);} int prev_state =0; // switchvoid loop()の以前の状態{int z =0、xpos =0、ypos =0; int x =analogRead(A0); int y =analogRead(A1); intsensitive =10; //快適さに基づいて感度を調整できますif(x> =550)//上に移動したときxpos =map(x、550,1023,0、sensitive); if(x <=450)//下に移動したときxpos =map(x、450,0,0、-sensitive); if(y> =550)//右に移動した場合ypos =map(y、550,1023,0、sensitive); if(y <=450)//左に移動した場合ypos =map(y、450,0,0、-sensitive); int curr_state =digitalRead(9); if(curr_state ==1 &&prev_state ==0)// SWが押されたときz =1;それ以外の場合、z =0; if(xpos!=0またはypos!=0またはz ==1)//ジョイスティックを動かしたときにのみ印刷します{Serial.print(xpos); //データを出力し、 ":" Serial.print( ":");で区切ります。 Serial.print(ypos); Serial.print( ":"); Serial.println(z); } prev_state =curr_state; delay(10); //通常の操作の場合} 
Pythonコード Python
#ジョイスティック制御マウス#Shubham Santosh#最終編集済み2020年12月11日importマウス、sysimport time import serialmouse.FAILSAFE =FalseArduinoSerial =serial.Serial( 'com3'、9600)#正しいCOM porttime.sleep(1 )#1秒の遅延1:data =str(ArduinoSerial.readline()。decode( 'ascii'))#データを読み取る(x、y、z)=data.split( ":")#xに割り当て、 yおよびz(X、Y)=mouse.get_position()#カーソルの現在位置を読み取る(x、y)=(int(x)、int(y))#intに変換mouse.move(X + x、Yy )#zの「1」の場合はカーソルを目的の位置に移動します:#SWのステータスを読み取りますmouse.click(button ="left")#左ボタンをクリックします

回路図


製造プロセス

  1. コンピューターのマウス
  2. 温度制御ファン
  3. ラズベリーパイ制御アクアポニックス
  4. モーションコントロールされたAWSIoTボタン
  5. Bluetoothで制御されるRaspberryPi Robot
  6. RaspberryPiを使用したWifi制御ロボット
  7. MajorTom:Alexa Voice Controlled ARDrone 2.0
  8. ジョイスティック制御のRCカー
  9. ジョイスティックゲーム
  10. Nunchuk制御ロボットアーム(Arduino付き)
  11. 合金 42 制御膨張合金