Obsah:

Jednoduchý radarový systém od Magicbit: 6 kroků
Jednoduchý radarový systém od Magicbit: 6 kroků

Video: Jednoduchý radarový systém od Magicbit: 6 kroků

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

Tento tutoriál ukazuje, jak vytvořit jednoduchý radarový systém pomocí senzoru HC-SR04 a vývojové desky Microbit se zpracováním a Arduino IDE.

Zásoby:

  • Micro-servo motor SG90
  • Propojovací vodiče (obecné)
  • Breadboard (obecné)
  • Magicbit
  • Kabel USB-A na Micro-USB
  • Ultrazvukový senzor - HC -SR04 (obecný)

Krok 1: Příběh

V tomto tutoriálu se naučíme, jak vytvořit jednoduchý radarový systém pomocí základní desky Magicbit pro vývojáře. K tomuto účelu používáme ultrazvukový senzor HC-SR04 a k zobrazování dat používáme prostředí pro zpracování. Pojďme začít.

Krok 2: Teorie a metodologie

Nejprve pojďme diskutovat, jak to funguje. Princip je velmi snadný. Nejprve nepřetržitě otáčíme senzorem kolem svislé osy v rozsahu 180 stupňů. Během tohoto pohybu odebíráme údaje o vzdálenosti k nejbližšímu objektu z ultrazvukového senzoru v každém úhlu. Pro tento proces používáme základní desku Magicbit. Poté musíme navázat spojení se zpracovatelským prostředím pro zobrazování našich dat. Proto používáme sériový komunikační protokol s vhodnou přenosovou rychlostí. Poté navrhneme rozhraní našeho radarového systému pomocí zpracování IDE. V tomto IDE konfigurujeme naši sériovou komunikaci pro získání dat v reálném čase přes sériovou linku. S Magicbitem tedy komunikujeme v reálném čase a zobrazujeme data, která odesíláme z Magicbit do zpracovávajícího IDE.

Krok 3: Nastavení hardwaru

Nastavení hardwaru
Nastavení hardwaru
Nastavení hardwaru
Nastavení hardwaru

Pro tento projekt jsme použili hlavně tři hardwarové komponenty. Jsou to Magicbit, servomotor a ultrazvukový senzor. Spojení mezi všemi těmito částmi je znázorněno na obrázku výše.

Ultrazvukový senzor používá k zapnutí 3,3 V. Proto jsme pro připojení ultrazvukového senzoru k Magicbit použili pravý spodní port desky Magicbit. Pro správnou funkci je však použit servomotor 5V, proto jsme pro připojení servomotoru s Magicbit použili levý spodní port. V tomto případě používáme modul servo konektoru Magic bit. Pokud ale tento modul nemáte, můžete použít tři propojovací vodiče pro připojení 5V až 5V, Gnd to Gnd a signálního pinu na 26 pinů na magicbit.

Po sestavení obvodu zbývá postavit malou mechanickou část. pomocí malé matice nastavte jednostranný servo konektor na servomotor. Poté upevněte snímač na tento konektor pomocí držáku ve tvaru písmene L nebo správným způsobem. Po celém systému jsme zafixovali na breadboard. Pro připojení serva a Magicbit však můžete použít jiný povrch.

Krok 4: Nastavení softwaru

Nastavení softwaru
Nastavení softwaru
Nastavení softwaru
Nastavení softwaru

Softwarová stránka je trochu složitá. Pro správné pochopení můžete před přechodem na další část odkázat na následující odkazy.

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

hello.processing.org/editor/

Podívejme se na kód Arduino IDE a na to, jak tento kód funguje.

Pro pohon serva používáme knihovnu serv ESP32. Tato knihovna téměř obsahuje správce kouzelných bitových desek v Arduino IDE. K řešení ultrazvukových senzorů používáme knihovnu newPing. To lze stáhnout z následujícího odkazu.

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

Stáhněte si soubor zip a přejděte na nástroje> zahrnout knihovnu> přidat knihovnu Zip do Arduina. nyní vyberte stažený soubor zip nové knihovny pinů. Pro komunikaci se zpracováním jsme použili sériovou komunikaci s přenosovou rychlostí 115200 baudů. Toto je nejvhodnější frekvence pro ESP32. V každém úhlu posíláme naše data do počítače pomocí tohoto protokolu. V těchto datech je zahrnuta vzdálenost od senzoru k nejbližšímu přednímu objektu, směr otáčení a úhel otočení. Pomocí dvou smyček otáčíme servo ve dvou směrech. Při otočení o jeden stupeň jsme poslali sériová data čtyřikrát. Důvod, proč to můžete pochopit při zpracování vysvětlení části.

Nyní je čas podívat se na prostředí zpracování. Toto je programovací software založený na jazyce Java. Do této skici můžeme při zpracování IDE napsat náčrt našeho programu. Můžeme také generovat vizuální výstup spuštěním našeho programu. Také můžete mít výstup jako 2D a 3D objekty. Nejen to lze použít pro zpracování obrazu a mnoho dalších věcí.

V náčrtu zpracování nejprve navrhneme naše rozhraní pro zobrazení dat pomocí jednoduchých grafických funkcí. Na začátku kódu navážeme naši sériovou komunikaci zahrnutím sériových knihoven. Ve funkci nastavení musíte provést nějakou změnu podle toho, který USB port jste použili k připojení Magicbit k počítači. svůj port můžete zkontrolovat pomocí Arduino IDE, když nastavíte Arduino IDE pro nahrání kódu. Poté změňte název portu v části nastavení při zpracování náčrtu. když jsou k dispozici sériová data, automaticky se spustí funkce Serialevent. Hlavní logika kódu je proto zahrnuta do sériové události, aby se zabránilo chybějícím úhlům a datům. když jsou k dispozici nová data, nakreslíme na obrazovce čáru podle našeho úhlu. V té době, pokud není detekován žádný objekt, je plná čára zeleně zbarvená. Pokud ne, pak bude některá část čáry červená podle vzdálenosti od senzoru k objektu. Také podle směru otáčení nakreslíme dalších 200 řádků poblíž této čáry se snižující se úrovní zelené barvy. mezi každou hlavní máme rozdíl 0,25 stupně. Proto získáme 4 odečty najednou z Magicbitu při každém otočení stupně. Díky tomu můžeme vytvořit nádhernou vyhledávací ruku na obrazovce.

Po úplném nahrání úspěchu kódu do magie a nastavení hardwarové části úspěšně otevřete IDE zpracování a spusťte kód kliknutím na tlačítko Spustit. Nyní máte velmi jednoduchý radarový systém.

Kódy si můžete přizpůsobit, jak chcete, co chcete zobrazit.

Krok 5: Odstraňování problémů

Skica zpracování není spuštěna.

  • Počkejte chvíli. Doba spuštění závisí na výkonu vašeho počítače a GPU.
  • Při zpracování náčrtu zkontrolujte, zda je číslo sériového portu správné.
  • Zkontrolujte, zda je připojení USB správně nastaveno.
  • Zkontrolujte spojení mezi ultrazvukovým senzorem a Magicbitem.
  • Otevřete sériový monitor a zkontrolujte, zda data pocházejí z Arduina. Pokud ne, problém je v kódu Arduino nebo v připojení USB.

Servo nefunguje.

  • Zkontrolujte, zda je připojení USB správně nastaveno.
  • Zkontrolujte zapojení.
  • Zkontrolujte, zda je servo v dobrém stavu.

Krok 6: Arduino kód

#zahrnout

#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; neplatné nastavení () {Serial.begin (115200); RadarServo.attach (26); // Definuje, na kterém pinu je zpoždění připojeno servomotoru (3000); } void loop () {// otočí servomotor o 15 až 165 stupňů pro (int i = 0; i <= 180; i ++) {RadarServo.write (i); zpoždění (50); distance = sonar.ping_cm (); // Volá funkci pro výpočet vzdálenosti měřené ultrazvukovým senzorem pro každý stupeň pro (int j = 0; j0) {break; } Serial.print (i); // Odešle aktuální stupeň do Serial Port Serial.print (","); // Odesílá sčítací znak hned vedle předchozí hodnoty potřebné později v IDE zpracování pro indexování Serial.print (j); // Odešle aktuální stupeň do Serial Port Serial.print ("*"); Serial.print (1); // Odešle hodnotu vzdálenosti do Serial Port Serial.print ("/"); // Pošle sčítací znak hned vedle předchozí hodnoty potřebné později v Processing IDE pro indexování Serial.print (vzdálenost); // Odešle hodnotu vzdálenosti do Serial Port Serial.print ("."); // Odešle sčítací znak hned vedle předchozí hodnoty potřebné později v IDE zpracování pro indexování}} // Opakuje předchozí řádky od 165 do 15 stupňů pro (int i = 180; i> = 0; i-) {RadarServo.write (i); zpoždění (50); vzdálenost = sonar.ping_cm (); for (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {continue; } Serial.print (i); // Odešle aktuální stupeň do Serial Port Serial.print (","); // Odešle přidávací znak hned vedle předchozí hodnoty potřebné později v Processing IDE pro indexování Serial.print (j); // Odešle aktuální stupeň do Serial Port Serial.print ("*"); Serial.print (-1); // Odešle hodnotu vzdálenosti do Serial Port Serial.print ("/"); // Odešle přidávací znak hned vedle předchozí hodnoty potřebné později v Processing IDE pro indexování Serial.print (vzdálenost); // Odešle hodnotu vzdálenosti do Serial Port Serial.print ("."); // Odešle sčítací znak hned vedle předchozí hodnoty potřebné později v ID zpracování pro indexování}}

}

Doporučuje: