Sadržaj:

Projekt 3: SonarDuino: 9 koraka
Projekt 3: SonarDuino: 9 koraka

Video: Projekt 3: SonarDuino: 9 koraka

Video: Projekt 3: SonarDuino: 9 koraka
Video: The Expert (Short Comedy Sketch) 2024, Novembar
Anonim
Image
Image

Dragi kolega hobista, U ovom projektu ćemo istražiti mogućnost postojanja radarskog sistema od 360 stepeni za detekciju objekata. Ako ovaj modul postavite zasebno, vaš će lokomotorni robot otkriti granice svog okruženja. Može poslužiti i kao navigacijsko sredstvo u mraku, ali samo ako hodate dovoljno sporo; str

Korak 1: Šta će vam trebati

Pripremite podršku za ultrazvučni senzor
Pripremite podršku za ultrazvučni senzor

Da biste napravili ovu konstrukciju, morat ćete kupiti sljedeće:

Arduino Nano: https://www.ebay.com/itm/USB-Nano-V3-0-ATmega328-16M-5V-Mikrokontroler-CH340G-board-For-Arduino/201601613488?hash=item2ef0647eb0:g:DkoAAOSwvYZZpO: rk: 2: pf: 0

Ploče za izradu prototipa: https://www.ebay.com/itm/20pcs-set-4Size-Double-Side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board/192076517108?epid=506557101&hash=item2cb8a70ef4:gOSA:AOS4Ag4Ag4Asa4Ag4Ag4Ag4sag4Ag:AOS: 4sa ~ Zbl232: rk: 13: pf: 0

Servo motori: 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

Ultrazvučni senzori: https://www.ebay.com/itm/5PCS-Ultrasonic-Sensor-Module-HC-SR04-Distance-Measuring-Sensor-for-arduino-SR04/170897438205?epid=18020663283&hash=item27ca47f5d ~ IAAOSw-xbD5Fp: rk: 2: pf: 0

Korak 2: Dokumentacija

Kao što neki od vas možda već znaju, ovaj projekt je inspiriran drugim projektom otvorenog koda pod nazivom „Arduino radarski projekt“koji je napravio Dejan iz „How to Mechatronics“@ na sljedećoj poveznici: https://howtomechatronics.com/projects/arduino -radar-project/

Još jedna stvar koja zahtijeva dokumentaciju je preuzimanje sljedeće dvije biblioteke u vaše razvojno okruženje:

Adafruit-GFX-biblioteka:

Adafruit_SSD1306:

Ovo je rečeno, da biste zaista razumjeli C kod, morate napraviti određenu dokumentaciju obje gore navedene biblioteke. Osim toga, funkcije koje sam koristio u svom kodu imaju imena koja govore o tome šta rade.

Korak 3: Pripremite podršku za ultrazvučni senzor

Pripremite podršku za ultrazvučni senzor
Pripremite podršku za ultrazvučni senzor
Pripremite podršku za ultrazvučni senzor
Pripremite podršku za ultrazvučni senzor
Pripremite podršku za ultrazvučni senzor
Pripremite podršku za ultrazvučni senzor

Uzmite bilo koji komad kartona i izrežite ga prema dimenzijama priključnih kabela pričvršćenih na senzor kao što je prikazano na prvoj slici. Nakon toga preklopite ovo zadnje i zalijepite ga na nosač servo motora. Nakon što to učinite, zalijepite dva ultrazvučna senzora prema posljednjoj slici. Imajte na umu da zaglavlje senzora treba lemiti na način da kabeli idu prema van ispred senzora. Ovo će omogućiti da senzorski kabeli ne ometaju jedni druge kada se izvrši rotacija za 360 stepeni.

Korak 4: Montirajte sve u ploču za izradu prototipa

Montirajte sve u ploču za izradu prototipa
Montirajte sve u ploču za izradu prototipa
Montirajte sve u ploču za izradu prototipa
Montirajte sve u ploču za izradu prototipa
Montirajte sve u ploču za izradu prototipa
Montirajte sve u ploču za izradu prototipa

U ovom koraku počet ćete s postavljanjem zaglavlja pripremljenog u prethodnom koraku u odgovarajući servo motor. Nakon što se servo motor pažljivo navikne, sve ćete zajedno montirati u ploču za izradu prototipa. Započet ćete lemljenjem Arduino Nano -a, a zatim lijepljenjem servo -a pored njega. Na kraju ćete lemiti mali OLED ekran na drugom rubu ploče.

Korak 5: Uspostavljanje konačnih veza

Uspostavljanje konačnih veza
Uspostavljanje konačnih veza
Uspostavljanje konačnih veza
Uspostavljanje konačnih veza
Uspostavljanje konačnih veza
Uspostavljanje konačnih veza

Ovaj korak će zaključiti hardversku stranu ovog projekta. Morat ćete slijediti navedene sheme da biste uspostavili sve potrebne veze.

Korak 6: Pokretanje programa

Pokretanje programa
Pokretanje programa

Postoje dva koda koja ćete morati pokrenuti

Arduino (C):

Obrada (java):

Prilikom pokretanja koda imat ćete dvije mogućnosti za izbor:

Opcija 1: Upotrebom OLED ekrana za to ćete morati postaviti varijablu MODE u kodu C na 0.

Opcija 2: Koristeći svoj monitor, za to ćete morati postaviti varijablu MODE u kodu C na 1. Osim toga, morat ćete preuzeti i instalirati razvojno okruženje Processing i preuzeti radarski font sa ove veze: https:// github.com/lastralab/ArduinoRadar/blob/ma…

I dodajte tu datoteku u datoteku koda za obradu tako da vaš java kôd prepozna font kada se pozove.

Korak 7: Razumijevanje C koda

Razumevanje C koda
Razumevanje C koda

Kôd se sastoji uglavnom od dvije petlje "za". Jedan je u korelaciji sa prolaskom napred, dok je drugi sa prolazom unazad. Unutar njih oboje, glavna funkcija draw_scanner (), koja će nacrtati linije radara na ekranu, poziva se više puta. Nakon testiranja više konfiguracija, došao sam do zaključka da moramo prebrisati bijele radarske linije u trenutku t sa tim istim radarskim linijama u crno u vrijeme t+1 da bismo ih izbrisali. U suprotnom, treperenje će se pojaviti svaki put kada očistite ekran pomoću funkcije “clearDisplay ()” prije pomicanja nove mreže piksela. Kako sam imao posla sa 7 linija- u svrhe dizajna- morao sam čuvati i prosljeđivati cijeli broj od 7 elemenata, gdje svaki element predstavlja radijus između središta radara do otkrivenog objekta, ako ga ima. Imajući ovo na umu, ostatak koda bi trebao biti jasan za razumijevanje.

Korak 8: Razumijevanje Java koda

U procesu obrade morao sam zaobići poziv funkcije za serialEvent (), koji radi samo sa serijskim portovima pod imenom COM. Dok sam radio na Macu, moji serijski portovi dobili su drugo ime. S obzirom na to, raspakirao sam tu funkciju u glavnu funkciju pri obradi "draw ()". Što se tiče svega ostalog, ažurirao sam aplikaciju kako bi zadovoljio dizajn potpune revolucije. Konačno, ažurirao sam sve nacrtane oblike i tekstove s obzirom na širinu ekrana tako da konačni proizvod odgovara različitim rezolucijama ekrana. Osobno sam ga testirao za rezolucije 1000X1000 i 500X500 i dobro je funkcionirao:).

Korak 9: Zaključak

Ovaj rad se može nadograditi na 3 ultrazvučna senzora, svaki pokrivajući kut gledanja od 120, ili čak 4 senzora (90 stepeni*4) -> brže od 360 stepeni. skeniranje.

Također možete proširiti domet radara sa 40 cm na 60 cm ili čak 80 cm. Osobno sam testirao funkciju pulseIn i prilagodio varijablu TIMEOUT u odnosu na 40 cm. Ova varijabla ovisi o mnogim faktorima, uključujući dužinu slanja impulsa i površinu objekta na kojoj se impuls reflektira.

Konačno, kao što je ranije rečeno, sljedeći korak je uključivanje radara Duino s robotom za kretanje za skeniranje okolnog perimetra.

Preporučuje se: