صندوق قمامة ذكي من Magicbit: 5 خطوات
صندوق قمامة ذكي من Magicbit: 5 خطوات
Anonim
Image
Image

في هذا البرنامج التعليمي سوف نتعرف على كيفية صنع صندوق قمامة ذكي باستخدام Magicbit dev. لوحة مع Arduino IDE. لنبدأ.

اللوازم

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

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

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

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

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

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

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

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

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

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

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

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

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

جزء البرنامج أيضًا سهل للغاية.لنلقي نظرة على كود Arduino IDE وكيف يعمل هذا الرمز.

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

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

قم بتنزيل الملف المضغوط وانتقل إلى أدوات> تضمين مكتبة> إضافة مكتبة Zip في Arduino. حدد الآن ملف zip الذي تم تنزيله لمكتبة الدبوس الجديدة. في الكود نعلن أولاً عن مكتبات أجهزة الاستشعار المؤازرة والموجات فوق الصوتية. في وظيفة الحلقة ، نتحقق دائمًا من المسافة من سلة المهملات إلى أقرب جسم أمامي. إذا كانت هذه المبشرة أكثر من 200 ، فإن المسافة الناتجة عن المكتبة هي 0. عندما تكون المسافة أقل من 60 سم ، يتم تنفيذ حلقة لفتح الغطاء عن طريق تدوير المؤازرة. إذا كانت المسافة أكبر من 60 سم ، فسيتم إغلاق الغطاء. باستخدام المتغير المنطقي ، نتحقق دائمًا من حالة الغلاف. إذا كان الغطاء معطلاً ، فسيتم فتحه فقط. والعكس صحيح أيضا. الآن حدد منفذ COM الصحيح واللوحة باسم magcibit ، ثم قم بتحميل الكود. الآن سلة المهملات الذكية جاهزة للاستخدام.

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

#يشمل

#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 لمعالجة الفهرسة}}}