تم النشر 2026-04-20
يوفر هذا الدليل إرشادات خطوة بخطوة لتوصيل جهاز صغير والتحكم فيهمضاعفاتالمحرك باستخدام Raspberry Pi. سوف تتعلم التوصيلات الصحيحة وأمثلة كود بايثون والحلول العملية للمشكلات الشائعة. تعتمد جميع المعلومات على الممارسات الإلكترونية القياسية ويتم التحقق منها من خلال اختبارات واقعية.
Raspberry Pi (أي طراز مزود بدبابيس GPIO، مثل 3B+ أو 4 أو 5)
مايكرومضاعفاتالمحرك (النوع الشائع: 9 جراممضاعفات، 3 أسلاك)
أسلاك التوصيل (أنثى إلى أنثى)
مصدر طاقة خارجي 5 فولت (اختياري ولكن يوصى به للتشغيل المستقر)
مقياس جهد صغير (اختياري، لمثال التحكم اليدوي)
ملاحظة هامة تتعلق بالسلامة:لا السلطةمايكرو سيرفومباشرة من دبوس Raspberry Pi 5V إذا كنت تقوم بتشغيل المؤازرة تحت الحمل أو لفترات طويلة. يمكن لمخرج Pi 5V أن يوفر حوالي 500 مللي أمبير فقط، ومايكرو سيرفويمكن سحب 200-400mA أثناء الحركة. استخدم مصدر طاقة منفصل 5 فولت (على سبيل المثال، بطاريات 4xAA أو بنك طاقة USB 5 فولت) وقم بتوصيل أرض هذا المصدر بأرض Pi.
اتبع هذه الاتصالات الثلاثة بالضبط. المايكرو سيرفولديه ثلاثة أسلاك:
البني أو الأسود→ الأرض (GND)
أحمر→ طاقة 5 فولت (مصدر خارجي أو دبوس Pi 5V للاختبار فقط)
برتقالي أو أصفر→ دبوس GPIO (على سبيل المثال، GPIO18)
مثال الحالة الشائعة:حاول أحد الهواة تشغيل اثنين من الماكينات الصغيرة مباشرة من دبوس Pi 5V. ارتعشت الماكينات بشكل متقطع وأعيد تشغيل Pi. بعد إضافة حزمة بطارية منفصلة بقوة 5 فولت (4xAA) وتوصيل جميع المكونات الأساسية معًا، عملت كلتا المخدمتين بسلاسة لساعات.
يحتوي محرك سيرفو صغير على محرك DC ومقياس الجهد (مستشعر الموضع) ودائرة التحكم. يستخدمتعديل عرض النبض (PWM)لضبط زاوية العمود. تتوقع المؤازرة إشارة 50 هرتز (فترة 20 مللي ثانية). يحدد طول النبضة الزاوية:
نبض 0.5 مللي ثانية → 0 درجة
نبض 1.5 مللي ثانية → 90 درجة (مركز)
نبض 2.5 مللي ثانية → 180 درجة
تمتلك معظم الماكينات الصغيرة نطاقًا فعليًا يبلغ حوالي 180 درجة، لكن بعضها يصل إلى 90 أو 270 درجة. اختبر الحدود دائمًا بدون تحميل أولاً.
1. قم بتمكين أجهزة PWM على Raspberry Pi. افتح المحطة وقم بتشغيل:
سودو raspi-config
انتقل إلى: خيارات الواجهة → Remote GPIO → نعم → إنهاء.
2. قم بتثبيت مكتبة RPi.GPIO (المثبتة مسبقًا على معظم إصدارات Raspberry Pi OS). للتحكم الكامل في PWM، قم بتثبيت Pigpio:
Sudo apt تحديث Sudo apt تثبيت Pigpio python3-pigpio سودو systemctl تمكين Pigpiod سودو systemctl بدء Pigpiod
قم بإنشاء ملف باسمservo_sweep.py:
import pigpio import time # الاتصال بـ pigpio daemon pi = pigpio.pi() if not pi.connected: print("Pigpio daemon not Running. Start with: sudo pigpiod")exit() # تعيين دبوس GPIO (باستخدام GPIO18) SERVO_PIN = 18 # تعريف عرض النبض بالميكروثانية (500 = 0.5 مللي ثانية، 2500 = 2.5 مللي ثانية) def set_angle(angle): # تحويل الزاوية (0-180) إلى عرض النبضة (500-2500) نبض = 500 + (زاوية / 180.0)2000 pi.set_servo_pulsewidth(SERVO_PIN، نبض) حاول: بينما صحيح: للزاوية في النطاق (0، 181، 10): set_angle(angle) time.sleep(0.1) للزاوية في النطاق (180، -1،-10): set_angle(angle) time.sleep(0.1) باستثناء KeyboardInterrupt: print("Stopping...") pi.set_servo_pulsewidth(SERVO_PIN, 0) # إيقاف إشارة PWM pi.stop()
قم بتشغيل الكود:
sudo pigpiod # إذا لم يكن قيد التشغيل python3 servo_sweep.py بالفعل
النتيجة المتوقعة:سوف يتحرك ذراع المؤازرة من 0 إلى 180 درجة ثم يعود ويتوقف لمدة 0.1 ثانية عند كل خطوة بمقدار 10 درجات.
يتيح لك هذا المثال تشغيل مقياس الجهد لتحديد موضع المؤازرة. قم بتوصيل مقياس الجهد 10 كيلو أوم: الدبوس الأيسر إلى 3.3 فولت، الدبوس الأيمن إلى GND، الدبوس الأوسط إلى GPIO17 (مدخل ADC). لا يحتوي Raspberry Pi على مدخلات تناظرية، لذلك نستخدم شريحة MCP3008 ADC أو طريقة توقيت RC بسيطة. فيما يلي طريقة توقيت RC (لا حاجة لشريحة إضافية).
قم بتوصيل مكثف 1μF بين GPIO23 وGND، ومقاوم 10kΩ من GPIO23 إلى ممسحة الجهد. هذا متقدم. للبساطة، استخدم MCP3008 مع SPI. ومع ذلك، هناك حالة شائعة: العديد من المبتدئين يفشلون لأنهم يحاولون القراءة التناظرية مباشرة.توصية:استخدم ADC غير مكلف مثل MCP3008 أو قم بشراء لوحة تشغيل مؤازرة.
إليك رمزًا موثوقًا به باستخدام MCP3008:
استيراد Pigpio استيراد الوقت استيراد spidev spi = spidev.SpiDev() spi.open(0, 0) spi.max_speed_hz = 1350000 def read_adc(channel): إذا كانت القناة 7: العودة -1 adc = spi.xfer2([1, (8+channel) 2000 pi.set_servo_pulsewidth(SERVO_PIN,pulse) حاول: while True: value = read_adc(0) # مقياس الجهد على زاوية القناة 0 = (القيمة / 1023.0) * 180 set_angle(angle) time.sleep(0.02) باستثناء KeyboardInterrupt: pi.set_servo_pulsewidth(SERVO_PIN, 0) pi.stop() spi. Close()
للتحكم في ما يصل إلى 16 جهازًا صغيرًا، استخدم لوحة تشغيل PWM مخصصة (بدون تسمية العلامات التجارية، ابحث عن "16-channel PWM servo driver I2C"). قم بتوصيله عبر I2C. يتطلب برنامج التشغيل اثنين فقط من منافذ GPIO (SDA/SCL) ومصدرًا خارجيًا بجهد 5 فولت. يحصل كل سيرفو على دبوس الإشارة الخاص به. وهذا يزيل الارتعاش وتحميل وحدة المعالجة المركزية.
1. ابدأ دائمًا بمؤازرة واحدة ومصدر طاقة خارجي 5 فولت.اختبر رمز المسح قبل إضافة المنطق الخاص بك.
2. استخدم Pigpio لجميع المشاريع المؤازرة.فهو يوفر PWM بتوقيت الأجهزة بدقة ميكروثانية، وهو أمر ضروري للحركة السلسة.
3. اضبط نبض المؤازرة على 0 (إيقاف) عند عدم التحرك.وهذا يقلل من استهلاك الطاقة ويمنع ارتفاع درجة الحرارة.
4. أضف مكثفًا بسعة 1000 ميكرو فاراد عبر أطراف إمداد الطاقة(إيجابي وأرضي) بالقرب من المؤازرة لتسهيل ارتفاع الجهد.
5. بالنسبة للمشروعات التي تعمل بالبطارية، استخدم 4 بطاريات NiMH AA قابلة لإعادة الشحن(4.8 فولت) أو 5 فولت UBEC منظم. لا تستخدم 6 فولت إلا إذا تم تصنيف المؤازرة عليه (معظم الماكينات الصغيرة تقبل 4.8-6.0 فولت).
يتطلب التحكم في محرك سيرفو صغير باستخدام Raspberry Pi توصيلات صحيحة، ومصدر طاقة خارجي للتشغيل الموثوق، ومكتبة Pigpio للحصول على إشارات PWM دقيقة. الخطوات الأساسية هي: توصيل الأرض والطاقة بشكل صحيح، واستخدام GPIO18 لـ PWM، وكتابة كود Python الذي يعين الزوايا لعرض النبض بين 500 و2500 ميكروثانية، والاختبار دائمًا بدون تحميل أولاً.
خطوات العمل النهائية:
قم بتجميع الدائرة باستخدام بطارية منفصلة 5 فولت.
قم بتثبيت Pigpio وقم بتشغيل كود الاجتياح.
قم بتعديل الكود لدمج التحكم المؤازر في مشروعك الخاص (ذراع آلي، أو إمالة الكاميرا، أو وحدة التغذية التلقائية).
إذا واجهت الارتعاش، قم بالتبديل من RPi.GPIO إلى pigpio.
بالنسبة للماكينات المتعددة، قم بإضافة لوحة تشغيل PWM.
باتباع هذا الدليل، ستحقق تحكمًا ثابتًا ودقيقًا في أي محرك سيرفو قياسي باستخدام Raspberry Pi.
وقت التحديث:2026-04-20