Sisukord:

Nutikas prügikast Magicbitist: 5 sammu
Nutikas prügikast Magicbitist: 5 sammu

Video: Nutikas prügikast Magicbitist: 5 sammu

Video: Nutikas prügikast Magicbitist: 5 sammu
Video: Neel 51 Trimaran Atlantic Crossing, ARC Regatta - Ep.4/5 2024, November
Anonim
Image
Image

Selles õpetuses õpime, kuidas Magicbit dev abil nutikat prügikasti teha. plaat Arduino IDE -ga. Alustame.

Tarvikud

  • Magicbit
  • USB-A-mikro-USB-kaabel
  • Ultraheli andur - HC -SR04 (üldine)
  • SG90 Mikroservomootor

1. samm: lugu

Riistvara seadistamine
Riistvara seadistamine

Enne projekti juurde asumist vaatame, mis on nutikas prügikast. Igas kodus on üks või mitu prügikasti. Mitmel korral kattisite selle. Sest see lõhnab teie kodus. Nii et kui soovite prügi prügikasti panna, peate selle avama. Aga kui prügikasti lähedale prügikasti pannes lähete automaatselt selle kate lahti, siis kuidas see välja näeb. Hull aaa…. nii et see on nutikas prügikast.

2. samm: teooria ja metoodika

Teooria on väga lihtne. Kui lähete prügikasti lähedale, tuvastab see teid. Kui teie ja prügikasti vaheline kaugus on väiksem kui teatud kaugus, avaneb prügikasti kaas automaatselt. Mõlema objekti lõpuleviimiseks kasutame ultraheli andurit HC-SRO4 ja väikesi servomootoreid. Saate hankida mis tahes tüüpi digitaalse servomootori.

Samm: riistvara seadistamine

Riistvara seadistamine
Riistvara seadistamine
Riistvara seadistamine
Riistvara seadistamine

Selle projekti jaoks kasutasime peamiselt kolme riistvarakomponenti. Need on Magicbit, servomootor ja ultraheliandur. Kõigi nende osade ühendus on näidatud ülaltoodud joonisel.

Ultraheli andur kasutas sisselülitamiseks 3,3 volti. Seetõttu kasutasime Magicbit plaadi paremat alumist porti ultraheli anduri ühendamiseks Magicbitiga. Kuid servomootorit kasutatakse nõuetekohaseks tööks 5 V, Seetõttu kasutasime servomootori ühendamiseks Magicbitiga vasakut alumist porti. Sel juhul kasutame Magic bit servoühendusmoodulit. Aga kui teil seda moodulit pole, saate kolme hüppetraadi abil ühendada 5V kuni 5V, Gnd to Gnd ja signaali tihvti 26 piniga magicbitil.

Vaatame nüüd meie projekti mehaanilist külge. Kaane avamiseks kasutame väga lihtsat hoobamehhanismi. Ühendasime ühe külgmise servokäepideme servoga. Seejärel ühendasime tugeva metalltraadi abil klambri nurgaaugu ja prügikasti katte. Metalltraat võib servoklambri ja prügikasti katte suhtes pöörata. Ülemise pildi ja video uurimisel saate selle väga hõlpsalt luua.

Samm 4: Tarkvara seadistamine

Tarkvara seadistamine
Tarkvara seadistamine

Tarkvara osa on samuti väga lihtne. Vaatame Arduino IDE koodi ja selle koodi toimimist.

Servo juhtimiseks kasutame servoteeki ESP32. See raamatukogu sisaldab peaaegu Arduino IDE maagilise bititahvli haldurit. Ultraheli anduriga tegelemiseks kasutame newPingi teeki. Selle saab alla laadida järgmiselt lingilt.

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

Laadige alla zip -fail ja minge tööriistadesse> lisage raamatukogu> lisage Arduinos Zip -raamatukogu. nüüd valige uue pin -teegi allalaaditud zip -fail. koodis deklareerime esmalt servo- ja ultraheliandurite teegid. Silmusfunktsioonis kontrollime alati kaugust prügikastist lähima esiosa juurde. Kui see riiv on üle 200, siis on raamatukogu kaugväljund 0. Kui kaugus on väiksem kui 60 cm, käivitatakse see silmus kaane avamiseks pöörleva servo abil. Kui vahemaa on suurem kui 60 cm, pannakse kate alla. Boolean muutuja abil kontrollime alati kaane olekut. Kui kate on maas, avaneb ainult see. Ka vastupidi. Nüüd valige magcibitiks õige COM -port ja plaat, seejärel laadige kood üles. Nüüd on teie nutikas prügikast kasutamiseks valmis.

Samm: Arduino kood

#kaasake

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // servo raamatukogu int distance; ServoradarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Määrab, millise tihvti külge on servomootori kinnitatud viivitus (3000); } void loop () {// pöörab servomootorit 15 kuni 165 kraadi alla (int i = 0; i <= 180; i ++) {RadarServo.write (i); viivitus (50); distance = sonar.ping_cm (); // Kutsub üles funktsiooni ultraheli anduri poolt iga astme jaoks mõõdetud kauguse arvutamiseks (int j = 0; j0) {break; } Serial.print (i); // Saadab praeguse kraadi jadapordi Serial.print (","); // saadab lisamärgi otse eelmise väärtuse kõrvale, mida on hiljem vaja töötlemise IDE -s Serial.print (j) indekseerimiseks; // Saadab praeguse kraadi jadapordi Serial.print ("*"); Seeriatrükk (1); // Saadab kauguse väärtuse jadapordi Serial.print ("/"); // saadab lisamärgi otse eelmise väärtuse kõrvale, mida on hiljem vaja töötlemise IDE -s Serial.print (kaugus) indekseerimiseks; // Saadab kauguse väärtuse jadapordi Serial.print ("."); // Saadab lisamärgi otse eelmise väärtuse juurde, mida on hiljem vaja töötlemiseks IDE-s indekseerimiseks}} // // Kordab eelnevaid ridu vahemikus 165 kuni 15 kraadi (int i = 180; i> = 0; i-) {RadarServo.kirjutage (i); viivitus (50); kaugus = sonar.ping_cm (); jaoks (int j = 75; j> = 0; j- = 25) {kui (i == 180 && (j == 75 || j == 50 || j == 25)) {jätka; } Serial.print (i); // Saadab praeguse kraadi jadapordi Serial.print (","); // saadab lisamärgi otse eelmise väärtuse kõrvale, mida on hiljem vaja töötlemise IDE -s Serial.print (j) indekseerimiseks; // Saadab praeguse kraadi jadapordi Serial.print ("*"); Seeriatrükk (-1); // Saadab kauguse väärtuse jadapordi Serial.print ("/"); // saadab lisamärgi otse eelmise väärtuse kõrvale, mida on hiljem vaja töötlemise IDE -s Serial.print (kaugus) indekseerimiseks; // Saadab kauguse väärtuse jadapordi Serial.print ("."); // Saadab lisamärgi otse eelmise väärtuse juurde, mida on hiljem vaja indekseerimiseks töötlemise IDE -s}}}

Soovitan: