Magicbit -dan aqlli axlat qutisi: 5 qadam
Magicbit -dan aqlli axlat qutisi: 5 qadam
Anonim
Image
Image

Ushbu qo'llanmada biz Magicbit dev yordamida aqlli axlat qutisini qanday yasashni bilib olamiz. Arduino IDE bilan karta. Boshlaylik.

Ta'minotlar

  • Magicbit
  • USB-A-Micro-USB kabeli
  • Ultrasonik sensor - HC -SR04 (umumiy)
  • SG90 mikro-servo dvigateli

1 -qadam: hikoya

Uskunani sozlash
Uskunani sozlash

Loyihaga o'tishdan oldin, Smart axlat qutisi nima ekanligini ko'rib chiqaylik. Har bir uyda bir yoki bir nechta axlat qutilari bor. Siz buni ko'p marta yopgansiz. Chunki bu sizning uyingizdan hid keltiradi. Agar siz axlat qutisiga axlat solmoqchi bo'lsangiz, uni ochishingiz kerak. Ammo, agar siz axlat qutisiga yaqinlashganda, axlat qo'yish va uning qopqog'i avtomatik ochilsa, u qanday ko'rinishga ega. Aqlsiz aaa …. Shunday qilib, aqlli axlat qutisi.

2 -qadam: nazariya va metodologiya

Nazariya juda oddiy. Agar siz axlat qutisiga yaqinlashsangiz, u sizni aniqlaydi. Agar siz bilan axlat qutisi orasidagi masofa belgilangan masofadan kichikroq bo'lsa, axlat qutisining qopqog'i avtomatik ravishda ochiladi. Ikkala ob'ektni ham bajarish uchun biz HC-SRO4 ultratovush sensori va kichik servo dvigatellardan foydalanamiz. Siz har qanday turdagi raqamli servo motorni olishingiz mumkin.

3 -qadam: Uskuna sozlamalari

Uskunani sozlash
Uskunani sozlash
Uskunani sozlash
Uskunani sozlash

Ushbu loyiha uchun biz asosan uchta apparat komponentidan foydalanganmiz. Ular Magicbit, servo dvigatel va ultratovush sensori. Bu qismlar orasidagi aloqa yuqoridagi rasmda ko'rsatilgan.

Ultrasonik datchik 3.3 volt quvvat olish uchun ishlatilgan. Shunday qilib, biz ultrasonik sensorni Magicbit -ga ulash uchun Magicbit kartasining pastki pastki portidan foydalandik. Servo dvigatel 5V to'g'ri ishlashi uchun ishlatiladi, shuning uchun biz servik motorni Magicbit -ga ulash uchun chap pastki portdan foydalanganmiz. Bunday holda, biz Magic bit servo ulagich modulidan foydalanamiz. Agar sizda bunday modul bo'lmasa, siz 5V dan 5V gacha, Gnd dan Gndgacha va signal pinini 26 bitga ulashingiz mumkin.

Endi loyihamizning mexanik tomonlarini ko'rib chiqaylik. Qopqoqni ochish uchun biz juda oddiy qo'l mexanizmidan foydalanamiz. Biz bir tomonlama servo qo'l qisqichini servoga uladik. Keyin biz klipdagi burchak teshigini va axlat qutisi qopqog'ini mustahkam metall sim yordamida bog'ladik. Metall sim servo qisqich va axlat qutisi qopqog'iga qarab aylanishi mumkin. Yuqori rasm va videoni o'rganib, siz buni juda oson qurishingiz mumkin.

4 -qadam: dasturiy ta'minotni sozlash

Dasturiy ta'minotni sozlash
Dasturiy ta'minotni sozlash

Dasturiy qism ham juda oson. Keling, Arduino IDE kodini va uning qanday ishlashini ko'rib chiqaylik.

Servo haydash uchun biz ESP32 servo kutubxonasidan foydalanamiz. Bu kutubxona deyarli Arduino IDE -dagi sehrli bitlar boshqaruvchisiga kiradi. Ultrasonik sensor bilan ishlash uchun biz newPing kutubxonasidan foydalanamiz. Buni quyidagi havoladan yuklab olish mumkin.

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

Zip faylini yuklab oling va asboblarga o'ting> kutubxonani qo'shing> Arduino -da Zip kutubxonasini qo'shing. Endi yangi pin kutubxonasining yuklab olingan zip faylini tanlang. kodda biz birinchi navbatda servo va ultrasonik sensor kutubxonalarini e'lon qilamiz. Loop funktsiyasida biz har doim axlat qutisidan eng yaqin old ob'ektgacha bo'lgan masofani tekshiramiz. Agar bu 200 dan katta bo'lsa, kutubxonaning masofa chiqishi 0 ga teng. Agar masofa 60 sm dan past bo'lsa, u servo aylantirib, qopqog'ini ochish uchun pastadir bajariladi. Agar masofa 60 sm dan oshsa, qopqoq pastga qo'yiladi. Mantiqiy o'zgaruvchidan foydalanib, biz har doim qopqoq holatini tekshiramiz. Agar qopqoq pastga tushsa, u faqat ochiladi. Shuningdek, aksincha. Endi to'g'ri MAQOMOTI portini va doskasini magcibit sifatida tanlang, Keyin kodni yuklang. Endi sizning aqlli axlat qutingiz foydalanishga tayyor.

5 -qadam: Arduino kodi

#qo'shing

#dejinani belgilang TRIGGER_PIN 21 #ECHO_PIN 22ni belgilang #MAX_DISTANCE 200ni belgilang 200 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // servo kutubxonani o'z ichiga oladi int masofasi; Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Servo dvigatel biriktirilgan kechikish qaysi pim ustida aniqlanadi (3000); } void loop () {// servo motorni 15 dan 165 gradusgacha aylantiradi (int i = 0; i <= 180; i ++) {RadarServo.write (i); kechikish (50); masofa = sonar.ping_cm (); // Har bir daraja uchun ultrasonik sensori o'lchagan masofani hisoblash funktsiyasini chaqiradi (int j = 0; j0) {tanaffus; } Serial.print (i); // Joriy darajani Serial Port Serial.print (",") ga yuboradi; // Serial.print (j) indekslash uchun IDE protsessorida kerak bo'ladigan oldingi qiymatning yoniga qo'shimcha belgini yuboradi; // Joriy darajani Serial Port Serial.print ("*") ga yuboradi; Ketma -ket chop etish (1); // Serial.print ("/") ketma -ket portiga masofa qiymatini yuboradi; // Serial.print (masofani) indekslash uchun keyinchalik Processing IDE -da kerak bo'lgan oldingi qiymatning yoniga qo'shimcha belgini yuboradi; // Masofa qiymatini Serial Port Serial.print (".") Ga yuboradi; // Qo'shish belgisini indekslash uchun IDE protsessorida kerak bo'lgan oldingi qiymatning yoniga yuboradi}} // oldingi satrlarni 165 dan 15 darajagacha takrorlaydi (int i = 180; i> = 0; i-) {RadarServo.yozish (i); kechikish (50); masofa = sonar.ping_cm (); for (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {davom eting; } Serial.print (i); // Joriy darajani Serial Port Serial.print (",") ga yuboradi; // Serial.print (j) indekslash uchun IDE protsessorida kerak bo'ladigan oldingi qiymatning yoniga qo'shimcha belgini yuboradi; // Joriy darajani Serial Port Serial.print ("*") ga yuboradi; Ketma-ket chop etish (-1); // Serial.print ("/") ketma -ket portiga masofa qiymatini yuboradi; // Serial.print (masofani) indekslash uchun keyinchalik Processing IDE -da kerak bo'lgan oldingi qiymatning yoniga qo'shimcha belgini yuboradi; // Masofa qiymatini Serial Port Serial.print (".") Ga yuboradi; // Qo'shish belgisini indekslash uchun Processing IDE -da kerak bo'lgan oldingi qiymatning yoniga yuboradi}}}