Indholdsfortegnelse:

Projekt 3: SonarDuino: 9 trin
Projekt 3: SonarDuino: 9 trin

Video: Projekt 3: SonarDuino: 9 trin

Video: Projekt 3: SonarDuino: 9 trin
Video: Lesson 01 Arduino Boards | Robojax Arduino Step By Step Course 2024, September
Anonim
Image
Image

Kære kollega Hobbyist, I dette projekt vil vi undersøge muligheden for at have et 360 graders radarsystem til objektdetektering. Hvis dette modul er indstillet separat, vil din bevægelsesrobot kunne registrere grænserne for sine omgivelser. Det kan også fungere som et navigationsværktøj i mørke, men kun når du går langsomt nok; s

Trin 1: Hvad du får brug for

Forbered Ultrasonic Sensor Support
Forbered Ultrasonic Sensor Support

For at lave denne build skal du købe følgende:

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

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

Servomotorer: 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

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

Trin 2: Dokumentation

Da nogle af jer måske allerede ved dette, er dette projekt inspireret af et andet open source-projekt kaldet "Arduino Radar Project" lavet af Dejan fra "How to Mechatronics" @ følgende link: https://howtomechatronics.com/projects/arduino -radar-projekt/

Et andet punkt, der kræver dokumentation, er at downloade følgende to biblioteker til dit udviklingsmiljø:

Adafruit-GFX-bibliotek:

Adafruit_SSD1306:

Dette er sagt, for virkelig at forstå C -koden skal du lave noget dokumentation for begge ovenstående biblioteker. Bortset fra det har de funktioner, jeg brugte i min kode, navne, der er talende for, hvad de gør.

Trin 3: Forbered understøttelse af ultralydssensorer

Forbered Ultrasonic Sensor Support
Forbered Ultrasonic Sensor Support
Forbered Ultrasonic Sensor Support
Forbered Ultrasonic Sensor Support
Forbered Ultrasonic Sensor Support
Forbered Ultrasonic Sensor Support

Tag et stykke karton og skær det i overensstemmelse med dimensionen af de tilslutningskabler, der er fastgjort til sensoren, som vist på det første billede. Derefter foldes det sidste og limes til servomotorstøtten. Når det er gjort, limes de to ultralydssensorer i henhold til det sidste billede. Bemærk, at sensorenes overskrift skal loddes på en måde, så kablerne går udad foran sensoren. Dette gør det muligt for sensorkablerne ikke at forstyrre hinanden, når 360 graders rotation er implementeret.

Trin 4: Monter alt i et prototypebord

Monter alt i et prototypebord
Monter alt i et prototypebord
Monter alt i et prototypebord
Monter alt i et prototypebord
Monter alt i et prototypebord
Monter alt i et prototypebord

I dette trin starter du med at montere headeren, der var forberedt i det foregående trin, i dens respektive servomotor. Når servomotoren er omhyggeligt vant, monterer du alt sammen i et prototypebord. Du starter med at lodde Arduino Nano og derefter lime servoen lige ved siden af den. Endelig lodder du det lille OLED -display i den anden kant af brættet.

Trin 5: Lav de sidste forbindelser

Lav de sidste forbindelser
Lav de sidste forbindelser
Lav de sidste forbindelser
Lav de sidste forbindelser
Lav de sidste forbindelser
Lav de sidste forbindelser

Dette trin afslutter hardwaresiden af dette projekt. Du bliver nødt til at følge de medfølgende skemaer for at etablere alle de nødvendige forbindelser.

Trin 6: Opstart af programmet

Start af programmet
Start af programmet

Der er to koder, du skal starte

Arduino (C):

Behandling (java):

Når du kører koden, har du to muligheder at vælge imellem:

Mulighed 1: Brug OLED -displayet til det, skal du indstille variablen MODE i C -koden til 0.

Mulighed 2: Brug af din skærm, til det skal du indstille variablen MODE i C -koden til 1. Derudover skal du downloade og installere Processing -udviklingsmiljø og downloade radarskrifttypen fra dette link: https:// github.com/lastralab/ArduinoRadar/blob/ma…

Og tilføj den fil til din behandlingskodefil, så din java -kode genkender skrifttypen, når den kaldes.

Trin 7: Forståelse af C -koden

Forståelse af C -koden
Forståelse af C -koden

Koden består hovedsageligt af to 'for' -sløjfer. Den ene er korreleret med den fremadrettede pasning, mens den anden er med den bagudgående pasning. Inde i dem begge kaldes hovedfunktionen draw_scanner (), der vil tegne radarens linjer ind på skærmen, mange gange. Efter at have testet flere konfigurationer kom jeg til den konklusion, at vi er nødt til at overskrive de hvide radarlinjer på tidspunktet t med de samme radarlinjer i sort på tidspunktet t+1 for at slette dem. Hvis ikke ville det forekomme flimmer hver gang du rengør skærmen ved hjælp af funktionen "clearDisplay ()", før du skubber til det nye pixelgitter. Da jeg havde at gøre med 7 linjer- til designformål- var jeg nødt til at blive ved med at gemme og videregive et heltal array af 7 elementer, hvor hvert element står for radius mellem radarens centrum til det detekterede objekt, hvis nogen. Med dette i tankerne skal resten af koden være lige til at forstå.

Trin 8: Forståelse af Java -koden

I Processing var jeg nødt til at omgå funktionsopkaldet til serialEvent (), som kun fungerer med serielle porte med navnet COM. Da jeg arbejdede på en Mac, kom mine serielle porte under et andet navn. Når det er sagt, pakkede jeg den funktion ud i hovedfunktionen i behandlingen af "draw ()". Med hensyn til alt andet har jeg opdateret applikationen til at opfylde hele revolutionens design. Endelig opdaterede jeg alle de tegnede former og tekster med hensyn til skærmens bredde, så det endelige produkt passer til forskellige skærmopløsninger. Jeg har personligt testet det for både 1000X1000 og 500X500 opløsninger, og det fungerede fint:).

Trin 9: Konklusion

Dette arbejde kan opgraderes til at have 3 ultralydssensorer, der hver dækker 120 synsvinkel eller endda 4 sensorer (90 grader*4) -> hurtigere 360 grader. scanning.

Du kan også udvide radarens rækkevidde fra 40 cm til 60 cm eller endda 80 cm. Jeg har personligt testet pulseIn -funktionen og justeret TIMEOUT -variablen med hensyn til 40 cm. Denne variabel afhænger af mange faktorer, herunder længden af pulssendelsen og overfladen af objektet, hvor pulsen reflekteres.

Endelig som nævnt før, er det næste trin at inkorporere radarDuino med en bevægelsesrobot for at scanne den omgivende omkreds.

Anbefalede: