Tartalomjegyzék:

Könnyű robot követése és elkerülése Arduino alapján: 5 lépés
Könnyű robot követése és elkerülése Arduino alapján: 5 lépés

Videó: Könnyű robot követése és elkerülése Arduino alapján: 5 lépés

Videó: Könnyű robot követése és elkerülése Arduino alapján: 5 lépés
Videó: Webináriumi együttműködő robotok 2024, Július
Anonim
Könnyű követés és elkerülő robot az Arduino alapján
Könnyű követés és elkerülő robot az Arduino alapján

Ez egy egyszerű projekt, amely követi vagy kerülje a fényt.

Ezt a szimulációt a Proteus 8.6 pro-ban készítettem. Szükséges összetevők: -1) Arduino uno.

2) 3 LDR.

3) 2 egyenáramú hajtóműves motorok. 4) egy szervo. 5) három 1 k ellenállás. 6) egy H-híd l290D7) egy ki- és bekapcsoló [a program állapotának megváltoztatásához]

8) 9v és 5v Battry

1. lépés: Ardunio kód

Az Arduino kód rövid időn belül módosult, 2016. február 23.]

Ezt a kódot erősen kommentálják, nem akarom elmagyarázni, de ha segítségre van szüksége, lépjen kapcsolatba velem ([email protected])

Megjegyzés: -A programban két feltételt használok: 1. a fénykövetés, 2. a fény elkerülése.

Ha ezek a feltételek teljesülnek, a robot követi vagy elkerüli a fényt. [Ez az LDR minimális értéke, amelyet választok. Normál fényben a tartomány 80-95, de ahogy intenzitása növekszik, egyre több feszültség indukálja azt, ahogy dolgozik a feszültségosztó elvén int a = 400; // Toleranciaérték]

2. lépés: Proteus fájlok

Az Arduino Library letöltéséhez kattintson erre a linkre

3. lépés: Hogyan működik a H-híd

Hogyan működik a H-híd
Hogyan működik a H-híd
Hogyan működik a H-híd
Hogyan működik a H-híd

Az L293NE/SN754410 egy nagyon egyszerű H-híd. Két hídja van, az egyik a chip bal oldalán, a másik a jobb oldalon, és 2 motor vezérlésére alkalmas. Akár 1 amper áramot képes meghajtani, és 4,5 és 36 V között működik. A laborban használt kis egyenáramú motor biztonságosan le tud futni alacsony feszültségről, így ez a H-híd tökéletesen fog működni. A H-híd a következő csapokkal és jellemzőkkel rendelkezik: Az 1-es (1, 2EN) csap engedélyezi és letiltja motorunkat, függetlenül attól, hogy HIGH vagy LOWPin 2 (1A) a motorunk logikai csapja (a bemenet HIGH vagy LOW) 3 (1Y) az egyik motorcsatlakozóhoz A 4-5-ös érintkezők a földeléshez A 6-os tű (2Y) a másik motorcsatlakozóhoz A 7-es pin (2A) a motorunk logikai csapja (a bemenet HIGH vagy LOW) 8-as érintkező (VCC2) a motorunk tápegysége, ezt meg kell adni a motor névleges feszültségére A Pin 9-11 nincs csatlakoztatva, mivel ebben a laborban csak egy motort használ A 12-13. pin a földeléshez A 14-15. pin nincs csatlakoztatva A Pin 16 (VCC1) 5V-ra van csatlakoztatva. Fentebb a H-híd diagramja és a példánkban szereplő csapok mit csinálnak. A diagramhoz tartozik egy igazságtáblázat, amely jelzi, hogy a motor hogyan fog működni a logikai csapok állapota szerint (amelyeket az Arduino állít be).

Ebben a projektben az engedélyező csap csatlakozik az Arduino digitális tüskéjéhez, így elküldheti HIGH vagy LOW, és be- vagy kikapcsolhatja a motort. A motor logikai csapjai szintén az Arduino kijelölt digitális csapjaihoz vannak csatlakoztatva, így HIGH és LOW pozícióba küldheti, hogy a motor az egyik irányba forduljon, vagy LOW és HIGH, hogy a másik irányba forduljon. A motor tápfeszültsége a motor feszültségforrásához csatlakozik, amely általában külső tápegység. Ha a motorja 5 V -os és 500 mA -nél kisebb teljesítményű, akkor az Arduino 5 V -os kimenetét használhatja. A legtöbb motor ennél nagyobb feszültséget és nagyobb áramfelvételt igényel, ezért külső tápegységre lesz szüksége.

Csatlakoztassa a motort a H-hídhoz Csatlakoztassa a motort a H-hídhoz a 2. képen látható módon.

Vagy ha külső tápegységet használ az Arduino számára, akkor használhatja a Vin tűt.

4. lépés: Az LDR működése

Most az első dolog, amely további magyarázatra szorulhat, a fényfüggő ellenállások használata. A fényfüggő ellenállások (vagy LDR -ek) olyan ellenállások, amelyek értéke a környezeti fény mennyiségétől függően változik, de hogyan tudjuk észlelni az ellenállást az Arduino segítségével? Nos, nem igazán, de a feszültségszinteket az analóg csapok segítségével észlelheti, amelyek (alaphasználatban) 0-5V között mérhetnek. Most azt kérdezheti, hogy „hogyan alakítjuk át az ellenállás értékeit feszültségváltozássá?”, Egyszerű, feszültségosztót készítünk. A feszültségosztó feszültséget vesz fel, majd ennek a feszültségnek a töredékét adja ki a bemeneti feszültséggel és a használt ellenállások két értékének arányával. Ennek egyenlete:

Kimeneti feszültség = bemeneti feszültség * (R2 / (R1 + R2)) Ahol R1 az első ellenállás értéke, R2 pedig a második értéke.

Most még mindig felmerül a kérdés: „De milyen ellenállási értékei vannak az LDR -nek?”, Jó kérdés. Minél kevesebb a környezeti fény, annál nagyobb az ellenállás, a több környezeti fény alacsonyabb ellenállást jelent. Most az adott LDR -eknél használtam az ellenállási tartományukat 200 - 10 kg ohm között, de ez változik a különbözőeknél, ezért győződjön meg arról, hogy honnan vásárolta őket, és próbálja megtalálni az adatlapot vagy valami hasonlót. Most ebben Az R1 eset valójában az LDR, ezért hozzuk vissza ezt az egyenletet, és végezzünk néhány matematikai-e-mágiát (matematikai elektromos mágiát). Most először át kell alakítanunk ezeket a kilós ohm-értékeket ohmokká: 200 kilo-ohm = 200 000 ohm 10 kiló-ohm = 10 000 ohm Tehát, hogy megtudjuk, mi a kimeneti feszültség, amikor koromsötétben vagyunk, csatlakoztassuk a következő számokat: 5 * (10000 / (200000 + 10000)) A bemenet 5V, mivel ezt kapjuk az Arduino -tól. A fentiek 0,24 V -ot adnak (lekerekítve). Most megtudjuk, hogy mennyi a kimeneti feszültség csúcsfényben a következő számok használatával: 5 * (10000 / (10000 + 10000)) És ez pontosan 2,5 V -ot ad. Tehát ezek azok a feszültségértékek, amelyeket az Arduino analóg csapjaiba fogunk bevinni, de ezek nem azok az értékek, amelyek a „De miért?” Programban lesznek láthatók. kérdezheted. Az Arduino analóg -digitális chipet használ, amely az analóg feszültséget használható digitális adatmá alakítja. Ellentétben az Arduino digitális csapjaival, amelyek csak a HIGH vagy LOW állapotot olvashatják 0 és 5 V között, az analóg érintkezők 0-5 V-ról tudnak olvasni, és ezt 0-1023 számtartományba konvertálni.. valójában kiszámíthatjuk, hogy az Arduino milyen értékeket fog kiolvasni.

Mivel ez lineáris függvény lesz, a következő képletet használhatjuk: Y = mX + C Hol; Y = Digital ValueWhere; m = meredekség, (emelkedés / futás), (digitális érték / analóg érték) Hol; Az Y metszés 0, így kapjuk: Y = mXm = 1023 /5 = 204,6 Ezért: Digitális érték = 204,6 * Analóg érték Tehát a koromsötétben a digitális érték: 204,6 * 0,24 lesz, ami körülbelül 49 csúcsfényben ez lesz: 204,6 * 2,5, ami körülbelül 511 -et ad. Most, ha ezek közül kettőt két analóg tűn állítunk be, két egész változót hozhatunk létre az értékek kettő tárolására, és összehasonlító operátorokat, hogy lássuk, melyik a legalacsonyabb érték, ebbe az irányba fordítva a robotot.

Ajánlott: