Raspberry Pi - Ultrasone Sensor - Servo Motor

Deze handleiding legt uit hoe u een Raspberry Pi en een ultrasone sensor gebruikt om een servo motor aan te sturen. In detail:

Hardware Benodigd

1×Raspberry Pi 5
1×Ultrasone Sensor
1×Servomotor
1×Jumper Draden
1×(Aanbevolen) Schroefklem Block Shield voor Raspberry Pi
1×(Aanbevolen) Raspberry Pi Prototyping Basisplaat & Breadboard Kit
1×(Aanbevolen) HDMI-Touchscreen-Monitor voor Raspberry Pi

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over Servo Motor en Ultrasone Sensor

Als u nog niet bekend bent met de servo motor en ultrasone sensor (pinout, werking, programmeren ...), kunnen de volgende tutorials u helpen:

Bedradingsschema

Raspberry Pi Ultrasone Sensor Servo Motor bedrading schema

This image is created using Fritzing. Click to enlarge image

Let op dat het bovenstaande bedrading schema alleen geschikt is voor een servo motor met laag koppel. Als de motor trilt in plaats van draait, moet u een externe voedingsbron gebruiken om meer stroom te leveren aan de servo motor. Hieronder wordt het bedrading schema met een externe voedingsbron voor de servo motor weergegeven.

TOE TE VOEGEN AFBEELDING

Vergeet niet om de GND van de externe voeding te verbinden met de GND van de Raspberry Pi.

Raspberry Pi Code - Ultrasone Sensor Stuurt Servo Motor aan

Snel Starten

  • Zorg ervoor dat u Raspbian of een ander compatibel besturingssysteem voor Raspberry Pi op uw Pi heeft geïnstalleerd.
  • Zorg ervoor dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw pc.
  • Zorg ervoor dat uw Raspberry Pi verbonden is met internet indien u bibliotheken moet installeren.
  • Als dit de eerste keer is dat u een Raspberry Pi gebruikt, zie hoe u de Raspberry Pi instelt
  • Verbind uw pc met de Raspberry Pi via SSH met de ingebouwde SSH-client op Linux en macOS, of met PuTTY op Windows. Zie hoe uw pc met Raspberry Pi te verbinden via SSH.
  • Controleer of u de RPi.GPIO-bibliotheek geïnstalleerd heeft. Zo niet, installeer deze dan met het volgende commando:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Maak een Python-scriptbestand aan met de naam ultrasonic_servo.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/tutorials/raspberry-pi/raspberry-pi-ultrasonic-sensor-servo-motor import RPi.GPIO as GPIO import time # Constants TRIG_PIN = 2 # Raspberry Pi GPIO pin connected to TRIG pin of ultrasonic sensor ECHO_PIN = 3 # Raspberry Pi GPIO pin connected to ECHO pin of ultrasonic sensor SERVO_PIN = 18 # Raspberry Pi GPIO pin connected to servo motor DISTANCE_THRESHOLD = 50 # in centimeters # Setup GPIO GPIO.setmode(GPIO.BCM) GPIO.setup(TRIG_PIN, GPIO.OUT) GPIO.setup(ECHO_PIN, GPIO.IN) GPIO.setup(SERVO_PIN, GPIO.OUT) # Create PWM instance for servo servo_pwm = GPIO.PWM(SERVO_PIN, 50) # 50 Hz frequency servo_pwm.start(0) # Initialize servo position def measure_distance(): # Generate 10-microsecond pulse to TRIG pin GPIO.output(TRIG_PIN, GPIO.HIGH) time.sleep(0.00001) GPIO.output(TRIG_PIN, GPIO.LOW) # Measure duration of pulse from ECHO pin pulse_start = time.time() pulse_end = pulse_start while GPIO.input(ECHO_PIN) == 0 and time.time() - pulse_start < 0.1: pulse_start = time.time() while GPIO.input(ECHO_PIN) == 1 and time.time() - pulse_end < 0.1: pulse_end = time.time() duration = pulse_end - pulse_start # Calculate the distance distance_cm = duration * 34300 / 2 return distance_cm try: while True: # Measure distance distance_cm = measure_distance() if distance_cm < DISTANCE_THRESHOLD: # Rotate servo motor to 90 degrees servo_pwm.ChangeDutyCycle(7.5) else: # Rotate servo motor to 0 degrees servo_pwm.ChangeDutyCycle(2.5) # Print the value print(f"Distance: {distance_cm:.2f} cm") time.sleep(0.5) except KeyboardInterrupt: servo_pwm.stop() GPIO.cleanup()
  • Sla het bestand op en voer het Python-script uit door het volgende commando in de terminal te typen:
python3 ultrasonic_servo.py

Het script draait oneindig door totdat u Ctrl + C indrukt in de terminal.

  • Maak een bewegende hand voor de sensor.
  • Bekijk de beweging van de servo motor.

※ Notiz:

De code hierboven is bedoeld voor educatieve doeleinden. De ultrasone sensor is zeer gevoelig voor storingen (ruis). Als u de ultrasone sensor in een praktische toepassing wilt gebruiken, moet u ruisfiltering toepassen. Voor meer informatie over het filteren van ruis uit afstandsmetingen van een ultrasone sensor verwijzen we u naar deze tutorial.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze videotutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u stap voor stap met de implementatie.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!