Tartalomjegyzék:

Intelligens szemetes a Magicbitből: 5 lépés
Intelligens szemetes a Magicbitből: 5 lépés

Videó: Intelligens szemetes a Magicbitből: 5 lépés

Videó: Intelligens szemetes a Magicbitből: 5 lépés
Videó: Intelligens szemetes Amszterdamban 2024, November
Anonim
Image
Image

Ebben az oktatóanyagban megtudjuk, hogyan lehet intelligens szemetesládát készíteni a Magicbit dev segítségével. tábla Arduino IDE -vel. Kezdjük.

Kellékek

  • Magicbit
  • USB-A-Micro-USB kábel
  • Ultrahangos érzékelő - HC -SR04 (általános)
  • SG90 Mikroszervo motor

1. lépés: Történet

Hardver beállítása
Hardver beállítása

Mielőtt elkezdené a projektet, nézze meg, mi az intelligens szemetes. Minden otthonban van egy vagy több szemetes. Sokszor letakartad. Mert ez szagot áraszt az otthonában. Tehát, ha szemetet szeretne tenni a kukába, akkor ki kell nyitnia. De ha a szemétkosár közelében sétál, hogy a szemetet helyezze, és automatikusan kinyílik a fedele, akkor hogyan néz ki. Őrült aaa…. hát ez az okos szemetes.

2. lépés: Elmélet és módszertan

Az elmélet nagyon egyszerű. Amikor a szemétláda közelében sétál, észlelni fog. Ha a távolság Ön és a szemetes között kisebb, mint egy meghatározott távolság, akkor a szemetes fedele automatikusan kinyílik. Mindkét objektum teljesítéséhez HC-SRO4 ultrahangos érzékelőt és kis szervomotorokat használunk. Bármilyen típusú digitális szervomotor beszerezhető.

3. lépés: Hardver beállítása

Hardver beállítása
Hardver beállítása
Hardver beállítása
Hardver beállítása

Ehhez a projekthez elsősorban három hardverkomponenst használtunk. Ezek Magicbit, szervomotor és ultrahangos érzékelő. Mindezen alkatrészek közötti kapcsolat a fenti ábrán látható.

Az ultrahangos érzékelő 3.3 V -ot használt a bekapcsoláshoz. Ezért a Magicbit kártya jobb alsó portját használtuk az ultrahangos érzékelő és a Magicbit csatlakoztatásához. De a szervomotor 5V -ot használ a megfelelő működéshez, ezért a bal alsó portot használtuk a szervomotor Magicbithez való csatlakoztatásához. Ebben az esetben a Magic bit szervo csatlakozómodult használjuk. De ha nincs meg az a modul, akkor használjon három áthidaló vezetéket az 5V -5V, a Gnd -Gnd és a jelzőcsap 26 -érintkezős csatlakoztatásához a magicbiten.

Most nézzük a projekt mechanikai oldalát. A fedél kinyitásához nagyon egyszerű karmechanizmust használunk. Az egyik oldali szervo kézi csipeszt a szervóhoz kötöttük. Ezután erős fémhuzal segítségével összekötöttük a saroklyukat a klipben és a szemeteskosár fedelét. A fémhuzal elfordulhat a szervocsipeszhez és a szemeteskosárhoz képest. A felső kép és videó tanulmányozásával ezt nagyon könnyen elkészítheti.

4. lépés: Szoftver beállítása

Szoftver beállítása
Szoftver beállítása

A szoftver része is nagyon egyszerű. Nézzük meg az Arduino IDE kódot és a kód működését.

A szervo meghajtásához ESP32 szervokönyvtárat használunk. Ez a könyvtár szinte tartalmazza az Arduino IDE varázslatos bitkezelőjét. Az ultrahangos érzékelő kezeléséhez a newPing könyvtárat használjuk. Ez letölthető az alábbi linkről.

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

Töltse le a zip fájlt, és menjen az eszközök> könyvtár beillesztése> Zip könyvtár hozzáadása Arduino programba. most válassza ki az új pin könyvtár letöltött zip fájlját. a kódban először szervo és ultrahangos érzékelő könyvtárakat deklarálunk. A hurok funkcióban mindig ellenőrizzük a szemétkosár és a legközelebbi elülső tárgy közötti távolságot. Ha ez a reszelő 200 -nál nagyobb, akkor a könyvtár távolsági kimenete 0. Ha a távolság kisebb, mint 60 cm, akkor végrehajtja a hurkot a fedél kinyitásához a szervo forgatásával. Ha a távolság nagyobb, mint 60 cm, akkor a fedél leesik. A boolean változó használatával mindig ellenőrizzük a fedél állapotát. Ha a fedél le van fektetve, csak az nyílik ki. És fordítva is. Most válassza ki a megfelelő COM portot és táblát magcibitként, majd töltse fel a kódot. Most az intelligens szemetesládája használatra kész.

5. lépés: Arduino kód

#befoglalni

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing szonár (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // include szervo library int distance; SzervoradarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Meghatározza, hogy melyik csapra van csatlakoztatva a szervomotor késleltetése (3000); } void loop () {// a szervo motort 15 -ről 165 fokra forgatja (int i = 0; i <= 180; i ++) {RadarServo.write (i); késleltetés (50); distance = sonar.ping_cm (); // Funkciót hív le az ultrahangos érzékelő által mért távolság kiszámításához minden egyes foknál (int j = 0; j0) {break; } Sorozat.nyomtatás (i); // Elküldi az aktuális fokozatot a soros portba Serial.print (","); // Kiegészítő karaktert küld az előző érték mellé, amely később szükséges a feldolgozó IDE -ben a Serial.print (j) indexeléséhez; // Elküldi az aktuális fokozatot a soros portba. Serial.print ("*"); Sorozatnyomtatás (1); // elküldi a távolság értékét a soros portba Serial.print ("/"); // Kiegészítő karaktert küld az előző érték mellé, amely később szükséges a feldolgozó IDE -ben a Serial.print (távolság) indexeléséhez; // elküldi a távolság értékét a soros portba Serial.print ("."); // Kiegészítő karaktert küld közvetlenül a feldolgozás IDE-ben később szükséges érték mellé az indexeléshez}} // Ismétli az előző sorokat 165 és 15 fok között a (int i = 180; i> = 0; i-) {RadarServo.írja (i); késleltetés (50); távolság = szonár.ping_cm (); mert (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {folytatás; } Sorozat.nyomtatás (i); // Elküldi az aktuális fokozatot a soros portba Serial.print (","); // Kiegészítő karaktert küld az előző érték mellé, amely később szükséges a feldolgozó IDE -ben a Serial.print (j) indexeléséhez; // Elküldi az aktuális fokozatot a soros portba. Serial.print ("*"); Sorozatnyomat (-1); // elküldi a távolság értékét a soros portba Serial.print ("/"); // Kiegészítő karaktert küld az előző érték mellé, amely később szükséges a feldolgozó IDE -ben a Serial.print (távolság) indexeléséhez; // elküldi a távolság értékét a soros portba Serial.print ("."); // Kiegészítő karaktert küld az előző érték mellé, amelyre később szükség van a feldolgozó IDE -ben az indexeléshez}}}

Ajánlott: