- كيفية بناء عقبة تجنب الروبوت باستخدام جهاز الاستشعار بالموجات فوق الصوتية
- المكونات مطلوبة
- مخطط الرسم البياني
- عقبة تجنب الروبوت باستخدام Arduino - Code
Obstacle Avoiding Robot هو جهاز ذكي يمكنه تلقائيًا استشعار العائق أمامه وتجنبه عن طريق تحويل نفسه في اتجاه آخر. يسمح هذا التصميم للإنسان الآلي بالتنقل في بيئة غير معروفة عن طريق تجنب الاصطدامات ، وهو مطلب أساسي لأي روبوت متحرك مستقل. تطبيق روبوت Obstacle Avoiding ليس محدودا ويتم استخدامه في معظم المنظمات العسكرية الآن مما يساعد في تنفيذ العديد من الوظائف المحفوفة بالمخاطر التي لا يمكن لأي جندي القيام بها.
لقد قمنا سابقًا ببناء Obstacle Avoiding Robot باستخدام Raspberry Pi وباستخدام PIC Microcontroller. هذه المرة سنبني عقبة تتجنب الروبوت باستخدام جهاز استشعار بالموجات فوق الصوتية و Arduino. هنا يتم استخدام مستشعر الموجات فوق الصوتية لاستشعار العقبات في المسار من خلال حساب المسافة بين الروبوت والعائق. إذا وجد الروبوت أي عائق فإنه يغير اتجاهه ويستمر في الحركة.
كيفية بناء عقبة تجنب الروبوت باستخدام جهاز الاستشعار بالموجات فوق الصوتية
قبل البدء في بناء الروبوت ، من المهم فهم كيفية عمل المستشعر بالموجات فوق الصوتية لأن هذا المستشعر سيكون له دور مهم في اكتشاف العوائق. المبدأ الأساسي وراء عمل المستشعر بالموجات فوق الصوتية هو تدوين الوقت الذي يستغرقه المستشعر لنقل حزم الموجات فوق الصوتية واستقبال الأشعة فوق الصوتية بعد اصطدامها بالسطح. ثم بعد ذلك يتم حساب المسافة باستخدام الصيغة. في هذا المشروع ، يتم استخدام مستشعر الموجات فوق الصوتية HC-SR04 المتاح على نطاق واسع. لاستخدام هذا المستشعر ، سيتم اتباع نهج مماثل موضح أعلاه.
لذلك ، فإن دبوس Trig لـ HC-SR04 يكون مرتفعًا لـ 10 دولارات على الأقل يتم إرسال حزمة صوتية بـ 8 نبضات كل منها 40 كيلو هرتز.
ثم تضرب الإشارة السطح وتعود مرة أخرى ويتم التقاطها بواسطة دبوس Echo للمستقبل من HC-SR04. كان دبوس Echo قد ارتفع بالفعل في وقت الإرسال.
الوقت الذي تستغرقه الحزمة للعودة إلى الوراء يتم حفظه بشكل متغير وتحويله إلى مسافة باستخدام الحسابات المناسبة مثل أدناه
المسافة = (الوقت × سرعة الصوت في الهواء (343 م / ث)) / 2
استخدمنا مستشعر الموجات فوق الصوتية في العديد من المشاريع ، لمعرفة المزيد عن مستشعر الموجات فوق الصوتية ، والتحقق من المشاريع الأخرى المتعلقة بمستشعر الموجات فوق الصوتية.
يمكن العثور بسهولة على مكونات هذه العقبة التي تتجنب الروبوت. من أجل صنع الهيكل ، يمكن استخدام أي هيكل لعبة أو يمكن تصنيعه حسب الطلب.
المكونات مطلوبة
- Arduino NANO أو Uno (أي إصدار)
- HC-SR04 جهاز استشعار بالموجات فوق الصوتية
- وحدة تشغيل المحرك LM298N
- 5V DC Motors
- البطارية
- عجلات
- الهيكل
- أسلاك توصيل
مخطط الرسم البياني
يوجد أدناه مخطط الدائرة الكاملة لهذا المشروع ، كما ترون أنه يستخدم Arduino nano. ولكن يمكننا أيضًا بناء عقبة تتجنب الروبوت باستخدام Arduino UNO بنفس الدائرة (اتبع نفس pinout) والرمز.
بمجرد أن تصبح الدائرة جاهزة ، يتعين علينا بناء سيارة تتجنب العوائق من خلال تجميع الدائرة أعلى هيكل آلي كما هو موضح أدناه.
عقبة تجنب الروبوت باستخدام Arduino - Code
يتم تقديم البرنامج الكامل مع فيديو توضيحي في نهاية هذا المشروع. سيتضمن البرنامج إعداد وحدة HC-SR04 وإخراج الإشارات إلى Motor Pins لتحريك اتجاه المحرك وفقًا لذلك. لن يتم استخدام أي مكتبات في هذا المشروع.
قم أولاً بتعريف دبوس المثلث والصدى لـ HC-SR04 في البرنامج. في هذا المشروع ، يتم توصيل دبوس المثلث بـ GPIO9 ودبوس الصدى متصل بـ GPIO10 من Arduino NANO.
int trigPin = 9 ؛ // حساب المثلثات لـ HC-SR04 int echoPin = 10 ؛ // صدى دبوس HC-SR04
حدد المسامير لإدخال وحدة تشغيل المحرك LM298N. يحتوي LM298N على 4 دبابيس إدخال بيانات تستخدم للتحكم في اتجاه المحرك المتصل به.
revleft4 = 4 ؛ // الحركة العكسية للمحرك الأيسر int fwdleft5 = 5 ؛ // حركة ForWarD للمحرك الأيسر int revright6 = 6 ؛ // الحركة العكسية للمحرك الأيمن int fwdright7 = 7 ؛ // حركة ForWarD للمحرك الأيمن
في وظيفة الإعداد () ، حدد اتجاه البيانات لدبابيس GPIO المستخدمة. تم تعيين دبابيس المحرك الأربعة ودبوس المشغل على أنه OUTPUT وتم تعيين Echo Pin على أنه دخل.
pinMode (revleft4 ، الإخراج) ؛ // تعيين دبابيس المحرك كإخراج pinMode (fwdleft5 ، الإخراج) ؛ pinMode (revright6 ، الإخراج) ؛ pinMode (fwdright7 ، الإخراج) ؛ pinMode (trigPin ، الإخراج) ؛ // تعيين دبوس المثلثات كإخراج pinMode (echoPin ، INPUT) ؛ // تعيين صدى دبوس كمدخل لالتقاط الموجات المنعكسة
في وظيفة الحلقة () ، احصل على المسافة من HC-SR04 وبناءً على المسافة ، حرك اتجاه المحرك. ستظهر المسافة مسافة الجسم القادمة أمام الروبوت. يتم أخذ المسافة عن طريق تفجير شعاع من الموجات فوق الصوتية يصل إلى 10 دولارات واستقبالها بعد 10 دولارات. لمعرفة المزيد حول قياس المسافة باستخدام مستشعر Ultrasonic و Arduino ، اتبع الرابط.
digitalWrite (trigPin ، LOW) ؛ تأخير ميكروثانية (2) ؛ digitalWrite (trigPin ، عالية) ؛ // أرسل موجات لمدة 10 لنا تأخير ميكروثانية (10) ؛ المدة = pulseIn (echoPin ، HIGH) ؛ // تلقي مسافة الموجات المنعكسة = المدة / 58.2 ؛ // التحويل إلى تأخير المسافة (10) ؛
إذا كانت المسافة أكبر من المسافة المحددة ، فهذا يعني أنه لا يوجد عائق في مساره وسوف يتحرك في الاتجاه الأمامي.
إذا (المسافة> 19) { digitalWrite (fwdright7 ، عالية) ؛ // المضي قدمًا في الكتابة الرقمية (revright6، LOW)؛ digitalWrite (fwdleft5 ، عالية) ؛ digitalWrite (revleft4 ، منخفض) ؛ }
إذا كانت المسافة أقل من المسافة المحددة لتجنب العائق ، فهذا يعني أن هناك بعض العوائق أمامك. لذلك في هذه الحالة ، سيتوقف الروبوت لفترة من الوقت ويتحرك للخلف بعد ذلك يتوقف مرة أخرى لفترة ثم يتجه إلى اتجاه آخر.
إذا (مسافة <18) { digitalWrite (fwdright7 ، منخفضة) ؛ // Stop digitalWrite (revright6، LOW)؛ digitalWrite (fwdleft5 ، منخفض) ؛ digitalWrite (revleft4 ، منخفض) ؛ تأخير (500) ؛ digitalWrite (fwdright7 ، منخفض) ؛ // movebackword digitalWrite (revright6، HIGH) ؛ digitalWrite (fwdleft5 ، منخفض) ؛ digitalWrite (revleft4 ، عالية) ؛ تأخير (500) ؛ digitalWrite (fwdright7 ، منخفض) ؛ // Stop digitalWrite (revright6، LOW)؛ digitalWrite (fwdleft5 ، منخفض) ؛ digitalWrite (revleft4 ، منخفض) ؛ تأخير (100) ؛ digitalWrite (fwdright7 ، عالية) ؛ digitalWrite (revright6، LOW)؛ digitalWrite (revleft4 ، منخفض) ؛ digitalWrite (fwdleft5 ، منخفض) ؛ تأخير (500) ؛ }
هذه هي الطريقة التي يمكن بها للروبوت تجنب العقبات في طريقه دون أن يعلق في أي مكان. ابحث عن الكود الكامل والفيديو أدناه.