Raspberry Pi - Knop - Servo Motor

Deze tutorial legt uit hoe u een servo motor kunt aansturen met een Raspberry Pi en een knop. Zo werkt het:

Deze procedure wordt oneindig herhaald.

Hardware Benodigd

1×Raspberry Pi 5
1×Breadboard-montage Knop met Kap
1×Breadboard-montage Knoppenkit
1×Paneel-montage Drukknop
1×Drukknopmodule
1×Servomotor
1×Breadboard (experimenteerprint)
1×Jumper Kabels
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 Knop

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

Aansluitschema

Raspberry Pi Knop Servo Motor aansluitschema

This image is created using Fritzing. Click to enlarge image

Let op: het hierboven getoonde aansluitschema is alleen geschikt voor een servo motor met een lage koppelwaarde. Mocht de motor trillen in plaats van draaien, dient u een externe voeding toe te passen om meer vermogen aan de servo motor te leveren. Hieronder ziet u een aansluitschema met een externe voeding voor de servo motor.

TOE TE VOEGEN AFBEELDING

Vergeet niet om de GND van de externe voeding te verbinden met de GND van zowel de Raspberry Pi als de servo motor.

Raspberry Pi Code - Knop bestuurt Servo Motor

Snelle Stappen

  • Zorg dat Raspbian of een ander Raspberry Pi compatible besturingssysteem geïnstalleerd is op uw Pi.
  • Zorg dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw pc.
  • Zorg dat uw Raspberry Pi verbonden is met internet als u nog bibliotheken moet installeren.
  • Als u voor het eerst met Raspberry Pi werkt, zie dan hoe u de Raspberry Pi installeert
  • Verbind uw pc met de Raspberry Pi via SSH met behulp van de ingebouwde SSH-client op Linux en macOS of PuTTY op Windows. Zie hoe u uw pc via SSH verbindt met Raspberry Pi.
  • Zorg dat de RPi.GPIO bibliotheek is geïnstalleerd. Zo niet, installeer deze dan met het volgende commando:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Maak een Python scriptsbestand aan met de naam button_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-button-servo-motor import RPi.GPIO as GPIO import time # Constants won't change BUTTON_PIN = 18 # Raspberry Pi GPIO pin connected to the button's pin SERVO_PIN = 12 # Raspberry Pi GPIO pin connected to the servo motor's pin # Variables will change angle = 0 # The current angle of the servo motor prev_button_state = None # The previous state of the button button_state = None # The current state of the button # Setup GPIO GPIO.setmode(GPIO.BCM) GPIO.setup(BUTTON_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_button_state = button_state # Save the last state button_state = GPIO.input(BUTTON_PIN) # Read new state if prev_button_state == GPIO.HIGH and button_state == GPIO.LOW: print("The button is pressed") # 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 button presses 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 gebruiken:
python3 button_servo.py
  • Druk meerdere keren op de knop.

Het script draait oneindig in een 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!