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

المشروع 3: SonarDuino: 9 خطوات
المشروع 3: SonarDuino: 9 خطوات

فيديو: المشروع 3: SonarDuino: 9 خطوات

فيديو: المشروع 3: SonarDuino: 9 خطوات
فيديو: Sound Sensor Potentiometer Adjustment 2024, سبتمبر
Anonim
Image
Image

عزيزي الزميل الهاوي ،

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

الخطوة 1: ما سوف تحتاجه

قم بإعداد دعم مستشعر الموجات فوق الصوتية
قم بإعداد دعم مستشعر الموجات فوق الصوتية

لإنشاء هذا الإصدار ، ستحتاج إلى شراء ما يلي:

اردوينو نانو: https://www.ebay.com/itm/USB-Nano-V3-0-ATmega328-16M-5V-Micro-controller-CH340G-board-For-Arduino/201601613488؟hash=item2ef0647eb0:g:DkoAAOSwvYZZpOl0: rk: 2: pf: 0

لوحات النماذج الأولية: https://www.ebay.com/itm/20pcs-set-4Size-Double-Side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board/192076517108؟epid=506557101&hash=item2cb8a70ef4:g:cQ4A ~ Zbl232: rk: 13: pf: 0

محركات سيرفو: https://www.ebay.com/itm/5pcs-POP-9G-SG90-Micro-Servo-motor-RC-Robot-Helicopter-Airplane-Control-Car-Boat/142931003420؟hash =item21475a081c:rk: 16: pf: 0 & var

أجهزة الاستشعار بالموجات فوق الصوتية: https://www.ebay.com/itm/5PCS-Ultrasonic-Sensor-Module-HC-SR04-Distance-Measuring-Sensor-for-arduino-SR04/170897438205؟epid=18020663283&hash=item27ca47f5fd:g:w ~ IAAOSw - xbD5Fp: rk: 2: pf: 0

الخطوة الثانية: التوثيق

نظرًا لأن البعض منكم قد يعرف هذا بالفعل ، فإن هذا المشروع مستوحى من مشروع آخر مفتوح المصدر يسمى "Arduino Radar Project" تم إنشاؤه بواسطة Dejan من "How to Mechatronics" @ الرابط التالي: https://howtomechatronics.com/projects/arduino -مشروع-رادار /

هناك نقطة أخرى تتطلب التوثيق وهي تنزيل المكتبتين التاليتين في بيئة التطوير الخاصة بك:

مكتبة Adafruit-GFX:

Adafruit_SSD1306:

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

الخطوة 3: قم بإعداد دعم مستشعر الموجات فوق الصوتية

قم بإعداد دعم مستشعر الموجات فوق الصوتية
قم بإعداد دعم مستشعر الموجات فوق الصوتية
قم بإعداد دعم مستشعر الموجات فوق الصوتية
قم بإعداد دعم مستشعر الموجات فوق الصوتية
قم بإعداد دعم مستشعر الموجات فوق الصوتية
قم بإعداد دعم مستشعر الموجات فوق الصوتية

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

الخطوة 4: قم بتركيب كل شيء في لوحة النماذج الأولية

قم بتركيب كل شيء في لوحة النماذج الأولية
قم بتركيب كل شيء في لوحة النماذج الأولية
قم بتركيب كل شيء في لوحة النماذج الأولية
قم بتركيب كل شيء في لوحة النماذج الأولية
قم بتركيب كل شيء في لوحة النماذج الأولية
قم بتركيب كل شيء في لوحة النماذج الأولية

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

الخطوة الخامسة: عمل التوصيلات النهائية

إجراء الاتصالات النهائية
إجراء الاتصالات النهائية
إجراء الاتصالات النهائية
إجراء الاتصالات النهائية
إجراء الاتصالات النهائية
إجراء الاتصالات النهائية

ستنهي هذه الخطوة جانب الأجهزة لهذا المشروع. ستحتاج إلى اتباع المخططات المتوفرة لإنشاء جميع الاتصالات المطلوبة.

الخطوة 6: تمهيد البرنامج

تمهيد البرنامج
تمهيد البرنامج

هناك نوعان من الرموز التي ستحتاجها للتشغيل

اردوينو (C):

المعالجة (جافا):

عند تشغيل الكود ، سيكون لديك خياران للاختيار من بينها:

الخيار 1: استخدام شاشة OLED ، لذلك ستحتاج إلى ضبط الوضع المتغير في كود C على 0.

الخيار 2: استخدام شاشتك ، لذلك ستحتاج إلى ضبط الوضع المتغير في كود C على 1. بالإضافة إلى ذلك ، ستحتاج إلى تنزيل وتثبيت بيئة تطوير المعالجة وتنزيل خط الرادار من هذا الرابط: https:// github.com/lastralab/ArduinoRadar/blob/ma…

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

الخطوة السابعة: فهم كود سي

فهم كود سي
فهم كود سي

يتكون الرمز بشكل أساسي من حلقتين "for". أحدهما مرتبط بالتمرير الأمامي والآخر مرتبط بالتمريرة الخلفية. داخل كل منهما ، يتم استدعاء الوظيفة الرئيسية draw_scanner () ، والتي سترسم خطوط الرادار على الشاشة عدة مرات. بعد اختبار تكوينات متعددة ، توصلت إلى استنتاج مفاده أننا بحاجة إلى الكتابة فوق خطوط الرادار البيضاء في الوقت t مع نفس خطوط الرادار باللون الأسود في الوقت t + 1 من أجل حذفها. إذا حدث خلاف ذلك ، فقد يحدث وميض في كل مرة تقوم فيها بتنظيف الشاشة باستخدام الوظيفة "clearDisplay ()" قبل دفع شبكة البكسل الجديدة. نظرًا لأنني كنت أتعامل مع 7 خطوط - لأغراض التصميم - كان علي الاحتفاظ بمصفوفة عدد صحيح مكون من 7 عناصر وتمريرها ، حيث يمثل كل عنصر نصف القطر بين مركز الرادار والكائن المكتشف ، إن وجد. مع وضع هذا في الاعتبار ، يجب أن تكون بقية الشفرة واضحة ومباشرة لفهمها.

الخطوة 8: فهم كود جافا

أثناء المعالجة ، اضطررت إلى تجاوز استدعاء الوظيفة لـ serialEvent () ، والذي يعمل فقط مع المنافذ التسلسلية المسماة COM. عندما كنت أعمل على جهاز Mac ، كانت المنافذ التسلسلية الخاصة بي تحمل اسمًا مختلفًا. ومع ذلك ، قمت بتفكيك هذه الوظيفة إلى الوظيفة الرئيسية في معالجة "draw ()". فيما يتعلق بكل شيء آخر ، لقد قمت بتحديث التطبيق لتلبية تصميم الثورة الكامل. أخيرًا ، قمت بتحديث جميع الأشكال والنصوص المرسومة فيما يتعلق بعرض الشاشة بحيث يتناسب المنتج النهائي مع دقة الشاشة المختلفة. لقد اختبرته شخصيًا لكل من قرارات 1000X1000 و 500X500 ، وعملت بشكل جيد:).

الخطوة 9: الخاتمة

يمكن ترقية هذا العمل إلى 3 مستشعرات فوق صوتية ، كل منها يغطي زاوية رؤية 120 ، أو حتى 4 مستشعرات (90 درجة * 4) -> أسرع 360 درجة. مسح.

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

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

موصى به: