Raspberry Pi - Touch Sensor - Servo Motor

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

Dezelfde stappen worden herhaald.

Hardware benodigd

1×Raspberry Pi 5
1×Aanraaksensor
1×Servomotor
1×Jumper wires (verbindingskabels)
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 Touch Sensor

Als u niet bekend bent met servo motoren en touch sensoren (inclusief pinouts, functionaliteit en programmering), kunnen de volgende tutorials u helpen:

Bedradingsschema

Raspberry Pi Touch Sensor Servo Motor bedrading schema

This image is created using Fritzing. Click to enlarge image

Om uw bekabelingsopstelling te vereenvoudigen en te organiseren, raden we het gebruik van een Schroevenklemaansluiting-shield voor Raspberry Pi aan. Deze shield zorgt voor veiligere en beter beheerbare verbindingen, zoals hieronder weergegeven:

Raspberry Pi Schroevenklemaansluiting-Shield

Houd er rekening mee dat het hierboven getoonde bedrading schema alleen geschikt is voor een servo motor met een laag koppel (low torque). Als de motor trilt in plaats van draait, moet er een externe voeding worden gebruikt om meer vermogen aan de servo motor te leveren. Hieronder wordt het bedrading schema met een externe voeding voor de servo motor getoond.

TO BE ADD IMAGE

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

Raspberry Pi Code - Touch Sensor bestuurt Servo Motor

Snelle Stappen

  • Zorg ervoor dat u Raspbian of een ander Raspberry Pi compatibel besturingssysteem op uw Pi hebt geïnstalleerd.
  • Zorg ervoor dat uw Raspberry Pi is verbonden met hetzelfde lokale netwerk als uw pc.
  • Zorg ervoor dat uw Raspberry Pi verbonden is met internet als u sommige libraries moet installeren.
  • Als dit de eerste keer is dat u de Raspberry Pi gebruikt, bekijk dan 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 PuTTY op Windows. Zie hoe u uw pc verbindt met Raspberry Pi via SSH.
  • Zorg ervoor dat u de RPi.GPIO library geïnstalleerd hebt. Zo niet, installeer deze dan met het volgende commando:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Maak een Python scriptbestand touch_sensor_servo.py aan 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-touch-sensor-servo-motor import RPi.GPIO as GPIO import time # Constants won't change TOUCH_SENSOR_PIN = 18 # Raspberry Pi GPIO pin connected to the motion sensor's pin SERVO_PIN = 20 # Raspberry Pi GPIO pin connected to the servo motor's pin # 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(TOUCH_SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) 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(TOUCH_SENSOR_PIN) # Read new state if prev_motion_state == GPIO.LOW and motion_state == GPIO.HIGH: print("The sensor is touched") # Change angle of servo motor if angle == 0: angle = 90 else: angle = 0 # Control servo motor according to the angle duty_cycle = (angle / 18) + 2.5 # Convert angle to duty cycle servo_pwm.ChangeDutyCycle(duty_cycle) time.sleep(0.1) # Add a small delay to avoid rapid sensor readings 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 touch_sensor_servo.py
  • Tik meerdere keren op de touch sensor.
  • Bekijk hoe de hoek van de servo motor verandert.

Het script draait in een oneindige lus totdat u Ctrl + C indrukt in de terminal.

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.

※ 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!