Itu SG90 Servo Motor adalah servo kecil, ringan yang biasa digunakan dalam proyek robotika, otomatisasi, dan DIY. Itu memungkinkan kontrol yang tepat dari posisi sudut menggunakan Modulasi Lebar Denyut (PWM). Panduan ini akan menunjukkan kepada Anda cara mengontrol Motor servo sg90 dengan pi raspberry Menggunakan Python.
Apa yang Anda Butuhkan
- Raspberry Pi (Model apa pun dengan dukungan GPIO, mis., Pi 3, pi 4)
- SG90 Servo Motor
- Sumber Daya Eksternal (5V, opsional untuk beberapa servos)
- Papan tempat memotong papan dan kabel jumper
- Python terpasang di raspberry pi
Langkah 1: Kabel SG90 Servo ke Raspberry Pi
Itu SG90 Servo Motor memiliki tiga pin:
Pin SG90 | Raspberry Pi Pin | Fungsi |
---|---|---|
VCC (merah) | 5V (pin 2) | Catu daya |
GND (Brown) | GND (pin 6) | Tanah |
Sinyal (oranye) | Gpio18 (pin 12) | Kontrol Sinyal PWM |
Catatan: Jika menggunakan beberapa servo, gunakan Catu Daya 5V Eksternal Untuk menghindari kelebihan beban pin 5V Raspberry Pi.
Langkah 2: Aktifkan PWM di Raspberry Pi
Raspberry Pi menghasilkan sinyal PWM untuk mengontrol posisi servo.
- Instal Perpustakaan Raspberry Pi Gpio (jika belum diinstal):
sudo apt update && sudo apt install python3-rpi.gpio
- Buka editor skrip Python:
nano servo_control.py
- Salin skrip Python berikut Kontrol motor servo SG90:
Langkah 3: Kode Python untuk mengontrol servo
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()
Langkah 4: Menjalankan skrip kontrol servo
-
Simpan skrip dan keluar:
- Tekan Ctrl+x, Kemudian Y, Kemudian MEMASUKI.
-
Jalankan skrip:
python3 servo_control.py
-
Masukkan sudut antara 0 dan 180 untuk memindahkan servo.
Langkah 5: Memahami PWM untuk Kontrol Servo
- Frekuensi PWM: SG90 beroperasi di 50Hz.
-
Perhitungan Siklus Tugas:
- 0 ° → 2,5% siklus tugas
- 90 ° → 7,5% siklus tugas
- 180 ° → 12,5% siklus tugas
-
Rumus:
duty_cycle = (angle / 18) + 2.5
Langkah 6: Aplikasi SG90 Servo dengan Raspberry Pi
- Lengan robot - Kontrol sendi untuk pergerakan.
- Pintu & Kunci Otomatis - Mekanisme terbuka/tutup menggunakan servo.
- Sistem Kamera Pan-Tilt - Pindahkan kamera untuk pengawasan atau fotografi.
- Otomatisasi Rumah Cerdas - Kontrol tuas, kunci, dan sakelar dari jarak jauh.
Pemecahan masalah
-
Servo tidak bergerak?
- Memastikan kabel yang benar (VCC, GND, dan GPIO18 untuk sinyal).
- Jika menggunakan beberapa servo, gunakan Sumber Daya 5V Eksternal.
-
Gerakan yang tidak menentu?
- Memastikan kekuatan yang stabil; menggunakan kapasitor (100μF) jika diperlukan.
- Menggunakan Kontrol PWM presisi yang lebih tinggi, seperti a Modul PWM PCA9685 untuk beberapa servos.
-
Izin ditolak kesalahan?
- Jalankan skrip dengan
sudo
:sudo python3 servo_control.py
- Jalankan skrip dengan
Kesimpulan
Itu SG90 Servo Motor adalah cara yang bagus untuk ditambahkan kontrol gerak untuk proyek Raspberry Pi. Dengan menggunakan Sinyal PWM, Anda dapat mengontrol posisi servo secara tepat Aplikasi Robotika, Otomasi, dan IoT. Bereksperimenlah dengan sudut dan aplikasi yang berbeda untuk membuka potensi penuhnya! 🚀