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

PC per Geste steuern – Arduino & Python für berührungslose Bedienung

Komponenten und Zubehör

KomponenteAnzahl
Arduino UNO1
Ultraschallsensor HC-SR042
Jumper-Wires1 Set

Software

Projektbeschreibung

Steuern Sie Ihren Laptop/PC per Handgesten – ohne Maus, Tastatur oder Joystick. Zwei HC-SR04-Sensoren oben am Bildschirmrand messen die Handabstände. Arduino sendet die Distanzen per Serial an Python, das via PyAutoGUI Tastenkombinationen auslöst (z. B. in VLC Media Player).

Gesten-Definition (5 Befehle)

Schaltung

Jeder HC-SR04: VCC → 5 V, GND → GND, Trig/Echo an Arduino-Pins (Sensor 1: Trig 2, Echo 3; Sensor 2: Trig 4, Echo 5).

Python-Installation & Bibliotheken

  1. Python 3.x (32-bit empfohlen) von python.org installieren.
  2. pip install pyserial → Test: import serial
  3. pip install pyautogui → Test: import pyautogui

Arduino-Code (arduino_pythogui.ino)

const int trigger1 = 2, echo1 = 3;
const int trigger2 = 4, echo2 = 5;
long time_taken; int dist, distL, distR;

void setup() {
  Serial.begin(9600);
  pinMode(trigger1, OUTPUT); pinMode(echo1, INPUT);
  pinMode(trigger2, OUTPUT); pinMode(echo2, INPUT);
}

void calcDist(int trig, int echo) {
  digitalWrite(trig, LOW); delayMicroseconds(2);
  digitalWrite(trig, HIGH); delayMicroseconds(10);
  digitalWrite(trig, LOW);
  time_taken = pulseIn(echo, HIGH);
  dist = time_taken * 0.034 / 2;
  if (dist > 60) dist = 60;
}

void loop() {
  calcDist(trigger1, echo1); distL = dist;
  calcDist(trigger2, echo2); distR = dist;

  // Play/Pause
  if (distL > 40 && distR > 40 && distL < 60 && distR < 60) {
    Serial.println("Play/Pause"); delay(500);
  }

  calcDist(trigger1, echo1); distL = dist;
  calcDist(trigger2, echo2); distR = dist;

  // Left Lock (Volume)
  if (distL >= 13 && distL <= 17) {
    delay(100); calcDist(trigger1, echo1); distL = dist;
    if (distL >= 13 && distL <= 17) {
      Serial.println("Left Locked");
      while (distL <= 40) {
        calcDist(trigger1, echo1); distL = dist;
        if (distL < 10) { Serial.println("Volume Increased"); delay(300); }
        if (distL > 20) { Serial.println("Volume Decreased"); delay(300); }
      }
    }
  }

  // Right Lock (Seek)
  if (distR >= 13 && distR <= 17) {
    delay(100); calcDist(trigger2, echo2); distR = dist;
    if (distR >= 13 && distR <= 17) {
      Serial.println("Right Locked");
      while (distR <= 40) {
        calcDist(trigger2, echo2); distR = dist;
        if (distR < 10) { Serial.println("Rewind"); delay(300); }
        if (distR > 20) { Serial.println("Forward"); delay(300); }
      }
    }
  }
  delay(200);
}

Python-Code

import serial, time, pyautogui
ArduinoSerial = serial.Serial('COM15', 9600)  # COM-Port anpassen!
time.sleep(2)
while True:
    incoming = str(ArduinoSerial.readline())
    print(incoming)
    if 'Play/Pause' in incoming: pyautogui.typewrite(['space'], 0.2)
    if 'Rewind' in incoming:     pyautogui.hotkey('ctrl', 'left')
    if 'Forward' in incoming:    pyautogui.hotkey('ctrl', 'right')
    if 'Volume Increased' in incoming: pyautogui.hotkey('ctrl', 'down')
    if 'Volume Decreased' in incoming: pyautogui.hotkey('ctrl', 'up')
    incoming = ""

Hinweis: COM-Port im Python-Skript anpassen (im Arduino-IDE unter Tools → Port einsehen). Die Tastenkombinationen sind für VLC optimiert; für andere Apps anpassen.

Herstellungsprozess

  1. Monitor-Ambilight selbst bauen mit Arduino Nano & WS2812B LEDs
  2. Universelle Android-Fernbedienung mit Arduino, 1Sheeld & IR-Steuerung
  3. Intelligentes Voltmeter mit Arduino & Smartphone bauen – Einfaches DIY-Projekt
  4. Fernsteuerung eines Roboterarms per IoT: Eigenbau mit Arduino MKR1000
  5. Frequenz & Tastverhältnis präzise messen mit Arduino UNO
  6. Arduino Rover per Firmata & Xbox One Gamepad steuern
  7. Intelligente, bewegungsaktivierte Wasserpistole mit Arduino Nano
  8. Stufenlose LED-Helligkeitssteuerung mit Bolt IoT und Arduino UNO
  9. Intelligenter Arduino-Roboterarm bauen: Einfaches DIY-Tutorial
  10. TV per Alexa steuern mit Arduino IoT Cloud – Schritt-für-Schritt