De SG90 -servomotor is een kleine, lichtgewicht servo die vaak wordt gebruikt in robotica, automatisering en doe -het -zelfprojecten. Het maakt een precieze controle van de hoekpositie mogelijk met behulp van Pulsbreedtemodulatie (PWM). Deze gids laat je zien hoe je een SG90 -servomotor met een Raspberry Pi Python gebruiken.
Wat u nodig hebt
- Raspberry Pi (Elk model met GPIO -ondersteuning, bijvoorbeeld PI 3, PI 4)
- SG90 -servomotor
- Externe stroombron (5V, optioneel voor meerdere servo's)
- Breadboard en jumper draden
- Python geïnstalleerd Op de Raspberry Pi
Stap 1: De SG90 -servo bedraden naar de Raspberry Pi
De SG90 -servomotor heeft drie pennen:
SG90 -pin | Raspberry Pi Pin | Functie |
---|---|---|
VCC (rood) | 5V (pin 2) | Stroomvoorziening |
GND (bruin) | GND (pin 6) | Grond |
Signaal (oranje) | Gpio18 (pin 12) | PWM -signaalregeling |
Opmerking: Gebruik een Externe 5V -voeding Om te voorkomen dat de 5V -pin van de Raspberry Pi wordt overbelast.
Stap 2: Schakel PWM in op de Raspberry Pi
De frambozen pi genereert PWM -signalen om de servo -positie te beheersen.
- Installeer de Raspberry Pi GPIO -bibliotheek (indien nog niet al geïnstalleerd):
sudo apt update && sudo apt install python3-rpi.gpio
- Open een Python -scripteditor:
nano servo_control.py
- Kopieer het volgende python -script naar Controleer de SG90 -servomotor:
Stap 3: Python -code om de servo te besturen
import RPi.GPIO as GPIO
import time
# Set up the GPIO pin for PWM
SERVO_PIN = 18 # Use GPIO18 (Pin 12)
GPIO.setmode(GPIO.BCM)
GPIO.setup(SERVO_PIN, GPIO.OUT)
# Start PWM with 50Hz frequency
pwm = GPIO.PWM(SERVO_PIN, 50)
pwm.start(0)
def set_angle(angle):
duty_cycle = (angle / 18) + 2.5 # Convert angle to duty cycle
GPIO.output(SERVO_PIN, True)
pwm.ChangeDutyCycle(duty_cycle)
time.sleep(0.5) # Wait for servo to move
GPIO.output(SERVO_PIN, False)
pwm.ChangeDutyCycle(0)
try:
while True:
angle = int(input("Enter angle (0-180): "))
if 0 <= angle <= 180:
set_angle(angle)
else:
print("Invalid angle! Enter a value between 0 and 180.")
except KeyboardInterrupt:
print("Exiting...")
pwm.stop()
GPIO.cleanup()
Stap 4: Het servo -besturingsscript uitvoeren
-
Sla het script op en exit:
- Drukken Ctrl+X, Dan Y, Dan BINNENKOMEN.
-
Voer het script uit:
python3 servo_control.py
-
Voer hoeken tussen 0 en 180 in om de servo te verplaatsen.
Stap 5: PWM begrijpen voor servo -besturing
- PWM -frequentie: De SG90 werkt op 50Hz.
-
Berekening van de dienstcyclus:
- 0 ° → 2,5% duty cyclus
- 90 ° → 7,5% duty cyclus
- 180 ° → 12,5% duty cyclus
-
Formule:
duty_cycle = (angle / 18) + 2.5
Stap 6: Toepassingen van SG90 Servo met Raspberry Pi
- Robotachtige armen - Controle gewrichten voor beweging.
- Geautomatiseerde deuren en sloten - Open/sluiten mechanismen met behulp van een servo.
- Pan-tilt camerasystemen - Verplaats camera's voor bewaking of fotografie.
- Smart Home Automation - Besturingshendels, sloten en schakelaars op afstand.
Problemen oplossen
-
Servo niet bewegen?
- Ervoor zorgen Correcte bedrading (VCC, GND en GPIO18 voor signaal).
- Gebruik een Externe 5V -stroombron.
-
Onregelmatige bewegingen?
- Zorg voor stabiele kracht; gebruik condensatoren (100 µF) indien nodig.
- Gebruik Hogere precisie PWM -controle, zoals een PCA9685 PWM -module voor meerdere servo's.
-
Toestemming geweigerd fout?
- Voer het script uit met
sudo
:sudo python3 servo_control.py
- Voer het script uit met
Conclusie
De SG90 -servomotor is een geweldige manier om toe te voegen bewegingscontrole om Raspberry PI -projecten te projecten. Door te gebruiken PWM -signalen, u kunt de positie van de servo precies beheersen voor Robotica, automatisering en IoT -applicaties. Experimenteer met verschillende invalshoeken en toepassingen om het volledige potentieel ervan te ontgrendelen! 🚀