Kazalo:

Pametni smetnjak iz Magicbita: 5 korakov
Pametni smetnjak iz Magicbita: 5 korakov

Video: Pametni smetnjak iz Magicbita: 5 korakov

Video: Pametni smetnjak iz Magicbita: 5 korakov
Video: Конфиденциальность, безопасность, общество – информатика для лидеров бизнеса 2016 2024, November
Anonim
Image
Image

V tej vadnici se bomo naučili, kako narediti pametno smetnjak s programom Magicbit dev. plošča z Arduino IDE. Začnimo.

Zaloge

  • Magicbit
  • Kabel USB-A do Micro-USB
  • Ultrazvočni senzor - HC -SR04 (generično)
  • SG90 Mikro servo motor

1. korak: Zgodba

Namestitev strojne opreme
Namestitev strojne opreme

Preden se lotimo projekta, poglejmo, kaj je pametna smetnjak. V vsakem domu je ena ali več smetnjakov. Velikokrat ste to pokrili. Ker bo v vašem domu dišalo. Ko želite torej odložiti smeti, jih morate odpreti. Če pa se odprete, ko se približate smetnjaku, da odložite smeti in se samodejno pokrije, potem je to videti. Noro aaa …. torej to je pametno smetnjak.

2. korak: teorija in metodologija

Teorija je zelo preprosta. Ko se približate smetnjaku, vas bo zaznal. Če je razdalja med vami in smetnjakom manjša od določene razdalje, se bo pokrov smetnjaka samodejno odprl. Za dokončanje obeh objektov uporabljamo ultrazvočni senzor HC-SRO4 in majhne servo motorje. Dobite lahko katero koli vrsto digitalnega servo motorja.

3. korak: Namestitev strojne opreme

Namestitev strojne opreme
Namestitev strojne opreme
Namestitev strojne opreme
Namestitev strojne opreme

Za ta projekt smo v glavnem uporabili tri komponente strojne opreme. So Magicbit, servo motor in ultrazvočni senzor. Povezava med vsemi temi deli je prikazana na zgornji sliki.

Ultrazvočni senzor za vklop uporablja 3.3 V. Zato smo za priključitev ultrazvočnega senzorja na Magicbit uporabili desno spodnje vrata Magicbit plošče. Toda servo motor se uporablja za pravilno delovanje 5V, zato smo za povezavo servo motorja z Magicbitom uporabili levo spodnje vrata. V tem primeru uporabljamo Magic bit servo priključni modul. Če pa tega modula nimate, lahko uporabite tri mostične žice za priključitev 5V na 5V, Gnd na Gnd in signalni zatič na 26 pin na magicbit.

Zdaj pa poglejmo mehansko plat našega projekta. Za odpiranje pokrova uporabljamo zelo preprost vzvodni mehanizem. Eno stransko servo ročno sponko smo povezali s servo. Nato smo z močno kovinsko žico povezali vogalno luknjo v sponki in pokrov smetnjaka. Kovinska žica se lahko vrti glede na servo sponko in pokrov smetnjaka. S preučevanjem vrhunske slike in videa lahko to zelo enostavno zgradite.

4. korak: Namestitev programske opreme

Namestitev programske opreme
Namestitev programske opreme

Del programske opreme je prav tako zelo enostaven. Poglejmo kodo Arduino IDE in njeno delovanje.

Za pogon servo uporabljamo servo knjižnico ESP32. Ta knjižnica je skoraj vključena v upravitelja magičnih bitnih plošč v Arduino IDE. Za obravnavo ultrazvočnega senzorja uporabljamo knjižnico newPing. To lahko prenesete s naslednje povezave.

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

Prenesite datoteko zip in pojdite na orodja> vključi knjižnico> dodaj knjižnico Zip v Arduinu. zdaj izberite preneseno datoteko zip nove knjižnice pin. v kodi najprej razglasimo knjižnice servo in ultrazvočnih senzorjev. Pri funkciji zanke vedno preverimo razdaljo od smetnjaka do najbližjega sprednjega predmeta. Če je ta strgalnik večji od 200, potem je izhodna razdalja knjižnice 0. Ko je razdalja manjša od 60 cm, potem izvede zanko for za odpiranje pokrova z vrtenjem servo. Če je razdalja večja od 60 cm, se pokrov odloži. Z uporabo logične spremenljivke vedno preverimo stanje pokrova. Če je pokrov spuščen, se odpre samo on. Tudi obratno. Zdaj izberite prava vrata COM in ploščo kot magcibit, nato naložite kodo. Zdaj je vaš pametni koš za smeti pripravljen za uporabo.

5. korak: Arduino koda

#vključi

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // vključi servo knjižnico int distance; Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Določa, na katerem zatiču je zakasnitev priklopa servo motorja (3000); } void loop () {// vrti servo motor od 15 do 165 stopinj za (int i = 0; i <= 180; i ++) {RadarServo.write (i); zamuda (50); distance = sonar.ping_cm (); // Pokliče funkcijo za izračun razdalje, ki jo ultrazvočni senzor izmeri za vsako stopinjo za (int j = 0; j0) {break; } Serial.print (i); // Pošilja trenutno stopnjo v Serial Port Serial.print (","); // pošlje dodani znak tik ob prejšnji vrednosti, ki je pozneje potrebna v IDE -ju za obdelavo za indeksiranje Serial.print (j); // Pošilja trenutno stopnjo v Serial Port Serial.print ("*"); Serial.print (1); // Pošlje vrednost razdalje v Serial Port Serial.print ("/"); // pošlje dodani znak tik ob prejšnji vrednosti, ki je pozneje potrebna v IDE -ju za obdelavo za indeksiranje Serial.print (razdalja); // Pošlje vrednost razdalje v Serial Port Serial.print ("."); // Pošlje dodani znak tik ob prejšnji vrednosti, ki je pozneje potrebna v indeksu obdelave za indeksiranje}} // Ponovi prejšnje vrstice od 165 do 15 stopinj za (int i = 180; i> = 0; i-) {RadarServo.pisati (i); zamuda (50); razdalja = sonar.ping_cm (); for (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {nadaljevanje; } Serial.print (i); // Pošilja trenutno stopnjo v Serial Port Serial.print (","); // pošlje dodani znak tik ob prejšnji vrednosti, ki je pozneje potrebna v IDE -ju za obdelavo za indeksiranje Serial.print (j); // Pošilja trenutno stopnjo v Serial Port Serial.print ("*"); Serial.print (-1); // Pošlje vrednost razdalje v Serial Port Serial.print ("/"); // pošlje dodani znak tik ob prejšnji vrednosti, ki je pozneje potrebna v IDE -ju za obdelavo za indeksiranje Serial.print (razdalja); // Pošlje vrednost razdalje v Serial Port Serial.print ("."); // Pošlje dodani znak tik ob prejšnji vrednosti, ki je potrebna pozneje v IDE -ju za obdelavo za indeksiranje}}}

Priporočena: