Sadržaj:
- Korak 1: Ono što će vam trebati
- Korak 2: Dokumentacija
- Korak 3: Pripremite podršku za ultrazvučni senzor
- Korak 4: Montirajte sve u ploču za izradu prototipa
- Korak 5: Uspostavljanje konačnih veza
- Korak 6: Pokretanje programa
- Korak 7: Razumijevanje C koda
- Korak 8: Razumijevanje Java koda
- Korak 9: Zaključak
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Dragi kolega hobist, U ovom ćemo projektu istražiti mogućnost postojanja radarskog sustava od 360 stupnjeva za otkrivanje objekata. Ako ovaj modul postavite zasebno, vaš će lokomotorni robot otkriti granice svog okruženja. Može poslužiti i kao navigacijski alat u mraku, ali samo ako hodate dovoljno sporo; str
Korak 1: Ono što će vam trebati
Za izradu ove konstrukcije 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:DkoAAOSwvYZZO0: 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=item2cb8a70ef4ggAsA4Ag4Ag:AOS4Ag4AgAA4AgA4AA4AgA4AA4AgA4AA4AgA4AA4AgA4AA4Ag4AA4G: sve: ~ 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 to već znaju, ovaj je projekt inspiriran drugim projektom otvorenog koda pod nazivom “Arduino Radar Project” 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 knjižnice u vaše razvojno okruženje:
Adafruit-GFX-Library:
Adafruit_SSD1306:
Ovo je rečeno, da biste doista razumjeli C kod, morate napraviti dokumentaciju obje gore navedene knjižnice. Osim toga, funkcije koje sam koristio u svom kodu imaju nazive koji govore o tome što rade.
Korak 3: Pripremite podršku za ultrazvučni senzor
Uzmite bilo koji komad kartona i izrežite ga prema dimenzijama spojnih kabela pričvršćenih na senzor kao što je prikazano na prvoj slici. Nakon toga preklopite ovo posljednje 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. To će omogućiti da senzorski kabeli ne ometaju jedan drugog kada se izvrši rotacija za 360 stupnjeva.
Korak 4: Montirajte sve u ploču za izradu prototipa
U ovom koraku počet ćete s ugradnjom 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. Za početak ćete lemiti Arduino Nano, a zatim lijepiti servo odmah do njega. Na kraju ćete lemiti mali OLED zaslon na drugom rubu ploče.
Korak 5: 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
Postoje dva koda koja ćete morati pokrenuti
Arduino (C):
Obrada (java):
Prilikom pokretanja koda imat ćete dvije mogućnosti za izbor:
Opcija 1: Pomoću OLED zaslona za to ćete morati postaviti varijablu MODE u C kodu na 0.
Opcija 2: Korištenje vašeg monitora, 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 s ove veze: https:// github.com/lastralab/ArduinoRadar/blob/ma…
I dodajte tu datoteku u datoteku koda za obradu kako bi vaš java kôd prepoznao font kada se pozove.
Korak 7: Razumijevanje C koda
Kôd se sastoji uglavnom od dvije petlje "za". Jedan je u korelaciji s prolaskom naprijed, dok je drugi s prolaskom unatrag. Unutar oboje, glavna funkcija draw_scanner (), koja će povući crte radara na zaslon, 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 istim tim radarskim linijama u crno u vremenu t+1 kako bismo ih izbrisali. U suprotnom, treperenje će se pojaviti svaki put kada očistite zaslon pomoću funkcije “clearDisplay ()” prije nego pritisnete novu rešetku piksela. Kako sam imao posla sa 7 linija- u svrhu projektiranja- morao sam nastaviti spremati 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 to na umu, ostatak koda trebao bi 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 došli su pod drugim imenom. 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 zaslona tako da konačni proizvod odgovara različitim rezolucijama zaslona. Osobno sam ga testirao za rezolucije 1000X1000 i 500X500, i dobro je funkcionirao:).
Korak 9: Zaključak
Ovaj se rad može nadograditi na 3 ultrazvučna senzora, od kojih svaki pokriva kut gledanja od 120, ili čak 4 senzora (90 stupnjeva*4) -> brže od 360 stupnjeva. skenirati.
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 čimbenicima, uključujući duljinu slanja impulsa i površinu objekta na kojoj se impuls reflektira.
Konačno, kao što je već rečeno, sljedeći korak je uključivanje radara Duino s robotom za kretanje za skeniranje okolnog opsega.