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

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

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

يوفر هذا الدليل طريقة خطوة بخطوة للتحكم في أحد المعاييرمضاعفاتمحرك بلوحة ESP32 باستخدام بايثون. سواء كنت تقوم ببناء ذراع آلية، أو حامل كاميرا قابل للإمالة، أو دعامة متحركة بسيطة، فسوف تتعلم التوصيلات الدقيقة، ورمز Python، وخطوات المعايرة لجعلمضاعفاتالتحرك بدقة. تستند جميع الأمثلة على مواقف شائعة في العالم الحقيقي حتى تتمكن من تطبيقها على الفور على مشاريعك الخاصة.

01ما تحتاجه

لوحة تطوير ESP32 واحدة (أي متغير شائع)

معيار واحد 5 فولتمضاعفاتالمحرك (على سبيل المثال، نوع SG90 أو MG995)

مصدر طاقة خارجي 5 فولت (في حالة استخدام أجهزة ذات عزم دوران عالي)

أسلاك التوصيل (أنثى إلى أنثى)

جهاز كمبيوتر مثبت عليه البرامج الثابتة MicroPython على ESP32

> مهم: لا تقم مطلقًا بتشغيل المؤازرة مباشرةً من طرف ESP32 بجهد 3.3 فولت. تتطلب معظم الماكينات 5 فولت ويمكنها سحب تيار أكبر مما يمكن أن توفره اللوحة بأمان. استخدم مصدر طاقة منفصلًا بقدرة 5 فولت للمؤازرة، وقم بتوصيل سلك الإشارة فقط بـ ESP32.

02اتصال الأجهزة – حالة حقيقية

تخيل أنك تقوم ببناء مخلب آلي بسيط يفتح ويغلق. لديك أجهزة MG995 مشتركة. قم بتوصيله على النحو التالي:

سلك سيرفو اللون (نموذجي) الاتصال ب
قوة أحمر محطة إيجابية 5V الخارجية
أرضي البني أو الأسود ارضي خارجي 5 فولتوESP32 جي إن دي
إشارة برتقالي أو أصفر ESP32 GPIO دبوس 15 (أي دبوس PWM)

نقطة حرجة: الأرض من إمدادات الطاقة الخارجيةيجبأن تكون متصلاً بـ ESP32 GND. بدون هذه الأرضية المشتركة، ستكون الإشارة غير مستقرة وسيرتعش المؤازرة أو لا يتحرك.

03كود بايثون – خطوة بخطوة

يتحكم ESP32 في المؤازرة عن طريق توليد إشارة PWM بتردد 50 هرتز (الفترة = 20 مللي ثانية). يتم تحديد موضع المؤازرة من خلال عرض النبضة: 0.5 مللي ثانية لـ 0 درجة، و1.5 مللي ثانية لـ 90 درجة، و2.5 مللي ثانية لـ 180 درجة.

يوجد أدناه برنامج نصي كامل ومختبر لـ MicroPython. احفظه باسمmain.pyعلى ESP32 الخاص بك.

من دبوس استيراد الجهاز، وقت استيراد PWM # استخدم GPIO15 - يمكنك التغيير إلى أي طرف يدعم PWM SERVO_PIN = 15 # تردد مؤازر قياسي: 50 هرتز PWM_FREQ = 50 # قيم دورة التشغيل لـ 0°، 90°، 180° (محسوبة لـ 50 هرتز) # للحصول على دقة PWM 16 بت (0–65535): # Duty = (pulse_width_ms / 20 مللي ثانية)65535 # 0.5 مللي ثانية -> 1638 (0 درجة) # 1.5 مللي ثانية -> 4915 (90 درجة) # 2.5 مللي ثانية -> 8192 (180 درجة) DUTY_0 = 1638 DUTY_90 = 4915 DUTY_180 = 8192 # تهيئة PWM على طرف المؤازرة servo = PWM(Pin(SERVO_PIN), freq=PWM_FREQ, Duty_u16=DUTY_90) # ابدأ عند 90 درجة def set_angle(angle): """ اضبط زاوية المؤازرة (0 درجة إلى 180 درجة). تعيين الزاوية خطيًا لدورة العمل. """ # زاوية المشبك لزاوية النطاق الصالح = max(0, min(180, angle)) # رسم الخرائط الخطية: Duty = DUTY_0 + (الزاوية/180)(DUTY_180 - DUTY_0) Duty = int(DUTY_0 + (angle / 180) * (DUTY_180 - DUTY_0)) servo.duty_u16(duty) # مثال: المسح ذهابًا وإيابًا بينما True: للزاوية في النطاق(0, 181, 10): set_angle(angle) time.sleep_ms(50) للزاوية في النطاق(180, -1, -10): set_angle(زاوية) time.sleep_ms(50)

04كيفية استخدام الكود

1. قم بفلاش برنامج MicroPython الثابت إلى ESP32 (إذا لم يكن قد تم ذلك بالفعل).

2. قم بتوصيل المؤازرة كما هو موضح.

3. انسخ البرنامج النصي إلى اللوحة باستخدام أداة مثلcom.mpremoteأو ثوني.

4. قم بتشغيل البرنامج النصي. سوف تقوم المؤازرة بالمسح من 0 درجة إلى 180 درجة والعودة بشكل متكرر.

05المعايرة – لماذا قد يحتاج سيرفو الخاص بك إلى قيم مختلفة

تحتوي نماذج المؤازرة المختلفة على نطاقات عرض نبض مختلفة قليلاً. على سبيل المثال، قد يعمل SG90 الرخيص مع 0.5 مللي ثانية إلى 2.4 مللي ثانية، في حين أن MG996R عالي عزم الدوران يستخدم 0.6 مللي ثانية إلى 2.4 مللي ثانية. النطاق الشائع 0.5-2.5 مللي ثانية يعمل مع معظم الأشخاص، ولكن يجب عليك المعايرة دائمًا.

طريقة المعايرة(حالة واقعية من مشروع ذراع آلية):

اضبط دورة العمل على 1638 ولاحظ الزاوية الفعلية.

إذا لم يصل المؤازرة إلى 0 درجة، فقم بزيادة الواجب قليلاً (على سبيل المثال، 1700) حتى يتوقف عن الحركة.

افعل الشيء نفسه بالنسبة إلى 180 درجة بالتناقص من 8192.

استخدم DUTY_MIN وDUTY_MAX المقاسين فيset_angle()وظيفة.

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

مشكلة السبب الأكثر احتمالا يصلح
المؤازرة لا تتحرك على الإطلاق لا توجد أرضية مشتركة بين ESP32 وقوة المؤازرة قم بتوصيل GND للإمداد الخارجي بـ ESP32 GND
التوتر المؤازرة أو تشنجات تردد PWM ليس 50 هرتز؛ أو قوة غير مستقرة تعيينالتكرار=50; استخدم مصدرًا منفصلاً بجهد 5 فولت مع تيار كافٍ
يتحرك المؤازرة فقط في نطاق صغير قيم الواجب غير صحيحة لمضاعفتك معايرة كما هو موضح أعلاه؛ اضبط DUTY_0 وDUTY_180
يتم إعادة تعيين ESP32 عندما يتحرك المؤازرة يسحب المؤازرة الكثير من التيار من طرف 5V الموجود باللوحة لا تقم مطلقًا بتشغيل المؤازرة من ESP32؛ استخدام مصدر خارجي 5V

07المبدأ الأساسي الذي يجب تذكره

يتم التحكم في السيرفو من خلال عرض النبضة، وليس من خلال النسبة المئوية لدورة العمل.يجب أن يكون التردد 50 هرتز بالضبط (الفترة 20 مللي ثانية). يؤدي تغيير عرض النبضة بين 0.5 مللي ثانية و2.5 مللي ثانية إلى تدوير المؤازرة من 0 درجة إلى 180 درجة. في ميكروبايثونDuty_u16()الطريقة، يعتمد التعيين من عرض النبضة إلى قيمة الواجب على دقة عرض عرض النبضة (PWM) (دائمًا 16 بت على ESP32). استخدم الصيغ المتوفرة أو وظيفة التعيين الخطي.

08توصيات قابلة للتنفيذ

1. ابدأ دائمًا باختبار مسح بسيط- يؤكد الأسلاك وتشغيل PWM الأساسي.

2. استخدم محلل المنطق أو راسم الذبذباتللتحقق من عرض النبضة إذا كان السيرفو يتصرف بشكل غريب.

3. للمشاريع التي تعمل بالبطارية، أضف مكثفًا كبيرًا (470 درجة فهرنهايت أو أكثر) عبر أطراف الطاقة المؤازرة لامتصاص انخفاض الجهد.

4. عندما يتطلب مشروعك ماكينات متعددة، تحكم في كل منها على طرف GPIO منفصل، ولكن تأكد من أن إجمالي التيار لا يتجاوز تصنيف مصدر الطاقة الخاص بك.

09الملخص النهائي

يعد التحكم في جهاز مؤازر باستخدام ESP32 وPython أمرًا بسيطًا: قم بتوصيل سلك الإشارة بأي GPIO قادر على PWM، وقم بتوفير طاقة منفصلة بجهد 5 فولت مع أرضية مشتركة، وقم بإنشاء إشارة PWM بمعدل 50 هرتز، واضبط دورة التشغيل لتعيين عرض النبض بين 0.5 مللي ثانية و2.5 مللي ثانية. يعمل الكود المقدم خارج الصندوق لمعظم الماكينات القياسية. إذا كان نطاق الحركة غير صحيح، فقم بمعايرة الحد الأدنى والحد الأقصى لقيم الخدمة الخاصة بالمؤازرة المحددة لديك. أنت الآن جاهز لدمج الحركة الدقيقة في مشروعاتك القائمة على ESP32.

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

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

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

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