جدول المحتويات:

UCL Embedded - B0B المتابع الخطي: 9 خطوات
UCL Embedded - B0B المتابع الخطي: 9 خطوات

فيديو: UCL Embedded - B0B المتابع الخطي: 9 خطوات

فيديو: UCL Embedded - B0B المتابع الخطي: 9 خطوات
فيديو: All #UCL Goals: ROBERT LEWANDOWSKI 2024, شهر نوفمبر
Anonim
UCL مضمن - B0B المتابع الخطي
UCL مضمن - B0B المتابع الخطي

هذا هو B0B. *

B0B هي سيارة عامة يتم التحكم فيها عن طريق الراديو ، وتخدم بشكل مؤقت أساس الروبوت الذي يتبع الخط.

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

على عكس العديد من الروبوتات الأخرى التي تتبع الخط ، تقوم B0B أيضًا بجمع البيانات وإرسالها عبر WiFi.

إنها مبالغة تمامًا في مشروع هواية ، فهي تتضمن عددًا من الموضوعات التي قد تجدها مثيرة للاهتمام. يصف هذا الدليل ولادته ووظائفه وكيف يمكنك صنع مثله تمامًا.

يتضمن أيضًا الغضب من العديد من الأجهزة الإلكترونية لعدم العمل بالطريقة التي أردناها ، والخطوات التي اتخذناها للتغلب على تلك الصعوبات ، (أنا أنظر إليك ESP 8266-01).

هناك رمزان لجعل المشروع يعمل. الكود الأول هو لوحدة ESP8266 التي نستخدمها Arduino كمبرمج ، وسيتم تشغيل الكود الثاني على Arduino.

الخطوة 1: المكونات

لهذا المشروع سوف تحتاج:

المعدات:

• 1x سيارة تحكم راديو ، (يجب أن يكون بها ESC ومضاعفات توجيه).

كنا نستخدم في الغالب Traxxas 1/16 E-Revo VXL ، لأن هذا هو ما لدينا في الغالب ، وكنا واثقين تمامًا من أننا سنكون قادرين على التحكم فيه باستخدام Arduino. أيضًا نظرًا لأنه سينتهي به الأمر إلى حمل كمية لا بأس بها من الأجهزة الإضافية ، كنا واثقين من أن هذه لن تكون مشكلة بالنسبة لـ 1/16 E-Revo.

ومع ذلك ، يمكن استخدام معظم السيارات التي يتم التحكم فيها عن طريق الراديو (التي يمكن تفكيكها بسهولة) بدلاً من ذلك ، وستكون العملية متشابهة جدًا.

• طن من الشريط اللاصق.

يجب أن يتناقض اللون مع الأرضية قدر الإمكان. في بيئة الاختبار الخاصة بنا ، استخدمنا شريطًا أبيض على أرضية مظلمة.

• 1x Arduino Mega 2560.

من المحتمل أن تكون بطاقات Arduino الأصغر حجمًا جيدة أيضًا ، ولكن سيتم الضغط عليك للحصول على دبابيس.

• 1x لوح خبز كبير.

واحد يكفي ، ولكن كان لدينا أيضًا واحدًا أصغر لفصل خطوط طاقة الجهد الأخرى لتقليل مخاطر خطأ المستخدم.

• مستشعر تناظري 1x TCRT5000 IR (يستخدم لتجنب الاصطدام).

لا يهم العلامة التجارية / النموذج الدقيق إذا كان متوافقًا مع Arduino ويقيس المسافة. ابحث عن كلمات رئيسية مثل جهاز استشعار "المسافة" ، "عقبة". من الناحية الفنية ، سيعمل المستشعر الرقمي أيضًا مع التغييرات الطفيفة في الشفرة ، لكننا نستخدم جهازًا تمثيليًا.

• جاذبية 1x أو 2x: مستشعر التدرج الرمادي التناظري v2

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

• عدد 1 ESP 8266-01.

هناك الكثير من إصدارات ESP 8266 المتاحة. لدينا خبرة فقط مع 8266-01 ، ولا يمكننا ضمان عمل كود ESP مع إصدار مختلف.

• 1 x ESP8266-01 درع Wi-Fi.

اختياري من الناحية الفنية ، ولكن إذا لم تستخدم هذا ، فسيصبح كل شيء يتضمن وحدة Wi-Fi أكثر تعقيدًا. ومع ذلك ، سيفترض الدليل أن لديك هذا ، (إذا لم يكن كذلك ، فابحث عن الأدلة عبر الإنترنت لتوصيل ESP-01 بشكل صحيح في Arduino) ، لأن القيام بذلك بشكل غير صحيح يمكن أن يؤدي إلى إتلاف الوحدة.

• بطاريات للسيارة نفسها وبطاريات لتشغيل الإلكترونيات الإضافية.

استخدمنا زوجًا من بطاريات ليبو سعة 2.2 أمبير في الساعة وبطارية 7.4 فولت بالتوازي لتشغيل كل شيء. يجب أن تكون قادرًا على استخدام أي بطاريات ستستخدمها عادةً مع سيارتك التي تختارها. إذا كنت أعلى من 5 فولت ولكن أقل من 20 فولت ، فإن السعة تكون أكثر أهمية من الجهد الاسمي.

• الكثير من كبلات التوصيل.

لقد تخليت عن حساب العدد الدقيق لهذه. إذا كنت تعتقد أن لديك ما يكفي ، فربما لا تفعل ذلك.

• أخيرًا ، لإرفاق كل شيء ، ستحتاج إلى تركيب Arduino والمستشعرات واللوحة (اللوحات) ووحدة Wi-Fi بالمركبة التي تختارها. ستختلف نتيجتك اعتمادًا على ما تستخدمه كأساس وما هي المواد المتاحة.

كنا:

• العلاقات البريديه.

• بعض الغراء الفائق.

• قطع صغيرة من خردة الورق / أنبوب الراتنج لدينا بقطر مناسب.

• لوح خلفي ماسونيت قديم من إطار صورة ، مقطوع حسب الحجم.

• المزيد من الشريط اللاصق.

• أي أدوات لازمة للعمل على سيارتك التي يتم التحكم فيها عن طريق الراديو.

استخدمنا في الغالب مفكًا لولبيًا صغيرًا مع أجزاء متعددة ، ولكن في بعض الأحيان كان علينا سحب مجموعة أدوات المخزون التي تأتي مع السيارة.

برمجة:

• العقدة الحمراء

جزء مهم من جمع البيانات.

• خادم MQTT.

الرجل الأوسط بين سيارتنا و Node-red. في البداية ، للاختبار ، استخدمنا test.mosquitto.org

استخدمنا لاحقًا:

• CloudMQTT.com

كان هذا أكثر موثوقية والذي تم تعويضه لكونه أكثر تعقيدًا قليلاً في الإعداد.

• WampServer.

الجزء الأخير من جمع البيانات. على وجه التحديد ، سنستخدم قاعدة بيانات SQL الخاصة به لتخزين البيانات التي تم جمعها.

الخطوة 2: الرسم التخطيطي الكهربائي

رسم بياني كهربائي
رسم بياني كهربائي

الخطوة 3: البناء المادي

البناء المادي
البناء المادي
البناء المادي
البناء المادي
البناء المادي
البناء المادي

الحل الذي نقدمه له نهج مباشر للأمام للتجميع المادي.

تمت إزالة جهاز الاستقبال الأصلي وغطائه المقاوم للماء من سيارة RC ، حيث لا داعي لهما.

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

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

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

لم يتم اتخاذ تدابير خاصة لتأمين وحدة WiFi. إنها ليست ملكنا ، لذا فإن لصقها أو لصقها بالشريط اللاصق كان غير ضروري لأنه خفيف جدًا ولا يتحرك كثيرًا ، والأسلاك كافية لتثبيته في مكانه.

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

الخطوة 4: وحدة ESP8266

وحدة ESP8266
وحدة ESP8266
وحدة ESP8266
وحدة ESP8266

تتطلب وحدة WiFi ، ESP8266 ، إعداد دبوسين مختلفين. يجب استخدام أحد الإعدادات عند وميض الوحدة ببرنامج جديد واستخدام Arduino Mega 2560 كمبرمج. الإعداد الآخر هو للوحدة النمطية عندما تكون قيد الاستخدام وإرسال المعلومات إلى وسيط MQTT.

باستخدام Arduino IDE لتحميل الكود إلى وحدة ESP8266 ، ستحتاج إلى تثبيت مدير لوحة ومدير إضافي للوحات

تحت مدير المجلس ، قم بتثبيت مدير مجلس الإدارة esp8266. يمكن العثور عليه بسهولة من خلال البحث عن "esp". من الأهمية بمكان أن تقوم بتثبيت الإصدار 2.5.0 ، وليس أقدم ، وليس أحدث.

ضمن الإعدادات في عناوين URL الإضافية لمدير المجالس ، انسخ في هذا السطر:

arduino.esp8266.com/stable/package_esp8266c…

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

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

يقوم الكود المراد وميضه على وحدة ESP8266 بإعداد الاتصال بشبكة WiFi ووسيط MQTT ، في هذه الحالة باسم مستخدم وكلمة مرور ، ولكن يمكن القيام به بدون إجراء التغييرات اللازمة الموضحة في تعليقات الرمز. لهذا المشروع ، طلب وسيطنا اسم مستخدم وكلمة مرور للعمل. تقرأ الوحدة الرسائل الواردة من المنفذ التسلسلي المتصل به. سيقرأ كل سطر جديد تم إنشاؤه بواسطة كود Arduino ويفك تشفير الرسالة ويعيد إنشاء الرسالة. بعد ذلك يرسل الرسالة إلى وسيط MQTT الذي تم تحديده في الكود. رمز الوحدة النمطية ESP8266:

الخطوة 5: اردوينو

بعد تكوين وحدة WiFi ، ننظر إلى البرنامج الذي سيتم استخدامه للتحكم في المحرك والمؤازرة على سيارة RC. ستتفاعل السيارة وفقًا لمعلومات مقياس رمادية من المستشعر المركزي ، المعروف أيضًا باسم "Line Detector" في هذا المشروع. يهدف بوضوح إلى الاحتفاظ بالمعلومات من Line Detector بالقرب من قيمة محددة مسبقًا تساوي المعلومات المسجلة عند التغيير بين الضوء والظلام أو في هذا المشروع ، الأبيض والأسود. لذا ، إذا كانت القيمة تختلف كثيرًا عن بعضها البعض ، فإن الإخراج المقابل للمؤازرة سيوجه السيارة بالقرب من القيمة المحددة مسبقًا للخط.

يحتوي البرنامج على زرين يعملان كزر بدء وإيقاف لسيارة RC. من الناحية الفنية ، فإن زر "الإيقاف" هو زر "تسليح" والذي يساوي قيمة PWM المرسلة إلى المحرك والتي تتسبب في توقف سيارة RC. يرسل زر البدء قيمة PWM التي تساوي سيارة RC بالكاد تتحرك للأمام لأنها ستقود بسرعة كبيرة إذا اكتسبت الكثير من الزخم.

تمت إضافة كاشف تجنب الاصطدام إلى الواجهة الأمامية لسيارة RC لاكتشاف ما إذا كان الطريق أمامك واضحًا أم مسدودًا أم لا. إذا تم حظرها ، ستتوقف سيارة RC حتى زوال / إزالة العائق. تُستخدم الإشارة التناظرية الصادرة عن الكاشف لتحديد ما إذا كان هناك شيء ما يعيق الطريق أم لا ، وهي تُعد معيارًا للقدرة على المضي قدمًا بالإضافة إلى التوقف.

يتم استخدام مستشعر ثانوي للمقياس الرمادي ، "Room Detector" ، لاكتشاف الغرفة التي دخلت إليها سيارة RC. إنه يعمل على مبدأ مشابه لـ Line Detector ، لكنه لا يبحث عن التغيير بين الضوء والظلام ، بل يبحث عن القيم ضمن نطاق معين يتوافق مع الغرف المختلفة اعتمادًا على القيمة التي يتم رؤيتها من Room Detector.

أخيرًا ، يقوم البرنامج بإنشاء سطر من المعلومات من المستشعرات لوحدة WiFi لقراءتها ثم إرسالها بعد ذلك إلى MQTT Broker. يتم إنشاء سطر المعلومات كسلسلة ويتم كتابته في التسلسل المقابل الذي تتصل به وحدة WiFi. من المهم أن تحدث الكتابة إلى المسلسل فقط بقدر ما تستطيع وحدة WiFi قراءة الرسالة الواردة ، ولكن تذكر عدم استخدام أي تأخير في هذا الرمز لأنه سيتداخل مع قدرة سيارة RC على متابعة الخط. بدلاً من ذلك ، استخدم "millis" لأنه سيسمح للبرنامج بالعمل دون تأخير ولكن بعد مرور مقدار محدد من المللي منذ تشغيل Arduino ، ستكتب رسالة إلى المسلسل دون حظر الكود بنفس الطريقة التي يعمل بها التأخير.

كود Arduino Mega 2560:

الخطوة 6: قاعدة بيانات MySQL

WampServer هي بيئة تطوير ويب لنظام Windows تسمح لنا بإنشاء تطبيقات باستخدام PHP وقاعدة بيانات MySQL. يتيح لنا PhpMyAdmin إدارة قواعد البيانات الخاصة بنا بطريقة سهلة.

للبدء ، انتقل إلى:

في هذا المشروع ، نستخدم الإصدار 3.17 x64 بت لنظام التشغيل Windows. بعد التثبيت ، تأكد من تشغيل جميع الخدمات مما يعني أن الرمز الصغير يتحول إلى اللون الأخضر بدلاً من الأحمر أو البرتقالي. إذا كانت الأيقونة خضراء ، فيمكنك الوصول إلى PhpMyAdmin لإدارة قاعدة بيانات MySQL.

قم بالوصول إلى MySQL باستخدام PhpMyAdmin وأنشئ قاعدة بيانات جديدة. أطلق عليه اسمًا مناسبًا يمكنك تذكره ، في هذا المشروع كان يسمى "line_follow_log". بعد إنشاء قاعدة البيانات ، يجب عليك إنشاء جدول في قاعدة البيانات. تأكد من أن عدد الأعمدة مناسب. في المشروع نستخدم 4 أعمدة. عمود واحد للطابع الزمني ويتم استخدام الثلاثة الأخيرة لتخزين البيانات من السيارة. استخدم نوع البيانات المناسب لكل عمود. استخدمنا "نص طويل" لعمود الطابع الزمني و "نص متوسط" للبقية.

يجب أن يكون هذا كل ما عليك فعله في PhpMyAdmin و MySQL. تذكر قاعدة البيانات الخاصة بك والجدول الخاص بالقسم حول Node-Red.

الخطوة 7: العقدة الحمراء

للتعامل مع جمع البيانات ، سنستخدم تدفقًا بسيطًا إلى حد ما باللون الأحمر العقدة. يتصل بخادم MQTT الخاص بنا ، ويكتب في قاعدة بيانات MYSQL الخاصة بنا.

للقيام بذلك ، نحتاج إلى عدد قليل من اللوحات لتشغيل وظائف مختلفة ، ونحتاج إلى بعض التعليمات البرمجية الفعلية لتشغيلها.

اهم الاشياء اولا. سنحتاج المنصات التالية.

Node-red-contrib-mqtt-broker: هذا هو الاتصال بوسيط MQTT الخاص بنا.

Node-red-dashboard: لوحة القيادة الخاصة بنا ، اللازمة لتمثيل البيانات التي تم جمعها بشكل مرئي.

Node-red-node-mysql: اتصالنا بقاعدة بيانات SQL.

لا يُقصد بهذا أن يكون دليلاً كاملاً إلى Node-red ، لكنني سأشرح ما يفعله تدفق Node-red.

في البداية ، واجهتنا مشكلات مع خادم MQTT الذي اختاره اختيار الموت / الانفصال ، على ما يبدو عشوائيًا ، مما جعل إجراء أي تغييرات محاولة محبطة لأنه لم يكن من الواضح ما إذا كانت التغييرات مفيدة ، أم لا عندما لم نتمكن من رؤية النتيجة. إذن الزر "هل مات الخادم؟" تقوم بحقن "لا" ، تقوم الكتلة التالية بحقنها في خادم MQTT الخاص بنا. إذا لم يكن ميتًا ، فستظهر كلمة "لا" في نافذة التصحيح. يتم القيام بذلك ليس فقط للاختبار ، ولكن لإجبار Node-red على محاولة إعادة الاتصال بخادم MQTT.

ترسل "سلسلة الاختبار" سلسلة costum إلى وسيط MQTT. قمنا بتنسيق هذه السلسلة لتكون مشابهة لما سنحصل عليه من Arduino. كان هذا من أجل الحصول على وقت أسهل في تكوين الشبكة التي تقوم بفك تشفير الرسائل ، دون الحاجة إلى تشغيل المشروع ، وجمع البيانات.

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

الشبكة الكبيرة من المحولات المتصلة التي تتبع عقدة وظيفية في حالة حدوث "السحر" الحقيقي.

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

مثال ، "عقبة" ، مثل كل الخيارات الأخرى ، هي خيار ثنائي ، إما أن تكون واضحًا للقيادة ، أو لا. لذلك سيحصل على 0 ، أو 1. سيتم إرسال 0 إلى الفرع "clear" ، وسيتم إرسال 1 إلى الفرع "Obstructed". مفاتيح التبديل "مسح" ، "معوق" ، إذا تم تنشيطها ، ستخرج شيئًا محددًا ، واضحًا ، أو معوقًا ، على التوالي. سيتم نشر كتل الإجراءات الخضراء في نافذة التصحيح ، وسيكتب اللون الأزرق على لوحة القيادة الخاصة بنا.

يعمل فرعي "الحالة" و "الموقع" بالطريقة نفسها تمامًا.

الخطوة 8: وسيط MQTT

الوسيط هو خادم يقوم بتوجيه الرسائل من العملاء إلى عملاء الوجهة المناسبين. وسيط MQTT هو الوسيط الذي يستخدم فيه العملاء مكتبة MQTT للاتصال بالوسيط عبر الشبكة.

بالنسبة لهذا المشروع ، أنشأنا وسيط MQTT باستخدام خدمة CloudMQTT مع الاشتراك المجاني لإصدار "Cute Cat". لها حدود ولكننا لا نتجاوز أولئك الموجودين في هذا المشروع. يمكن لوحدة WiFi الاتصال بالوسيط ثم يقوم الوسيط بتوجيه الرسائل إلى عميل وجهة مناسب. في هذه الحالة يكون العميل هو Node-Red الخاص بنا. تقوم خدمة CloudMQTT بإعداد اسم مستخدم وكلمة مرور لخادمهم ، لذلك نضمن أمانًا أعلى. يعني بشكل أساسي أن الأشخاص الذين لديهم اسم المستخدم وكلمة المرور فقط يمكنهم الوصول إلى خدمة CloudMQTT المحددة هذه. يعد اسم المستخدم وكلمة المرور أمرًا بالغ الأهمية عند إعداد الاتصال على رمز ESP8266 وكذلك Node-Red.

تعد الإحصائيات الجارية للرسائل التي يتلقاها الوسيط ميزة رائعة ، والتي يمكن استخدامها لمعرفة مدى كفاءة خطة اشتراكك في معالجة المعلومات التي يوجهها.

الميزة الرائعة هي إمكانية إرسال رسائل من الوسيط إلى وحدة WiFi لكننا لم نستخدمها في هذا المشروع.

الخطوة 9: هواية الإلكترونيات

قبل أن نبدأ ، علمنا من مشروع سابق أنه يمكن التحكم في أجهزة توجيه الأسهم من Arduino بإشارة PWM ، ولها أسلاك مماثلة ، وتوصيلها بقنوات مختلفة على نفس جهاز استقبال الراديو ، افترضنا التحكم الإلكتروني في السرعة ، (ESC من الآن) ، الذي يتحكم في المحرك ، يمكن التحكم فيه بالمثل عبر PWM من Arduino.

لاختبار هذه النظرية ، قمنا بتركيب رسم تخطيطي صغير من Arduino. يقرأ الرسم إدخالًا تماثليًا من مقياس الجهد ، ويعيد تعيين القيمة من 0 ، 1024 إلى 0 ، 255 ويخرج القيمة الناتجة إلى دبوس PWM ، باستخدام analogWrite () بينما كانت السيارة R / C في صندوق صغير ، وكان بها عجلات إزالتها.

بعد اجتياز النطاق على مقياس الوعاء ، بدا أن ESC `` يستيقظ '' ويمكننا خنقه لأعلى ولأسفل ، كما طلبنا من Arduino طباعة القيم إلى الاتصال التسلسلي حتى نتمكن من مراقبتها.

يبدو أن ESC لا يحب القيم التي تقل عن عتبة معينة ، في هذه الحالة 128. لقد رأى الإشارة 191 على أنها خانق محايد ، و 255 كانت أقصى دواسة الوقود.

لم نكن بحاجة إلى تغيير سرعة السيارة وكنا نجعلها تتأرجح تمامًا بأبطأ سرعة تجعلها تتحرك. كانت 192 هي أقل قيمة من شأنها تشغيل المحرك ، ومع ذلك لم نقم بعد بتجميع كل شيء ولسنا متأكدين مما إذا كان هذا الإخراج سيكون كافيًا لتحريك السيارة بعد التجميع النهائي ، ومع ذلك فإن إدخال قيمة أكبر قليلاً يجب أن يكون تافهًا.

ومع ذلك ، فإن التحايل على مقياس الجهد ووضع قيمة ثابتة في الكود لم ينجح. تومض الأسهم ESC ببساطة ولن تقوم بتدوير المحرك ، "اضبط تقليم الخانق" وفقًا للدليل.

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

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

ما الذي كان مختلفًا عن الإعداد باستخدام مقياس الجهد ، أو جهاز إرسال واستقبال المخزون ، والإصدار الذي قدم قيمًا ثابتة؟

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

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

أثناء استخدام مقياس الجهد ، كنا "نكتسح" النطاقات ، ثم نبدأ في العمل. تم تسليحها ببساطة حيث اجتاز مقياس الجهد الوضع المحايد ، ثم نجح.

النطاقات المنخفضة ، ومع ذلك يبدو أنها لا تزال تثير استياء المجلس الاقتصادي والاجتماعي. تبين أن هذا هو نتاج دورات عمل PWM.

سواء عن طريق التصميم أو تم إجراؤه لسبب تقني ، يتجاهل كل من أجهزة التوجيه و ESC الإشارات التي تقل عن 50٪ من دورات العمل. قد يكون هذا في حالة توقف جهاز الاستقبال / المرسل عن العمل أو نفاد طاقته ، سيعود النموذج إلى الوضع المحايد ، ولن ينطلق في المسافة على دواسة الوقود العكسي بالكامل. بالتساوي ، المؤازرة تدور 180 درجة فقط ، ولا تحتاج إلى النطاق الكامل.

مع وجود هذه المعرفة الجديدة في متناول اليد ، تم إنشاء رسم تخطيطي جديد لـ Arduino. يقبل الإصدار الأولي السلاسل التي تم إدخالها في الشاشة التسلسلية ، ويحولها إلى عدد صحيح وينقلها إلى دبوس PWM ، باستخدام مكتبة المؤازرة والكتابة () *. إذا تم إدخال قيمة جديدة في الشاشة التسلسلية ، يتم تحديث القيمة write ().

أثناء الاختبار ، تم استبدال مخزون Traxxas ESC بـ Mtroniks G2 Micro ، ولكن يجب أن تعمل بنفس الطريقة ، على الرغم من أن القيم الدقيقة قد تكون مختلفة قليلاً.

تتعامل هذه المكتبة مع ESC على أنها مؤازرة ، وهذا جيد على ما يبدو. تنتقل وظيفة الكتابة () من مكتبة Servo.h من 0 إلى 180 ، ومن المتوقع أن تكون إشارة التسليح المتوقعة حول المنتصف.

أذرع G2 Micro عند الكتابة () في نطاق من القيم بالقرب من 90 ، ومع ذلك كان من الصعب تحديدها لأنه يبدو أنه `` يتذكر '' أنه كان مسلحًا.

من المتوقع أن يتم تسليح جهاز Traxxas VXL-s3 بقيمة كتابة () تبلغ 91.

بعد إشارة التسليح ، إما ESC يقبل إشارات PWM بسعادة ، بغض النظر عن وظائف Arduino التي يتم استدعاؤها لتوليدها ، ويتحكم في المحرك وفقًا لذلك.

التحدث عن الوظائف ؛ يمكن استخدام كل من analogWrite () القياسي ، بالإضافة إلى الكتابة () و writeMicroseconds () من مكتبة Servo.h بالتبادل ، فقط ضع في اعتبارك ما يفعله ، وفي النهاية لا شيء سوى دورة العمل مهمة. يمكن استخدام WriteMicroseconds () إذا تطلب الأمر مزيدًا من التفاصيل ، فقط ضع في اعتبارك أن النطاق هنا يتراوح من 1000 إلى 2000 ، ومن المتوقع أن يكون التسليح أو "المحايد" عند 1500. مع معيار analogWrite () ، من المتوقع أن يكون النطاق القابل للاستخدام يكون من 128 إلى 255 مع كون حوالي 191 محايدًا.

موصى به: