Innholdsfortegnelse:

Utrasonic unngåelsesrobot ved bruk av Arduino: 7 trinn
Utrasonic unngåelsesrobot ved bruk av Arduino: 7 trinn

Video: Utrasonic unngåelsesrobot ved bruk av Arduino: 7 trinn

Video: Utrasonic unngåelsesrobot ved bruk av Arduino: 7 trinn
Video: Как использовать 2 или более лазерных датчиков расстояния VL53L0X 2024, November
Anonim
Image
Image
Utrasonic unngåelsesrobot ved bruk av Arduino
Utrasonic unngåelsesrobot ved bruk av Arduino

I denne opplæringen vil jeg vise deg hvordan du lager din egen hindring for å unngå robot! Vi vil bruke Arduino UNO -kortet og en ultralydssensor. Hvis roboten oppdager et objekt foran den, ved hjelp av en liten servomotor, skanner den området til venstre og høyre for å finne den beste måten å svinge på. Den har også en varslings -LED, en summer for å spille en tone når et objekt blir oppdaget og en knapp for å endre robotens funksjon (stoppet/gå fremover).

Det er veldig enkelt å lage det!

Trinn 1: Ting du trenger å lage

Ting du trenger å lage!
Ting du trenger å lage!
Ting du trenger å lage!
Ting du trenger å lage!
Ting du trenger å lage!
Ting du trenger å lage!
Ting du trenger å lage!
Ting du trenger å lage!

For dette prosjektet trenger du:

  1. Arduino UNO (kjøp den fra gearbest.com)
  2. Mini brødbrett (kjøp det fra gearbest.com)
  3. L298 motordrivermodul (kjøp den fra gearbest.com)
  4. 2x likestrømsmotorer med hjul HC-SR04 ultralydssensor (kjøp den fra gearbest.com)
  5. Mikro servomotor (kjøp den fra gearbest.com)
  6. Knapp Rød LED220 Ohm motstand 9V batteriholder (med eller uten strømkontakt)
  7. 8 avstandsstykker (hann-hunn),
  8. 8 muttere og 8 skruer trenger du også en stor (metall)

binders og en perle for å lage det bakre støttehjulet.

For robotbasen brukte jeg en Acryllic Chasis fra Aliexpress. Du kan også bruke et stykke tre eller metall (eller to elektriske plater).

Kostnaden for hele prosjektet er omtrent 20 dollar

Verktøy: Drill maskin super lim mannskap driver pistol lim (valgfritt) Strøm:

Vi bruker et 9V batteri for å slå på roboten vår fordi den er liten og billig, men den er ikke veldig kraftig og vil være tom etter omtrent en time. Tenk på om du vil bruke en oppladbar batteripakke (min 6V, maks 7V) som vil være kraftigere, men den vil også være dyrere og større enn 9V -batteriet. Abonner på vår YouTube -kanal Klikk her

Trinn 2: Forstå konsepter

Forstå konsepter
Forstå konsepter
Forstå konsepter
Forstå konsepter
Forstå konsepter
Forstå konsepter

Målet er å gjøre roboten oppmerksom på hindringer foran ham, slik at han kan endre retning og unngå dem. I den forrige artikkelen fikk vi roboten til å flytte - nå skal vi gi ham litt autonomi.

Ultralyd sensor

HC-SR04 er en krets som kan måle en avstand til objekter opptil 4 meter ved hjelp av ultralydbølger. Den sender en ping (som en ubåt) og måler tiden (i mikrosekunder) mellom å sende og motta noe tilbake. Denne tiden deles deretter med 2 når bølgen beveger seg frem og tilbake. Og del deretter med 29 for å få en avstand i centimeter (eller 74 for tommer), fordi lyden beveger seg 29,4µs per centimeter (340 m/s). Sensoren er veldig nøyaktig med ~ 3 mm toleranse og enkel å integrere med Arduino.

Grensesnitt for ultralydsensor med AVR -mikrokontroller

Enhver autonom robot bør ha en hindring som skal unngås, og en avstandsmålesensor må være festet. Et IR-mottakerpar eller en gråtonesensor kan enkelt fungere for å oppdage hindringer i området 1 cm-10 cm. IR -avstandsmålere (for eksempel de fra skarpe) kan måle en avstand til nærmeste hindring med en rekkevidde på opptil 100 cm. IR -sensorer påvirkes imidlertid av sollys og andre lyskilder. IR -avstandsmålere har mindre rekkevidde og er også dyre for det den gjør. Ultralydsensorer (også kjent som ultralydsavstandssensorer eller ekkolodd for nerdene) utfører begge disse oppgavene til en rimelig pris og eksepsjonell nøyaktighet. Rekkevidden er alt mellom 3 cm og 350 cm med ~ 3 mm nøyaktighet. Hvis du knytter en av disse ultralydsensorene inn i roboten vår, kan den fungere både som en hindring og en avstandsmåler.

"Ultrasonic" lyd refererer til alt som er over frekvensene for hørbar lyd, og inkluderer nominelt alt over 20 000 Hz eller 20 kHz! Billige ultralydsensorer som brukes til robotikk, fungerer vanligvis i et område på 40 kHz til 250 kHz mens de som brukes i medisinsk utstyr, går opp til 10 Mhz.

Trinn 3: Nødvendige verktøy

Nødvendig verktøy
Nødvendig verktøy
Nødvendig verktøy
Nødvendig verktøy
Nødvendig verktøy
Nødvendig verktøy
Nødvendig verktøy
Nødvendig verktøy
  1. Multimeter
  2. Brødbrett
  3. Nåltang
  4. Wire Stripper
  5. Wire Cutter
  6. Limpistol

Multimeter Et multimeter er faktisk en enkel enhet som hovedsakelig brukes til å måle spenning og motstand og for å avgjøre om en krets er lukket. I likhet med feilsøking av datakode hjelper multimeteret deg med å "feilsøke" dine elektroniske kretser.

Byggematerialer

En lett tilgjengelig forsyning av tynt tre og/eller plexiglas for å lage den mekaniske rammen er veldig nyttig. Metaller som aluminium og stål er ofte begrenset til de som har tilgang til en maskinbutikk, selv om tynt aluminium kan klippes med saks og bøjes for hånd. Mekaniske rammer kan til og med bygges av husholdningsartikler som plastbeholdere.

Selv om andre materialer som plast (bortsett fra plexiglas) eller mer eksotiske materialer som glassfiber og karbonfiber er mulige, vil de ikke bli vurdert i denne veiledningen. Flere produsenter har bemerket at det ikke er lett for de fleste hobbyfolk å produsere sine egne mekaniske deler og har laget modulære mekaniske deler. En leder i dette er Lynxmotion som tilbyr et bredt spekter av robotdesigner samt delene som trengs for å lage dine egne tilpassede roboter.

Hånd verktøy

Skrutrekkere og tang av forskjellige typer og størrelser (inkludert juvelerens verktøysett: små skrutrekkere som vanligvis er tilgjengelige i dollarbutikker) er nødvendige. Et bor (helst en borpress for rette hull) er også viktig. En håndsag for kutting av bygningsmaterialer (eller en ruter) er også en viktig ressurs. Hvis budsjettet tillater det, er en liten båndsag (200 dollar) definitivt et verktøy å vurdere.

Loddefritt brødbrett

Et loddefritt brødbrett lar deg enkelt optimalisere oppsettet og koble til komponenter. Sammen med et loddfritt brødbrett bør du kjøpe et forhåndsformet jumper wire kit som består av ferdigskårne og bøyde ledninger beregnet på å brukes sammen med et loddfritt brødbrett. Dette gjør tilkoblinger veldig enkle.

Liten skrutrekker sett

Disse små skrutrekkerne er nødvendige når du arbeider med elektronikk. Ikke tving dem for mye - størrelsen gjør dem mer skjøre.

Vanlig skrutrekkersett

Alle verksteder trenger et multiverktøy eller verktøysett som inkluderer flat / Phillips og andre skrutrekkerhoder.

Nåltang

sett med nåletang er utrolig nyttig når du arbeider med små komponenter og deler og er et veldig billig tillegg til verktøykassen. Disse er forskjellige fra vanlig tang fordi de kommer til et punkt som kan komme inn i små områder.

Wire strippere/kuttere

Du planlegger å kutte ledninger, en wire stripper vil spare deg for mye tid og krefter. En wire stripper, når den brukes riktig, vil bare fjerne en kabelisolasjon og vil ikke forårsake knekk eller skade lederne. Det andre alternativet til en wire stripper er en saks, selv om sluttresultatet kan være rotete. Saks, linjal, penn, markørblyant, Exacto -kniv (eller annet håndholdt skjæreverktøy) Disse er viktige ting på ethvert kontor.

Trinn 4: Koder for koding AVR

Koder for koding AVR
Koder for koding AVR

Beregning av lydens hastighet i forhold til ultralydsensorer

Litt matematikk, men ikke vær redd. Det er enklere enn du tror.

Lydhastigheten i tørr luft ved romtemperatur (~ 20 ° C) = 343 meter/sekund

For at lydbølgen skal treffe og gjøre en rundtur til objektet i nærheten er = 343/2 = 171,5 m/siden maksimal rekkevidde for en billig ultralydssensor ikke er mer enn 5 meter (tur/retur), ville det være mer fornuftig å endre enhetene til centimeter og mikrosekunder.

1 Meter = 100 centimeter 1 sekund = 10^6 mikrosekunder = (s/171,5) x (m/100 cm) x ((1x10^6)/s) = (1/171,5) x (1/100) x (1000000/ 1) = 58,30903790087464 us/cm = 58,31 us/cm (avrunding til to sifre for å gjøre beregninger enklere)Derfor er tiden det tar for en puls å reise til et objekt og sprette tilbake 1 centimeter 58,31 mikrosekunder.

den lille bakgrunnen for AVR -klokkesykluser

Det tar et helt annet kapittel for å forstå AVR -klokkesykluser, men vi vil kort forstå hvordan det fungerer for å gjøre våre beregninger enklere

I vårt eksempel vil vi bruke AVR Draco-kort som har en 8-bits AVR-Atmega328P mikrokontroller. For å holde ting enkelt, vil vi ikke justere innstillingene til en mikrokontroller. Ingen sikringsbiter berørt; Ingen ekstern krystall festet; Ingen hodepine. Ved fabrikkinnstillinger kjører den på en intern 8MHz oscillator med en /8 forhåndskalkulator; Hvis du ikke forstår alt dette, betyr det ganske enkelt at mikrokontrolleren kjører på 1MHz intern RC -oscillator, og hver klokkesyklus tar 1 mikrosekund.

1 2 1MHz = av 1000000 sykluser per sekund Derfor er 1s/1000000 = 1/1000000 = 1us

AVR -klokker og avstandskonvertering

Vi er nesten der! Når vi vet hvordan vi konverterer AVR -klokkesykluser til avstand tilbakelagt av lydbølger, er det enkelt å implementere logikken i et program.

Vi vet at hastigheten på ultralydlyden i ideelle omgivelser er: 58,31 us/cm

Vi vet at oppløsningen til AVR -mikrokontroller er 1us/clock cycle (CLK)

Derfor er avstand tilbakelagt med lyd per klokkesyklus (CLK):

1 2 3 = (58,31 us/ cm) x (1us/ clk) = 58,31 klokkesykluser/ cm eller = 1/ 58,31 cm/ clk

Hvis antallet klokkesykluser som kreves for at lyden skal bevege seg og sprette tilbake er kjent, kan vi enkelt beregne avstanden. For eksempel, hvis sensoren tar 1000 klokkesykluser for å reise og sprette tilbake, er avstanden fra en sensor til nærmeste objekt = 1000/58,31 = 17,15 cm (ca.)

Er alt fornuftig nå? Nei? Les den igjen

Hvis du er klar med all logikken som er nevnt ovenfor, implementerer vi den i et virkelige scenario ved å koble en billig HC-SR04 ultralydssensor til vårt AVR Arduino-kort.

Trinn 5: Maskinvaretilkoblinger:

Maskinvaretilkoblinger
Maskinvaretilkoblinger
Maskinvaretilkoblinger
Maskinvaretilkoblinger
Maskinvaretilkoblinger
Maskinvaretilkoblinger
Maskinvaretilkoblinger
Maskinvaretilkoblinger

Arduino Board gjør det enkelt å koble til eksterne sensorer og også se resultatene på LCD. For ultralydsavlesning bruker vi en billig HC-SR04-modul. Modulen har 4 pinner som kan kobles til mikrokontrollerkortet: VCC, TRIG, ECHO og GND.

Koble VCC -pinnen til 5V og GND -pinnen til bakken på Arduino -kortet.

TRIG -pinne og ECHO -pinne kan kobles til alle tilgjengelige pinner på brettet. Hvis du sender minst 10us 'høyt' signal til triggerpinnen, sender du åtte 40 kHz lydbølger og trekker ekkopinnen høyt. Hvis lyden spretter av et objekt i nærheten og kommer tilbake, blir den fanget opp ved å motta transduseren og ekkopinnen trekkes 'lavt'.

Andre varianter av ultralydsensormoduler er også tilgjengelig med bare 3 pinner. Arbeidsprinsippet er fortsatt det samme, men funksjonaliteten til trigger- og ekkopinner kombineres til en enkelt pinne.

Når den er tilkoblet, kan Trigger og Echo Pins konfigureres via programvare. For å holde dette eksemplet enkelt, vil vi ikke bruke noen avbruddsnål (eller Input Capture Pin) i dette eksemplet. Hvis vi ikke bruker angitte avbryterpinner, får vi også en frihet til å koble modulen til alle tilgjengelige pinner på brettet.

Trinn 6: Kode

Koden Koden nedenfor inneholder bare en "ultralyd" forlengelse til likestrømsmotorstyring ved hjelp av en H-bro fra forrige artikkel. Når roboten oppdager en hindring foran den, snur han seg rundt (tilfeldig grad) og fortsetter å bevege seg fremover. Denne funksjonaliteten kan lett utvides for å fortsette å snu og oppdage hindringer samtidig - slik at roboten ikke ville snu tilfeldig, men bare begynne å bevege seg fremover når ingen gjenstander oppdages.

For kodeforklaring, se Youtube -video oppført på kanalen.

Trinn 7: Video

Se videoen for hele prosessen.

Anbefalt: