Wie mache ich eine Arduino-basierte Handgestensteuerung deines Computers?

Handgestensteuerung ist keine neue Sache. Wir haben viele Roboter gesehen, die durch Handgesten gesteuert werden. Die Technologie bewegt sich so schnell, dass alles, woran wir denken, bereits auf dem Markt vorhanden ist. Ein sehr interessantes Projekt ist die Steuerung Ihres PCs oder Laptops mit einer kleinen Mikrocontroller-Karte namens Arduino Uno. Mit An Arduino können wir einige einfache Funktionen ausführen, indem wir einfach mit der Hand winken, anstatt eine Maus oder die Tastatur zu verwenden. Diese Funktionen umfassen das Verschieben von Bildern, das Scrollen auf den Seiten nach oben und unten, das Wechseln zwischen den Registerkarten eines Webbrowsers, das Abspielen oder Anhalten eines Videos, das Wechseln zwischen Desktopanwendungen usw.

Schaltplan

Wie führe ich verschiedene Operationen auf dem PC mit Handgesten aus?

Nachdem wir nun die Zusammenfassung des Projekts kennen, lassen Sie uns vorwärts gehen und verschiedene Informationen sammeln, um mit der Arbeit zu beginnen. Wir werden zuerst eine Liste der Komponenten erstellen, sie dann kurz untersuchen und dann alle Komponenten zu einem funktionierenden System zusammenbauen.

Schritt 1: Sammeln der Komponenten

Der beste Ansatz, um ein Projekt zu starten, besteht darin, eine Liste der Komponenten zu erstellen und eine kurze Untersuchung dieser Komponenten durchzuführen, da niemand nur wegen einer fehlenden Komponente in der Mitte eines Projekts bleiben möchte. Eine Liste der Komponenten, die wir in diesem Projekt verwenden werden, finden Sie unten:

Schritt 2: Studieren der Komponenten

Da haben wir eine vollständige Liste aller Komponenten. Lassen Sie uns fortfahren und eine kurze Studie über die Funktionsweise aller Komponenten durchführen.

Arduino Nano ist eine Mikrocontroller-Karte, die verschiedene Operationen in verschiedenen Schaltkreisen ausführt. Es erfordert einen C-Code, der dem Board mitteilt, welche Aufgaben wie ausgeführt werden sollen. Es verfügt über 13 digitale E / A-Pins, sodass wir 13 verschiedene Geräte bedienen können. Arduino Nano hat genau die gleiche Funktionalität wie Arduino Uno, ist jedoch recht klein. Der Mikrocontroller auf der Arduino Nano-Karte ist ATmega328p. Wenn Sie mehr als 13 Geräte steuern möchten, verwenden Sie Arduino Mega.

Arduino Nano

Die HC-SR04-Karte ist ein Ultraschallsensor, mit dem der Abstand zwischen zwei Objekten bestimmt wird. Es besteht aus einem Sender und einem Empfänger. Der Sender wandelt das elektrische Signal in ein Ultraschallsignal um und der Empfänger wandelt das Ultraschallsignal wieder in das elektrische Signal um. Wenn der Sender eine Ultraschallwelle sendet, wird diese nach einer Kollision mit einem bestimmten Objekt reflektiert. Die Entfernung wird anhand der Zeit berechnet, die das Ultraschallsignal benötigt, um vom Sender zum Empfänger zurückzukehren.

Ultraschallsensor

Schritt 3: Zusammenbau der Komponenten

Jetzt wissen wir, wie die Komponenten funktionieren, die wir verwenden werden. Beginnen wir mit der Montage der Komponenten, um ein endgültiges Arbeitsprodukt zu erhalten.

  1. Verbinden Sie die Vcc- und Erdungsstifte der beiden Ultraschallsensoren mit 5 V und Masse der Arduino Nano-Platine. Der Trigger- und Echo-Pin des ersten Ultraschallsensors ist mit Pin 11 bzw. Pin 10 von Arduino Nano verbunden. Der Trigger- und Echo-Pin des zweiten Ultraschallsensors ist mit Pin6 bzw. Pin5 des Arduino Nano verbunden.
  2. Befestigen Sie die Arduino Nano-Platine an der Rückseite des Klebebandes des Laptop-Bildschirms. Beide Ultraschallsensoren werden an beiden oberen Ecken des Laptops angebracht.

Schritt 4: Erste Schritte mit Arduino

Wenn Sie mit der Arduino IDE noch nicht vertraut sind, machen Sie sich keine Sorgen, da im Folgenden eine schrittweise Anleitung zum Einrichten und Verwenden der Arduino IDE mit einer Mikrocontroller-Karte erläutert wird.

  1. Laden Sie die neueste Version von Arduino IDE von herunter Arduino.
  2. Schließen Sie Ihr Arduino Nano-Board an Ihren Laptop an und öffnen Sie das Bedienfeld. Klicken Sie dann auf Hardware und Sound. Klicken Sie nun auf Geräte und Drucker. Hier finden Sie den Anschluss, an den Ihre Mikrocontroller-Karte angeschlossen ist. In meinem Fall ist es COM14, aber es ist auf verschiedenen Computern unterschiedlich.Port finden
  3. Klicken Sie auf das Tool-Menü und stellen Sie das Board im Dropdown-Menü auf Arduino Nano ein.Board einstellen
  4. Stellen Sie im selben Tool-Menü den Port auf die Portnummer ein, die Sie zuvor in den Geräten und Druckern beobachtet haben.Port einstellen
  5. Stellen Sie im selben Tool-Menü den Prozessor auf ATmega328P (Old Bootloader) ein.Prozessor
  6. Laden Sie den unten angehängten Code herunter und fügen Sie ihn in Ihre Arduino IDE ein. Klicken Sie auf die Schaltfläche zum Hochladen, um den Code auf Ihrer Mikrocontroller-Karte zu brennen.Hochladen

Um den Code herunterzuladen, Klicke hier.

Schritt 5: Einstellen der Gesten

Wir möchten einen Code schreiben, der die Entfernung erkennt und in einen geeigneten Befehl zur Ausführung einer Aufgabe umwandelt.

Lassen Sie uns zunächst eine Liste aller Aufgaben erstellen, die wir mit Gesten ausführen möchten. Im Folgenden finden Sie eine Liste aller dieser Aufgaben.

  1. Wechseln Sie im Webbrowser zur nächsten Registerkarte oder zur vorherigen Registerkarte.
  2. Scrollen Sie auf der Webseite nach oben und unten.
  3. Videos im VLC Player abspielen und anhalten.
  4. Erhöhen und verringern Sie die Lautstärke.
  5. Wechseln Sie zwischen zwei Aufgaben.

Wir werden jetzt Gesten setzen, um alle diese Operationen auszuführen.

  1. Geste 1: Legen Sie Ihre Hand zwischen etwa 15 cm und 30 cm vor den rechten Ultraschallsensor. Ziehen Sie nach kurzer Zeit Ihre Hand weg. Dadurch wird die Webseite nach unten gescrollt und die Lautstärke verringert.
  2. Geste 2: Legen Sie Ihre Hand zwischen ca. 15 cm und 30 cm vor den rechten Ultraschallsensor. Schieben Sie nach kurzer Zeit Ihre Hand in Richtung Ultraschallsensor. Dadurch wird die Webseite nach oben gescrollt und die Lautstärke erhöht.
  3. Geste 3: Um zur nächsten Registerkarte zu gelangen, streichen Sie mit der Hand vor den rechten Ultraschallsensor.
  4. Geste 4: Um zur vorherigen Registerkarte zu gelangen, streichen Sie mit der Hand vor den linken Ultraschallsensor. Dadurch wird auch Ihr Video auf dem VLC-Player abgespielt / angehalten.
  5. Geste 5: Um zwischen zwei Aufgaben zu wechseln, streichen Sie mit der Hand über beide Sensoren.

Wir haben den Code geschrieben und alle Bedingungen basierend auf den obigen Gesten festgelegt. Beachten Sie außerdem, dass wir Google Chrome als Webbrowser und VLC Media Player als Medienanwendung verwenden.

Schritt 6: Den Arduino-Code verstehen

Wir haben einen Code geschrieben, der 5 Gesten in einen digitalen Befehl umwandelt. Dieser Befehl wird an die serielle Schnittstelle gesendet. Wir werden ein Python-Programm schreiben, um diese Befehle zu interpretieren und einige Tastaturfunktionen auszuführen, um verschiedene Aufgaben auszuführen.

1. Zu Beginn werden alle Pins initialisiert, die mit den Sensoren verbunden werden sollen. Es werden auch verschiedene Variablen initialisiert, um Daten für die Berechnung von Zeit und Entfernung zu speichern.

const int trigPin1 = 11; // Ausgangspin (Sensor 1) auslösen const int echoPin1 = 10; // Echo-Eingangspin (Sensor 1) const int trigPin2 = 6; // Ausgangspin (Sensor 2) auslösen const int echoPin2 = 5; // Echo-Eingangspin (Sensor 2) // Variablen für die Entfernungsberechnung lange Dauer; int distance1, distance2; float r; vorzeichenlose lange Temperatur = 0; int temp1 = 0; int l = 0;

2. Wir haben die Funktion void find_distance (void) geschrieben, um den Abstand der beiden Ultraschallsensoren zu berechnen. Es ist besser, nicht beide Ultraschallsensoren gleichzeitig auszulösen, da dies zu Störungen führen kann. Diese Funktion gibt den Abstand in cm zurück.

void find_distance (void) {digitalWrite (trigPin1, LOW); delayMicroseconds (2); digitalWrite (trigPin1, HIGH); delayMicroseconds (10); digitalWrite (trigPin1, LOW); Dauer = PulsIn (echoPin1, HIGH, 5000); r = 3,4 * Dauer / 2; // Berechnung, um die Messung in cm unter Verwendung der von der Pulsein-Funktion zurückgegebenen Zeit zu erhalten. Abstand1 = r / 100,00; digitalWrite (trigPin2, LOW); delayMicroseconds (2); digitalWrite (trigPin2, HIGH); delayMicroseconds (10); digitalWrite (trigPin2, LOW); Dauer = PulsIn (echoPin2, HIGH, 5000); r = 3,4 * Dauer / 2; Abstand2 = r / 100,00; Verzögerung (100); }}

3. void setup () ist eine Funktion, die alle Pins initialisiert, die als INPUT oder OUTPUT verwendet werden sollen. In dieser Funktion wird auch die Baudrate eingestellt. Die Baudrate ist die Geschwindigkeit, mit der die Mikrocontroller-Karte mit den angeschlossenen Sensoren kommuniziert.

void setup () {Serial.begin (9600); pinMode (trigPin1, OUTPUT); // Initialisiere die Trigger- und Echo-Pins des Sensors als Ein- und Ausgang: pinMode (echoPin1, INPUT); pinMode (trigPin2, OUTPUT); pinMode (echoPin2, INPUT); Verzögerung (1000); }}

4. void loop () ist eine Funktion, die wiederholt in einer Schleife ausgeführt wird. In dieser Schleife berechnen wir in vielen Fällen die Entfernung und wenden Bedingungen an, um die Geste zu erkennen.

void loop () {find_distance (); if (distance2<=35 && distance2>= 15) {temp = millis (); while (millis () <= (temp + 300)) find_distance (); if (distance2<=35 && distance2>= 15) {temp = distance2; while (distance2 <= 50 || distance2 == 0) {find_distance (); if ((temp + 6)<distance2)
{
Serial.println(“down”);
}
else if((temp-6)>distance2) {Serial.println (“up”); }}} else {Serial.println (“next”); }} else if (distance1<=35 && distance1>= 15) {temp = millis (); while (millis () <= (temp + 300)) {find_distance (); if (distance2<=35 && distance2>= 15) {Serial.println (“change”); l = 1; brechen; }} if (l == 0) {Serial.println (“previous”); während (Entfernung1<=35 && distance1>= 15) find_distance (); } l = 0; }}

Schritt 7: Python-Programmierung

Wir werden PyAutoGUI installieren und verschiedene Tastaturbefehle aufrufen, indem wir einfach eingehende serielle Daten lesen. Mit diesem Programm können wir viele Maus- und Tastaturoperationen wie Links- oder Rechtsklick auf die Maus oder einen beliebigen Tastendruck nachahmen.

Zuerst werden wir PIP auf unseren Fenstern installieren. Es ist ein einfaches Verfahren. Klicke hier um die Videoanleitung zu öffnen und pip auf Ihrem Computer zu installieren. Nach der Installation von PIP auf unserem Computer werden wir fortfahren und pyAutoGUI installieren. Geben Sie dazu den folgenden Befehl in die Eingabeaufforderung ein

python -m pip install pyautogui

Dieser Befehl installiert puAutoGUI auf Ihrem Computer. Wenn bis jetzt alles gut geht, schreiben wir ein Python-Programm, um verschiedene Tastaturbefehle aufzurufen. Da wir 5 verschiedene Befehle in der seriellen Eingabe durch den Arduino-Code erhalten, kann Python-Code diese Befehle wie folgt in bestimmte Tastaturbefehle konvertieren.

  • Daten: “next” -> Aktion: “Strg + PgDn”
  • Daten: “Vorherige” -> Aktion: “Strg + PgUp”
  • Daten: “down” -> Aktion: “Down Arrow”
  • Daten: „nach oben“ -> Aktion: „nach oben Pfeil“
  • Daten: „Ändern“ -> Aktion: „Alt + Tab“

Python kann zum Programmieren eines Arduino verwendet werden, indem einfach pyfirmata importiert wird, die das Arduino mit Python verbinden können. Es folgt der Python-Code, der zum Ausführen des Projekts erforderlich ist:

Seriennummer importieren # Serienbibliothek für serielle Kommunikation hinzufügen Pyautogui importieren # Pyautogui-Bibliothek zur programmgesteuerten Steuerung von Maus und Tastatur hinzufügen. Arduino_Serial = serial.Serial (‘com12’, 9600) # Initialisieren Sie das serielle und erstellen Sie das serielle Portobjekt Arduino_Serial, während 1: incoming_data = str (Arduino_Serial.readline ()) # die seriellen Daten lesen und als Zeilendruck eingehende_Daten drucken # eingehende serielle Daten, wenn ‘next’ in eingehenden_Daten ‘: # wenn eingehende Daten’ next ‘sind pyautogui.hotkey (‘ Strg ‘,’ pgdn ‘) # Führen Sie die Operation “Strg + pgdn” aus, die zur nächsten Registerkarte wechselt, wenn’ vorherige ‘in eingehenden_Daten : # Wenn eingehende Daten ‘vorherige’ sind pyautogui.hotkey (‘Strg’, ‘pgup’) # Führen Sie die Operation “Strg + pgup” aus, die zur vorherigen Registerkarte wechselt, wenn ‘eingehend’ in eingehenden Daten: # wenn eingehende Daten ‘unten’ sind. # pyautogui.press (‘down’) # führt einen “Pfeil nach unten” aus, der die Seite pyautogui.scroll (-100) nach unten scrollt, wenn ‘up’ in eingehenden_Daten ‘: # wenn eingehende Daten’ up ‘sind # pyautogui.press (‘ up ‘) ‘) # führt eine “Aufwärtspfeil” -Operation durch, die die Seite pyautogui.scroll (100) nach oben scrollt, wenn’ change ‘in incoming_data: # wenn eingehende Daten’ change ‘sind pyautogui.keyDown (‘ alt ‘) # ausführen s “alt + tab” -Operation, die die Registerkarte pyautogui.press (‘tab’) pyautogui.keyUp (‘alt’) incoming_data = “” wechselt; # löscht die Daten

Dies war die einfachste Möglichkeit, Ihren PC mithilfe von Handgesten zu steuern. Befolgen Sie alle oben genannten Schritte und steuern Sie Ihren PC lieber mit der Hand als mit Tastatur und Maus.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *