بيت > رؤى الصناعة >بلدك
الدعم الفني

التحكم في 20 جهازًا باستخدام Raspberry Pi: دليل كامل خطوة بخطوة

تم النشر 2026-04-08

يوفر هذا الدليل حلاً عمليًا تم اختباره ميدانيًا للتحكم في ما يصل إلى 20مضاعفاتيتم استخدام جهاز كمبيوتر ذو لوحة واحدة في نفس الوقت مثل Raspberry Pi. ربط أكثر من اثنين مباشرةمضاعفاتيؤدي توصيل دبابيس GPIO إلى انخفاض الجهد وتعارض توقيت PWM وتلف اللوحة. الطريقة الموثوقة هي استخدام وحدة تشغيل PWM مخصصة (على سبيل المثال، PCA9685). ستجد أدناه الإعداد الدقيق للأجهزة، ومخططات الأسلاك، وحسابات الطاقة، ورمز Python، وخطوات استكشاف الأخطاء وإصلاحها - وكلها تعتمد على مشاريع الروبوتات والإلكترونيات المتحركة الشائعة في العالم الحقيقي.

01لماذا لا يمكنك الاتصال 20مضاعفاتمباشرة إلى GPIO

الحد الحالي: يوفر كل طرف GPIO 16 مللي أمبير بحد أقصى، بينما يسحب المؤازرة القياسية 150-500 مللي أمبير عند التحرك. تتطلب 20 وحدة سيرفو أكثر من 10 أمبير، وهو ما يتجاوز بكثير سعة السكك الحديدية للوحة البالغة 3.3 فولت/5 فولت.

الحد الأقصى للأجهزة PWM: يحتوي Raspberry Pi على قناتين PWM للأجهزة فقط (GPIO 18 و19). يقدم برنامج PWM الموجود على دبابيس أخرى الارتعاش والتحميل الزائد لوحدة المعالجة المركزية لـ 20 جهازًا.

انهيار الجهد: سيؤدي تشغيل 20 سيرفو من طرف 5V باللوحة إلى انخفاض فوري في الجهد، مما يؤدي إلى إعادة ضبط النظام.

02نظرة عامة على الحل الأساسي

استخدموحدة تشغيل PWM المعتمدة على I²C(يعد PCA9685 ذو 16 قناة هو المعيار الصناعي). قم بتوصيل وحدتين من هذه الوحدات (تتعامل كل منهما مع ما يصل إلى 16 جهازًا) أو وحدة واحدة بالإضافة إلى معدد الإرسال. يستخدم هذا الدليل لوحتين PCA9685 (إجمالي 32 قناة، باستخدام 20 فقط).

03المكونات المطلوبة (لا توجد أسماء تجارية)

كمبيوتر واحد ذو لوحة واحدة (Raspberry Pi 3B+ أو أحدث)

2 PCA9685 لوحات تشغيل PWM ذات 16 قناة و12 بت

20 خدمة قياسية 5 فولت (على سبيل المثال، SG90، أو MG90S، أو MG996R - اختر بناءً على احتياجات عزم الدوران)

1 مصدر طاقة خارجي 5 فولت تيار مستمر - احسب التيار: 20 سيرفو × 0.5 أمبير = 10 أمبير كحد أدنى. استخدم أ10A – 15A إمداد منظم بجهد 5 فولت.

المكثفات: 2 × 1000 ميكرو فاراد إلكتروليتية (≥10 فولت) لتنعيم الطاقة

أسلاك التوصيل (أنثى إلى أنثى لـ I²C، وذكر إلى أنثى للاتصالات المؤازرة)

الألواح أو الكتل الطرفية لتوزيع الطاقة

04مخطط الأسلاك (خطوة بخطوة)

الخطوة 1 - اتصال I²C بين Raspberry Pi وPCA9685 الأول

Pi 3.3V → VCC لـ PCA9685 (ملاحظة: بعض الوحدات تقبل منطق 5 فولت؛ تحقق من الوحدة الخاصة بك. بالنسبة للوحدات المنطقية 5 فولت، استخدم Pi 3.3 فولت فقط إذا كانت الوحدة متسامحة مع 3.3 فولت. أكثر أمانًا: قم بتوصيل VCC بمنفذ 5 فولت الخاص بـ Pi فقط إذا أكدت ورقة بيانات الوحدة تحمل 5 فولت. تعمل معظم لوحات PCA9685 مع منطق 3.3 فولت I²C ولكنها تحتاج إلى 5 فولت لـ سيرفو V+ – راجع الخطوة التالية.)

الأسلاك القياسية الصحيحة (لـ 99% من لوحات PCA9685):

Pi 5V (دبوس 2 أو 4) → PCA9685 VCC (الطاقة لمنطق الشريحة - نعم، يعمل الكثير منها على منطق 5V)

باي GND → PCA9685 GND

بي SDA (GPIO 2) → PCA9685 SDA

بي إس سي إل (GPIO 3) → PCA9685 إس سي إل

الخطوة 2 - الطاقة الخارجية للماكينات

مصدر إمداد خارجي 5 فولت (10A+) موجب (+) → محطة PCA9685 V+ (غالبًا ما يطلق عليها "V+" أو "طاقة مؤازرة")

العرض الخارجي GND → PCA9685 GND (يجب مشاركة أرضية مشتركة مع Pi - قم بتوصيل Pi GND إلى PCA9685 GND كما هو موضح أعلاه)

ضع مكثف 1000 درجة فهرنهايت عبر V+ وGND بالقرب من PCA9685 لامتصاص طفرات EMF الخلفية.

الخطوة 3 – توصيل الماكينات

الأحمر (الطاقة) لكل مؤازرة → PCA9685 V + السكك الحديدية (استخدم سكة الطاقة اللوح)

مؤازرة بني/أسود (GND) → PCA9685 GND السكك الحديدية

مؤازرة برتقالية/أصفر (إشارة) → دبوس إخراج PCA9685 PWM (من 0 إلى 15 على اللوحة الأولى، ومن 0 إلى 3 على اللوحة الثانية)

الخطوة 4 - PCA9685 الثاني

قم بتعيين عنوان I²C للوحة الثانية: قم بلحام وصلات العبور الخاصة بالعنوان. العنوان الافتراضي لـ PCA9685 هو 0x40. بالنسبة للوحة الثانية: وصلة اللحام A0 → يصبح العنوان 0x41.

قم بتوصيل SDA/SCL/GND/VCC للوحة الثانية بالتوازي مع اللوحة الأولى (نفس ناقل I²C).

قم بتوصيل V+ بنفس مصدر 5V الخارجي.

05إعداد البرنامج (نظام التشغيل Raspberry Pi، الأوامر الطرفية)

تمكين I²C على Pi:

sudo raspi-config # خيارات الواجهة → I2C → نعم sudo reboot

تثبيت المكتبات المطلوبة:

تحديث Sudo apt Sudo apt تثبيت python3-pip python3-smbus i2c-tools Sudo pip3 تثبيت adafruit-circuitpython-pca9685

التحقق من أجهزة I²C:

سودو i2cdetect -y 1

يجب أن تشاهد 0x40 و0x41 (إذا تم توجيه اللوحة الثانية بشكل صحيح).

06كود بايثون للتحكم في 20 سيرفو بشكل مستقل

قم بإنشاء ملفservo_control.py:

وقت الاستيراد import board import busio from adafruit_pca9685 import PCA9685 # تهيئة I2C bus i2c = busio.I2C(board.SCL, board.SDA) # أول PCA9685 على العنوان 0x40 pca1 = PCA9685(i2c, Address=0x40) pca1.frequency = 50 # 50 هرتز للماكينات القياسية # Second PCA9685 على العنوان 0x41 pca2 = PCA9685(i2c, Address=0x41) pca2.frequency = 50 # نطاق عرض نبض المؤازرة (نموذجي من 500 إلى 2500 ميكروثانية) # تحويل إلى دورة الخدمة: Duty =pulse_us / 2000065535 def angle_to_duty(angle, min_us=500, max_us=2500): النبض = min_us + (الزاوية / 180.0)(max_us - min_us) return int((pulse / 20000.0) * 65535) # التحكم في أي مؤازرة عن طريق اللوحة والقناة def set_servo(board,channel, angle): if angle 180: angle = 180 board.channels[channel].duty_cycle = angle_to_duty(angle) # مثال: انقل جميع الماكينات العشرين إلى 90 درجة servos = [(pca1, i) for i in range(16)] + [(pca2, i) for i in range(4)] # إجمالي 20 للوحة، ch في الماكينات: set_servo(board, ch, 90) time.sleep(0.01) # stagger لتقليل زيادة التيار # اكتساح المؤازرة على اللوحة 1 القناة 0 من 0 إلى 180 print("مؤازرة كاسحة على اللوحة 1 ch0") للزاوية في range(0, 181, 10): set_servo(pca1, 0, angle) time.sleep(0.05) # حرر جميع الماكينات (توقف عن إرسال PWM) - مهم لمنع الارتعاش pca1.deinit() pca2.deinit()

07إدارة الطاقة – الجزء الأكثر أهمية

حالة حقيقية: قام أحد الهواة ذات مرة بتوصيل 10 أجهزة مؤازرة مباشرة بمصدر طاقة 5 فولت/3 أمبير. أثناء الحركة المتزامنة، انخفض الجهد إلى 3.8 فولت، وتوقفت الماكينات، وتم إعادة تشغيل Raspberry Pi. حل:استخدم مصدرًا منظمًا بقدرة 5 فولت/15 أمبير(على سبيل المثال، مصدر طاقة LED أو سكة 5 فولت لمصدر طاقة ATX للكمبيوتر). يضيفالمكثفات الكبيرة(1000 درجة فهرنهايت لكل 5-8 خدمات) بالقرب من كل لوحة للقيادة.

قاعدة قابلة للتنفيذ: احسب الحد الأقصى للتيار المتزامن. إذا تحركت جميع الماكينات العشرين مرة واحدة، فافترض أن 10A. للسلامة، أضف هامشًا بنسبة 30٪ ←13A الحد الأدنى. استخدم 14AWG أو أسلاك أكثر سمكًا لتوزيع الطاقة.

08معايرة عروض نبض المؤازرة

ليست كل الماكينات لها نفس الحد الأدنى/الحد الأقصى للنبض. القيم المشتركة:

500 ميكروثانية (0 درجة) – 2500 ميكروثانية (180 درجة) للماكينات التناظرية

600 ميكروثانية (0 درجة) – 2400 ميكروثانية (180 درجة) للعديد من الماكينات الرقمية

للمعايرة: اكتب نصًا اختباريًا يمتد من 300 إلى 2700 ميكروثانية، وابحث عن الحدود الميكانيكية، ثم قم بالتحديثناقصوmax_usفي الوظيفة أعلاه.

09المشاكل والحلول المشتركة

مشكلة السبب الأكثر احتمالا يصلح
الماكينات نشل أو لا تتحرك عدم كفاية التيار الكهربائي قم بالترقية إلى مصدر 15 أمبير، واستخدم أسلاكًا سميكة أقصر
يتم إعادة تشغيل Raspberry Pi عند بدء تشغيل الماكينات انخفاض الجهد على خط 5V استخدم مصدرًا خارجيًا فقط للماكينات، وحافظ على تشغيل Pi بشكل منفصل (عبر USB-C)
يعمل 16 سيرفو فقط، وليس 20 لم يتم الكشف عن اللوحة الثانية تحقق من عنوان I²C (استخدمi2cdetect -y 1)، تأكد من اتصالات SDA/SCL
تتحرك الماكينات ولكن غضب أرضية مشتركة مفقودة قم بتوصيل Pi GND إلى PCA9685 GND وإمداد GND الخارجي معًا
سيرفر واحد لا يستجيب سلك أو قناة إشارة سيئة قم بالتبديل مع أجهزة عمل معروفة على نفس القناة للعزل

10تحسين الأداء لـ 20 خدمة

حركة ترنح: لا تأمر جميع الماكينات بتغيير الزاوية بنفس الميكروثانية تمامًا. يضيفوقت النوم (0.005)بين كلset_servoيتصل. وهذا يقلل من ذروة التيار عن طريق توزيع الحمل.

معدل التحديث: 50 هرتز (فترة 20 مللي ثانية) هو المعيار. لا تقم بزيادة التردد فوق 100 هرتز - ستسخن معظم الماكينات.

استخدام وحدة المعالجة المركزية: يقوم جهاز PCA9685 بإنشاء PWM بشكل مستقل. يرسل برنامج Python النصي أوامر I²C فقط في كل مرة تقوم فيها بتغيير الزوايا. بالنسبة للمواضع الثابتة، يمكن الخروج من البرنامج النصي - تحتفظ الماكينات بالموضع الأخير طالما يتم تطبيق الطاقة.

11أكمل خطة العمل لتنفيذ ذلك اليوم

1. مكونات النظام- لوحتان PCA9685، 20 سيرفو، مصدر طاقة 5 فولت/15 أمبير، مكثفات 1000 ميكروفاراد.

2. اختبار مع مضاعفات واحدة- قم بتوصيل جهاز مؤازر واحد إلى PCA9685 الأول، وقم بتشغيل رمز المسح.

3. أضف مصدر الطاقة- قم بتوصيل 5V/15A خارجي بسكة V+، وتحقق من تحركات المؤازرة بقوة.

4. مقياس إلى 5 الماكينات- إضافة المزيد من السيرفرات تدريجياً، مع مراقبة درجة حرارة أسلاك إمداد الطاقة.

5. أضف PCA9685 الثاني- اضبط العنوان على 0x41، وقم بتوصيل 4 أجهزة، واختبار.

6. اختبار كامل لـ 20 مؤازرة– قم بتشغيل الكود المقدم لتحريك جميع الماكينات إلى 90 درجة، ثم مسح بطيء لجميع القنوات.

12الوجبات الجاهزة الرئيسية

لا يمكنك التحكم في 20 جهازًا مباشرًا من GPIO الخاص بـ Raspberry Pi - استخدم لوحات تشغيل PCA9685 PWM مع مصدر طاقة مخصص عالي التيار 5 فولت.يتم استخدام هذه الطريقة في الآلاف من الرسوم المتحركة الحقيقية والروبوتات السداسية ومشاريع الأتمتة. إنها موثوقة وقابلة للتطوير وموثقة جيدًا. ابدأ باختبار صغير، وتحقق من استقرار الطاقة، ثم قم بتوسيع نطاقه. يعتمد نجاحك على التأريض المناسب والتيار الكافي - وكلاهما غير قابل للتفاوض.

اتخذ الإجراء الآن: قم بتوصيل PCA9685 واحد بمزود مؤازر واحد ومصدر خارجي بجهد 5 فولت. بمجرد أن ينجح ذلك، قم بإضافة الباقي. سيكون لديك نظام مستقر مكون من 20 مؤازرة خلال ساعتين من التجميع.

وقت التحديث: 2026-04-08

تمكين المستقبل

اتصل بمتخصص منتج Kpower للتوصية بالمحرك أو علبة التروس المناسبة لمنتجك.

البريد إلى Kpower
إرسال الاستفسار
+86 0769 8399 3238
 
kpowerMap