A SG90 szervo motor egy kicsi, könnyű szervó, amelyet általában használnak a robotikában, az automatizálásban és a barkácsolásban. Ez lehetővé teszi a szög helyzetének pontos ellenőrzését Impulzusszélesség -moduláció (PWM)- Ez az útmutató megmutatja, hogyan lehet irányítani egy SG90 szervómotor málna PI -vel Python használatával.
Mire lesz szüksége
- Málna PI (Bármely modell GPIO -támogatással, például PI 3, PI 4)
- SG90 szervo motor
- Külső áramforrás (5 V, opcionális több szervó számára)
- Kenyérlemez és jumper vezetékek
- Python telepítve a málna pi -n
1. lépés: Az SG90 szervo vezetéke a Raspberry PI -hez
A Az SG90 szervómotornak három csapja van:
SG90 PIN | Málna pi tű | Funkció |
---|---|---|
VCC (piros) | 5V (2. érintkező) | Tápegység |
GND (barna) | GND (6. érintkező) | Föld |
Jel (narancs) | GPIO18 (12. érintkező) | PWM jelvezérlés |
Jegyzet: Ha több szervót használ, használjon egy külső 5 V -os tápegység Annak elkerülése érdekében, hogy a Raspberry Pi 5 V -os csapja túlterhelje.
2. lépés: Engedélyezze a PWM -t a Raspberry PI -n
A málna pi PWM jeleket generál A szervó helyzetének ellenőrzése.
- Szerelje be a Raspberry PI GPIO könyvtár (Ha még nem telepítve van):
sudo apt update && sudo apt install python3-rpi.gpio
- Nyisson meg egy Python Script szerkesztőt:
nano servo_control.py
- Másolja a következő Python szkriptet a következő címre: Vezesse az SG90 szervómotort:
3. lépés: Python kód a szervó vezérléséhez
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()
4. lépés: A szervo vezérlési szkript futtatása
-
Mentse el a szkript és a kilépés:
- Sajtó Ctrl+x, akkor Y, akkor Beír.
-
Futtassa a szkriptet:
python3 servo_control.py
-
Írja be a szöget 0 és 180 között A szervó áthelyezéséhez.
5. lépés: A PWM megértése a szervo -vezérléshez
- PWM frekvencia: Az SG90 a 50Hz.
-
Vámciklus számítása:
- 0 ° → 2,5% szolgálati ciklus
- 90 ° → 7,5% szolgálati ciklus
- 180 ° → 12,5% szolgálati ciklus
-
Képlet:
duty_cycle = (angle / 18) + 2.5
6. lépés: Az SG90 szervo alkalmazása a Raspberry PI -vel
- Robotfegyverek - A mozgáshoz szükséges illesztések vezérlése.
- Automatizált ajtók és zárak - Nyissa meg/bezárja a mechanizmusokat egy szervó segítségével.
- Serpenyőgombos kamerarendszerek - Mozgassa a kamerákat a megfigyelés vagy a fényképezés céljából.
- Okos otthoni automatizálás - Vezérlő karok, zárak és távolról váltak.
Hibaelhárítás
-
Szervo nem mozog?
- Biztosít helyes vezeték (VCC, GND és GPIO18 a jelhez).
- Ha több szervót használ, használjon egy Külső 5V -os áramforrás.
-
Rendkívüli mozgások?
- Biztosítja a stabil energiát; használat kondenzátorok (100 µF) Ha szükséges.
- Használat Magasabb pontosságú PWM vezérlés, mint például a PCA9685 PWM modul Több szervó számára.
-
Az engedély megtagadta a hibát?
- Futtassa a szkriptet
sudo
:sudo python3 servo_control.py
- Futtassa a szkriptet
Következtetés
A SG90 szervo motor nagyszerű módja annak, hogy hozzáadhassák mozgásvezérlés a Raspberry PI projektekhez. Felhasználásával PWM jelek, pontosan ellenőrizheti a szervó helyzetét Robotika, automatizálás és IoT alkalmazások- Kísérletezzen különböző szögekkel és alkalmazásokkal annak teljes potenciáljának felszabadításához! 🚀