ال SG90 Servo Motor هو مؤازرة صغيرة وخفيفة الوزن شائعة الاستخدام في مشاريع الروبوتات والأتمتة و DIY. يسمح بالتحكم الدقيق في الموضع الزاوي باستخدام تعديل عرض النبض (PWM). سيوضح لك هذا الدليل كيفية التحكم في محرك SG90 Servo مع Raspberry Pi باستخدام بيثون.
ماذا ستحتاج
- التوت بي (أي نموذج يحمل دعم GPIO ، على سبيل المثال ، PI 3 ، PI 4)
- SG90 Servo Motor
- مصدر طاقة خارجي (5 فولت ، اختياري للعديد من الماكينات)
- الأسلاك الأسلاك والبلوز
- بيثون مثبت على التوت PI
الخطوة 1: توصيل SG90 Servo إلى Raspberry Pi
ال يحتوي SG90 Servo Motor على ثلاث دبابيس:
SG90 دبوس | التوت بي دبوس | وظيفة |
---|---|---|
VCC (أحمر) | 5V (دبوس 2) | مزود الطاقة |
GND (بني) | GND (دبوس 6) | أرضي |
إشارة (برتقالي) | GPIO18 (PIN 12) | التحكم في إشارة PWM |
ملحوظة: في حالة استخدام مضاعفات متعددة ، استخدم إمدادات الطاقة 5V الخارجي لتجنب التحميل الزائد لثنائي 5 فولت في Raspberry Pi.
الخطوة 2: تمكين PWM على Raspberry Pi
التوت بي يولد إشارات PWM للسيطرة على موضع المؤازرة.
- تثبيت مكتبة Raspberry Pi GPIO (إذا لم يتم تثبيته بالفعل):
sudo apt update && sudo apt install python3-rpi.gpio
- افتح محرر سيناريو Python:
nano servo_control.py
- انسخ نص Python التالي إلى التحكم في محرك SG90 Servo:
الخطوة 3: رمز بيثون للتحكم في المؤازرة
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: تشغيل البرنامج النصي للتحكم في المؤازرة
-
احفظ البرنامج النصي والخروج:
- يضعط Ctrl+x، ثم ذ، ثم يدخل.
-
قم بتشغيل البرنامج النصي:
python3 servo_control.py
-
أدخل الزوايا بين 0 و 180 لتحريك المؤازرة.
الخطوة 5: فهم PWM للتحكم في المؤازرة
- تردد PWM: يعمل SG90 في 50 هرتز.
-
حساب دورة العمل:
- 0 ° → 2.5 ٪ دورة العمل
- 90 درجة → 7.5 ٪ دورة العمل
- 180 ° → 12.5 ٪ دورة عمل
-
صيغة:
duty_cycle = (angle / 18) + 2.5
الخطوة 6: تطبيقات SG90 Servo مع Raspberry Pi
- الأسلحة الآلية - التحكم في المفاصل للحركة.
- الأبواب والأقفال الآلية - آليات مفتوحة/إغلاق باستخدام المؤازرة.
- أنظمة الكاميرا الإمالة - نقل الكاميرات للمراقبة أو التصوير الفوتوغرافي.
- أتمتة المنزل الذكية - التحكم في الرافعات والأقفال والمفاتيح عن بُعد.
استكشاف الأخطاء وإصلاحها
-
المؤازرة لا تتحرك؟
- يضمن الأسلاك الصحيحة (VCC ، GND ، و GPIO18 للإشارة).
- في حالة استخدام مضاعفات متعددة ، استخدم مصدر الطاقة الخارجي 5V.
-
حركات غير منتظمة؟
- ضمان قوة مستقرة ؛ يستخدم المكثفات (100µF) إذا لزم الأمر.
- يستخدم أعلى دقة التحكم في PWM، مثل أ PCA9685 PWM وحدة لمزيد من الماكينات.
-
هل تم رفض الإذن خطأ؟
- قم بتشغيل البرنامج النصي مع
sudo
:sudo python3 servo_control.py
- قم بتشغيل البرنامج النصي مع
خاتمة
ال SG90 Servo Motor هي طريقة رائعة للإضافة التحكم في الحركة لمشاريع Raspberry Pi. باستخدام إشارات PWM، يمكنك التحكم بدقة في موقف المؤازرة تطبيقات الروبوتات والأتمتة وتطبيقات إنترنت الأشياء. تجربة زوايا وتطبيقات مختلفة لفتح إمكاناتها الكاملة! 🚀