Tartalomjegyzék:

Egyszerű radarrendszer a Magicbit -től: 6 lépés
Egyszerű radarrendszer a Magicbit -től: 6 lépés

Videó: Egyszerű radarrendszer a Magicbit -től: 6 lépés

Videó: Egyszerű radarrendszer a Magicbit -től: 6 lépés
Videó: Морские млекопитающие: Повелители бездны 2024, Július
Anonim

Ez az oktatóanyag bemutatja, hogyan lehet egyszerű radarrendszert készíteni HC-SR04 érzékelő és Microbit dev kártya segítségével, feldolgozással és Arduino IDE-kkel.

Kellékek:

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

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

Ebben az oktatóanyagban megtudjuk, hogyan lehet egyszerű radarrendszert készíteni a Magicbit core dev board segítségével. Ebből a célból HC-SR04 ultrahangos érzékelőt használunk, az adatok megjelenítéséhez pedig feldolgozási környezetet. Kezdjük.

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

Először is beszéljük meg, hogyan működik ez. Az elv nagyon egyszerű. Először az érzékelőt 180 fokos tartományban folyamatosan függőleges tengely körül forgatjuk. E mozgás során az ultrahangos érzékelőtől minden szögben a legközelebbi objektum távolságának adatait vesszük. Ehhez a folyamathoz Magicbit maglapot használunk. Ezt követően létre kell hoznunk a kapcsolatot a feldolgozási környezettel az adataink megjelenítéséhez. Ezért soros kommunikációs protokollt használunk megfelelő átviteli sebességgel. Ezután megtervezzük radarrendszerünk interfészét az IDE feldolgozásával. Ebben az IDE -ben konfiguráljuk soros kommunikációnkat, hogy valós idejű adatokat kapjunk soros kapcsolaton keresztül. Tehát valós idejű kommunikációt folytatunk a Magicbittel, és megmutatjuk azokat az adatokat, amelyeket a Magicbit küld a feldolgozó IDE -nek.

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.

Az áramkör felépítése után van egy kis mechanikus alkatrészünk. állítsa az egyoldalas szervocsatlakozót a szervomotorhoz egy kis anya segítségével. Ezután rögzítse az érzékelőt a csatlakozóra valamilyen L alakú konzol vagy megfelelő módon. Az egész rendszer után kenyérlapra rögzítettük. De a szervo és a Magicbit felszerelésére más felületet is használhat.

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

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

A szoftver oldala kicsit bonyolult. A helyes megértés érdekében az alábbi linkeket a következő részre kattintva tekintheti meg.

magicbit-arduino.readthedocs.io/en/latest/

hello.processing.org/editor/

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/do…

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 feldolgozással való kommunikációhoz soros kommunikációt használtunk 115200 baud sebességgel. Ez a legmegfelelőbb frekvencia az ESP32 esetében. Minden szempontból elküldjük adatainkat a számítógépnek ezzel a protokollal. Ezek az adatok tartalmazzák az érzékelőtől a legközelebbi elülső tárgytól való távolságot, a forgásirányt és a forgásszöget. Kettőt használva a hurkokhoz, két irányba forgatjuk szervónkat. Egy fokos elforgatás közben négyszer küldtünk soros adatokat. Ennek okát megértheti a részmagyarázat feldolgozásakor.

Itt az ideje, hogy megvizsgáljuk a feldolgozási környezetet. Ez egy java alapú programozó szoftver. Ebbe a vázlatba írhatjuk programunk vázlatát az IDE feldolgozása során. Vizuális kimenetet is generálhatunk programunk futtatásából. A kimenetet 2D és 3D objektumként is felveheti. Nem csak ez, de használható képfeldolgozásra és még sok más dologra.

A feldolgozási vázlatban először egyszerű grafikus funkciók segítségével tervezzük meg az adatmegjelenítési felületünket. A kód kezdetén soros könyvtárak bevonásával létesítjük soros kommunikációnkat. A beállítási funkcióban módosítania kell a Magicbit számítógéphez csatlakoztatott USB -portját. ellenőrizheti a portját az Arduino IDE használatával, amikor az Arduino IDE -t a kód feltöltésére állítja be. Ezután módosítsa a portport nevét a beállítási részben a vázlat feldolgozásakor. ha a soros adatok rendelkezésre állnak, a Serialevent funkció automatikusan aktiválódik. Ezért a kód fő logikája a soros események közé tartozik, hogy megakadályozza a szögek és adatok hiányát. amikor új adatok állnak rendelkezésre, a szögünknek megfelelően rajzolunk egy vonalat a képernyőn. Ekkor, ha nincs objektumérzékelés, akkor a teljes vonal zöld színű. Ha nem, akkor a vonal egy része piros lesz az érzékelőtől a tárgyig mért távolságnak megfelelően. A forgásiránynak megfelelően további 200 vonalat húzunk a vonal közelébe, csökkenő zöld színnel. minden fő között 0,25 fok különbség van. Ezért a Magicbit -ről egyszerre 4 leolvasást kapunk minden fokban. Emiatt gyönyörű keresést tudunk létrehozni kéz a képernyőn.

Miután sikeresen feltöltötte a kódot a varázslatba és beállította a hardver részt, nyissa meg a feldolgozó IDE -t, és futtassa a kódot a Futtatás gombra kattintva. Most nagyon egyszerű radarrendszere van.

A kódokat tetszés szerint testreszabhatja, amit szeretne megjeleníteni.

5. lépés: Hibaelhárítás

A vázlat feldolgozása nem fut.

  • Várj egy kicsit. Az indítási idő miatt a számítógép és a GPU teljesítményétől függ.
  • Ellenőrizze, hogy a soros port száma helyes -e a vázlat feldolgozásakor.
  • Ellenőrizze, hogy az USB -csatlakozás megfelelően van -e rögzítve.
  • Ellenőrizze a kapcsolatot az ultrahangos érzékelő és a Magicbit között.
  • Nyissa meg a soros monitort, és ellenőrizze, hogy az adatok az Arduino -tól érkeznek -e. Ha nem, akkor a probléma az Arduino kód vagy az USB -kapcsolat.

A szervó nem működik.

  • Ellenőrizze, hogy az USB -csatlakozás megfelelően van -e rögzítve.
  • Ellenőrizze a vezetékeket.
  • Ellenőrizze, hogy a szervó jó állapotban van -e.

6. 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: