Innholdsfortegnelse:

Prosjekt 3: SonarDuino: 9 trinn
Prosjekt 3: SonarDuino: 9 trinn

Video: Prosjekt 3: SonarDuino: 9 trinn

Video: Prosjekt 3: SonarDuino: 9 trinn
Video: prosjekt 3 2024, November
Anonim
Image
Image

Kjære Hobbyist, I dette prosjektet vil vi undersøke muligheten for å ha et 360 graders radarsystem for gjenkjenning av objekter. Hvis denne modulen er satt separat, vil din bevegelsesrobot kunne oppdage grensene for omgivelsene. Den kan også fungere som et navigasjonsverktøy i mørket, men bare når du går sakte nok; s

Trinn 1: Hva du trenger

Forbered ultralydsensorstøtten
Forbered ultralydsensorstøtten

For å lage denne bygningen må du kjøpe 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

Prototyping Boards: 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

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

Trinn 2: Dokumentasjon

Som noen av dere kanskje allerede vet dette, er dette prosjektet inspirert av et annet åpen kildekode-prosjekt kalt "Arduino Radar Project" laget av Dejan fra "How to Mechatronics" @ følgende lenke: https://howtomechatronics.com/projects/arduino -radar-prosjekt/

Et annet punkt som krever dokumentasjon er å laste ned følgende to biblioteker til utviklingsmiljøet ditt:

Adafruit-GFX-bibliotek:

Adafruit_SSD1306:

Når det er sagt, må du gjøre dokumentasjon for begge bibliotekene ovenfor for å forstå C -koden. Annet enn det, har funksjonene jeg brukte i koden min navn som er tegn på hva de gjør.

Trinn 3: Forbered ultralydsensorstøtten

Forbered ultralydsensorstøtten
Forbered ultralydsensorstøtten
Forbered ultralydsensorstøtten
Forbered ultralydsensorstøtten
Forbered ultralydsensorstøtten
Forbered ultralydsensorstøtten

Ta en pappbit og kutt den i henhold til dimensjonen til tilkoblingskablene festet til sensoren som vist på det første bildet. Deretter bretter du den siste og limer den til servomotorstøtten. Når det er gjort, lim de to ultralydsensorene i henhold til det siste bildet. Vær oppmerksom på at overskriften til sensorene skal loddes på en måte for å la kablene gå utover foran sensoren. Dette gjør at sensorkablene ikke kan forstyrre hverandre når 360 graders rotasjon er implementert.

Trinn 4: Monter alt i et prototypebrett

Monter alt i et prototypebrett
Monter alt i et prototypebrett
Monter alt i et prototypebrett
Monter alt i et prototypebrett
Monter alt i et prototypebrett
Monter alt i et prototypebrett

I dette trinnet starter du med å montere toppteksten som ble forberedt i forrige trinn i den respektive servomotoren. Når servomotoren er nøye vant, monterer du alt sammen til et prototypebrett. Du starter med å lodde Arduino Nano og deretter lime servoen rett ved siden av den. Til slutt lodder du den lille OLED -skjermen i den andre kanten av brettet.

Trinn 5: Gjør de siste tilkoblingene

Gjør de siste tilkoblingene
Gjør de siste tilkoblingene
Gjør de siste tilkoblingene
Gjør de siste tilkoblingene
Gjør de siste tilkoblingene
Gjør de siste tilkoblingene

Dette trinnet vil avslutte maskinvaresiden av dette prosjektet. Du må følge den medfølgende skjematikken for å opprette alle nødvendige tilkoblinger.

Trinn 6: Start programmet

Oppstart av programmet
Oppstart av programmet

Det er to koder du må starte opp

Arduino (C):

Behandler (java):

Når du kjører koden, har du to alternativer å velge mellom:

Alternativ 1: Ved å bruke OLED -skjermen, for det må du sette variabelen MODE i C -koden til 0.

Alternativ 2: Bruke skjermen, for det må du sette variabelen MODE i C -koden til 1. I tillegg må du laste ned og installere Processing development environment og laste ned radarfonten fra denne lenken: https:// github.com/lastralab/ArduinoRadar/blob/ma…

Og legg den filen til behandlingskodefilen slik at java -koden din gjenkjenner skrifttypen når den blir ringt opp.

Trinn 7: Forstå C -koden

Forstå C -koden
Forstå C -koden

Koden består hovedsakelig av to 'for' -løkker. Den ene er korrelert med fremoverpassingen, mens den andre er med bakoverpassingen. Inne i dem begge kalles hovedfunksjonen draw_scanner (), som vil tegne radarens linjer inn på skjermen, mange ganger. Etter å ha testet flere konfigurasjoner, kom jeg til den konklusjonen at vi må overskrive de hvite radarlinjene med t de samme radarlinjene i svart på tidspunktet t+1 for å slette dem. Hvis ikke ville det oppstå flimring hver gang du rengjør skjermen med funksjonen "clearDisplay ()" før du skyver på det nye pikselrutenettet. Da jeg hadde å gjøre med 7 linjer- for designformål- måtte jeg fortsette å lagre og passere et heltallsserie med 7 elementer, hvor hvert element står for radius mellom radarens sentrum til det oppdagede objektet, hvis det er noe. Med dette i bakhodet, bør resten av koden være rett frem for å forstå.

Trinn 8: Forstå Java -koden

I Processing måtte jeg omgå funksjonsanropet for serialEvent (), som bare fungerer med serielle porter som heter COM. Da jeg jobbet på en Mac, kom mine serielle porter under et annet navn. Når det er sagt, pakket jeg ut den funksjonen til hovedfunksjonen i behandlingen av "draw ()". Når det gjelder alt annet, har jeg oppdatert applikasjonen for å oppfylle hele revolusjonsdesignet. Til slutt oppdaterte jeg alle tegnede former og tekster med hensyn til bredden på skjermen, slik at sluttproduktet vil passe til forskjellige skjermoppløsninger. Jeg har personlig testet det for både 1000X1000 og 500X500 oppløsninger, og det fungerte bra:).

Trinn 9: Konklusjon

Dette arbeidet kan oppgraderes til å ha 3 ultralydsensorer, som hver dekker 120 synsvinkel, eller til og med 4 sensorer (90 grader*4) -> raskere 360 grader. skanne.

Du kan også utvide rekkevidden til radaren fra 40 cm til 60 cm eller til og med 80 cm. Jeg har personlig testet pulseIn -funksjonen og justert TIMEOUT -variabelen med hensyn til 40 cm. Denne variabelen avhenger av mange faktorer, inkludert lengden på pulssendingen og overflaten på objektet der pulsen reflekteres.

Til slutt, som nevnt tidligere, er neste trinn å inkorporere radarDuino med en bevegelsesrobot for å skanne omkretsen.

Anbefalt: