Turinys:

Išmanioji šiukšliadėžė iš „Magicbit“: 5 žingsniai
Išmanioji šiukšliadėžė iš „Magicbit“: 5 žingsniai

Video: Išmanioji šiukšliadėžė iš „Magicbit“: 5 žingsniai

Video: Išmanioji šiukšliadėžė iš „Magicbit“: 5 žingsniai
Video: ЮЛЯ ФИНЕСС: Как я вышла с 8 этажа! Групповое изнасилование под мефедроном, психиатрическая больница 2024, Lapkritis
Anonim
Image
Image

Šioje pamokoje sužinosime, kaip pasigaminti išmaniąją šiukšliadėžę naudojant „Magicbit dev“. lenta su „Arduino IDE“. Pradėkime.

Prekės

  • „Magicbit“
  • Kabelis nuo USB-A iki mikro-USB
  • Ultragarsinis jutiklis - HC -SR04 (bendras)
  • SG90 mikro servo variklis

1 žingsnis: istorija

Techninės įrangos sąranka
Techninės įrangos sąranka

Prieš pereidami prie projekto, pažvelkime, kas yra išmanioji šiukšliadėžė. Kiekvienuose namuose yra viena ar kelios šiukšliadėžės. Daugybę kartų jūs jį uždengėte. Nes tai suteiks kvapą jūsų namuose. Taigi, kai norite išmesti šiukšles į šiukšliadėžę, turite jas atidaryti. Bet jei eidami prie šiukšliadėžės sudėti šiukšles ir automatiškai atsidaro jų dangtis, tada kaip jos atrodo. Beprotis aaa…. taigi tai yra protinga šiukšliadėžė.

2 žingsnis: teorija ir metodika

Teorija labai paprasta. Kai eisite prie šiukšliadėžės, jis jus aptiks. Jei atstumas tarp jūsų ir šiukšliadėžės yra mažesnis už nustatytą atstumą, šiukšliadėžės dangtis atsidarys automatiškai. Abiems šiems objektams užbaigti naudojame ultragarsinį jutiklį HC-SRO4 ir mažus servo variklius. Galite įsigyti bet kokio tipo skaitmeninį servo variklį.

3 žingsnis: Aparatūros sąranka

Techninės įrangos sąranka
Techninės įrangos sąranka
Techninės įrangos sąranka
Techninės įrangos sąranka

Šiam projektui mes daugiausia naudojome tris aparatūros komponentus. Tai „Magicbit“, servo variklis ir ultragarsinis jutiklis. Visų šių dalių jungtis parodyta aukščiau esančiame paveikslėlyje.

Ultragarsinis jutiklis įjungimui naudojo 3,3 v. Todėl mes naudojome dešinįjį apatinį „Magicbit“plokštės prievadą, kad prijungtume ultragarsinį jutiklį prie „Magicbit“. Tačiau servo variklis naudojamas 5 V, kad tinkamai veiktų, todėl mes naudojome apatinį kairįjį prievadą, kad prijungtume servo variklį prie „Magicbit“. Šiuo atveju mes naudojame „Magic bit“servo jungties modulį. Bet jei neturite to modulio, galite naudoti tris trumpiklius laidus, kad prijungtumėte 5V prie 5V, Gnd - Gnd ir signalų kaištį prie 26 kontaktų „Magicbit“.

Dabar pažvelkime į mechaninę mūsų projekto pusę. Norėdami atidaryti dangtį, naudojame labai paprastą svirties mechanizmą. Mes prijungėme vieną šoninį servo rankinį spaustuką prie servo. Tada mes sujungėme kampinę skylę spaustuke ir šiukšliadėžės dangtelį, naudodami stiprią metalinę vielą. Metalinė viela gali suktis servo spaustuko ir šiukšliadėžės dangčio atžvilgiu. Studijuodami viršutinį vaizdą ir vaizdo įrašą, galite tai sukurti labai lengvai.

4 žingsnis: programinės įrangos sąranka

Programinės įrangos sąranka
Programinės įrangos sąranka

Programinės įrangos dalis taip pat yra labai paprasta. Pažvelkime į „Arduino IDE“kodą ir kaip šis kodas veikia.

Vairuoti servo mes naudojame ESP32 servo biblioteką. Ši biblioteka beveik įtraukta į stebuklingą bitų plokštės tvarkyklę „Arduino IDE“. Norėdami susidoroti su ultragarso jutikliu, naudojame „newPing“biblioteką. Tai galima atsisiųsti iš šios nuorodos.

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

Atsisiųskite ZIP failą ir eikite į įrankius> įtraukite biblioteką> pridėkite „Zip“biblioteką „Arduino“. dabar pasirinkite atsisiųstą naujos PIN bibliotekos ZIP failą. kode pirmiausia deklaruojame servo ir ultragarso jutiklių bibliotekas. Naudodami kilpos funkciją, mes visada tikriname atstumą nuo šiukšliadėžės iki artimiausio priekinio objekto. Jei ši trintukas yra didesnis nei 200, tada bibliotekos išvesties atstumas yra 0. Kai atstumas yra mažesnis nei 60 cm, tada ji vykdoma kilpai, kad dangtelis būtų atidarytas sukant servo sistemą. Jei atstumas didesnis nei 60 cm, dangtelis nukris. Naudodami loginį kintamąjį, visada tikriname dangtelio būseną. Jei dangtelis nuleistas, tik jis atsidarys. Taip pat ir atvirkščiai. Dabar pasirinkite teisingą COM prievadą ir plokštę kaip magcibitą, tada įkelkite kodą. Dabar jūsų išmanioji šiukšliadėžė paruošta naudoti.

5 žingsnis: „Arduino“kodas

#įtraukti

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // include servo library int distance; Servo radarasServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Apibrėžia, ant kurio kaiščio yra prijungtas servo variklio uždelsimas (3000); } void loop () {// pasuka servo variklį nuo 15 iki 165 laipsnių (int i = 0; i <= 180; i ++) {RadarServo.write (i); vėlavimas (50); distance = sonar.ping_cm (); // Iškviečia funkciją, skirtą apskaičiuoti atstumą, išmatuotą ultragarso jutikliu kiekvienam laipsniui (int j = 0; j0) {break; } Serijinis atspaudas (i); // Siunčia dabartinį laipsnį į serijinį prievadą Serial.print (","); // Siunčia papildymo simbolį prie pat ankstesnės vertės, reikalingos vėliau apdorojimo IDE, kad būtų galima indeksuoti Serial.print (j); // Siunčia dabartinį laipsnį į serijinį prievadą Serial.print ("*"); Serijinis atspaudas (1); // Siunčia atstumo reikšmę į nuoseklųjį prievadą Serial.print ("/"); // Siunčia papildymo simbolį prie pat ankstesnės vertės, reikalingos vėliau apdorojimo IDE, kad būtų galima indeksuoti Serial.print (atstumas); // Siunčia atstumo reikšmę į nuoseklųjį prievadą Serial.print ("."); // Siunčia papildymo simbolį prie ankstesnės vertės, reikalingos vėliau apdorojant IDE indeksavimui}} // // Pakartoja ankstesnes eilutes nuo 165 iki 15 laipsnių (int i = 180; i> = 0; i-) {RadarServo.rašyti (i); vėlavimas (50); atstumas = sonar.ping_cm (); už (int j = 75; j> = 0; j- = 25) {jei (i == 180 && (j == 75 || j == 50 || j == 25)) {tęsti; } Serijinis atspaudas (i); // Siunčia dabartinį laipsnį į serijinį prievadą Serial.print (","); // Siunčia papildymo simbolį prie pat ankstesnės vertės, reikalingos vėliau apdorojimo IDE, kad būtų galima indeksuoti Serial.print (j); // Siunčia dabartinį laipsnį į serijinį prievadą Serial.print ("*"); Serijinis atspaudas (-1); // Siunčia atstumo reikšmę į nuoseklųjį prievadą Serial.print ("/"); // Siunčia papildymo simbolį prie pat ankstesnės vertės, reikalingos vėliau apdorojimo IDE, kad būtų galima indeksuoti Serial.print (atstumas); // Siunčia atstumo reikšmę į nuoseklųjį prievadą Serial.print ("."); // Siunčia papildomą simbolį šalia ankstesnės vertės, kurios vėliau prireiks apdorojant IDE indeksuojant}}}

Rekomenduojamas: