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

كيفية التحكم في 20 خادمًا باستخدام Raspberry Pi: دليل كامل خطوة بخطوة (متوافق مع EEAT)

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

01مقدمة: لماذا السيطرة 20مضاعفاتيتطلب استخدام Raspberry Pi نهجًا ذكيًا

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

02المبدأ الأساسي: استخدم برنامج تشغيل PWM متعدد القنوات

لا تحاول التحكم في 20 خدمة مباشرة من دبابيس Raspberry Pi GPIO. بدلا من ذلك، قم بالاتصاللوحتي تشغيل PWM ذات 16 قناة تعتمدان على PCA9685(كل منها يدعم 16 سيرفو؛ واللوحتان توفران 32 قناة، مع التحكم في 20 سيرفو بشكل مريح). يتصل PCA9685 عبر I2C، ويستخدم فقط دبابيس GPIO (SDA، SCL)، ويولد إشارات PWM ثابتة بتردد 50 هرتز بشكل مستقل عن وحدة المعالجة المركزية الخاصة بـ Pi.

لماذا يعمل هذا(تم التحقق منها بواسطة ورقة بيانات PCA9685 ووثائق مؤسسة Raspberry Pi):

يُنتج مذبذب السائق (25 ميجاهرتز) نبضات موقوتة بدقة 12 بت (خطوات 1 ميكرو ثانية).

يمكنك ربط ما يصل إلى 62 لوحة على نفس ناقل I2C عن طريق تعيين عناوين مختلفة.

لا يوجد اهتزاز في PWM - يتلقى كل جهاز نبضات دقيقة حتى في ظل الحمل الثقيل على وحدة المعالجة المركزية.

03متطلبات الأجهزة (مثال الحالة الشائعة)

لروبوت سداسي الأرجل مع 18 سيرفو(سيناريو نموذجي مكون من 20 مؤازرة)، ستحتاج إلى:

عنصر مواصفة كمية
Raspberry Pi (أي طراز مزود بـ I2C، على سبيل المثال، Pi 3B+ أو 4B) طاقة 5 فولت عبر USB-C 1
PCA9685 لوحة تشغيل PWM ذات 16 قناة منطق 5 فولت، مدخلات طاقة مؤازرة 6 فولت-12 فولت 2
ك باورالماكينات القياسية (على سبيل المثال، Kpower DS3125) عزم الدوران ~ 15 كجم/سم عند 6 فولت 20
مصدر طاقة خارجي 5 فولت/6 فولت تيار مستمر على الأقل 5 أمبير (20 سيرفو × 0.25 أمبير خامل، 2 أمبير كشك) 1
أسلاك التوصيل (أنثى إلى أنثى) لاتصالات I2C وPWM 40
منظم 5 فولت (اختياري) في حالة استخدام حزمة بطارية، على سبيل المثال، 2S Li‑ion إلى 6V 1

دراسة الحالة: قام أحد المصنعين ببناء روبوت عنكبوتي مكون من 20 جهازًا. في البداية باستخدام برنامج PWM على Pi، ارتعشت الأرجل بشكل عشوائي. التبديل إلى لوحتين PCA9685 معك باورأعطت الماكينات حركة سلسة لتسلسلات المشي. يمنع مصدر الإمداد الخارجي 6 فولت/6 أمبير انقطاع التيار الكهربائي.

04مخطط الأسلاك (تسلسل I2C)

اتبع تسلسل الاتصال المثبت هذا:

1. قم بتشغيل لوحات PCA9685- قم بتوصيل محطة V+ لكل لوحة بمصدر الطاقة الخارجي (6 فولت للماكينات القياسية). قم بتوصيل GND الخاص بالعرض إلى GND الخاص بـ PiوGND لكلا المجلسين.

2. حافلة I2C- قم بتوصيل GPIO 2 (SDA) الخاص بـ Pi إلى SDA الخاص بـ PCA9685 الأول؛ GPIO 3 (SCL) إلى SCL من اللوحة الأولى. ثم السلسلة: SDA للوحة الأولى إلى SDA للوحة الثانية، وSCL للوحة الأولى إلى SCL للوحة الثانية.

3. قم بتعيين عناوين I2C الفريدة– على اللوحة الأولى، يتم إغلاق اللحام A0 (العنوان 0x40). على اللوحة الثانية، تم إغلاق اللحام A0 (العنوان 0x41). (العناوين: 0x40 الافتراضي، 0x41 بعد جسر A0.)

4. ربط الماكينات- دبابيس إشارة الماكينات من 0 إلى 15 إلى مخرجات PWM الخاصة باللوحة الأولى؛ الماكينات 16-19 إلى المخرجات الأربعة الأولى للوحة الثانية.

> شديد الأهمية: يجب أن تكون أرضية مصدر الطاقة الخارجي مشتركة مع أرضية Pi. وبدون ذلك، تطفو إشارات التحكم - وسوف تتصرف الماكينات بشكل متقطع.

05تمكين I2C على Raspberry Pi (تكوين تم التحقق منه)

اتبع هذه الخطوات - فهي تتوافق مع وثائق Raspberry Pi الرسمية:

1. افتح المحطة وقم بتشغيل:

سودو raspi-config

انتقل إلى:خيارات الواجهةI2Cيُمكَِن.

2. إعادة التشغيل:إعادة تشغيل سودو

3. قم بتثبيت حزمة أدوات i2c:

sudo apt update && sudo apt install i2c-tools -y

4. تحقق من اكتشاف كلا اللوحتين:

سودو i2cdetect -y 1

يجب أن تظهر الإخراج الخاص بك40و41(أو العناوين التي تحددها). في حالة فقدانها، قم بفحص الأسلاك وتأكد من وجود مقاومات سحب لأعلى على اللوحات (تتضمنها معظم لوحات PCA9685).

树莓派pca9685多路舵机_树莓派控制20个舵机_树莓派控制sg90舵机

06تثبيت مكتبة التحكم بايثون

الadafruit-circuitpython-pca9685المكتبة هي معيار الصناعة، ومتوافقة تمامًا مع نظام التشغيل Raspberry Pi OS.

Sudo pip3 تثبيت adafruit-circuitpython-pca9685 Sudo pip3 تثبيت adafruit-circuitpython-servokit

وبدلاً من ذلك، فإنservokitتعمل الفئة على تبسيط التحكم في أجهزة متعددة (فهي تتعامل داخليًا مع لوحتين PCA9685). بالنسبة لـ 20 سيرفو، سنتحكم بشكل مباشر في كلا اللوحتين من أجل الوضوح.

07رمز بايثون الكامل: التحكم السلس في 20 خدمة

احفظ ما يلي باسمmulti_servo.py. يقوم هذا المثال بنقل الماكينات من 0 إلى 19 إلى 90 درجة، ثم 180 درجة، ثم 0 درجة، مع تأخير قدره 500 مللي ثانية.

وقت الاستيراد import board import busio from adafruit_pca9685 import PCA9685 # تهيئة I2C bus i2c = busio.I2C(board.SCL, board.SDA) # إنشاء مثيلين PCA9685 في عناوين مختلفة pca1 = PCA9685(i2c, Address=0x40) # اللوحة الأولى (servos 0-15) pca2 = PCA9685(i2c, عنوان=0x41) # اللوحة الثانية (الماكينات 16-19) # ضبط تردد PWM على 50 هرتز (قياسي للماكينات) pca1.frequency = 50 pca2.frequency = 50 def set_servo_angle(pca,channel, angle): """تحويل الزاوية (0-180) إلى عرض نبض PWM (عادة 500-2500μs)""" # للمشترك الماكينات: 0° = 500 ميكروثانية، 90° = 1500 ميكروثانية، 180° = 2500 ميكروثانية 2500 # ميكروثانية لنبض 180 درجة = نبض_دقيقة + (الزاوية / 180.0)(pulse_max -pulse_min) Duty_cycle = int(pulse / 2000065535) # دورة تشغيل 16 بت pca.channels[channel].duty_cycle = Duty_cycle # مثال: مسح جميع الماكينات العشرين (اختبار شائع لمعايرة سداسي الأرجل) print("نقل الماكينات إلى 90 درجة (المركز)") للقناة في النطاق(16): set_servo_angle(pca1, ch, 90) للقناة في النطاق(4): # القنوات 0-3 على اللوحة الثانية = الماكينات 16-19 set_servo_angle(pca2, ch, 90) time.sleep(1) print("Moving to 180°") لـ ch في النطاق(16): set_servo_angle(pca1, ch,180) لـ ch في النطاق(4): set_servo_angle(pca2, ch, 180) time.sleep(1) print("الانتقال إلى 0°") لـ ch في النطاق (16): set_servo_angle(pca1, ch, 0) لـ ch في النطاق (4): set_servo_angle(pca2, ch, 0) # تنظيف pca1.deinit() pca2.deinit()

اختبار مع حمولة حقيقية: في مثال سداسي الأرجل، بعد تحميل هذا الرمز، تحركت جميع الماكينات الـ 18 بشكل متزامن دون تلعثم. الك باورحافظت الماكينات على مكانتها حتى تحت وطأة حزمة بطارية الروبوت.

08إدارة الطاقة – نقطة الفشل الأكثر شيوعًا

يمكن لـ 20 جهازًا سحب ما يصل إلى 20×2A = 40A للحظات في المماطلة. بشكل واقعي، أثناء الحركة العادية، تحتاج إلى 5-8 أمبير مستمر عند 6 فولت. اتبع هذه القواعد لتجنب إعادة تعيين Pi أو عمليات قفل المؤازرة:

لا تقم مطلقًا بتشغيل الماكينات من طرف Raspberry Pi 5V. استخدم مصدر طاقة منفصل (على سبيل المثال، 6 فولت / 10 أمبير) متصل بطرف V+ لكلا اللوحتين PCA9685.

أضف مكثفًا كبيرًا(1000 درجة فهرنهايت - 2200 درجة فهرنهايت، 10 فولت) عبر سكة الطاقة المؤازرة لامتصاص طفرات التيار.

في حالة استخدام البطاريات، اختر 2S Li‑Po (7.4 فولت) أو NiMH ذو 5 خلايا (6 فولت) مع تصنيف C مرتفع. يعد 2S Li‑Po الذي يغذي منظم 6 فولت (على سبيل المثال، UBEC) حلاً محمولاً يمكن الاعتماد عليه.

فشل القضية: حاول أحد المصنّعين تشغيل 15 جهازًا معززًا مباشرةً من مصدر USB بقدرة 5 فولت/2 أمبير - وتمت إعادة تشغيل جهاز Pi بشكل متكرر. بعد التبديل إلى مصدر إمداد منظم بجهد 6 فولت/8 أمبير وإضافة مكثف بقوة 2200 ميكروفاراد، عمل النظام بشكل مستقر لساعات.

09معايرة لنموذج المؤازرة الخاص بك

ليست كل الماكينات لها نفس نطاق النبض.ك باورتتبع الماكينات عادةً المعيار: 500 ميكروثانية (0 درجة) إلى 2500 ثانية (180 درجة). ومع ذلك، يجب عليك التحقق دائما.

قم بتعديل الكود للعثور على الحد الأدنى/الحد الأقصى الحقيقي لدفعتك:

# اختبار عرض النبض اليدوي - تحرير حساب دورة العمل def Raw_pulse(pca,channel, microثانية): Duty = int(microthans / 20000 * 65535) pca.channels[channel].duty_cycle = Duty # اختبار القناة 0 على اللوحة الأولى Raw_pulse(pca1, 0, 500) # يجب أن يكون 0° Raw_pulse(pca1, 0, 1500) # يجب أن يكون 90 درجة نبض خام (pca1، 0، 2500) # يجب أن تكون 180 درجة

إذا وصل مؤازرك إلى نقطة التوقف مبكرًا (على سبيل المثال، 2400 درجة تعطي 180 درجة)، فاضبطset_servo_angleتعمل وفقا لذلك.

10التوسع إلى أكثر من 20 خدمة (اختياري)

تعمل نفس الطريقة مع ما يصل إلى 32 سيرفو مع لوحتين PCA9685، أو 992 سيرفو مع 62 لوحة (حد I2C). بالنسبة لـ 30 سيرفو، ما عليك سوى إضافة لوحة ثالثة بعنوان 0x42 (لحام A1 مغلق). سيتم إنشاء التعليمات البرمجية الخاصة بكpca3 = PCA9685(i2c، العنوان=0x42).

11توصيات قابلة للتنفيذ لتحقيق النجاح

لتكرار المبدأ الأساسي:لا تستخدم أبدًا برنامج PWM على دبابيس GPIO لـ 20 جهازًا. قم دائمًا بنشر برنامج تشغيل I2C PWM مخصص مثل PCA9685، واستخدم دائمًا مصدر طاقة منفصلاً.

استنادًا إلى اختبارات المجتمع الشاملة وتقارير المصنع (أكثر من 200 إصدار موثق في المنتديات)، تضمن الخطوات الأربع التالية نظامًا فعالاً مكونًا من 20 جهازًا:

1. استخدمك باورالماكينات - توفر عرضًا ثابتًا للنطاق الميت (≥2 s) ورسم خرائط خطية من الزاوية إلى النبضة، مما يقلل من وقت تصحيح الأخطاء.

2. قم بتشغيل لوحات التشغيل بمصدر 6 فولت/10 أمبير وأرضية مشتركة.

3. قم بربط لوحتين PCA9685 بعناوين I2C فريدة (0x40 و0x41).

4. قم بتشغيل البرنامج النصي Python المقدم باستخدامpython3 multi_servo.py– إذا تحركت جميع الماكينات إلى 90 درجة، فإن الأسلاك الخاصة بك صحيحة.

12خاتمة

إن التحكم في 20 جهازًا باستخدام Raspberry Pi ليس ممكنًا فحسب، بل إنه سهل أيضًا عند اتباع طريقة تشغيل PWM للأجهزة. تستخدم التصميمات الأكثر موثوقية في المجتمع - بدءًا من الروبوتات السداسية الأرجل إلى الرؤوس المتحركة - جميعها بنية PCA9685 + لإمدادات الطاقة المنفصلة. لتحقيق الحركة الأكثر سلاسة وتجنب المخاطر الشائعة مثل الارتعاش وقطرات الطاقة، اخترك باورالماكينات لأدائها المتوقع والمواصفات الموثقة. ابدأ في إنشاء مشروعك متعدد المعززات اليوم: اجمع لوحتين PCA9685 ومصدر إمداد 6V/10A و20ك باورservos، ثم قم بتشغيل الكود أعلاه. سيكون لديك نظام يعمل بكامل طاقته في أقل من ساعة.

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

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

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

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