Obsah:

Projekt 3: SonarDuino: 9 kroků
Projekt 3: SonarDuino: 9 kroků

Video: Projekt 3: SonarDuino: 9 kroků

Video: Projekt 3: SonarDuino: 9 kroků
Video: Lesson 01 Arduino Boards | Robojax Arduino Step By Step Course 2024, Září
Anonim
Image
Image

Vážený příteli, koníčku, V tomto projektu prozkoumáme možnost mít 360 stupňový radarový systém pro detekci objektů. Pokud tento modul nastavíte samostatně, umožní vašemu lokomočnímu robotu detekovat hranice svého okolí. Může také sloužit jako navigační nástroj ve tmě, ale pouze pokud chodíte dostatečně pomalu; str

Krok 1: Co budete potřebovat

Připravte si podporu ultrazvukového senzoru
Připravte si podporu ultrazvukového senzoru

K vytvoření této stavby budete potřebovat následující:

Arduino Nano: Odkaz: rk: 2: pf: 0

Prototypovací desky: https://www.ebay.com/itm/20pcs-set-4Size-Double-Side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board/192076517108?epid=506557101&hash=item2cb8a4:g ~ Zbl232: rk: 13: pf: 0

Servomotory: https://www.ebay.com/itm/5pcs-POP-9G-SG90-Micro-Servo-motor-RC-Robot-Helicopter-Airplane-Control-Car-Boat/142931003420?hash=item21475a081c:rk: 16: pf: 0 & var

Ultrazvukové senzory: https://www.ebay.com/itm/5PCS-Ultrasonic-Sensor-Module-HC-SR04-Distance-Measuring-Sensor-for-arduino-SR04/170897438205?epid=18020663283&hash=item27ca47f5fd:g: ~ IAAOSw-xbD5Fp: rk: 2: pf: 0

Krok 2: Dokumentace

Jak už to někteří možná víte, tento projekt je inspirován dalším open-source projektem nazvaným „Arduino Radar Project“od Dejana z „How to Mechatronics“@ následující odkaz: https://howtomechatronics.com/projects/arduino -radar-project/

Dalším bodem, který vyžaduje dokumentaci, je stažení následujících dvou knihoven do vývojového prostředí:

Knihovna Adafruit-GFX:

Adafruit_SSD1306:

To je řečeno, abyste opravdu porozuměli kódu C, budete muset udělat dokumentaci obou výše uvedených knihoven. Kromě toho mají funkce, které jsem použil ve svém kódu, názvy, které vypovídají o tom, co dělají.

Krok 3: Připravte si podporu ultrazvukového senzoru

Připravte si podporu ultrazvukového senzoru
Připravte si podporu ultrazvukového senzoru
Připravte si podporu ultrazvukového senzoru
Připravte si podporu ultrazvukového senzoru
Připravte si podporu ultrazvukového senzoru
Připravte si podporu ultrazvukového senzoru

Vezměte jakýkoli kus lepenky a ořízněte jej podle rozměru propojovacích kabelů připojených k senzoru, jak je znázorněno na prvním obrázku. Poté složte toto poslední a přilepte ho k držáku servomotoru. Jakmile to bude hotové, přilepte dva ultrazvukové senzory podle posledního obrázku. Všimněte si toho, že záhlaví senzorů by mělo být připájeno tak, aby kabely vedly ven před senzorem. To umožní, aby se kabely senzoru navzájem nerušily, když je implementováno otočení o 360 stupňů.

Krok 4: Namontujte vše do prototypové desky

Namontujte vše na prototypovou desku
Namontujte vše na prototypovou desku
Namontujte vše do prototypové desky
Namontujte vše do prototypové desky
Namontujte vše na prototypovou desku
Namontujte vše na prototypovou desku

V tomto kroku začnete montáží sběrnice připravené v předchozím kroku do příslušného servomotoru. Jakmile si servomotor pečlivě zvykne, namontujete vše dohromady na prototypovou desku. Začnete pájením Arduina Nano a poté přilepením serva hned vedle. Nakonec připájíte malý OLED displej na druhém okraji desky.

Krok 5: Provádění konečných připojení

Provádění konečných spojení
Provádění konečných spojení
Provádění konečných spojení
Provádění konečných spojení
Provádění konečných spojení
Provádění konečných spojení

Tímto krokem bude ukončena hardwarová stránka tohoto projektu. K navázání všech požadovaných připojení budete muset postupovat podle uvedených schémat.

Krok 6: Zavedení programu

Zavádění programu
Zavádění programu

Existují dva kódy, které budete muset zavést

Arduino (C):

Zpracování (java):

Při spuštění kódu budete mít na výběr ze dvou možností:

Možnost 1: Pomocí OLED displeje k tomu budete muset nastavit proměnnou MODE v kódu C na 0.

Možnost 2: K tomu budete muset pomocí monitoru nastavit proměnnou MODE v kódu C na 1. Kromě toho budete muset stáhnout a nainstalovat vývojové prostředí Processing a stáhnout písmo radaru z tohoto odkazu: https:// github.com/lastralab/ArduinoRadar/blob/ma…

A přidejte tento soubor do souboru s kódem zpracování, aby váš kód Java rozpoznal písmo při volání.

Krok 7: Porozumění kódu C

Pochopení kódu C
Pochopení kódu C

Kód se skládá hlavně ze dvou smyček „pro“. Jeden je v korelaci s dopředným podáním, zatímco druhý je se zpětným podáním. Uvnitř obou je mnohokrát vyvolána hlavní funkce draw_scanner (), která vykreslí čáry radaru na obrazovku. Po testování více konfigurací jsem dospěl k závěru, že potřebujeme přepsat bílé radarové čáry v čase t stejnými radarovými linkami černě v čase t+1, abychom je odstranili. V opačném případě by k blikání došlo při každém čištění displeje pomocí funkce „clearDisplay ()“před stisknutím nové mřížky pixelů. Když jsem se zabýval 7 řádky- pro účely návrhu- musel jsem stále ukládat a předávat celočíselné pole 7 prvků, kde každý prvek představuje poloměr mezi středem radaru k detekovanému objektu, pokud existuje. S ohledem na to by měl zbytek kódu porozumět.

Krok 8: Porozumění kódu Java

Při zpracování jsem musel obejít volání funkce pro serialEvent (), které funguje pouze se sériovými porty s názvem COM. Když jsem pracoval na počítači Mac, mé sériové porty byly pod jiným názvem. To bylo řečeno, rozbalil jsem tuto funkci na hlavní funkci při zpracování „draw ()“. Pokud jde o vše ostatní, aktualizoval jsem aplikaci tak, aby splňovala celý revoluční design. Nakonec jsem aktualizoval všechny nakreslené tvary a texty s ohledem na šířku obrazovky, aby konečný produkt vyhovoval různým rozlišením obrazovky. Osobně jsem to testoval pro rozlišení 1000X1000 i 500X500 a fungovalo to dobře:).

Krok 9: Závěr

Tuto práci lze upgradovat na 3 ultrazvukové senzory, z nichž každý pokrývá 120 zorných úhlů, nebo dokonce 4 senzory (90 stupňů*4) -> rychlejší o 360 stupňů. skenovat.

Můžete také rozšířit dosah radaru ze 40 cm na 60 cm nebo dokonce 80 cm. Osobně jsem vyzkoušel funkci pulseIn a upravil proměnnou TIMEOUT s ohledem na 40 cm. Tato proměnná závisí na mnoha faktorech, včetně délky odeslání impulsu a povrchu objektu, kde se puls odráží.

Nakonec, jak bylo uvedeno výše, dalším krokem je začlenění radarDuino s lokomočním robotem pro skenování okolního obvodu.

Doporučuje: