اردوينو مشروع "آلة الروبوت RoboCar4W"

وأوضح المحرر أنكم تفهمون ، "يجب أن تكون مسلية وجديدة ومليئة بالمغامرات الشيقة ... حتى لا يتمكن القارئ من الخروج.
I. Ilf، E. Petrov "كيف تم إنشاء روبنسون" .


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


قررت أن أبدأ بمشروع متقدم ، بما في ذلك مع الأمل السري بتمزيق الجيل الشاب من Counter-Strike (فشل).


كما يمكنك التخمين من اسم RoboCar4W ، كان المشروع الأول سيارة روبوت بأربع عجلات. في بداية العمل ، كان لدي بالفعل خبرة في البرمجة ، وكنت أعرف في السابق كيفية اللحام لفترة طويلة ، لكنني لم أكن أعرف حتى Pinduo Arduino على الإطلاق ولم أقرأ الوثائق على الإطلاق. درست كل الحكمة أثناء اللعب وجوجل للمساعدة.


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


تم شراء جميع الأجهزة على موقع ئي باي ، ومن تجربتي الخاصة ، أود أن أقول أنه من الأسهل شراء مجموعة بداية على الفور (ابحث عنها في كلمات Arduino Starter Kit) ، بدلاً من تجميعها بالتفصيل. نعم ، ويأتون جميعًا معًا. تقرر عدم التلاعب بشراء هيكل عادي ، وعجلات عادية ، ومحركات عادية ، بحيث تكون "باهظة الثمن".


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


أي مجلس اردوينو تختار؟


أخذت Arduino UNO ، الكثير من المشاريع مع أوصاف لها. ولكن الآن أود أن آخذ Arduino Mega 2560 ، ولديها المزيد من المخرجات الرقمية والتناظرية والتوافق الكامل مع المشاريع مع UNO.


الوصف العام للمشروع


في عالم تطوير البرمجيات ، يسمى هذا أيضًا "متطلبات النظام".


كانت فكرة المشروع على النحو التالي. يجب أن تؤدي النسخة الأولى من آلة الروبوت المسماة RoboCar4W إجراءات بسيطة:


  • التحرك للأمام ، للخلف ، لأداء الأدوار
  • قياس المسافة إلى العقبات
  • أن تكون قادرًا على تجاوز العوائق أمامك تلقائيًا.

يجب التحكم في الإصدار الثاني من الجهاز يدويًا عبر البلوتوث من هاتف يعمل بنظام Android.


لذلك من الأفضل أن تعمل هنا هو مشروع RoboCar4W النهائي بالكامل (هنا بدون بلوتوث).


اردوينو RoboCar4W


هنا شريط فيديو للتجارب البحرية.


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


سيارة روبوت RoboCar4W


في الفيديو الثاني ، يتحرك RoboCar4W بمساعدة الأوامر التي يرسلها "السائق" عبر البلوتوث من هاتف محمول يعمل بنظام Android. تم تثبيت "Bluetooth RC Car" على الهاتف. علاوة على ذلك ، إذا كان هناك عائق مغلق في الأمام ، يتوقف الروبوت ، أي صدم شيء لن يعمل (ومع ذلك ، هناك زر "سري" يعطل الوضع الآمن).


سيارة روبوت RoboCar4W


في الفيديو الثالث ، يعرض RoboCar4W برنامج حركة تجريبي مبرمج مسبقًا مع الأدوار. يتم تنشيط برنامج العرض التوضيحي عند الطلب من نفس هاتف Android المحمول. الروبوت يركب فقط لفترة ويستدير.


سيارة روبوت RoboCar4W


خوارزمية التحكم في الحركة


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


في غضون ذلك ، نحن مهتمون بالأشياء أسهل بكثير. لذلك ، سوف نسميها ببساطة - خوارزمية التحكم في الحركة للروبوت رباعي العجلات. بالطبع ، نحن نتحدث عن التحكم الآلي دون تدخل بشري.


إليك هذه الخوارزمية البسيطة المكتوبة بالكلمات ، للحصول على خوارزميات أكثر تعقيدًا ، من الضروري (سواء كنت تريدها أم لا) إنشاء مخططات تخطيطيّة.


الآن في نفس الوقت انظر إلى شفرة المصدر للرسم التخطيطي RoboCar4W-1.ino .


  1. نقيس المسافة إلى العائق أمام.
  2. إذا كانت هذه المسافة المقاسة أقل من قيمة DST_TRH_BACK (اختصار الحد الأدنى للمسافة) ، فإننا نتوقف DST_TRH_BACK عند الدوران. يتم اختيار اتجاه الدوران على النحو التالي: إذا استدرت من قبل إلى اليسار ، فعندئذ انعطف يمينًا والعكس صحيح.
  3. إذا كانت المسافة المقاسة أكبر من DST_TRH_BACK ، وأقل من DST_TRH_TURN ، DST_TRH_TURN ببساطة بالتدوير. يتم اختيار اتجاه الدوران بشكل عشوائي.
  4. إذا كنت بعيدًا عن العقبة ، فما عليك سوى المضي قدمًا.
  5. نكرر من جديد.

ما هو الجيد أن لدينا 4 عجلات والدفع الرباعي؟ يمكننا تنفيذ (برنامج) عدة أنواع من المنعطفات:


  • دوران سلس. تدور جميع العجلات ، ولكن العجلات على جانب واحد تدور بشكل أسرع.
  • منعطف حاد. تدور العجلات على جانب واحد فقط.
  • انعطاف للخلف في مكانه. مثل الجرار ، تدور العجلات على جانب واحد للخلف والأخرى للأمام.

في الإصدار الثاني من البرنامج ، عند التحكم من هاتف Android ، يمكن إيقاف الوضع الآمن ، عندما يحاول الروبوت منع التصادمات الأمامية ، إذا تم الضغط على البرنامج مرتين
زر


وأعاد تشغيله بالضغط عليه مرة واحدة.


ملاحظة مهمة . كل المنطق تحت سيطرة اردوينو. يعمل Android هنا تمامًا مثل وحدة تحكم الألعاب (بدون أدمغة) من وحدة التحكم ، وتتمثل مهمتها في نقل ضغطات الأزرار بغباء (أي الأوامر) عبر البلوتوث إلى Arduino RoboCar4W.


مكونات


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


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


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


لذا فإن مكونات مشروع RoboCar4W ، تم وصفه باللغة الإنجليزية لتسهيل البحث على موقع ئي باي وما شابه:


  • اردوينو UNO R3
  • هيكل جاهز 4 عجلات الدفع الرباعي منصة روبوت متحركة هيكل السيارة الذكية اردوينو متوافق
  • محركات DC مع دوران في كلا الاتجاهين - 4 قطع.
  • عجلات - 4 قطع.
  • لوحة للتحكم في 4 محركات DC لمحركات موتور Shield L293D
  • مقياس المسافة بالموجات فوق الصوتية HC-SR04 وحدة قياس المسافة بالموجات فوق الصوتية
  • بطاريات Ni-MH 1.2 فولت - 8 قطع.
  • حامل صندوق بلاستيك للبطاريات ، حامل صندوق بطاريات 4 بطاريات AA - 2 قطعة.
  • نوع البطارية "كرونا" 8.4 فولت - 1 قطعة.
  • مفتاح تبديل اختياري - مفتاح الطاقة

تم شراء الشاسيه ومحركات DC والعجلات على الفور في المجموعة وحتى مع تعليمات التجميع.


Pinout


يمكن استخدام المدخلات التناظرية كدبابيس رقمية لمنافذ الإدخال / الإخراج. يتم ترقيم دبابيس Arduino المطابقة للمدخلات التناظرية من 14 إلى 19. هذا ينطبق فقط على دبابيس Arduino ، وليس أرقام الدبوس المادية لوحدة التحكم الدقيقة Atmega.


لست مضطرًا للرسم ، يمكنك ببساطة وضع كل شيء في طاولة. لقد فعلتها بهذه الطريقة.


Pinout


ستكون الدبابيس D4 و D7 و D8 و D12 مشغولة إذا تم استخدام أي محركات DC أو محركات السائر.


سيتم استخدام الدبابيس D9 (تحكم Servo # 1) ، D10 (تحكم Servo # 2) فقط في حالة استخدام المحركات المؤازرة.


لا يشغل دبوس Arduino دبابيس Arduino للتحكم في درع محرك المحرك L293D.


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


إذا كنت لا تزال تريد الرسم بشكل جميل ، فإن برنامج Fritzing المجاني سيساعدك.


التغذية


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


على أي حال ، إذا كنت تستخدم المحركات في المركبة ، فستكون هناك حاجة إلى درع محرك المحرك (أو دائرة مماثلة).


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


الجهد الموصى به أو النموذجي. الاستهلاك الحاليالجهد الأقصىما هو مخطط للتغذيةملاحظات
مجلس اردوينو UNO R37-12 فولت ، 200 مللي أمبير (متوسط)6 - 20"كرون 9V" Li-ion 650mAh ، 8.4Vموصل المركز
محرك سيرفو MG-9955-6 فولت ، 0.1 - 0.3 أمبير (ذروة)4.8 - 7.2البطاريات (5) قطع. Ni-Mh 1.2V = 6Vالطعام فقط من مصدر منفصل. إذا كنت تعمل مع Arduino ، فسوف يفشل كل شيء. 4 قطع بطارية Ni-Mh * 1.2V = 4.8V ليس كافيًا. يجادل البعض بأنه لا ينبغي استخدام هذه المؤازرة عند 6 فولت فقط 4.8
محركات DC (4 قطع).6 - 8 فولت ، تيار من 70 مللي أمبير إلى 250 مللي أمبير3-12بطاريات (5 + 3) قطع. Ni-Mh 1.2V = 9.6Vلن تتمكن من تشغيل المحركات بشكل طبيعي من بطارية 9 فولت ، لذلك لا تضيع الوقت (والبطاريات)!
درع محرك السيارات L293Dغير مطلوب4.5 - 36غير مطلوب
وحدة بلوتوث HC-05063.3 فولت ، 50 مللي أمبير1.8—3.6مع لوحة اردوينو 3.3V دبوس
مقياس المسافة بالموجات فوق الصوتية HC-SR045 فولت ، 2 مللي أمبير5مع دبوس 5V اردوينو المجلس

لم يكن لدي محول الجهد DC / DC. لم تكن Krona 9V مصدرًا جيدًا للطاقة ، فقد حصلت عليها بالفعل.


لكنني رفضت استخدام بطاريات Li-ion عالية السعة. أولاً ، بسبب التكلفة العالية ، وثانياً ، في التسوق الصيني عبر الإنترنت ، من السهل أن تواجه مزيفًا. بتعبير أدق ، ليس "سهل" ، ولكن "دائمًا". بالإضافة إلى ذلك ، يتطلب Li-ion معالجة خاصة ، وهو ليس آمنًا.


لذا ، كما نرى من الجدول ، نحتاج إلى 3 مصادر طاقة مستقلة:


  • للوحة اردوينو وأجهزة الاستشعار.
  • لمحرك مؤازر.
  • لـ 4 محركات DC.

أين يمكنني الحصول على الكثير؟ في أي حال ، يجب تشغيل لوحة Arduino نفسها من مصدر منفصل ، مثل عندما "يتدلى" الجهد ، على سبيل المثال ، من تشغيل المحركات ، قد يتم إعادة تشغيل اللوحة أو ببساطة تفشل. هنا نستخدم بطارية عامل الشكل Krona 9V ، ويجب أن يكون الموصل الذي سيتم توصيله بـ Arduino مع "زائد في المركز".


بالنسبة لمحرك مؤازر و 4 محركات DC ، يمكنك القيام بمصدر طاقة واحد. المشكلة الوحيدة هي أن المحرك المؤازر مصمم للجهد 5-6 فولت (بحد أقصى 7.2 فولت) والتيار من 100-300 مللي أمبير (الذروة) ، ومحركات التيار المستمر تحتاج إلى 6-8 فولت (بحد أقصى 12 فولت) وتيار 250 مللي أمبير.


لحل المشكلة ، هناك محولات DC-DC ، ولكن لم يكن لدي مثل هذا. ونتيجة لذلك ، قمت بتطبيق مخطط الأسلاك "الخاص" الخاص بي (بدون أي دوائر إلكترونية تنحى ، فقط التيار والجهد الصديق للبيئة!): لقد قمت بتوصيل 8 أجهزة كمبيوتر. بطاريات 1.2V في سلسلة وصنابير في الأماكن الصحيحة ، كما هو موضح في الرسم التخطيطي.


التغذية


ذهب 6V إلى المحرك المؤازر ، و 9.6 ذهب إلى محركات DC. من الواضح أن البطاريات 1-5 ستشهد زيادة في الحمل.


للتحكم في المحركات المؤازرة والتيار المستمر ، استخدمت درع محرك موتور رباعي القنوات يعتمد على شريحة L293D.


التجمع


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


التجمع


التجمع


لا يمكن توصيل العديد من المحركات بشكل طبيعي ، أو محرك سيرفو أو السائر مباشرة إلى Arduino. منذ دبابيس (استنتاجات) اردوينو منخفضة الحالية. لحل المشكلة ، هناك وحدة إضافية للتحكم في القيادة - Motor Drive Shield تعتمد على شريحة L293D ، وهي واحدة من أكثر الرقائق شيوعًا لهذا الغرض. تُعرف شريحة L293D أيضًا باسم H-Bridge.


لقد استخدمت لوحة توفر 4 قنوات للتوصيل على شريحتين L293D وسجل التحول. تم شراؤها على eBay مقابل 5 دولارات.


تحتوي لوحة وحدة التحكم في القيادة هذه على المواصفات التالية.


  • L293D Motor Drive Shield متوافق مع Arduino Mega 1280 و 2560 ، UNO ، Duemilanove ، Diecimila
  • 4 قنوات تحكم
  • المحركات التي تعمل بالطاقة من 4.5V إلى 36V
  • الحمل الحالي المسموح به 600mA لكل قناة ، الذروة الحالية - 1.2A
  • الحماية من الحرارة الزائدة
  • واجهتان مع مؤقت اردوينو دقيق (لن يكون هناك "ارتعاش") لتوصيل المحركات المؤازرة بجهد 5 فولت ، إذا كان جهد الإمداد بحاجة إلى أعلى ، فيجب إعادة توصيل الطاقة كما هو موضح أدناه
  • يمكن التحكم في 4 محركات تجميع DC ثنائية الاتجاه أو 2 السائر و 2 محرك مؤازر في وقت واحد
  • ترتبط كل 4 محركات DC ثنائية الاتجاه بناقل 8 بت لتحديد السرعة الفردية
  • توصيل ما يصل إلى محركات أقراص من خطوتين (أحادي القطب أو ثنائي القطب) ، بملف واحد ، ملف مزدوج أو خطوات متناوبة
  • موصل لتوصيل مصدر خارجي لإمداد طاقة منفصل لمنطق التحكم والمحركات
  • زر إعادة تعيين Arduino
  • تستخدم مكتبة Adafruit AFMotor للإدارة.

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


درع محرك السيارات


يمكن توصيل المحركات بمصدر طاقة إضافي بالنسبة إلى لوحة Arduino. أوصي فقط طريقة الاتصال هذه. للقيام بذلك ، قم بإزالة وافتح الطائر ، كما هو موضح في الصورة.


درع محرك بمحرك L293D رباعي القنوات. البلوز للطاقة الخارجية


في هذه الحالة ، يتم تشغيل Arduino ويتم تشغيل المحركات بشكل مستقل عن بعضها البعض.


يضيء مصباح LED الموجود على درع المحرك عندما يكون هناك طاقة للمحركات ، إذا لم يكن مضاءً ، فلن تعمل المحركات.


مشكلة جديدة.


لا ينطبق وضع الطائر الكهربائي على الماكينات ، وسيظل يعمل بالطاقة من 5V Arduino. نظرًا لأن المحركات المؤثرة عادة ما تستهلك الكثير من التيار وإذا كانت الطاقة غير كافية ، فإن الجهاز بأكمله يبدأ في الفشل ، في الحالة "الأفضل" ، سيفشل محرك سيرفو فقط - لن يدور عند الزاوية المحددة ، أو طوال الوقت قبل كل دورة أولاً عند 0 درجة ، وعندها فقط بزاوية معينة (وإذا كنت تستطيع مواكبة). لذلك ، أوصي بتشغيل المؤازرة أيضًا من مصدر طاقة إضافي. للقيام بذلك ، سيكون عليك إعادة رسم مخطط الاتصال قليلاً: قم بقضم سلك الزائد (عادة أحمر) من الموصل القياسي وقم بتوصيله مباشرة مع زائد مصدر الطاقة.


وضع اللمسات الأخيرة لتوصيل قوة المحرك المؤازر


عند توصيل Motor Drive Shield ، لا يتم استخدام المسامير التناظرية. لا تستخدم دبابيس رقمية 2 و 13.


يتم استخدام المسامير التالية فقط إذا تم توصيل محركات DC أو محركات السائر المقابلة واستخدامها:


  • D11: محرك DC # 1 / Stepper # 1 (التنشيط والتحكم في السرعة)
  • D3: DC Motor # 2 / Stepper # 1 (التنشيط والتحكم في السرعة)
  • D5: DC Motor # 3 / Stepper # 2 (التنشيط والتحكم في السرعة)
  • D6: DC Motor # 4 / Stepper # 2 (التنشيط والتحكم في السرعة)

ستكون هذه الدبابيس مشغولة إذا تم استخدام أي DC / steppers: D4 ، D7 ، D8 ، D12.


سيتم شغل الدبابيس التالية فقط في حالة استخدام المحركات المؤازرة المناسبة:


  • D9: تحكم مؤازر رقم 1
  • D10: تحكم مؤازر # 2

جدول الاتصال


لبدء استخدام Motor Drive Shield ، تحتاج إلى تنزيل مكتبة Adafruit AFMotor وتثبيتها .


رمز مثال للتحكم في المحركات:


 #include <AFMotor.h> //   Adafruit #include <Servo.h> //     AF_DCMotor motor(1); //   ,    DC    Motor Shiled , ,  frequency Servo servo; //    servo.attach(10); //     9  10 (    Motor Shiled) motor.setSpeed(speed); //   DC   0 ()  255 ( ) motor.run(RELEASE); // DC   motor.run(FORWARD); // DC   motor.run(BACKWARD); // DC   servo.write(90); //    90 . 

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


بالنسبة للمحركات المتصلة بـ M1 و M2 ، يمكنك ضبط التردد: MOTOR12_64KHZ ، MOTOR12_8KHZ ، MOTOR12_2KHZ ، MOTOR12_1KHZ. يتم تحقيق أعلى سرعة دوران عند 64 كيلوهرتز ، وسيتم سماع هذا التردد ، وتردد أقل وسرعة عند 1 كيلوهرتز ولكنه يستخدم أيضًا طاقة أقل. تعمل المحركات 3 و 4 دائمًا عند 1 كيلو هرتز ؛ يتم تجاهل القيم الأخرى. الافتراضي هو 1 كيلو هرتز في كل مكان.


بعد ذلك ، من الضروري إجراء اختبار للمحركات. يمكن أخذ رسم للاختبار هنا . في بداية الرسم ، قم بتغيير رقم المحرك في خط (أو في خطوط) من النوع:


 AF_DCMotor motor(); 

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


نقوم بتوصيل مقياس المسافة بالموجات فوق الصوتية HC-SR04 وحدة الموجات فوق الصوتية. Pinout:


  • VCC
  • Trig (T)
  • صدى (ص)
  • GND

الوقت الذي يقضيه مكتشف النطاق فوق الصوتي في القياسات (يتم تحديده تجريبيًا):


  • 240 مللي ثانية كحد أقصى إذا كانت المسافة طويلة جدًا (خارج النطاق)
  • 1 مللي ثانية على الأقل إذا كانت المسافة قصيرة جدًا
  • يتم تحديد مسافة 1.5 متر في حوالي 10 مللي ثانية

مقياس المسافة بالموجات فوق الصوتية HC-SR04 وحدة الموجات فوق الصوتية


مستشعر مكتشف الموجات فوق الصوتية ، بسبب طبيعته المادية ، وليس لأن الصين ، في بعض الحالات تحدد بشكل سيئ المسافة إلى العائق:


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

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


يمكن حل بعض المشاكل باستخدام مستشعر المسافة بالأشعة تحت الحمراء. ولكنها ليست مثالية أيضًا:


  • أقصى مدى صغير مقارنة بالموجات فوق الصوتية: 0.3-0.8 م مقابل 4 م
  • مسافة دنيا كبيرة مقارنة بالموجات فوق الصوتية: 10 سم مقابل 2 سم
  • اعتماد حساسية المستشعر على الإضاءة العامة.

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


قم بتوصيل Bluetooth HC-05


كما ترى من ورقة البيانات الدبابيس الرئيسية لـ HC-05 "العاري":


  • إرسال TX (رقم 1)
  • استقبال RX (pin 2)
  • 3.3 فولت (دبوس 12) امدادات الطاقة 3.3 فولت
  • GND (دبوس 13) الأرض
  • مؤشر وضع PIO8 (pin 31)
  • حالة اتصال PIO9 (pin 32) ، إذا تم إنشاء الاتصال ، فسيكون الناتج مرتفعًا
  • PIO11 (دبوس 34) لتمكين وضع أوامر AT

يتم لحام الوحدة النمطية الخاصة بنا بلوحة الاختراق / القاعدة ، حيث يوجد بالفعل مقسم جهد ، لذلك لديها نطاق جهد عمل من 3.3V إلى 6V.


نقوم بتوصيل تجميع وحدة Bluetooth الخاص بنا:


  • اردوينو (تكساس) - (RX) HC-05
  • اردوينو (RX) - (TX) HC-05
  • اردوينو (+5 فولت) - (VCC) بلوتوث
  • اردوينو (GND) - (GND) بلوتوث
  • LED ، لا تستخدم دبابيس KEY

بعد تزويد وحدة بلوتوث HC-05 بالطاقة ، يجب أن يومض مؤشر LED الموجود عليها ، مما يعني أن البلوتوث يعمل.


قم بتشغيل البلوتوث على الهاتف المحمول ، وابحث عن الجهاز باسم HC-05 وقم بالاتصال ، وكلمة المرور 1234.


للاختبار ، املأ رسمًا بسيطًا في Arduino:


 int count = 0; void setup() { Serial.begin(9600); Serial.println("Test Arduino + Bluetooth. http://localhost"); } void loop() { count++; Serial.print("Count = "); Serial.println(count); delay(1000); } 

على هاتف Android ، قم بتثبيت Bluetooth Terminal. نحن متصلون بجهاز HC-05 ونلاحظ على خطوط الزحف على شاشة الهاتف مع عداد متزايد.


حتى تتمكن الوحدة من تلقي أوامر AT ، تحتاج إلى وضعها في الوضع المناسب - لهذا تحتاج إلى تعيين إخراج KEY (PIO11) إلى منطقي 1. في بعض الاختراق / اللوحة الأساسية ، بدلاً من إخراج KEY ، يوجد مخرج EN (ENABLE) ، والذي قد يكون أو لا ملحوم على دبوس على الشريحة نفسها. ينطبق هذا فقط على رقائق HC05. هذا مجرد إخراج محطة EN الخاص بي غير ملحوم في أي مكان. لذلك ، يمكن لحامها بسلك منفصل إلى طرف KEY (PIO11) للرقاقة. أو ، أثناء التشغيل ، لوضع HC05 في وضع AT-command ، قم بتقصير مخرج رقاقة KEY (PIO11) إلى خرج طاقة Vcc لبضع ثوان. بالنسبة إلى HC06 ، لا يلزم استخدام مفتاح KEY.


البرمجيات


ملاحظة في كل مرة قبل تنزيل البرنامج إلى Arduino ، تأكد من أن وحدة Bluetooth غير متصلة بـ Arduino. سيؤدي هذا إلى مشاكل تعبئة رسم. فقط افصل الطاقة من وحدة Bluetooth أو الأسلاك التي تربط دبابيس وحدة Arduino و RX، TX.


في بداية الرسم ، قم بتغيير أرقام المحركات في سطور الكتابة:


 AF_DCMotor motor(); 

رسم لوضع تلقائي مع تحميل تجنب عقبة هنا .


إذا قمت باستبدال السلسلة


 byte debug = 0; 

على


 byte debug = 10; 

سيؤدي ذلك إلى تمكين وضع التصحيح.


في وضع التصحيح ، لن يقوم RoboCar4W بالدفع أو القيادة. بدلاً من ذلك ، قم بتنشيط شاشة المنفذ التسلسلي وستجد هناك كيف "تدفع" فعليًا. بدلاً من محرك الأقراص الحقيقي للأمام ، ستتم كتابة السلسلة "Forward" إلى شاشة المنفذ التسلسلي ، بدلاً من عكسها مع الانعطاف إلى اليسار ، "Turn Back L (eft)" ، إلخ. مستشعر المسافة بالموجات فوق الصوتية لا يفعل شيئًا أيضًا ، بدلاً من ذلك يتم إنشاء المسافات إلى العقبات برمجياً وعشوائيًا.


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


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


برنامج Adnroid Bluetooth RC Car .


حسنًا ، هذا كل شيء! رحلة سعيدة!


رحلة سعيدة!

Source: https://habr.com/ru/post/ar426097/


All Articles