[التحكم في الدفع تحت الماء] كيفية استخدام STM32 للتحكم في ESC من خلال PWM؟

Posted by Fengyukun on

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

إشارة بوم:
(1) التحكم في موجة PWM (يستخدم esc عمومًا التحكم في موجة PWM بمعدل 50 هرتز أو 20 مللي ثانية)؛
(2) الإيقاف المؤقت المتوسط ​​(يشير هنا بشكل عام إلى دورة العمل عالية المستوى) 1.5 مللي ثانية، في الواقع، هو توقف مؤقت متوسط ​​بين 1.475 مللي ثانية و1.525 مللي ثانية؛
(3) نطاق التحكم هو 1 مللي ثانية ~ 2 مللي ثانية ؛
(4) تقدم بمقدار 1.5 مللي ثانية إلى 2 مللي ثانية، وارجع بمقدار 1.5 مللي ثانية إلى 1 مللي ثانية.



فيما يلي مرجع بسيط يعتمد على Arduino:



ملحوظة: يجب إلغاء قفل ESC للاستخدام! عند توصيل ESC بالطاقة، سيصدر صوت تنبيه 3 مرات، ثم عندما يتم إلغاء قفله بنجاح، سيصدر صوتًا مرتين، ليصبح المجموع 5 مرات. إذا لم تقم بإلغاء قفل ESC بنجاح، فلن تتمكن من استخدامه للتحكم. لذلك، بالإشارة إلى الكود أعلاه، يمكننا أن نستنتج أن طريقة فتح ESC هي ضبطه على إشارة محايدة بعد التهيئة وانتظار استقبال الإشارة (صافرتين) قبل بدء التحكم في السرعة.


طرق التحكم والتصحيح


نحن نستخدم لوحة التطوير STM32F7 ونستخدم مكتبة HAL للبرمجة وتصحيح الأخطاء، وفي الواقع يقوم المؤقت بإخراج موجات PWM. ولكن هناك أشياء كثيرة يجب الانتباه إليها، والتفاصيل غير الواضحة تهدر الوقت والطاقة حقًا، وإليك بضع كلمات حول تجربة تصحيح الأخطاء.

بادئ ذي بدء، عند تكوين موجة PWM في المؤقت، يرجى الحرص على عدم تهيئتها كإشارة إلغاء القفل، أو إعطائها قيمة عشوائية، أو عدم تكوينها. نظرًا لأن ESC يتم إلغاء قفله فقط بعد تهيئة المؤقت وPWM، على سبيل المثال، إشارة التوقف المتوسطة البالغة 1.5 مللي ثانية هي إشارة إلغاء القفل الخاصة بها، فلا يمكنك تكوين PWM على 1.5 مللي ثانية من البداية، وإلا فإن ESC سيصدر صوت تنبيه مرة واحدة فقط بعد ذلك. ثلاث أصوات تنبيه ومن ثم لا يزال مجدافك غير قادر على الدوران.



ثانيا، انتبه إلى استخدام التأخير. في البداية، لم أستخدم التأخير، وكانت النتيجة أن ESC أصدر صوتًا فقط، ثم لم يستجب. ثم عندما لاحظت موجة PWM باستخدام مرسمة الذبذبات، وجدت أن PWM الذي قمت بتهيئته يومض مباشرة، وكنت بحاجة إلى امنح ESC وقتًا لتلقي إشارة إلغاء القفل. ولكن يجب عليك أيضًا الانتباه في هذا الوقت. في البداية، استخدمت Delay_us() لتكوينه، ولكن لا يمكن حل المشكلة. لاحقًا، قمت بتغييره إلى Delay_ms(1000)، مما يعني أن الوقت الذي تم تكوينه هو 1 ثانية. هناك لا تزال هناك مشكلة. ثم قمت بتعديل الوقت. وبعد صفيرتين أخيرتين، يبدأ المحرك في الدوران. لذلك، من المهم جدًا فهم وقت استقبال إشارة إلغاء القفل هذه.



انتبه أيضًا إلى تعلم استخدام راسم الذبذبات للتحقق مما إذا كانت هناك أي مشاكل في الإشارات التي تقوم بتكوينها أثناء الاستخدام. يوجد أدناه موجة PWM بدورة عمل تبلغ 1.5 مللي ثانية وفترة 20 مللي ثانية وسعة 3.3 فولت التي قمت بتهيئتها في البداية.



وخلاصة القول، ينبغي للعملية برمتها الاهتمام بما يلي:

(1) يتم التحكم في ESC بشكل عام بتردد 50 هرتز، ويتراوح نطاق التحكم تقريبًا بين 1 مللي ثانية و2 مللي ثانية، بالطبع، يعتمد ذلك على الموقف.
)2( بعد تشغيل الطاقة، سيصدر ESC صوت تنبيه 3 مرات. بعد نجاح إلغاء القفل، سيصدر ESC صوت تنبيه مرتين. ومع ذلك، إذا أصدر ESC صوتًا مرة واحدة فقط، فقد يعني ذلك أن ESC قد تلقى الإشارة التي قمت بتكوينها ولكنه لم يفتح قفل الجهاز بنجاح، لذلك تحتاج إلى التحقق مرة أخرى من رمز إلغاء القفل لمعرفة ما إذا كانت هناك أية أخطاء. إذا لم يصدر ESC صوتًا، فهذا يعني أنه لا يتلقى إشارة، فتحقق مرة أخرى من الأسلاك والكود الخاص بك.
(3) انتبه إلى استخدام وظيفة التأخير لمنح ESC قدرًا معينًا من الوقت لتلقي إشارة إلغاء القفل. يختلف كل ESC عن الآخر، لذا يمكنك ضبط ذلك بنفسك.
(4) انتبه إلى التأريض، وقم بتوصيل خط إشارة ESC بمنفذ إخراج الإشارة بلوحة التحكم، ثم قم بتأريض خط الإشارة بأرض GND بلوحة التحكم.
(5) تعلم كيفية استخدام راسم الذبذبات للتحقق من الإشارات التي تم تكوينها.
لا تقم بتوصيل الخط الخطأ!

Share this post



← Older Post Newer Post →


0 comments

Leave a comment