Raspberry Pi - Bewegungsmelder - Servo Motor

Dieses Tutorial zeigt Ihnen, wie Sie Raspberry Pi und einen Bewegungsmelder zur Steuerung eines Servo Motors verwenden. Im Detail:

Dies kann in einem Automatisierungsprozess angewendet werden, der Aktionen beim Erkennen von menschlicher Anwesenheit auslöst.

Hardware Erforderlich

1×Raspberry Pi 5
1×HC-SR501 Bewegungsmelder
1×Servo-Motor
1×Jumper Kabel
1×(Empfohlen) Schraubklemmenblock-Shield für Raspberry Pi
1×(Empfohlen) Raspberry Pi Prototyping-Grundplatte & Breadboard-Kit
1×(Empfohlen) HDMI-Touchscreen-Monitor für Raspberry Pi

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Kaufhinweis: Falls Sie mehrere Servomotoren verwenden möchten, empfehlen wir die Verwendung des PCA9685 16 Channel PWM Servo Driver Module, um MCU-Pins zu sparen und die Verdrahtung zu vereinfachen.

Über Servo Motor und Bewegungsmelder

Falls Sie mit Servo Motoren und Bewegungsmeldern nicht vertraut sind (einschließlich Pinbelegung, Funktionsweise und Programmierung), können Ihnen die folgenden Tutorials helfen:

Schaltplan

Raspberry Pi Bewegungsmelder Servo Motor Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Um Ihren Verdrahtungsaufbau zu vereinfachen und zu organisieren, empfehlen wir die Verwendung eines Schraubklemmenblock-Shields für Raspberry Pi. Dieses Shield gewährleistet sicherere und besser verwaltbare Verbindungen, wie unten gezeigt:

Raspberry Pi Schraubklemmenblock-Shield

Bitte beachten Sie, dass der oben gezeigte Schaltplan nur für einen Servo Motor mit geringem Drehmoment geeignet ist. Falls der Motor vibriert anstatt zu rotieren, muss eine externe Stromquelle verwendet werden, um mehr Leistung für den Servo Motor bereitzustellen. Das Folgende zeigt den Schaltplan mit einer externen Stromquelle für den Servo Motor.

TO BE ADD IMAGE

Vergessen Sie bitte nicht, GND der externen Stromquelle mit GND des Raspberry Pi zu verbinden.

Grundeinstellung

Zeit-VerzögerungsreglerDrehen Sie ihn vollständig gegen den Uhrzeigersinn.
ErkennungsbereichsreglerDrehen Sie ihn vollständig im Uhrzeigersinn.
Wiederholungsauslöser-WählerSetzen Sie den Jumper wie im Bild gezeigt.
arduino motion sensor initial setting

Raspberry Pi Code - Bewegungsmelder steuert Servo Motor

Schnelle Schritte

  • Stellen Sie sicher, dass Sie Raspbian oder ein anderes Raspberry Pi-kompatibles Betriebssystem auf Ihrem Pi installiert haben.
  • Stellen Sie sicher, dass Ihr Raspberry Pi mit demselben lokalen Netzwerk wie Ihr PC verbunden ist.
  • Stellen Sie sicher, dass Ihr Raspberry Pi mit dem Internet verbunden ist, falls Sie einige Bibliotheken installieren müssen.
  • Wenn Sie Raspberry Pi zum ersten Mal verwenden, siehe wie Sie den Raspberry Pi einrichten
  • Verbinden Sie Ihren PC über SSH mit dem Raspberry Pi, indem Sie den integrierten SSH-Client auf Linux und macOS oder PuTTY auf Windows verwenden. Siehe wie Sie Ihren PC über SSH mit Raspberry Pi verbinden.
  • Stellen Sie sicher, dass Sie die RPi.GPIO Bibliothek installiert haben. Falls nicht, installieren Sie sie mit folgendem Befehl:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Erstellen Sie eine Python-Skriptdatei motion_sensor_servo.py und fügen Sie den folgenden Code hinzu:
# Dieser Raspberry Pi Code wurde von newbiely.de entwickelt # Dieser Raspberry Pi Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. # Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: # https://newbiely.de/tutorials/raspberry-pi/raspberry-pi-motion-sensor-servo-motor import RPi.GPIO as GPIO import time # Constants won't change MOTION_SENSOR_PIN = 14 # Raspberry Pi GPIO pin connected to the OUTPUT pin of the motion sensor SERVO_PIN = 12 # Raspberry Pi GPIO pin connected to the servo motor # Variables will change angle = 0 # The current angle of the servo motor prev_motion_state = None # The previous state of the motion sensor motion_state = None # The current state of the motion sensor # Setup GPIO GPIO.setmode(GPIO.BCM) GPIO.setup(MOTION_SENSOR_PIN, GPIO.IN) GPIO.setup(SERVO_PIN, GPIO.OUT) # Create PWM instance for servo servo_pwm = GPIO.PWM(SERVO_PIN, 50) # 50 Hz frequency # Initialize servo position servo_pwm.start(0) try: while True: prev_motion_state = motion_state # Save the last state motion_state = GPIO.input(MOTION_SENSOR_PIN) # Read new state if motion_state == GPIO.LOW and prev_motion_state == GPIO.HIGH: print("Motion detected!") servo_pwm.ChangeDutyCycle(7.5) # Adjust duty cycle for 90 degrees elif motion_state == GPIO.HIGH and prev_motion_state == GPIO.LOW: print("Motion stopped!") servo_pwm.ChangeDutyCycle(2.5) # Adjust duty cycle for 0 degrees time.sleep(0.1) # Add a small delay to avoid rapid sensor readings except KeyboardInterrupt: servo_pwm.stop() GPIO.cleanup()
  • Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie folgenden Befehl im Terminal ausführen:
python3 motion_sensor_servo.py
  • Winken Sie mit der Hand vor dem Sensor.
  • Beobachten Sie die Änderung des Winkels des Servo Motors.

Das Skript läuft in einer Endlosschleife kontinuierlich, bis Sie Strg + C im Terminal drücken.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!