. Silnik SG90 Servo jest małym, lekkim serwo powszechnie stosowanym w projektach robotyki, automatyzacji i majsterkowania. Umożliwia precyzyjną kontrolę pozycji kątowej za pomocą Modulacja szerokości impulsu (PWM). Ten przewodnik pokaże, jak kontrolować Silnik SG90 z Raspberry Pi Za pomocą Pythona.
Czego będziesz potrzebować
- Raspberry Pi (Każdy model z obsługą GPIO, np. PI 3, PI 4)
- Silnik SG90 Servo
- Zewnętrzne źródło zasilania (5 V, opcjonalnie dla wielu serwomotów)
- Druty chleba i skoczków
- Zainstalowany Python na Raspberry Pi
Krok 1: Okablowanie serwomechanizmu SG90 do Raspberry Pi
. Serwo SG90 ma trzy szpilki:
SG90 PIN | Pin Raspberry Pi | Funkcjonować |
---|---|---|
VCC (czerwony) | 5v (pin 2) | Zasilacz |
GND (Brown) | GND (pin 6) | Grunt |
Sygnał (pomarańczowy) | GPIO18 (PIN 12) | Kontrola sygnału PWM |
Notatka: Jeśli używasz wielu serwotesów, użyj Zewnętrzny zasilacz 5V Aby uniknąć przeciążenia pinem Raspberry Pi.
Krok 2: Włącz PWM na Raspberry Pi
Raspberry Pi Generuje sygnały PWM Aby kontrolować pozycję serwomechanizmu.
- Zainstaluj Biblioteka Raspberry Pi GPIO (jeśli jeszcze nie zainstalowane):
sudo apt update && sudo apt install python3-rpi.gpio
- Otwórz redaktor skryptów Python:
nano servo_control.py
- Skopiuj następujący skrypt Pythona do Kontroluj silnik serwo SG90:
Krok 3: Kod Pythona do kontrolowania serwomechanizmu
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()
Krok 4: Uruchamianie skryptu sterowania serwo
-
Zapisz skrypt i wyjdź:
- Naciskać Ctrl+x, Następnie Y, Następnie WCHODZIĆ.
-
Uruchom skrypt:
python3 servo_control.py
-
Wprowadź kąty od 0 do 180 poruszyć serwo.
Krok 5: Zrozumienie PWM dla kontroli serwomechanizmu
- Częstotliwość PWM: SG90 działa na 50 Hz.
-
Obliczanie cyklu pracy:
- 0 ° → 2,5% cykl pracy
- 90 ° → 7,5% cykl pracy
- 180 ° → 12,5% cykl pracy
-
Formuła:
duty_cycle = (angle / 18) + 2.5
Krok 6: Zastosowania serwomechanizmu SG90 z Raspberry Pi
- Robotyczne ramiona - Kontrola połączeń ruchu.
- Zautomatyzowane drzwi i zamki - Mechanizmy otwarte/zamknięte za pomocą serwomechanizmu.
- Systemy kamer na patelni - Przenieś kamery do nadzoru lub fotografii.
- Automatyzacja inteligentnej domu - Zdalnie sterować dźwigni, zamków i przełączników.
Rozwiązywanie problemów
-
Servo nie porusza się?
- Zapewnić Prawidłowe okablowanie (VCC, GND i GPIO18 dla sygnału).
- Jeśli używasz wielu serwotesów, użyj Zewnętrzne źródło zasilania 5V.
-
Nieregularne ruchy?
- Zapewnić stabilną moc; używać kondensatory (100 µF) W razie potrzeby.
- Używać Kontrola PWM o wyższej precyzji, takie jak Moduł PCA9685 PWM dla wielu serwomosów.
-
Uprawnienie odrzucone błąd?
- Uruchom skrypt z
sudo
:sudo python3 servo_control.py
- Uruchom skrypt z
Wniosek
. Silnik SG90 Servo to świetny sposób na dodanie kontrola ruchu do Raspberry Pi Projects. Za pomocą Sygnały PWM, możesz dokładnie kontrolować pozycję serwomechanizmu aplikacje robotyczne, automatyzacja i IoT. Eksperymentuj z różnymi kątami i aplikacjami, aby odblokować pełny potencjał! 🚀