Obsah:

Jednoduchý radarový systém od Magicbit: 6 krokov
Jednoduchý radarový systém od Magicbit: 6 krokov

Video: Jednoduchý radarový systém od Magicbit: 6 krokov

Video: Jednoduchý radarový systém od Magicbit: 6 krokov
Video: Сравнение Fujida Magna vs Silverstone F1 Sochi Pro ловят радар Арену в лоб 2024, Júl
Anonim

Tento tutoriál ukazuje, ako vytvoriť jednoduchý radarový systém pomocou senzora HC-SR04 a vývojovej dosky Microbit so spracovaním a IDE Arduino.

Zásoby:

  • Micro-servomotor SG90
  • Prepojovacie vodiče (všeobecné)
  • Breadboard (všeobecné)
  • Magicbit
  • Kábel USB-A na Micro-USB
  • Ultrazvukový senzor - HC -SR04 (generický)

Krok 1: Príbeh

V tomto tutoriáli sa naučíme, ako vytvoriť jednoduchý radarový systém pomocou základnej dosky Magicbit core dev. Na tento účel používame ultrazvukový senzor HC-SR04 a na zobrazenie údajov používame prostredie na spracovanie. Začnime.

Krok 2: Teória a metodika

Najprv si povedzme, ako to funguje. Princíp je veľmi ľahký. Najprv senzor nepretržite otáčame okolo zvislej osi v rozsahu 180 stupňov. Počas tohto pohybu odoberáme údaje o vzdialenosti k najbližšiemu objektu z ultrazvukového senzora v každom uhle. Na tento proces používame základnú dosku Magicbit. Potom musíme nadviazať spojenie s prostredím spracovania na zobrazenie našich údajov. Preto používame sériový komunikačný protokol s vhodnou prenosovou rýchlosťou. Potom navrhneme rozhranie nášho radarového systému pomocou spracovania IDE. V tomto IDE konfigurujeme našu sériovú komunikáciu na získavanie údajov v reálnom čase prostredníctvom sériovej linky. Preto s Magicbitom komunikujeme v reálnom čase a zobrazujeme údaje, ktoré odosielajú z Magicbit do IDE spracovania.

Krok 3: Nastavenie hardvéru

Nastavenie hardvéru
Nastavenie hardvéru
Nastavenie hardvéru
Nastavenie hardvéru

Na tento projekt sme použili hlavne tri hardvérové komponenty. Sú to Magicbit, servomotor a ultrazvukový senzor. Spojenie medzi všetkými týmito časťami je znázornené na obrázku vyššie.

Na zapnutie bol použitý ultrazvukový senzor s napätím 3,3 V. Preto sme na pripojenie ultrazvukového senzora k Magicbitu použili pravý dolný port dosky Magicbit. Na správnu funkciu sa však používa servomotor 5 V, preto sme na pripojenie servomotora s Magicbit použili ľavý dolný port. V tomto prípade používame modul servo konektora Magic bit. Ak však tento modul nemáte, môžete použiť tri prepojovacie vodiče na pripojenie 5V až 5V, GND na GND a signálny pin na 26 pinov na magicbit.

Po zostavení obvodu máme k dispozícii malú mechanickú časť. pomocou jednej matice nastavte jednostranný servo konektor na servomotor. Potom snímač pripevnite k tomuto konektoru pomocou konzoly v tvare L alebo správnym spôsobom. Po celom systéme sme opravili na doske. Na pripojenie serva a Magicbit však môžete použiť aj iný povrch.

Krok 4: Nastavenie softvéru

Nastavenie softvéru
Nastavenie softvéru
Nastavenie softvéru
Nastavenie softvéru

Softvérová stránka je trochu komplexná. Aby ste to pochopili, môžete sa obrátiť na nasledujúce odkazy, než prejdete na ďalšiu časť.

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

hello.processing.org/editor/

Pozrime sa na kód IDE Arduino a na to, ako tento kód funguje.

Na pohon serva používame knižnicu serva ESP32. Táto knižnica je takmer súčasťou programu Magic Bit Board Manager v Arduino IDE. Na prácu s ultrazvukovým senzorom používame knižnicu newPing. Toto je možné stiahnuť z nasledujúceho odkazu.

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

Stiahnite si súbor zip a choďte na nástroje> zahrnúť knižnicu> pridať knižnicu Zip do Arduina. teraz vyberte stiahnutý súbor zip novej knižnice pinov. Na komunikáciu so spracovaním sme použili sériovú komunikáciu s prenosovou rýchlosťou 115 200 baudov. Toto je najvhodnejšia frekvencia pre ESP32. V každom uhle odosielame naše údaje do počítača pomocou tohto protokolu. V týchto údajoch je zahrnutá vzdialenosť od senzora k najbližšiemu prednému objektu, smer otáčania a uhol natočenia. Použitím dvoch pre slučky otáčame naše servo v dvoch smeroch. Pri otočení o jeden stupeň sme odoslali sériové údaje štyrikrát. Dôvod je pochopiteľný pri spracovaní vysvetlenia časti.

Teraz je čas pozrieť sa na prostredie spracovania. Toto je programovací softvér založený na jave. Do tohto náčrtu môžeme napísať náčrt nášho programu pri spracovaní IDE. Môžeme tiež vytvárať vizuálny výstup zo spustenia nášho programu. Môžete tiež vziať výstup ako 2D a 3D objekty. Nielen to, môže to byť použité na spracovanie obrazu a mnoho ďalších vecí.

V náčrte spracovania najskôr navrhneme naše rozhranie na zobrazenie údajov pomocou jednoduchých grafických funkcií. Na začiatku kódu nadviažeme sériovú komunikáciu zahrnutím sériových knižníc. Vo funkcii nastavenia musíte urobiť niekoľko zmien podľa toho, ktorý port USB ste použili na pripojenie Magicbit k počítaču. svoj port môžete skontrolovať pomocou Arduino IDE, keď nastavíte Arduino IDE na nahrávanie kódu. Potom zmeňte názov portu portu v časti nastavenia v skici spracovania. keď sú sériové údaje k dispozícii, automaticky sa spustí funkcia Serialevent. Preto je hlavná logika kódu zahrnutá v sériovom prípade na zabránenie chýbaniu uhlov a údajov. keď sú k dispozícii nové údaje, nakreslíme na obrazovku čiaru podľa nášho uhla. V tom čase, ak nie je detekovaný žiadny objekt, je celý riadok zelene zafarbený. Ak nie, potom bude určitá časť čiary červená podľa vzdialenosti od snímača k objektu. Tiež podľa smeru otáčania nakreslíme ďalších 200 riadkov v blízkosti tejto čiary so znižujúcou sa úrovňou zelenej farby. medzi každou Hlavnou máme rozdiel 0,25 stupňa. Preto dostaneme 4 čítanie naraz z Magicbit pri každom otočení stupňa. Vďaka tomu dokážeme vytvárať krásne hľadanie ruka v obrazovke.

Po úplnom nahraní úspechu kódu do kúzla a nastavení hardvérovej časti úspešne otvorte IDE spracovania a spustite kód kliknutím na tlačidlo Spustiť. Teraz máte veľmi jednoduchý radarový systém.

Kódy si môžete prispôsobiť, ako chcete, čo chcete zobrazovať.

Krok 5: Riešenie problémov

Spracovanie náčrtu nie je spustené.

  • Počkaj chvíľu. Čas spustenia závisí od výkonu vášho počítača a GPU.
  • Pri spracovaní náčrtu skontrolujte, či je číslo sériového portu správne.
  • Skontrolujte, či je pripojenie USB správne nainštalované.
  • Skontrolujte prepojenie medzi ultrazvukovým senzorom a Magicbitom.
  • Otvorte sériový monitor a skontrolujte, či údaje pochádzajú z Arduina. Ak nie, potom je problémom váš kód Arduino alebo pripojenie USB.

Servo nefunguje.

  • Skontrolujte, či je pripojenie USB správne nainštalované.
  • Skontrolujte zapojenie.
  • Skontrolujte, či je servo v dobrom stave.

Krok 6: Arduino kód

#zahrnúť

#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 RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Definuje, na ktorom kolíku je oneskorenie pripojeného servomotora (3000); } void loop () {// otočí servomotor o 15 až 165 stupňov pre (int i = 0; i <= 180; i ++) {RadarServo.write (i); oneskorenie (50); distance = sonar.ping_cm (); // Volá funkciu na výpočet vzdialenosti meranej ultrazvukovým senzorom pre každý stupeň pre (int j = 0; j0) {break; } Serial.print (i); // Odošle aktuálny stupeň do sériového portu Serial.print (","); // Odošle dodatkový znak hneď vedľa predchádzajúcej hodnoty potrebnej neskôr v IDE spracovania na indexovanie Serial.print (j); // Odošle aktuálny stupeň do sériového portu Serial.print ("*"); Serial.print (1); // Odošle hodnotu vzdialenosti do sériového portu Serial.print ("/"); // Pošle znak sčítania hneď vedľa predchádzajúcej hodnoty potrebnej neskôr v IDE spracovania na indexovanie Serial.print (vzdialenosť); // Odošle hodnotu vzdialenosti do sériového portu Serial.print ("."); // Pošle sčítací znak hneď vedľa predchádzajúcej hodnoty potrebnej neskôr v IDE spracovania pre indexovanie}} // Opakuje predchádzajúce riadky od 165 do 15 stupňov pre (int i = 180; i> = 0; i-) {RadarServo.písať (i); oneskorenie (50); vzdialenosť = sonar.ping_cm (); pre (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {pokračovanie; } Serial.print (i); // Odošle aktuálny stupeň do sériového portu Serial.print (","); // Odošle dodatkový znak hneď vedľa predchádzajúcej hodnoty potrebnej neskôr v IDE spracovania na indexovanie Serial.print (j); // Odošle aktuálny stupeň do sériového portu Serial.print ("*"); Serial.print (-1); // Odošle hodnotu vzdialenosti do sériového portu Serial.print ("/"); // Pošle znak sčítania hneď vedľa predchádzajúcej hodnoty potrebnej neskôr v IDE spracovania na indexovanie Serial.print (vzdialenosť); // Odošle hodnotu vzdialenosti do sériového portu Serial.print ("."); // Odošle prídavný znak hneď vedľa predchádzajúcej hodnoty potrebnej neskôr v IDE spracovania na indexovanie}}

}

Odporúča: