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

Smartphone-gesteuerte Maus

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
HC-05 Bluetooth-Modul
× 1
Jumper (generisch)
× 1

Apps und Onlinedienste

Arduino-IDE
IDLE(Python GUI)
MIT App Inventor Bluetooth-Maussteuerung

Über dieses Projekt

Dieses Projekt ähnelt meiner vorherigen Arbeit, bei der ich einen Joystick verwendet habe, um einen PC-Cursor zu steuern. Der Hauptunterschied besteht darin, dass ich eine Smartphone-Anwendung erstellt habe, die 2 virtuelle Joysticks enthält, um den Cursor zu bewegen sowie den Bildschirm zu scrollen und auch wie ein normales Trackpad mit der linken und rechten Maustaste zu klicken.

Arbeiten

Das Projekt beinhaltet eine Smartphone-Anwendung, die die X- und Y-Achsen-Daten des Joysticks, den Scroll-Status, den Links- und Rechtsklick-Status über Bluetooth an das Arduino Uno sendet, das mit dem Bluetooth-Modul HC-05 verbunden ist. Diese Daten werden beim Empfang vom Arduino manipuliert, um Änderungen an der aktuellen Cursorposition vorzunehmen, um eine neue Position zu erhalten. Die resultierenden Daten zusammen mit dem Scroll- und Schaltflächenstatus werden dann als Ausgabe gedruckt, die von der Python-Skizze als gelesen erkannt wird. Die Python-Skizze wurde erstellt, um Mausaktionen mit dem Mausmodul auszuführen.

Über die Anwendung

Die Smartphone-Anwendung wird mit der MIT-App Inventor erstellt. Das Erstellen der App ist einfach, da Sie nur die gewünschten Blöcke hinzufügen müssen, um Ihre erforderliche Anwendung zu erstellen. Ich habe auf das Tutorial zur Tabletop-Robotik Bezug genommen, um sie zu erstellen. Der Hauptbildschirm der Anwendung sieht wie folgt aus-

Bevor die Hauptinformationen an das HC-05-Modul gesendet werden, sendet die Anwendung zuerst eine 1-Byte-Zahl (255), um den Beginn der Informationen anzuzeigen. Der Ablauf der Datenübertragung ist wie folgt-

1. Senden Sie '255', um den Start anzuzeigen

2. 1-Byte-Joystick-X-Achsen-Wert senden

3. 1-Byte-Joystick-Y-Achsen-Wert senden

4. Status von Linksklick, Rechtsklick und Scrollstatus (1 Byte) senden.

Die Daten von der Anwendung werden alle 20 Millisekunden an das Arduino UNO gesendet.

Arduinos Seite

Die Datenbytes aus der Anwendung werden vom Arduino mit Hilfe des Bluetooth-Moduls HC-05 empfangen. Das Arduino enthält die aktuellen Koordinaten des Cursors, wobei die x-Koordinaten von 0 bis 1279 reichen und die y-Koordinaten von 0 bis 799. Ich habe diese extremen Koordinaten von der Python-Funktion mouse.get_position() . erhalten das gibt die Koordinaten zurück, wenn der Cursor bewegt wird (wird in der Hauptskizze nicht verwendet).

Basierend auf den beim Bewegen des Joysticks empfangenen Daten wird dann die aktuelle Cursorposition (x- und y-Koordinaten) mit den von der Anwendung empfangenen Daten addiert/subtrahiert, um den Cursor auf die neue gewünschte Koordinate zu bewegen. Die endgültigen Daten werden dann in der unten angegebenen Reihenfolge auf dem seriellen Monitor gedruckt.

Die folgende Datensequenz wird schließlich vom Python-Programm gelesen, um sie auszuführen. Dazu müssen wir in den folgenden Schritten zusätzliche Module herunterladen, nämlich Maus und pyserial.

Python-Programmierung

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

(Für Windows)

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

Ausführung

Installieren Sie die Bluetooth-Maussteuerungs-App auf Ihrem Smartphone.

Laden Sie die Arduino-Skizze auf Ihr Arduino UNO hoch und folgen Sie der Schaltung wie im Schaltplan angegeben.

Python-Seite -

1. Kopieren Sie den Python-Code in eine Notepad-Datei. Ändern Sie den COM-Port in den COM-Port Ihres Arduino UNO und speichern Sie ihn als '.py'.

2. Öffnen Sie Python IDLE und öffnen Sie die Notepad-Datei daraus.

3. Führen Sie die Skizze aus.

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

Öffnen Sie die Smartphone-Anwendung und verbinden Sie sich mit dem Bluetooth-Modul und Sie werden die Cursorbewegung bemerken, wenn Sie die Richtung des Joysticks ändern.

Code

  • Arduino-Code
  • Python-Code
Arduino-CodeArduino
int datareceived[5] {0,0,0,0}; // Um ​​Byte von phoneint zu speichern in_byte =0;int array_index =0;int l_prev=0,r_prev=0; // vorheriger Status der linken und rechten Mausklicks void setup() {Serial.begin (9600); // startet den seriellen Monitor} int height=0,width=0;void loop() { int clicks=0; int-Empfindlichkeit =20; // Sie können die Empfindlichkeit anpassen int xpos=0,ypos=0;if (Serial.available ()> 0) { // Byte vom Telefon empfangen in_byte =Serial.read (); // in Byte in eine Variable speichern if (in_byte ==(255)) { // wenn die Variable 0 ist setze das Array inxed auf 0. array_index =0; } datareceived[array_index] =in_byte; // Nummer in Array speichern array_index =array_index +1; if(datareceived[1]>=110)xpos=map(datareceived[1],110,172,0,Sensitivität); // Beim Verschieben nach rechtsif(datareceived[1]<=70)xpos=map(datareceived[1],60,1,0,-sensitivity); // Beim Verschieben nach linksif(datareceived[2]>=110)ypos=map(datareceived[2],110,255,0,sensitivity); // Beim Verschieben nach untenif(datareceived[2]<=60)ypos=map(datareceived[2],70,1,0,-sensitivity); // Beim Verschieben nach obenif(datareceived[3]==1 &&l_prev==0) // UM eine einzelne Schaltfläche zu erkennen, drücken Sie clicks=1;else if(datareceived[3]==2 &&r_prev==0)clicks=2;sonst if(datareceived[3]==3 || datareceived[3]==4)clicks=datareceived[3]; // scrolll_prev=datareceived[3];r_prev=datareceived[3];if(xpos!=0 oder ypos!=0 oder clicks!=0) // wenn einer der Joysticks bewegt oder die Taste gedrückt oder gescrollt wird{ height=height+ypos;width=width+xpos;if(height>=799)height=799;if(height<=0)height=0;if(width>=1279)width=1279;if(width<=0)width=0;Serial.print(width);Serial.print(":");Serial.print(height);Serial.print(":");Serial.println(clicks);clicks=0;} }}
Python-CodePython
import mouse, 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')) (x,y,z)=data.split(":") # die Daten der x- und y-Achse lesen (x,y)=(int(x),int(y) ) # in int umwandeln mouse.move(x,y) # den Cursor zu den gewünschten Koordinaten bewegen, wenn '1' in z:mouse.click(button="left") #klickt Maustaste elif '2' in z:Maus. click(button="right") elif '3' in z:mouse.wheel(delta=-1) # Nach unten scrollen elif '4' in z:mouse.wheel(delta=1) # Nach oben scrollen 

Schaltpläne


Herstellungsprozess

  1. Raspberry Pi Roboter über Bluetooth gesteuert
  2. Gestengesteuerte interaktive Tischleuchte
  3. DIY-Voltmeter mit Arduino und Smartphone
  4. Alexa-gesteuerte LEDs über Raspberry Pi
  5. Joystick-gesteuertes RC-Auto
  6. Arduino mit Bluetooth zur Steuerung einer LED!
  7. Nunchuk-gesteuerter Roboterarm (mit Arduino)
  8. Sprachgesteuerter Roboter
  9. MobBob:DIY-Arduino-Roboter, der von einem Android-Smartphone gesteuert wird
  10. Sprachgesteuerte Bluetooth-Geräte mit OK Google