Innholdsfortegnelse:

Lett følge og unngå robot basert på Arduino: 5 trinn
Lett følge og unngå robot basert på Arduino: 5 trinn

Video: Lett følge og unngå robot basert på Arduino: 5 trinn

Video: Lett følge og unngå robot basert på Arduino: 5 trinn
Video: Leslie Kean on David Grusch (UFO Whistleblower): Non-Human Intelligence, Recovered UFOs, UAP, & more 2024, November
Anonim
Lett følge og unngå robot basert på Arduino
Lett følge og unngå robot basert på Arduino

Dette er et enkelt prosjekt som følger eller Unngå lys.

I Made this Simulation in Proteus 8.6 pro. Components Required: -1) Arduino uno.

2) 3 LDR.

3) 2 Dc girmotorer.4) En servo.5) Tre 1k motstander.6) en H-Bridge l290D7) En på og av bryter [for å endre programtilstand]

8) 9v og 5v Battry

Trinn 1: Ardunio -kode

Arduino -koden er modifisert en liten bit dato 23. februar 2016]

Denne koden er sterkt kommentert, jeg vil ikke forklare, men hvis du trenger hjelp, kan du kontakte meg på ([email protected])

Merk: -Jeg bruker to betingelser i dette programmet 1. for Light Following. 2. for lys som skal unngås.

Så langt disse betingelsene er oppfylt, vil Robot følge eller unngå lys. [Dette er minimumsverdi for LDR som jeg velger. I normalt lys er rekkevidden 80 til 95, men etter hvert som intensiteten øker, øker flere og flere spenninger som følge av det når det jobber med prinsippet om spenningsdeler int a = 400; // Tolaranseverdi]

Trinn 2: Proteus -filer

Last ned fra den lenken for Arduino Library

Trinn 3: Hvordan din H-bro fungerer

Hvordan din H-bro fungerer
Hvordan din H-bro fungerer
Hvordan din H-bro fungerer
Hvordan din H-bro fungerer

L293NE/SN754410 er en helt grunnleggende H-bro. Den har to broer, en på venstre side av brikken og en til høyre, og kan styre 2 motorer. Den kan drive opptil 1 amp strøm, og operere mellom 4,5V og 36V. Den lille likestrømsmotoren du bruker i dette laboratoriet kan kjøre trygt av lavspenning, så denne H-broen fungerer fint. H-broen har følgende pinner og funksjoner: Pin 1 (1, 2EN) aktiverer og deaktiverer motoren vår, enten den gir HIGH eller LOW Pin 2 (1A) er en logisk pin for motoren vår (inngangen er enten HIGH eller LOW) Pin 3 (1Y) er for en av motorterminalene Pin 4-5 er for bakken Pin 6 (2Y) er for den andre motorterminalen Pin 7 (2A) er en logisk pin for vår motor (inngangen er enten HIGH eller LOW) Pin 8 (VCC2) er strømforsyningen til motoren vår, bør denne gis den nominelle spenningen til motoren dinPin 9-11 er frakoblet da du bare bruker en motor i dette laboratorietPin 12-13 er for jordPin 14-15 er ikke tilkobletPin 16 (VCC1) er koblet til 5V. Over er et diagram over H-broen og hvilke pinner som gjør hva i vårt eksempel. Inkludert i diagrammet er en sannhetstabell som indikerer hvordan motoren vil fungere i henhold til tilstanden til de logiske pinnene (som er satt av vår Arduino).

I dette prosjektet kobles aktiveringsnålen til en digital pinne på Arduino, slik at du kan sende den enten HØY eller LAV og slå motoren PÅ eller AV. Motorlogikkpinnene er også koblet til utpekte digitale pinner på din Arduino, slik at du kan sende den HØY og LAV for å få motoren til å snu i den ene retningen, eller LAV og HØY for å få den til å snu i den andre retningen. Motorspenningen kobles til spenningskilden for motoren, som vanligvis er en ekstern strømforsyning. Hvis motoren din kan kjøre på 5V og mindre enn 500mA, kan du bruke Arduinos 5V -utgang. De fleste motorer krever høyere spenning og høyere strømtrekk enn dette, så du trenger en ekstern strømforsyning.

Koble motoren til H-broen Koble motoren til H-broen som vist på bildet 2.

Eller hvis du bruker en ekstern strømforsyning til Arduino, kan du bruke Vin -pinnen.

Trinn 4: Hvordan LDR fungerer

Det første som kan trenge ytterligere forklaring er bruken av de lysavhengige motstandene. Lysavhengige motstander (eller LDR -er) er motstander hvis verdi endres avhengig av mengden omgivende lys, men hvordan kan vi oppdage motstand med Arduino? Vel, du kan egentlig ikke, men du kan oppdage spenningsnivåer ved hjelp av de analoge pinnene, som kan måle (ved grunnleggende bruk) mellom 0-5V. Nå spør du kanskje "Vel, hvordan konverterer vi motstandsverdier til spenningsendringer?", Det er enkelt, vi lager en spenningsdeler. En spenningsdeler tar inn en spenning og sender deretter ut en brøkdel av den spenningen som er proporsjonal med inngangsspenningen og forholdet mellom de to verdiene av motstander som brukes. Ligningen som er:

Utgangsspenning = Inngangsspenning * (R2 / (R1 + R2)) Hvor R1 er verdien til den første motstanden og R2 er verdien til den andre.

Nå stiller dette fremdeles spørsmålet "Men hvilke motstandsverdier har LDR?", Godt spørsmål. Jo mindre mengde omgivende lys jo høyere motstand, mer omgivelseslys betyr lavere motstand. Nå for de spesifikke LDR -ene brukte jeg at deres motstandsområde var fra 200 - 10 kilo ohm, men dette endres for forskjellige, så sørg for å slå opp hvor du kjøpte dem fra og prøv å finne et datablad eller noe slikt. tilfelle R1 er faktisk vår LDR, så la oss ta tilbake den ligningen og gjøre litt matematikk-e-magi (matematisk elektrisk magi). Nå må vi først konvertere disse kilo ohm-verdiene til ohm: 200 kilo-ohm = 200, 000 ohm 10 kilo-ohm = 10, 000 ohmSå for å finne hva utgangsspenningen er når vi er i svart, kobler vi til følgende tall: 5 * (10000 / (200000 + 10000)) Inngangen er 5V, da det er det vi får fra Arduino. Ovenstående gir 0,24V (avrundet). Nå finner vi hva utgangsspenningen er i høyeste lysstyrke ved å bruke følgende tall: 5 * (10000 / (10000 + 10000)) Og dette gir oss 2,5V nøyaktig. Så dette er spenningsverdiene som vi skal få inn i Arduino sine analoge pinner, men dette er ikke verdiene som vil bli sett i programmet, "Men hvorfor?" kan du spørre. Arduino bruker en analog til digital brikke som konverterer den analoge spenningen til brukbare digitale data. I motsetning til de digitale pinnene på Arduino som bare kan lese en HØY eller LAV tilstand som er 0 og 5V, kan de analoge pinnene lese fra 0-5V og konvertere dette til et tallområde på 0-1023. Nå med litt mer matematikk-e-magi. vi kan faktisk beregne hvilke verdier Arduino faktisk vil lese.

Fordi dette vil være en lineær funksjon kan vi bruke følgende formel: Y = mX + C Hvor; Y = Digital ValueWhere; m = stigning, (stigning / løp), (digital verdi / analog verdi) Hvor; C = Y -skjæringspunktet Y -skjæringspunktet er 0 slik at det gir oss: Y = mXm = 1023 /5 = 204,6 Derfor: Digital verdi = 204,6 * Analog verdi Så i pitch black vil den digitale verdien være: 204,6 * 0,24 Som gir omtrent 49. Og i topp lysstyrke vil det være: 204,6 * 2,5 Som gir omtrent 511. Nå med to av disse satt opp på to analoge pinner kan vi lage to heltallsvariabler for å lagre sine verdier to og gjøre sammenligningsoperatorer for å se hvilken som har den laveste verdien, snu roboten i den retningen.

Anbefalt: