Hvordan lage hindringer for å unngå robot ved hjelp av Arduino?

Verden beveger seg raskt, og teknologien beveger seg også med det innen robotikk. Anvendelsene av robotikk kan sees overalt i verden. Konseptet med mobile eller autonome roboter som beveger seg uten ekstern hjelp, er det mest imponerende forskningsfeltet. Det er så mange typer mobile roboter, for eksempel SLAM-tolker (Self Localization and Mapping), Line following, Sumo Bots, etc. En hindring som unngår robot er en av dem. Den bruker en teknikk for å endre banen hvis den oppdager noen hindring i veien.

I dette prosjektet er en Arduino-basert hindringsunngående robot designet som vil bruke en ultralydssensor til å oppdage alle hindringene i veien.

Hvordan unngå hindringer ved bruk av ultralydssensor?

Som vi vet sammendraget av prosjektet vårt, la oss gå et skritt videre og samle litt informasjon for å starte prosjektet.

Trinn 1: Samle komponentene

Den beste tilnærmingen til å starte ethvert prosjekt er å lage en liste over komplette komponenter i starten og gjennom en kort studie av hver komponent. Dette hjelper oss med å unngå ulempene midt i prosjektet. En komplett liste over alle komponentene som er brukt i dette prosjektet er gitt nedenfor.

Trinn 2: Studere komponentene

Nå som vi har en komplett liste over alle komponentene, la oss gå et skritt fremover og gå gjennom en kort studie av hvordan hver komponent fungerer.

Arduino nano er et brødbordvennlig mikrokontrollerkort som brukes til å kontrollere eller utføre forskjellige oppgaver i en krets. Vi brenner en C-kode på Arduino Nano for å fortelle mikrokontrollerkortet hvordan og hvilke operasjoner som skal utføres. Arduino Nano har nøyaktig samme funksjonalitet som Arduino Uno, men i ganske liten størrelse. Mikrokontrolleren på Arduino Nano-kortet er ATmega328p.

L298N er en integrert krets med høy strøm og høyspenning. Det er en dobbel fullbro designet for å akseptere standard TTL-logikk. Den har to aktiveringsinnganger som gjør at enheten kan fungere uavhengig. To motorer kan kobles til og betjenes samtidig. Motorens hastighet varieres gjennom PWM-pinnene. Pulse Width Modulation (PWM) er en teknikk der strømmen av spenning i en hvilken som helst elektronisk komponent kan styres. Denne modulen har en H-bro som er ansvarlig for styringen av rotasjonsretningen i motorene ved å invertere strømretningen. Enable pin A og Enable Pin B brukes til å endre hastigheten til begge motorene. Denne modulen kan operere mellom 5 og 35V og toppstrøm opp til 2A. Input Pin1 og Input Pin2 og for First motor og Input Pin3 og Input Pin4 er for den andre motoren.

HC-SR04-kort er en ultralydssensor som brukes til å bestemme avstanden mellom to objekter. Den består av en sender og en mottaker. Senderen konverterer det elektriske signalet til et ultralydssignal og mottakeren konverterer ultralydsignalet tilbake til det elektriske signalet. Når senderen sender en ultralydbølge, reflekteres den etter kollisjon med en bestemt gjenstand. Avstanden beregnes ved å bruke tiden det tar for ultralydsignalet å gå fra senderen og komme tilbake til mottakeren.

Trinn 3: Montere komponentene

Nå som vi nå vet hvordan de fleste komponentene brukes, kan vi begynne å montere alle komponentene og produsere en hindring som unngår en robot.

  1. Ta et bilhjul chasses og stikk et brødbrett på toppen. Monter ultralydssensoren foran chassene og en batterilokk bak chassene.
  2. Fest Arduino Nano-brettet på brødplaten og fest motorføreren rett bak brødplaten, på chassene. Koble Aktiver pinnene på begge motorene til Pin6 og Pin9 i Arduino nano. In1, In2, In3 og In4-pinnene til motordrivermodulen er koblet til henholdsvis pin2, pin3, pin4 og pin5 i Arduino nano.
  3. Trig og ekkopinnen til ultralydssensoren er koblet til henholdsvis pin11 og in10 av Arduino nano. Vcc og jordpinnen til ultralydssensoren er koblet til 5V og bakken til Arduino Nano.
  4. Motorkontrollmodulen får strøm fra batteriet. Arduino Nano-kortet får strøm fra 5V-porten på motordrivermodulen, og ultralydsensoren får sin kraft fra Arduino nano-kortet. vekten og energien til batteriene kan bli den avgjørende faktoren for ytelsen.
  5. Forsikre deg om at tilkoblingene dine er de samme som vist nedenfor i kretsskjemaet.

Trinn 4: Komme i gang med Arduino

Hvis du ikke allerede er kjent med Arduino IDE, ikke bekymre deg fordi en trinnvis prosedyre for å sette opp og bruke Arduino IDE med et mikrokontrollerkort er forklart nedenfor.

  1. Last ned den nyeste versjonen av Arduino IDE fra Arduino.
  2. Koble Arduino Nano-kortet til den bærbare datamaskinen og åpne kontrollpanelet. i kontrollpanelet, klikk påMaskinvare og lyd. Klikk nå påEnheter og skrivere.Her finner du porten som mikrokontrollerkortet er koblet til. I mitt tilfelle er det COM14men det er forskjellig på forskjellige datamaskiner.
  3. Klikk på Verktøy-menyen. og sett styret til Arduino Nano fra rullegardinmenyen.
  4. I samme Verktøy-meny, sett porten til portnummeret du observerte før i Enheter og skrivere.
  5. I samme verktøymeny, sett prosessoren til ATmega328P (gammel bootloader).
  6. Last ned koden som er vedlagt nedenfor, og lim den inn i Arduino IDE. Klikk på laste opp -knappen for å brenne koden på mikrokontrollerkortet.

Klikk her for å laste ned koden.

Trinn 5: Forstå koden

Koden er godt kommentert og selvforklarende. Men likevel blir det forklart nedenfor

1. Ved starten av koden initialiseres alle pinnene på Arduino Nano-kortet som er koblet til ultralydssensoren og motordrivermodulen. Pin6 og Pin9 er PWM-pinner som kan variere strømmen for å variere hastigheten til roboten. To variabler, varighet, og avstandinitialiseres for å lagre data som senere vil bli brukt til å beregne avstanden til ultralydssensoren og hindringen.

int enable1pin = 6; // Pins for First Motor int motor1pin1 = 2; int motor1pin2 = 3; int enable2pin = 9; // Pins For Second Motor int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Trigger Pin Of Ultrasonic Sesnor const int echoPin = 10; // Echo Pin Of Ultrasonic Sesnor lang varighet; // variabler for å beregne avstandens flytavstand; 

2. ugyldig oppsett ()er en funksjon som brukes til å stille inn alle pinnene som brukes, som INNGANG og PRODUKSJON.Baudrate er definert i denne funksjonen. Baud Rate er kommunikasjonshastigheten som mikrokontrollerkortet kommuniserer med sensorene integrert med.

ugyldig oppsett () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (enable1pin, OUTPUT); pinMode (enable2pin, OUTPUT); pinMode (motor1pin1, OUTPUT); pinMode (motor1pin2, OUTPUT); pinMode (motor2pin1, OUTPUT); pinMode (motor2pin2, OUTPUT); }

3. ugyldig sløyfe ()er en funksjon som kjører gjentatte ganger i en syklus. I denne funksjonen forteller vi mikrokontrollerkortet hvordan og hvilke operasjoner som skal utføres. Her er først utløserpinnen satt til å sende et signal som vil bli oppdaget av ekkopinnen. Deretter beregnes og lagres tiden som ultralydssignalet tar å reise fra og tilbake til sensoren og lagres i variabelen varighet. Da brukes denne tiden i en formel for å beregne avstanden til hindringen og ultralydssensoren. Deretter blir det brukt en betingelse om at hvis avstanden er mer enn 5ocm, vil roboten bevege seg fremover i en rett linje, og hvis avstanden er mindre enn 50cm, vil roboten ta en skarp høyresving.

void loop () {digitalWrite (trigPin, LOW); // Sende og oppdage Ultralydssignalforsinkelse Mikrosekunder (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); varighet = pulseIn (echoPin, HIGH); // Kalulere timme tatt av ultralydbølgen for å reflektere tilbake avstand = 0,034 * (varighet / 2); // Beregning av avstanden mellom uken og hindringen. hvis (avstand> 50) // Gå fremover hvis avstanden er større enn 50 cm {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, HIGH); digitalWrite (motor2pin2, LOW); } annet hvis (avstand <50) // Skarp høyre sving hvis avstanden er mindre enn 50 cm {digitalWrite (aktivert1pinn, HØY); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, LOW); digitalWrite (motor2pin2, LOW); } forsinkelse (300); }

applikasjoner

Så her var prosedyren for å lage en hindring som unngår robot. Denne hindring som unngår teknologi kan også saksøkes i andre applikasjoner. Noen av disse applikasjonene er som følger.

  1. Sporingssystem.
  2. Avstandsmålingsformål.
  3. Dette kan brukes i automatiske støvsugingsroboter.
  4. Dette kan brukes i Sticks for blinde mennesker.
Facebook Twitter Google Plus Pinterest