INHOUDSOPGAWE:

Slim asblik van Magicbit: 5 stappe
Slim asblik van Magicbit: 5 stappe

Video: Slim asblik van Magicbit: 5 stappe

Video: Slim asblik van Magicbit: 5 stappe
Video: Beginner projects using a Knitting Machine - Easy projects tutorial 2024, November
Anonim
Image
Image

In hierdie handleiding leer ons hoe u 'n slim asblik kan maak met behulp van Magicbit dev. bord met Arduino IDE. Laat ons begin.

Voorrade

  • Magicbit
  • USB-A na mikro-USB-kabel
  • Ultrasoniese sensor - HC -SR04 (generies)
  • SG90 Mikro-servomotor

Stap 1: Verhaal

Hardeware -opstelling
Hardeware -opstelling

Voordat ons na die projek gaan, kyk ons na die slim asblik. Daar is een of meer asblikke in elke huis. U het dit baie keer gedek. Want dit sal 'n reuk in u huis maak. As u dus vullis in die asblik wil gooi, moet u dit oopmaak. Maar as u naby die asblik stap om die vullis neer te sit en die deksel outomaties oop te maak, hoe lyk dit dan? Mal aaa…. dit is dus die slim asblik.

Stap 2: Teorie en metodiek

Die teorie is baie eenvoudig. As u naby die asblik loop, sal dit u opspoor. As die afstand tussen u en die asblik kleiner is as 'n sekere afstand, dan word die deksel van die asblik outomaties oopgemaak. Om albei hierdie voorwerpe te voltooi, gebruik ons 'n HC-SRO4 ultrasoniese sensor en klein servomotors. U kan enige tipe digitale servomotor kry.

Stap 3: hardeware -opstelling

Hardeware -opstelling
Hardeware -opstelling
Hardeware -opstelling
Hardeware -opstelling

Vir hierdie projek het ons hoofsaaklik drie hardeware -komponente gebruik. Dit is Magicbit, servomotor en ultrasoniese sensor. Die verband tussen al hierdie dele word in figuur hierbo getoon.

Ultrasoniese sensor gebruik 3,3 v om aan te skakel. Daarom het ons die onderste onderste poort van die Magicbit -bord gebruik om die ultrasoniese sensor aan Magicbit te koppel. Maar die servomotor word 5V gebruik om behoorlik te werk, daarom het ons die onderste onderste poort gebruik om die servomotor met Magicbit te verbind. In hierdie geval gebruik ons die Magic bit servo connector module. Maar as u nie die module het nie, kan u drie springdrade gebruik om 5V na 5V, Gnd met Gnd aan te sluit en 'n pin op 26 pin op magicbit te koppel.

Kom ons kyk nou na die meganiese kant van ons projek. Om die omslag oop te maak, gebruik ons 'n baie eenvoudige hefboommeganisme. Ons het die servoklip aan die een kant aan die servo gekoppel. Toe verbind ons die hoekgat in die clip en die asblik met sterk metaaldraad. Die metaaldraad kan draai ten opsigte van die servoklem en die asblik. Deur die beste beeld en video te bestudeer, kan u dit baie maklik bou.

Stap 4: sagteware -opstelling

Opstelling van sagteware
Opstelling van sagteware

Die sagtewaregedeelte is ook baie maklik. Kom ons kyk na die Arduino IDE -kode en hoe die kode werk.

Vir die bestuur van servo gebruik ons die ESP32 servobiblioteek. Hierdie biblioteek bevat byna die bestuurder van die magic bit board in Arduino IDE. Om die ultrasoniese sensor te hanteer, gebruik ons die newPing -biblioteek. Dit kan afgelaai word vanaf die volgende skakel.

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

Laai die zip -lêer af en gaan na gereedskap> sluit biblioteek in> voeg zip -biblioteek by in Arduino. kies nou die afgelaaide zip -lêer van die nuwe penbiblioteek. in die kode verklaar ons eers servo- en ultrasoniese sensorbiblioteke. In die lusfunksie kontroleer ons altyd die afstand van asblik tot naaste voorste voorwerp. As die rasper meer as 200 is, dan is die afstanduitset van die biblioteek 0. As die afstand laer as 60 cm is, voer dit uit vir 'n lus om die omslag oop te maak deur die servo te draai. As die afstand groter as 60 cm is, word die omslag neergesit. Deur die gebruik van Booleaanse veranderlike, kyk ons altyd na die toestand van die omslag. As die deksel af is, sal dit net oopmaak. Ook andersom. Kies nou die korrekte COM -poort en bord as magcibit, laai dan die kode op. Nou is u slim asblik gereed om te gebruik.

Stap 5: Arduino -kode

#insluit

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // sluit servobiblioteek in op afstand; Servo RadarServo; ongeldige opstelling () {Serial.begin (115200); RadarServo.attach (26); // Definieer op watter pen die servomotor aangehegte vertraging (3000) is; } leemte -lus () {// draai die servomotor van 15 tot 165 grade vir (int i = 0; i <= 180; i ++) {RadarServo.write (i); vertraging (50); distance = sonar.ping_cm (); // Roep 'n funksie op vir die berekening van die afstand wat deur die ultrasoniese sensor gemeet word vir elke graad vir (int j = 0; j0) {break; } Serial.print (i); // Stuur die huidige graad na die Serial Port Serial.print (","); // Stuur optelkarakter langs die vorige waarde wat later in die verwerkings -IDE benodig word vir die indeksering van Serial.print (j); // Stuur die huidige graad na die Serial Port Serial.print ("*"); Reeks.afdruk (1); // Stuur die afstandwaarde na die Serial Port Serial.print ("/"); // Stuur optelkarakter langs die vorige waarde wat later in die verwerkings -IDE benodig word om Serial.print (afstand) te indekseer; // Stuur die afstandwaarde na die Serial Port Serial.print ("."); // Stuur optelkarakter langs die vorige waarde wat later in die verwerkings-IDE nodig was vir indeksering}} // Herhaal die vorige reëls van 165 tot 15 grade vir (int i = 180; i> = 0; i-) {RadarServo.skryf (i); vertraging (50); afstand = sonar.ping_cm (); vir (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {vervolg; } Serial.print (i); // Stuur die huidige graad na die Serial Port Serial.print (","); // Stuur optelkarakter langs die vorige waarde wat later in die verwerkings -IDE benodig word vir die indeksering van Serial.print (j); // Stuur die huidige graad na die Serial Port Serial.print ("*"); Reeks.afdruk (-1); // Stuur die afstandwaarde na die Serial Port Serial.print ("/"); // Stuur optelkarakter langs die vorige waarde wat later in die verwerkings -IDE benodig word om Serial.print (afstand) te indekseer; // Stuur die afstandwaarde na die Serial Port Serial.print ("."); // Stuur optelkarakter langs die vorige waarde wat later in die verwerkings -IDE nodig was vir indeksering}}}

Aanbeveel: