Lagani roboti koji slijede i izbjegavaju zasnovan na Arduinu: 5 koraka
Lagani roboti koji slijede i izbjegavaju zasnovan na Arduinu: 5 koraka
Anonim
Lagani roboti koji slijede i izbjegavaju temeljeni na Arduinu
Lagani roboti koji slijede i izbjegavaju temeljeni na Arduinu

Ovo je jednostavan projekt koji slijedi ili izbjegava svjetlost.

Napravio sam ovu simulaciju u Proteusu 8.6 pro. Potrebne komponente: -1) Arduino uno.

2) 3 LDR.

3) 2 Dc reduktorska motora.4) Jedan servo.5) Tri 1k otpornika.6) jedan H-most l290D7) Jedan prekidač za uključivanje i isključivanje [za promjenu stanja programa]

8) 9v i 5v Battry

Korak 1: Ardunio kod

Arduino kôd je izmijenjen mali -bitni datum 23. februara 2016.]

Ovaj je kod jako komentiran, ne želim objašnjavati, ali ako vam je potrebna pomoć, slobodno me kontaktirajte na ([email protected])

Napomena: -U ovom programu koristim dva uslova prvi za Slijeđenje svjetla. 2. drugi za izbjegavanje svjetla.

Ako su ovi uvjeti ispunjeni, Robot će slijediti ili izbjegavati svjetlost. [Ovo je minimalna vrijednost LDR -a koju odaberem. U normalnom svjetlu, njegov raspon je 80 do 95, ali kako se njegov intenzitet povećava sve više i više napona izazvanih kroz njega dok radi na principu razdjelnika napona int a = 400; // Tolerance Value]

Korak 2: Proteus datoteke

Za Arduino biblioteku preuzmite s te veze

Korak 3: Kako funkcionira vaš H-most?

Kako funkcionira vaš H-most
Kako funkcionira vaš H-most
Kako funkcionira vaš H-most
Kako funkcionira vaš H-most

L293NE/SN754410 je vrlo osnovni H-most. Ima dva mosta, jedan s lijeve strane čipa i jedan s desne strane, i može upravljati sa 2 motora. Može pokretati do 1 amp struje i raditi između 4,5V i 36V. Mali istosmjerni motor koji koristite u ovoj laboratoriji može sigurno raditi pri niskom naponu pa će ovaj H-most raditi sasvim u redu. H-most ima sljedeće pinove i značajke: Pin 1 (1, 2EN) omogućuje i onemogućuje naš motor bilo da je dat HIGH ili LOWPin 2 (1A) je logički pin za naš motor (ulaz je VISOKI ili NISKI) Pin 3 (1Y) je za jedan od stezaljki motora Pin 4-5 je za uzemljenje Pin 6 (2Y) je za drugi terminal motora Pin 7 (2A) je logički pin za naš motor (ulaz je VISOKI ili NISKI) Pin 8 (VCC2) je izvor napajanja za naš motor, ovo treba uzeti u obzir nazivni napon vašeg motora Pin 9-11 su nepovezani jer koristite samo jedan motor u ovoj laboratoriji Pin 12-13 su za uzemljenje Pin 14-15 su nepovezani Pin 16 (VCC1) je spojen na 5V. Gore je dijagram H-mosta i koji pinovi rade šta u našem primjeru. Dijagram uključuje tablicu istinitosti koja pokazuje kako će motor funkcionirati prema stanju logičkih pinova (koje je postavio naš Arduino).

U ovom projektu pin za omogućavanje povezuje se s digitalnim pinom na vašem Arduinu tako da ga možete poslati VISOKO ili NISKO i uključiti ili isključiti motor. Logički pinovi motora također su povezani s označenim digitalnim pinovima na vašem Arduinu tako da ih možete poslati VISOKO i NIZO da bi se motor okrenuo u jednom smjeru, ili NISKO i VISOKO da bi se okrenuo u drugom smjeru. Napon napajanja motora povezuje se s izvorom napona za motor, koji je obično vanjsko napajanje. Ako vaš motor može raditi na 5V i manje od 500mA, možete koristiti Arduino 5V izlaz. Većina motora zahtijeva veći napon i veće izvlačenje struje od ovoga, pa će vam trebati vanjsko napajanje.

Priključite motor na H-most Povežite motor na H-most kao što je prikazano na slici 2.

Ili, ako za Arduino koristite vanjsko napajanje, možete upotrijebiti Vin pin.

Korak 4: Kako funkcionira LDR

Prva stvar koja bi mogla zahtijevati dodatno objašnjenje je upotreba svjetlosnih otpornika. Otpornici ovisni o svjetlosti (ili LDR -ovi) su otpornici čija se vrijednost mijenja ovisno o količini svjetla u okruženju, ali kako možemo otkriti otpor s Arduinom? Pa ne možete zaista, međutim možete otkriti razine napona pomoću analognih pinova, koji mogu mjeriti (u osnovnoj upotrebi) između 0-5V. Sada se možda pitate "Pa kako pretvorimo vrijednosti otpora u promjene napona?", Jednostavno je, napravimo djelitelj napona. Razdjelnik napona prima napon, a zatim daje dio tog napona proporcionalan ulaznom naponu i omjeru dviju vrijednosti upotrijebljenih otpornika. Jednačina za koju je:

Izlazni napon = Ulazni napon * (R2 / (R1 + R2)) Gdje je R1 vrijednost prvog otpornika, a R2 vrijednost drugog.

Ovo i dalje postavlja pitanje "Ali koje vrijednosti otpora ima LDR?", Dobro pitanje. Što je manja količina ambijentalnog svjetla veći je otpor, više ambijentalnog svjetla znači manji otpor. Za određene LDR -ove koristio sam njihov raspon otpora od 200 - 10 kilo ohma, ali to se mijenja za različite, pa svakako potražite odakle ste ih kupili i pokušajte pronaći podatkovnu tablicu ili nešto slično. Sada u ovome slučaj R1 je zapravo naš LDR, pa vratimo tu jednadžbu i napravimo malo matematičke e-magije (matematičke električne magije). Sada prvo moramo pretvoriti te kilo ohmske vrijednosti u ohme: 200 kilo-ohma = 200, 000 ohma 10 kilo-ohmi = 10, 000 ohmaDa bismo pronašli koliki je izlazni napon kada smo u mraku, priključujemo sljedeće brojeve: 5 * (10000 / (200000 + 10000)) Ulaz je 5V jer to dobivamo sa Arduina. Gore navedeno daje 0.24V (zaokruženo). Sada pomoću sljedećih brojeva nalazimo koliki je izlazni napon u vršnoj svjetlini: 5 * (10000 / (10000 + 10000)) I to nam daje točno 2.5V. Ovo su vrijednosti napona koje ćemo unijeti u analogne pinove Arduina, ali to nisu vrijednosti koje će se vidjeti u programu, "Ali zašto?" možete pitati. Arduino koristi analogno -digitalni čip koji pretvara analogni napon u upotrebljive digitalne podatke. Za razliku od digitalnih pinova na Arduinu koji mogu čitati samo stanje VISOKO ili NISKO od 0 i 5 V, analogni pinovi mogu čitati od 0-5 V i pretvoriti ovo u brojčani raspon 0-1023. Sada uz još malo matematike i e-magije. možemo zapravo izračunati koje će vrijednosti Arduino očitati.

Budući da će ovo biti linearna funkcija, možemo koristiti sljedeću formulu: Y = mX + C Gdje; Y = Digitalna vrijednost Gdje; m = nagib, (uspon / hod), (digitalna vrijednost / analogna vrijednost) Gdje; C = Y presretanje Y presretanje je 0 pa nam daje: Y = mXm = 1023 /5 = 204.6Dakle: Digitalna vrijednost = 204,6 * Analogna vrijednost Dakle, u crnoj toni digitalna vrijednost bit će: 204,6 * 0,24 Što daje približno 49. I pri najvećoj svjetlini to će biti: 204,6 * 2,5 Što daje otprilike 511. Sada s dvije od ovih postavljenih na dva analogna pina možemo stvoriti dvije cjelobrojne varijable za pohranjivanje njihovih vrijednosti dvije i izvršiti usporedbene operatore da vidimo koja ima najnižu vrijednost, okretanje robota u tom smjeru.