- Hvordan bygge hinder for å unngå robot ved hjelp av ultralydssensor
- Komponenter kreves
- Kretsdiagram
- Hindring Unngå robot ved hjelp av Arduino - Kode
Obstacle Unngå Robot er en intelligent enhet som automatisk kan ane hindringen foran den og unngå dem ved å dreie seg i en annen retning. Denne designen lar roboten navigere i et ukjent miljø ved å unngå kollisjoner, noe som er et primært krav for enhver autonom mobil robot. Anvendelsen av Obstacle Unngå roboten er ikke begrenset, og den brukes i de fleste av de militære organisasjonene nå, noe som hjelper med å utføre mange risikable jobber som ikke kan gjøres av noen soldater.
Vi har tidligere bygget Obstacle Unngå robot ved hjelp av Raspberry Pi og ved hjelp av PIC Microcontroller. Denne gangen vil vi bygge en hindring som unngår en robot ved hjelp av en ultralydssensor og Arduino. Her brukes en ultralydssensor til å ane hindringene i banen ved å beregne avstanden mellom roboten og hindringen. Hvis roboten finner noen hindringer, endrer den retning og fortsetter å bevege seg.
Hvordan bygge hinder for å unngå robot ved hjelp av ultralydssensor
Før du skal bygge roboten, er det viktig å forstå hvordan ultralydssensoren fungerer, fordi denne sensoren vil ha en viktig rolle i å oppdage hindringer. Det grunnleggende prinsippet bak arbeidet med ultralydssensoren er å notere tiden det tar for sensoren å overføre ultralydstråler og motta ultralydstrålene etter å ha truffet overflaten. Deretter beregnes avstanden ved hjelp av formelen. I dette prosjektet brukes den allment tilgjengelige HC-SR04 ultralydssensoren. For å bruke denne sensoren vil lignende tilnærming følges forklart ovenfor.
Så, Trig pin av HC-SR04 er laget høyt for minst 10 oss. En lydstråle overføres med 8 pulser på 40 KHz hver.
Signalet treffer deretter overflaten og kommer tilbake og fanges opp av mottakerens ekkopinne fra HC-SR04. Ekko-pinnen hadde allerede blitt høy da den sendte høy.
Tiden det tar av strålen å returnere, lagres i variabel og konverteres til avstand ved hjelp av passende beregninger som nedenfor
Avstand = (Tid x Lydhastighet i luft (343 m / s)) / 2
Vi brukte ultralydssensor i mange prosjekter, for å lære mer om ultralydsensor, sjekk andre prosjekter relatert til ultralydsensor.
Komponentene for denne hindringen som unngår roboten, kan lett finnes. For å lage chassis kan ethvert leketøyschassis brukes eller tilpasses.
Komponenter kreves
- Arduino NANO eller Uno (hvilken som helst versjon)
- HC-SR04 Ultralydssensor
- LM298N Motordrivermodul
- 5V DC-motorer
- Batteri
- Hjul
- Chassis
- Jumper Wires
Kretsdiagram
Det komplette kretsskjemaet for dette prosjektet er gitt nedenfor, som du kan se, bruker det en Arduino-nano. Men vi kan også bygge et hinder for å unngå at robot bruker Arduino UNO med samme krets (følg samme pinout) og kode.
Når kretsløpet er klart må vi bygge opp vårt hinder for å unngå bil ved å montere kretsen på toppen av et robotchassis som vist nedenfor.
Hindring Unngå robot ved hjelp av Arduino - Kode
Det komplette programmet med en demonstrasjonsvideo er gitt på slutten av dette prosjektet. Programmet vil inkludere å sette opp HC-SR04-modulen og sende signalene til motorpinnene for å bevege motorretningen tilsvarende. Ingen biblioteker vil bli brukt i dette prosjektet.
Først definerer trig og ekko tapp av HC-SR04 i programmet. I dette prosjektet er trig pin koblet til GPIO9 og echo pin er koblet til GPIO10 av Arduino NANO.
int trigPin = 9; // trig pin av HC-SR04 int echoPin = 10; // Ekkopinne av HC-SR04
Definer pinner for inngang til LM298N Motor Driver Module. LM298N har 4 datainngangspinner som brukes til å kontrollere retningen på motoren som er koblet til den.
int revleft4 = 4; // Vend bevegelse av venstre motor int fwdleft5 = 5; // ForWarD bevegelse av venstre motor int revright6 = 6; // Vend bevegelse av høyre motor int fwdright7 = 7; // ForWarD bevegelse av høyre motor
I oppsett () -funksjonen definerer du dataretningen til brukte GPIO-pinner. De fire motorpinnene og utløserpinnen er angitt som UTGANG og Ekkopinnen er angitt som inngang.
pinMode (revleft4, OUTPUT); // sett motorpinner som utgang pinMode (fwdleft5, OUTPUT); pinMode (revright6, OUTPUT); pinMode (fwdright7, OUTPUT); pinMode (trigPin, OUTPUT); // angi trigpinne som utgang pinMode (echoPin, INPUT); // sett ekkopinnen som inngang for å fange reflekterte bølger
I loop () -funksjonen, få avstanden fra HC-SR04 og flytt motorretningen basert på avstanden. Avstanden viser objektavstanden som kommer foran roboten. Distansen tas ved å sprenge en ultralydstråle opp til 10 oss og motta den etter 10us. For å lære mer om måling av avstand ved hjelp av ultralydsensor og Arduino, følg lenken.
digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); // send bølger i 10 us delayMicroseconds (10); varighet = pulseIn (echoPin, HIGH); // motta reflektert bølgedistanse = varighet / 58,2; // konvertere til avstandsforsinkelse (10);
Hvis avstanden er større enn den definerte avstanden, betyr det at det ikke er noen hindring i veien, og at den vil bevege seg fremover.
hvis (avstand> 19) { digitalWrite (fwdright7, HIGH); // gå fremover digitalWrite (revright6, LOW); digitalWrite (fwdleft5, HIGH); digitalWrite (revleft4, LOW); }
Hvis avstanden er mindre enn den definerte avstanden for å unngå hindring, betyr det at det er noe hinder foran deg. Så i denne situasjonen vil roboten stoppe en stund og bevege seg bakover etter det igjen, stoppe en stund og deretter ta sving til en annen retning.
hvis (avstand <18) { digitalWrite (fwdright7, LOW); // Stopp digitalWrite (revright6, LOW); digitalWrite (fwdleft5, LOW); digitalWrite (revleft4, LOW); forsinkelse (500); digitalWrite (fwdright7, LOW); // movebackword digitalWrite (revright6, HIGH); digitalWrite (fwdleft5, LOW); digitalWrite (revleft4, HIGH); forsinkelse (500); digitalWrite (fwdright7, LOW); // Stopp digitalWrite (revright6, LOW); digitalWrite (fwdleft5, LOW); digitalWrite (revleft4, LOW); forsinkelse (100); digitalWrite (fwdright7, HIGH); digitalWrite (revright6, LOW); digitalWrite (revleft4, LOW); digitalWrite (fwdleft5, LOW); forsinkelse (500); }
Så dette er hvordan en robot kan unngå hindringer i veien uten å bli sittende fast noe sted. Finn den fullstendige koden og videoen nedenfor.