الحصول على تسليم مجانا على جميع الطلبات أكثر من 20 جنيه!

باستخدام محرك SG90 Servo مع Raspberry Pi

Using the SG90 Servo Motor with the Raspberry Pi

الـ SG90 محرك سيرفو هو سيرفو صغير وخفيف الوزن يُستخدم عادةً في الروبوتات والأتمتة ومشاريع الأعمال اليدوية. يتيح التحكم الدقيق في الموضع الزاوي باستخدام تعديل عرض النبضة (PWM). سيوضح لك هذا الدليل كيفية التحكم في SG90 محرك سيرفو مع Raspberry Pi باستخدام Python.


ما ستحتاج إليه

  1. راسبيري باي (أي نموذج يدعم GPIO، مثل Pi 3، Pi 4)
  2. SG90 محرك سيرفو
  3. مصدر طاقة خارجي (5V، اختياري لعدة سيرفو)
  4. لوحة تجارب وأسلاك توصيل
  5. تم تثبيت Python على Raspberry Pi

الخطوة 1: توصيل الأسلاك SG90 سيرفو إلى Raspberry Pi

الـ SG90 يحتوي محرك السيرفو على ثلاثة أطراف:

SG90 دبوس دبوس Raspberry Pi وظيفة
VCC (أحمر) 5V (الدبوس 2) مزود طاقة
GND (بني) GND (Pin 6) أرض
سيجنال (برتقالي) GPIO18 (الدبوس 12) التحكم في إشارة PWM

ملاحظة: إذا كنت تستخدم عدة سيرفو، استخدم مزود طاقة خارجي 5V لتجنّب زيادة الحمل على دبوس 5V في Raspberry Pi.


الخطوة 2: تمكين PWM على Raspberry Pi

حاسوب Raspberry Pi يولّد إشارات PWM للتحكم في موضع السيرفو.

  1. ثبّت الـ مكتبة Raspberry Pi GPIO (إذا لم يكن مثبتًا بالفعل):
    sudo apt update && sudo apt install python3-rpi.gpio
    
  2. افتح محرر نصوص لسكربتات Python:
    nano servo_control.py
    
  3. انسخ برنامج Python النصي التالي إلى تحكّم في الـ SG90 محرك سيرفو:

الخطوة 3: كود Python للتحكم في السيرفو

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: تشغيل برنامج التحكم في السيرفو

  1. احفظ النص البرمجي واخرج

    • اضغط CTRL+X، ثم Y، ثم إدخال.
  2. شغّل البرنامج النصي

    python3 servo_control.py
    
  3. أدخل زوايا بين 0 و 180 لتحريك السيرفو.


الخطوة 5: فهم PWM للتحكم في السيرفو

  • تردد PWM: الـ SG90 يعمل عند 50Hz.
  • حساب دورة التشغيل:
    • 0° → 2.5% دورة العمل
    • 90° → دورة عمل 7.5%
    • 180° → دورة عمل 12.5%
  • الصيغة: duty_cycle = (angle / 18) + 2.5

الخطوة 6: تطبيقات SG90 سيرفو مع Raspberry Pi

  1. أذرع روبوتية – فواصل تحكم للحركة.
  2. الأبواب والأقفال الأوتوماتيكية – آليات فتح/إغلاق باستخدام سيرفو.
  3. أنظمة الكاميرات القابلة للدوران والإمالة – حرّك الكاميرات للمراقبة أو التصوير الفوتوغرافي.
  4. أتمتة المنزل الذكي – تحكّم بالأذرع والأقفال والمفاتيح عن بُعد.

استكشاف الأخطاء وإصلاحها

  1. المحرّك المؤازر لا يتحرّك؟

    • تأكد توصيل صحيح ( VCC و GND و GPIO18 للإشارة).
    • إذا كنت تستخدم عدة سيرفو، فاستخدم مصدر طاقة خارجي بجهد 5V.
  2. حركات غير منتظمة؟

    • ضمان طاقة مستقرة؛ استخدم المكثفات (100µF) إذا لزم الأمر.
    • استخدم تحكم PWM بدقة أعلى، مثل وحدة PWM من نوع PCA9685 لعدة محركات سيرفو.
  3. خطأ رفض الإذن؟

    • شغّل النص البرمجي باستخدام sudo:
      sudo python3 servo_control.py
      

الخلاصة

الـ SG90 محرك مؤازر طريقة رائعة لإضافة التحكم بالحركة إلى مشاريع Raspberry Pi. من خلال استخدام إشارات PWM، يمكنك التحكم بدقة في موضع السيرفو لـ تطبيقات الروبوتات والأتمتة وإنترنت الأشياء. جرّب زوايا وتطبيقات مختلفة لإطلاق إمكاناته الكاملة! 🚀

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.

1 تعليق

Hi,
I’m considering buying some servos for a robotics and I keep seeing “analogue” and “digital” servos. If I’m using analogue servos do I need an ADC for each one, or can I plug them straight into the pi? is there even any difference? I assume this guide is for digital servos, but the pictures don’t have the “digital” label some do online

Fozzy,

اترك تعليقًا