- Nødvendige komponenter:
- Ultralydsensormodul:
- Kretsforklaring:
- Hvordan det fungerer:
- Programmeringsforklaring:
Roboter er maskiner som reduserer menneskelig innsats ved tunge arbeider ved å automatisere oppgavene i bransjer, fabrikker, sykehus osv. De fleste robotene drives av noen kontrollenhet eller komponenter som en trykknapp, fjernkontroll, styrespak, PC, bevegelser og av utføre en kommando ved hjelp av kontroller eller prosessor. Men i dag er vi her med en automatisk robot som beveger seg autonomt uten eksterne hendelser som unngår alle hindringene i veien, ja vi snakker om hindring som unngår robot. I dette prosjektet har vi brukt Raspberry Pi og Motor driver til å kjøre roboten og ultralydssensoren for å oppdage gjenstander i veien til Robot.
Tidligere har vi dekket mange nyttige roboter, du finner dem i seksjonen Robotics-prosjekter.
Nødvendige komponenter:
- Bringebær Pi
- Ultralydsensormodul HC-SR04
- ROBOT Chassis komplett med skrue
- DC Motors
- L293D IC
- Hjul
- Brødtavle
- Motstand (1k)
- Kondensator (100nF)
- Koble ledninger
- Strømforsyning eller kraftbank
Ultralydsensormodul:
En Hindring Avoider-robot er en automatisert robot, og den trenger ikke å styres med noen fjernkontroll. Disse typene automatiserte roboter har noen ”sjette sansesensorer” som hindringsdetektorer, lyddetektor, varmedetektor eller metalldetektorer. Her har vi gjort hindringsdeteksjon ved hjelp av ultralydsignaler. For dette formålet har vi brukt ultralydssensormodul.
Ultralydssensorer brukes ofte til å oppdage gjenstander og bestemme avstanden til hindringen fra sensoren. Dette er et flott verktøy for å måle avstanden uten fysisk kontakt, for eksempel som vannstandsmåling i tank, avstandsmåling, hindring unngåelsesrobot osv. Så her har vi oppdaget objektet og målt avstanden ved hjelp av Ultrasonic Sensor og Raspberry Pi.
Ultralydssensor HC-SR04 brukes til å måle avstand i området 2cm-400cm med en nøyaktighet på 3mm. Sensormodulen består av en ultralydsender, mottaker og kontrollkrets. Ultralydssensor består av to sirkulære øyne hvorav den ene brukes til å overføre ultralydbølgen og den andre for å motta den.
Vi kan beregne avstanden til objektet basert på tiden det tar av ultralydbølgen å komme tilbake til sensoren. Siden lydens tid og hastighet er kjent, kan vi beregne avstanden ved hjelp av følgende formler.
- Avstand = (Tid x Lydhastighet i luft (343 m / s)) / 2.
Verdien er delt på to siden bølgen beveger seg fremover og bakover og dekker samme avstand. Dermed er tiden for å nå hindring bare halvparten av den totale tiden det tar.
Så vi har beregnet avstanden (i centimeter) fra hindringen som nedenfor:
pulsstart = tid.tid () mens GPIO.inngang (ECHO) == 1: #Sjekk om ECHO er HØY GPIO. utgang (ledet, usann) pulsend = tid.tid () pulsvarighet = pulsend - pulsstartavstand = pulsvarighet * 17150 avstand = rund (avstand, 2) avgDistance = avgDistance + distanse
Der puls_varighet er tiden mellom sending og mottak av ultralydssignal.
Kretsforklaring:
Kretsløpet er veldig enkelt for denne hindringen som unngår roboten ved hjelp av Raspberry Pi. En ultralydssensormodul, brukt til å oppdage objekter, er koblet til GPIO-pin 17 og 27 i Raspberry Pi. En motordriver IC L293D er koblet til Raspberry Pi 3 for å kjøre robotens motorer. Motordrivers inngangspinner 2, 7, 10 og 15 er koblet til henholdsvis Raspberry Pi GPIO-pinne nummer 12, 16, 20 og 21. Her har vi brukt to likestrømsmotorer til å kjøre roboten der en motor er koblet til utgangsstiften 3 og 6 til motordriveren IC, og en annen motor er koblet til ved stift 11 og 14 til motorføreren IC.
Hvordan det fungerer:
Å arbeide med denne autonome roboten er veldig enkelt. Når roboten slås på og begynner å kjøre, måler Raspberry Pi avstandene til objekter foran den ved å bruke Ultralydssensormodul og lagrer i en variabel. Deretter sammenligner RPi denne verdien med forhåndsdefinerte verdier og tar beslutninger deretter for å flytte roboten til venstre, høyre, fremover eller bakover.
Her i dette prosjektet har vi valgt 15 cm avstand for å ta en beslutning av Raspberry Pi. Nå når Raspberry Pi blir mindre enn 15 cm avstand fra et hvilket som helst objekt, stopper Raspberry Pi roboten og flytter den tilbake og snur den mot venstre eller høyre. Nå før Raspberry Pi flyttes fremover, sjekker det igjen om det er noen hindring i området 15 cm, hvis ja, gjentar den forrige prosessen, ellers flytt roboten frem til den vil oppdage noen hindring eller gjenstand igjen.
Programmeringsforklaring:
Vi bruker Python-språk her for programmet. Før koding må brukeren konfigurere Raspberry Pi. Du kan sjekke våre tidligere veiledninger for å komme i gang med Raspberry Pi og installere og konfigurere Raspbian Jessie OS i Pi.
Programmeringsdelen av dette prosjektet spiller en veldig viktig rolle for å utføre alle operasjonene. Først og fremst inkluderer vi nødvendige biblioteker, initialiserer variabler og definerer pinner for ultralydsensor, motor og komponenter.
importer RPi.GPIO som GPIO importtid #Importtid bibliotek GPIO.setwarnings (False) GPIO.setmode (GPIO.BCM) TRIG = 17 ECHO = 27……………..
Etter det har vi opprettet noen funksjoner def fremover (), def bakover (), def venstre (), def høyre () for å bevege roboten i henholdsvis fremover, bakover, venstre eller høyre retning og def stopp () for å stoppe roboten, sjekk funksjonene i Koden gitt nedenfor.
Så, i hovedprogrammet, har vi initiert Ultralydssensor og lest tid mellom overføring og mottak av signalet og beregnet avstanden. Her har vi gjentatt denne prosessen 5 ganger for bedre nøyaktighet. Vi har allerede forklart prosessen med å beregne avstanden ved hjelp av ultralydssensor.
i = 0 avgDistance = 0 for i innen rekkevidde (5): GPIO.output (TRIG, False) time.sleep (0.1) GPIO.output (TRIG, True) time.sleep (0.00001) GPIO.output (TRIG, False) mens GPIO.input (ECHO) == 0: GPIO.output (led, False) pulse_start = time.time () mens GPIO.input (ECHO) == 1: # Sjekk om ECHO er HØY GPIO.output (ledet, Falsk) pulsend = tid.tid () pulsvarighet = pulsend - pulsstartavstand = pulsvarighet * 17150 avstand = rund (avstand, 2) avgDistance = avgDistance + distanse
Til slutt, hvis Robot finner noe hinder foran den, har vi programmert Roboten til å ta en annen rute etter å ha fått avstand fra hindringen.
hvis avgDistance <15: count = count + 1 stop () time.sleep (1) back () time.sleep (1.5) if (count% 3 == 1) & (flag == 0): right () flag = 1 annet: venstre () flagg = 0 tid. Søvn (1,5) stopp () tid. Søvn (1) annet: fremover () flagg = 0
Komplett kode for denne Raspberry Pi Obstacle Robot er gitt nedenfor med en demonstrasjonsvideo.