Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Joystick-gesteuerte Maus

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
Doppelachsen-Joystick
× 1

Apps und Onlinedienste

Arduino-IDE
IDLE(Python GUI)

Über dieses Projekt

Als Alternative zur Verfolgung des Computercursors mit einer Maus oder einem Trackpad habe ich dieselbe Anwendung mit Hilfe eines Joysticks erstellt. Der Joystick kann den Cursor in jede Richtung bewegen (X- und Y-Achse) und führt auch eine Klickfunktion mit dem eingebauten Joystick-Schalter aus.

Grundlagen-

Ein Joystick besteht schlicht und einfach aus 2 Potentiometern, die in x- und y-Richtung ausgerichtet sind. Das Arduino liest Analogwerte vom Joystick im Bereich von 0 bis 1023. Wenn sich der Joystick in seiner Standardposition (Mitte) befindet, wird der Analogwert auch nahe 500 (zwischen 0 und 1023).

Die Arduino-Skizze ist so programmiert, dass, wenn der Joystick von der Mitte wegbewegt wird, je nach Position Werte im Bereich von -Empfindlichkeit bis +Empfindlichkeitswert (Standardwert ist 10) gedruckt werden. Wenn also der Joystick in eine Extremposition bewegt wird, druckt das Arduino den Wert 10 und wenn der Joystick in eine andere Extremposition bewegt wird, wird -10 gedruckt.

Um separate Werte für die x- und y-Richtung zu drucken, verwenden wir ":" zwischen den Werten der x- und y-Richtung. Beispiel:

Der Status der Joystick-Taste (SW) wird auf dem seriellen Monitor nach den x- und y-Werten gedruckt (1/0).

Damit der Laptop/Computer die Werte erkennt, benötigen wir das pyautogui-Modul von Python.

Python-Programmierung

(bearbeitet 11.12.2020 - Bibliothek von 'pyautogui' auf 'maus' geändert)

Der Benutzer muss Python 3 auf seinem Laptop/Computer installiert haben. Es kann hier heruntergeladen werden.

Kopieren Sie nach der Installation den Pfad zum Speicherort der Python-Datei.

Die folgenden Schritte sind an der Eingabeaufforderung auszuführen. Öffnen Sie die Eingabeaufforderung und geben Sie Folgendes ein-

1. cd

2. py –m pip install –-upgrade pip

3. py –m pip install mouse

4. py -m pip install pyserial

Die Maus -Modul wird verwendet, um Mausaktionen und pyserial auszuführen Modul wird verwendet, um Daten vom Arduino zu senden / zu empfangen. Ich hatte die notwendigen Module bereits installiert, also habe ich das bekommen

Das Python-Programm liest die vom Arduino gedruckten Daten und erkennt das x und y Richtungswerte sowie den Status des Schalters (SW).

Die aktuellen Koordinaten des Cursors erhält man aus der Mausfunktion mouse.get_position() die die X- und Y-Koordinaten des Cursors in Form von Pixeln liefert.

Wenn der Joystick bewegt wird, werden die vom Arduino bereitgestellten Analogwerte mit der aktuellen Cursorposition addiert, um den Cursor in die gewünschte Richtung zu bewegen.

Um den Cursor in die angegebene Richtung zu bewegen, verwenden Sie die Funktion mouse.move(X+x,Y+y) erfüllt diesen Zweck.

wobei X und Y die aktuelle Cursorposition sind und x und y die vom Arduino bereitgestellten Inkrement- / Dekrementpositionen sind.

Beispiel:mouse.moveTo(100,150) bewegt den Cursor auf 100 Pixel auf der x-Achse und auf 150 Pixel auf der y-Achse.

Um eine Klickoperation basierend auf dem SW-Status durchzuführen, mouse.click(button="left") verwendet wird.

Endgültige Ausführung

Laden Sie die Arduino-Skizze (siehe unten) auf Ihr Arduino UNO hoch und verbinden Sie den Joystick mit den Arduino-Pins wie im Schaltplan angegeben.

Nachdem Sie sichergestellt haben, dass Maus und pyserial auf Ihrem Computer/Laptop installiert sind, führen Sie die folgenden Schritte aus.

1. Kopieren Sie die Python-Skizze in eine Notepad-Datei. Geben Sie den richtigen COM-Port des Arduino an. Über den Gerätemanager können Sie den COM-Port abrufen, an den das Arduino-Board angeschlossen ist. Speichern Sie die Datei als ".py", nachdem Sie Änderungen vorgenommen haben.

2. Öffnen Sie Pythons IDLE (Python-GUI) und öffnen Sie die Notepad-Datei daraus.

3. Führen Sie das Modul aus.

Sie werden dann zurück zum Bildschirm in Abb. 4 geleitet

Falls Sie Fehler sehen, starten Sie den IDLE neu und prüfen Sie, ob Sie den richtigen COM-Port des Arduino angegeben haben.

Wenn keine Fehler vorliegen, bewegen Sie den Joystick und Sie sehen die Bewegung des Cursors.

Code

  • Arduino-Code
  • Python-Code
Arduino-CodeArduino
///////////////////////////////// Joystick-gesteuerte Maus ////// von Shubham Santosh/ ///////////////////////////////////void setup () { Serial.begin (9600); pinMode (9, EINGANG); // SW-Pin digitalWrite (9, HIGH);}int prev_state=0; // vorheriger Zustand der switchvoid-Schleife () { int z =0, xpos =0, ypos =0; int x=analogRead(A0); int y=analogRead(A1); int-Empfindlichkeit =10; // Sie können die Empfindlichkeit basierend auf Ihrem Komfort anpassen if(x>=550) // wenn nach oben verschoben xpos=map(x,550,1023,0,sensitivity); if(x<=450) // wenn nach unten verschoben xpos=map(x,450,0,0,-sensitivity); if(y>=550) // wenn nach rechts verschoben ypos=map(y,550,1023,0,sensitivity); if(y<=450) // beim Verschieben nach links ypos=map(y,450,0,0,-sensitivity); int curr_state=digitalRead(9); if(curr_state==1 &&prev_state==0) // wenn SW gedrückt wird z=1; sonst z=0; if (xpos! =0 oder ypos! =0 oder z ==1) // druckt nur, wenn der Joystick bewegt wird {Serial.print (xpos); // die Daten drucken und durch ":" trennen Serial.print(":"); Serial.print (ypos); Serial.print (":"); Serial.println(z); } prev_state=curr_state; Verzögerung(10); // für Normalbetrieb}
Python-CodePython
# Joystick-gesteuerte Maus# Von Shubham Santosh# zuletzt bearbeitet 11.12.2020Maus importieren, sysimport time import serialmouse.FAILSAFE=FalseArduinoSerial=serial.Serial('com3',9600) #Geben Sie den richtigen COM-Port antime.sleep(1 ) #Verzögerung von 1 Sekunde während 1:data=str(ArduinoSerial.readline().decode('ascii')) #die Daten lesen (x,y,z)=data.split(":") # weist x zu, y und z (X,Y)=mouse.get_position() #lesen die aktuelle Position des Cursors (x,y)=(int(x),int(y)) #konvertieren in int mouse.move(X+x,Yy ) #Cursor an die gewünschte Position bewegen, wenn '1' in z:# Status der SW lesen mouse.click(button="left") # klickt mit der linken Taste 

Schaltpläne


Herstellungsprozess

  1. Computermaus
  2. Temperaturgesteuerter Lüfter
  3. Raspberry Pi-kontrollierte Aquaponik
  4. Bewegungsgesteuerte AWS IoT-Schaltfläche
  5. Raspberry Pi Roboter über Bluetooth gesteuert
  6. WLAN-gesteuerter Roboter mit Raspberry Pi
  7. MajorTom:Alexa Voice Controlled ARDrone 2.0
  8. Joystick-gesteuertes RC-Auto
  9. Joystick-Spiel
  10. Alloy 42 Legierung mit kontrollierter Expansion