Se SG90 -servomoottori on pieni, kevyt servo, jota käytetään yleisesti robotti-, automaatio- ja DIY -projekteissa. Se mahdollistaa kulman asennon tarkan hallinnan käyttämällä Pulssin leveysmodulaatio (PWM). Tämä opas näyttää kuinka hallita SG90 -servomoottori vadelmapillä Pythonin käyttäminen.
Mitä tarvitset
- Raspberry Pi (Mikä tahansa malli, jolla on GPIO -tuki, esim. Pi 3, pi 4)
- SG90 -servomoottori
- Ulkoinen virtalähde (5 V, valinnainen useille servoille)
- Leipälevy- ja hyppyjohdot
- Python asennettu Raspberry Pi
Vaihe 1: Sg90 -servon johdotus Raspberry Pi: lle
Se SG90 -servomoottorilla on kolme nastaa:
SG90 -nasta | Raspberry Pi -tappi | Funktio |
---|---|---|
VCC (punainen) | 5v (nasta 2) | Virtalähde |
GND (ruskea) | GND (nasta 6) | Pohja |
Signaali (oranssi) | GPIO18 (nasta 12) | PWM -signaalin hallinta |
Huomaa: Jos käytät useita servoja, käytä Ulkoinen 5 V: n virtalähde Välttää Raspberry Pi: n 5 V: n tappi.
Vaihe 2: Ota PWM käyttöön Raspberry Pi
Vadelmapiiri tuottaa PWM -signaaleja Servo -aseman hallitsemiseksi.
- Asenna Raspberry Pi GPIO -kirjasto (Jos sitä ei ole vielä asennettu):
sudo apt update && sudo apt install python3-rpi.gpio
- Avaa Python -komentosarjan editor:
nano servo_control.py
- Kopioi seuraava Python -komentosarja osoitteeseen Hallitse SG90 -servomoottoria:
Vaihe 3: Python -koodi servon hallitsemiseksi
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()
Vaihe 4: Servo -ohjauskomentosarjan suorittaminen
-
Tallenna komentosarja ja poistu:
- Painostaa Ctrl+xsilloin Ysilloin Kirjoittaa.
-
Suorita käsikirjoitus:
python3 servo_control.py
-
Syötä kulmat välillä 0–180 Servon siirtäminen.
Vaihe 5: PWM: n ymmärtäminen servoohjaukseen
- PWM -taajuus: SG90 toimii 50Hz.
-
Vuosyklin laskenta:
- 0 ° → 2,5% käyttöjakso
- 90 ° → 7,5% työsykli
- 180 ° → 12,5% työsykli
-
Kaava:
duty_cycle = (angle / 18) + 2.5
Vaihe 6: Sg90 -servon sovellukset Raspberry PI: llä
- Robottivarret - Ohjausliitokset liikkumiseen.
- Automatisoidut ovet ja lukot - Avaa/sulje mekanismit servolla.
- Pan-kallistuskamerajärjestelmät - Siirrä kameroita valvontaa tai valokuvausta varten.
- Älykäs kodin automaatio - Ohjausvivut, lukot ja kytkimet etäyhteydessä.
Vianetsintä
-
Servo ei liiku?
- Varmistaa oikea johdotus (VCC, GND ja GPIO18 signaalille).
- Jos käytät useita servoja, käytä ulkoinen 5 V: n virtalähde.
-
Virheelliset liikkeet?
- Varmistaa vakaa voima; käyttää kondensaattorit (100µF) tarvittaessa.
- Käyttää Korkeampi tarkkuus PWM -hallinta, kuten a PCA9685 PWM -moduuli useille servoille.
-
Lupa kielsi virheen?
- Suorita käsikirjoitus
sudo
:sudo python3 servo_control.py
- Suorita käsikirjoitus
Johtopäätös
Se SG90 -servomoottori on hieno tapa lisätä liikkeenohjaus Raspberry Pi -projekteihin. Käyttämällä PWM -signaalit, voit hallita tarkasti servon asemaa robotti-, automaatio- ja Internet -sovellukset. Kokeile erilaisia kulmia ja sovelluksia sen koko potentiaalin avaamiseksi! 🚀