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

نظام رادار بسيط من Magicbit: 6 خطوات
نظام رادار بسيط من Magicbit: 6 خطوات

فيديو: نظام رادار بسيط من Magicbit: 6 خطوات

فيديو: نظام رادار بسيط من Magicbit: 6 خطوات
فيديو: Arduino Missile Defense Radar System in ACTION 2024, يوليو
Anonim

يوضح هذا البرنامج التعليمي كيفية إنشاء نظام رادار بسيط باستخدام مستشعر HC-SR04 ولوحة تطوير Microbit مع المعالجة و Arduino IDE.

اللوازم:

  • محرك سيرفو صغير SG90
  • أسلاك العبور (عامة)
  • اللوح (عام)
  • ماجيكبيت
  • كابل USB-A إلى Micro-USB
  • جهاز الاستشعار بالموجات فوق الصوتية - HC-SR04 (عام)

الخطوة 1: القصة

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

الخطوة الثانية: النظرية والمنهجية

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

الخطوة 3: إعداد الجهاز

إعداد الأجهزة
إعداد الأجهزة
إعداد الأجهزة
إعداد الأجهزة

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

يستخدم جهاز الاستشعار بالموجات فوق الصوتية 3.3 فولت لزيادة الطاقة. لذلك استخدمنا المنفذ السفلي الأيمن من لوحة Magicbit لتوصيل مستشعر الموجات فوق الصوتية بـ Magicbit. لكن محرك سيرفو يستخدم 5 فولت للعمل المناسب ، لذلك استخدمنا المنفذ السفلي الأيسر لتوصيل محرك سيرفو بـ Magicbit. في هذه الحالة ، نستخدم وحدة الموصل المؤازر Magic bit. ولكن إذا لم يكن لديك هذه الوحدة ، فيمكنك استخدام ثلاثة أسلاك توصيل لتوصيل 5 فولت إلى 5 فولت و Gnd بـ Gnd ودبوس الإشارة بـ 26 دبوسًا في magicbit.

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

الخطوة 4: إعداد البرنامج

إعداد البرنامج
إعداد البرنامج
إعداد البرنامج
إعداد البرنامج

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

magicbit-arduino.readthedocs.io/en/latest/

hello.processing.org/editor/

دعونا نلقي نظرة على كود Arduino IDE وكيف يعمل هذا الرمز.

من أجل قيادة المؤازرة ، نستخدم مكتبة مؤازرة ESP32. تتضمن هذه المكتبة تقريبًا في Magic bit board manager في Arduino IDE. للتعامل مع أجهزة الاستشعار بالموجات فوق الصوتية ، نستخدم مكتبة بينج الجديدة. يمكن تنزيل هذا من الرابط التالي.

bitbucket.org/teckel12/arduino-new-ping/do…

قم بتنزيل الملف المضغوط وانتقل إلى أدوات> تضمين مكتبة> إضافة مكتبة Zip في Arduino. حدد الآن ملف zip الذي تم تنزيله لمكتبة الدبوس الجديدة. للتواصل مع المعالجة ، استخدمنا الاتصال التسلسلي بمعدل باود 115200. هذا هو أنسب تردد لـ ESP32. في كل زاوية نرسل بياناتنا إلى الكمبيوتر باستخدام هذا البروتوكول. يتم تضمين المسافة إلى أقرب جسم أمامي من المستشعر واتجاه الدوران وزاوية الدوران في هذه البيانات. باستخدام حلقتين for نقوم بتدوير المؤازرة الخاصة بنا في اتجاهين. أثناء الدوران بدرجة واحدة ، أرسلنا البيانات التسلسلية في 4 مرات. سبب ذلك يمكنك فهمه في معالجة شرح الجزء.

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

في رسم المعالجة أولاً ، نصمم واجهة عرض البيانات الخاصة بنا باستخدام وظائف رسومية بسيطة. في بداية الكود ، نؤسس اتصالنا التسلسلي من خلال تضمين المكتبات التسلسلية. في وظيفة الإعداد ، عليك إجراء بعض التغييرات وفقًا لمنفذ USB الذي استخدمته لتوصيل Magicbit بالكمبيوتر. يمكنك التحقق من المنفذ الخاص بك باستخدام Arduino IDE عند إعداد Arduino IDE لتحميل الكود. ثم قم بتغيير اسم منفذ com في جزء الإعداد في معالجة الرسم التخطيطي. عند توفر البيانات التسلسلية ، يتم تشغيل وظيفة الحدث التسلسلي تلقائيًا. لذلك يتم تضمين المنطق الرئيسي للكود في الحدث التسلسلي لمنع الزوايا والبيانات المفقودة. عندما تتوفر بيانات جديدة ، نرسم خطًا في الشاشة وفقًا لزاويتنا ، وفي ذلك الوقت إذا لم يكن هناك كائن مكتشف ، فسيكون الخط الكامل باللون الأخضر. إذا لم يكن الأمر كذلك ، فسيكون جزء من الخط باللون الأحمر وفقًا للمسافة من المستشعر إلى الجسم. أيضًا في اتجاه الدوران وفقًا لاتجاه الدوران ، نرسم 200 خط آخر بالقرب من هذا الخط مع انخفاض مستوى اللون الأخضر. بين كل رئيسي لدينا فرق 0.25 درجة. لذلك نحصل على 4 قراءات في وقت واحد من Magicbit في كل درجة دوران. وبسبب ذلك يمكننا إنشاء بحث جميل جنبًا إلى جنب على الشاشة.

بعد تحميل الكود بنجاح إلى السحر وتعيين جزء الجهاز بنجاح ، افتح IDE للمعالجة وقم بتشغيل الكود بالنقر فوق زر التشغيل. الآن لديك نظام رادار بسيط للغاية.

يمكنك تخصيص الأكواد كما يحلو لك ما تريد عرضه.

الخطوة 5: استكشاف الأخطاء وإصلاحها

رسم المعالجة لا يعمل.

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

المؤازرة لا تعمل.

  • تحقق من توصيل USB بشكل صحيح.
  • تحقق من الأسلاك.
  • تحقق من المؤازرة في حالة جيدة.

الخطوة 6: كود اردوينو

#يشمل

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing sonar (TRIGGER_PIN، ECHO_PIN، MAX_DISTANCE) ؛ # تتضمن // تضمين مكتبة مؤازرة مسافة int ؛ أجهزة الرادار إعداد باطل () {Serial.begin (115200) ؛ RadarServo.attach (26) ، // يحدد على أي دبوس هو تأخير توصيل محرك سيرفو (3000) ؛ } حلقة فارغة () {// تقوم بتدوير محرك سيرفو من 15 إلى 165 درجة لـ (int i = 0؛ i <= 180؛ i ++) {RadarServo.write (i)؛ تأخير (50) ؛ المسافة = sonar.ping_cm () ؛ // يستدعي وظيفة لحساب المسافة المقاسة بواسطة مستشعر الموجات فوق الصوتية لكل درجة لـ (int j = 0 ؛ j0) {break ؛ } Serial.print (i) ؛ // يرسل الدرجة الحالية إلى المنفذ التسلسلي Serial.print ("،")؛ // يرسل حرف الإضافة بجوار القيمة السابقة المطلوبة لاحقًا في IDE المعالجة لفهرسة Serial.print (j) ؛ // يرسل الدرجة الحالية إلى المنفذ التسلسلي Serial.print ("*") ؛ Serial.print (1) ؛ // يرسل قيمة المسافة إلى المنفذ التسلسلي Serial.print ("/") ؛ // يرسل حرف الإضافة بجوار القيمة السابقة المطلوبة لاحقًا في IDE المعالجة لفهرسة Serial.print (المسافة) ؛ // يرسل قيمة المسافة إلى المنفذ التسلسلي Serial.print (".") ؛ // يرسل حرف الإضافة بجوار القيمة السابقة المطلوبة لاحقًا في IDE للمعالجة للفهرسة}} // يكرر الأسطر السابقة من 165 إلى 15 درجة لـ (int i = 180 ؛ i> = 0 ؛ i -) {RadarServo.كتبت انا)؛ تأخير (50) ؛ المسافة = sonar.ping_cm () ؛ لـ (int j = 75؛ j> = 0؛ j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {متابعة ؛ } Serial.print (i) ؛ // يرسل الدرجة الحالية إلى المنفذ التسلسلي Serial.print ("،")؛ // يرسل حرف الإضافة بجوار القيمة السابقة المطلوبة لاحقًا في IDE للمعالجة لفهرسة Serial.print (j) ؛ // يرسل الدرجة الحالية إلى المنفذ التسلسلي Serial.print ("*") ؛ Serial.print (-1) ؛ // يرسل قيمة المسافة إلى المنفذ التسلسلي Serial.print ("/") ؛ // يرسل حرف الإضافة بجوار القيمة السابقة المطلوبة لاحقًا في IDE المعالجة لفهرسة Serial.print (المسافة) ؛ // يرسل قيمة المسافة إلى المنفذ التسلسلي Serial.print (".") ؛ // يرسل حرف الإضافة بجوار القيمة السابقة المطلوبة لاحقًا في IDE لمعالجة الفهرسة}}

}

موصى به: