كيفية جعل عقبة تتجنب الروبوت باستخدام اردوينو؟

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



(الصورة مجاملة: ملخص الدائرة)

في هذا المشروع ، تم تصميم روبوت قائم على Arduino لتفادي العقبات والذي سيستخدم مستشعرًا بالموجات فوق الصوتية لاكتشاف جميع العقبات في طريقه.



كيف تتجنب العوائق باستخدام جهاز الاستشعار بالموجات فوق الصوتية؟

كما نعلم ملخص مشروعنا ، دعونا نتحرك خطوة إلى الأمام ونجمع بعض المعلومات لبدء المشروع.



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

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



  • هيكل عجلة السيارة
  • البطارية

الخطوة الثانية: دراسة المكونات

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

Arduino nano عبارة عن لوحة متحكم دقيقة صديقة للوحة التجارب تُستخدم للتحكم أو تنفيذ مهام مختلفة في الدائرة. نحرق أ كود C على Arduino Nano لإخبار لوحة التحكم الدقيق بكيفية وما هي العمليات التي يجب إجراؤها. Arduino Nano له نفس وظائف Arduino Uno ولكن بحجم صغير جدًا. المتحكم الدقيق الموجود على لوحة Arduino Nano هو ATmega328p.

اردوينو نانو



إن L298N عبارة عن دائرة متكاملة للتيار العالي والجهد العالي. إنه جسر كامل مزدوج مصمم لقبول منطق TTL القياسي. يحتوي على مدخلي تمكين يسمحان للجهاز بالعمل بشكل مستقل. يمكن توصيل محركين وتشغيلهما في نفس الوقت. تتنوع سرعة المحركات من خلال دبابيس PWM. تعديل عرض النبضة (Pulse Width Modulation (PWM)) هي تقنية يمكن من خلالها التحكم في تدفق الجهد في أي مكون إلكتروني. تحتوي هذه الوحدة على H-Bridge المسؤول عن التحكم في اتجاه الدوران في المحركات عن طريق عكس اتجاه التيار. يتم استخدام Enable pin A و Enable Pin B لتغيير سرعة كلا المحركين. يمكن أن تعمل هذه الوحدة بين 5 و 35 فولت وذروة تيار تصل إلى 2 أمبير. إن Input Pin1 و Input Pin2 وللمحرك الأول و Input Pin3 و Input Pin4 هما للمحرك الثاني.

سائق محرك L298N

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

أجهزة الاستشعار بالموجات فوق الصوتية

الخطوة 3: تجميع المكونات

الآن بما أننا نعرف الآن طريقة عمل معظم المكونات المستخدمة ، فلنبدأ في تجميع جميع المكونات وإنتاج عقبة تتجنب الروبوت.

  1. خذ هيكل عجلة سيارة وألصق لوح التجارب على قمته. قم بتركيب مستشعر الموجات فوق الصوتية في مقدمة الهيكل وغطاء البطارية خلف الهياكل.
  2. قم بتثبيت لوحة Arduino Nano على لوح التجارب وقم بتوصيل محرك المحرك خلف اللوح مباشرة ، على الهيكل. قم بتوصيل دبابيس Enable of bothe Motors بـ Pin6 و Pin9 من Arduino nano. يتم توصيل دبابيس In1 و In2 و In3 و In4 لوحدة محرك المحرك بـ pin2 و pin3 و pin4 و pin5 من Arduino nano على التوالي.
  3. يتم توصيل دبوس مثلث وصدى المستشعر بالموجات فوق الصوتية بـ pin11 و in10 من Arduino nano على التوالي. يتم توصيل Vcc والدبوس الأرضي لجهاز الاستشعار بالموجات فوق الصوتية بجهد 5 فولت والأرضي من Arduino Nano.
  4. يتم تشغيل وحدة التحكم في المحرك بواسطة البطارية. تحصل لوحة Arduino Nano على الطاقة من منفذ 5V الخاص بوحدة تشغيل المحرك وسيحصل المستشعر بالموجات فوق الصوتية على قوته من لوحة Arduino nano. قد يصبح وزن وطاقة البطاريات العامل الحاسم في أدائها.
  5. تأكد من أن اتصالاتك هي نفسها كما هو موضح أدناه في مخطط الدائرة.

    مخطط الرسم البياني

الخطوة 4: بدء استخدام Arduino

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

  1. قم بتنزيل أحدث إصدار من Arduino IDE من اردوينو.
  2. قم بتوصيل لوحة Arduino Nano بجهاز الكمبيوتر المحمول وافتح لوحة التحكم. في لوحة التحكم ، انقر فوق الأجهزة والصوت . انقر الآن على الأجهزة والطابعات. هنا ، ابحث عن المنفذ الذي تتصل به لوحة وحدة التحكم الدقيقة الخاصة بك. في حالتي هو كذلك COM14 لكنه يختلف على أجهزة الكمبيوتر المختلفة.

    البحث عن ميناء

  3. انقر فوق قائمة الأداة. وضبط اللوحة على اردوينو نانو من القائمة المنسدلة.

    لوحة الإعداد

  4. في قائمة الأداة نفسها ، اضبط المنفذ على رقم المنفذ الذي لاحظته من قبل في ملف الأجهزة والطابعات .

    منفذ الإعداد

  5. في قائمة الأداة نفسها ، اضبط المعالج على ATmega328P (محمل الإقلاع القديم).

    المعالج

  6. قم بتنزيل الكود المرفق أدناه والصقه في Arduino IDE. اضغط على رفع زر لنسخ الرمز الموجود على لوحة وحدة التحكم الدقيقة.

    رفع

لتنزيل الكود ، انقر هنا.

الخطوة 5: فهم المدونة

تم التعليق على الكود جيدًا ولا يحتاج إلى شرح. ولكن مع ذلك ، هو موضح أدناه

1. في بداية الكود ، يتم تهيئة جميع دبابيس لوحة Arduino Nano المتصلة بمستشعر الموجات فوق الصوتية ووحدة محرك المحرك. Pin6 و Pin9 عبارة عن دبابيس PWM يمكنها تغيير تدفق الجهد لتغيير سرعة الروبوت. متغيرين ، المدة الزمنية، و مسافة يتم تهيئتها لتخزين البيانات التي سيتم استخدامها لاحقًا لحساب مسافة جهاز الاستشعار بالموجات فوق الصوتية والعائق.

int enable1pin = 6 ؛ // دبابيس لـ First Motor int motor1pin1 = 2 ؛ int motor1pin2 = 3 ؛ int enable2pin = 9 ؛ // دبابيس للمحرك الثاني int motor2pin1 = 4 ؛ int motor2pin2 = 5 ؛ const int trigPin = 11 ؛ // Trigger Pin Of Ultrasonic Sesnor const int echoPin = 10 ؛ // صدى دبوس بالموجات فوق الصوتية Sesnor طويلة المدة ؛ // متغيرات لحساب مسافة تعويم المسافة ؛

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

إعداد باطل () {Serial.begin (9600) ؛ pinMode (trigPin ، الإخراج) ؛ pinMode (echoPin ، INPUT) ؛ pinMode (enable1pin ، الإخراج) ؛ pinMode (enable2pin ، الإخراج) ؛ pinMode (motor1pin1 ، الإخراج) ؛ pinMode (motor1pin2 ، الإخراج) ؛ pinMode (motor2pin1 ، الإخراج) ؛ pinMode (motor2pin2 ، الإخراج) ؛ }

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

حلقة فارغة () {digitalWrite (trigPin، LOW) ؛ // إرسال وكشف تأخير إشارة الموجات فوق الصوتية (2) ؛ digitalWrite (trigPin ، عالية) ؛ تأخير ميكروثانية (10) ؛ digitalWrite (trigPin ، LOW) ؛ المدة = pulseIn (echoPin ، HIGH) ؛ // معايرة الوقت الذي تأخذه الموجة فوق الصوتية لتعكس المسافة الخلفية = 0.034 * (المدة / 2) ؛ // احتساب المسافة بينك وبين العائق. if (مسافة> 50) // تحرك للأمام إذا كانت المسافة أكبر من 50 سم {digitalWrite (enable1pin، HIGH) ؛ digitalWrite (enable2pin ، عالية) ؛ digitalWrite (motor1pin1 ، عالية) ؛ digitalWrite (motor1pin2 ، منخفض) ؛ digitalWrite (motor2pin1 ، عالية) ؛ الكتابة الرقمية (motor2pin2 ، منخفضة) ؛ } else if (المسافة<50) // Sharp Right Turn if the distance is less than 50cm { digitalWrite(enable1pin, HIGH); digitalWrite(enable2pin, HIGH); digitalWrite(motor1pin1, HIGH); digitalWrite(motor1pin2, LOW); digitalWrite(motor2pin1, LOW); digitalWrite(motor2pin2, LOW); } delay(300); }

التطبيقات

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

  1. نظام تتبع.
  2. أغراض قياس المسافة.
  3. يمكن استخدام هذا في روبوتات التنظيف التلقائي بالفراغ.
  4. يمكن استخدام هذا في Sticks للمكفوفين.