Ľahké nasledovanie robota a vyhýbanie sa mu na základe Arduina: 5 krokov
Ľahké nasledovanie robota a vyhýbanie sa mu na základe Arduina: 5 krokov
Anonim
Ľahké nasledovanie a vyhýbanie sa robotovi založenému na Arduine
Ľahké nasledovanie a vyhýbanie sa robotovi založenému na Arduine

Jedná sa o jednoduchý projekt, ktorý nasleduje alebo sa vyhýbajte svetlu.

Túto simuláciu som vyrobil v Proteus 8.6 pro. Požadované komponenty: -1) Arduino uno.

2) 3 LDR.

3) 2 prevodové motory na jednosmerný prúd. 4) jedno servo. 5) tri rezistory 1k. 6) jeden mostík H-Bridge l290D7) jeden spínač zapnutia a vypnutia [pre zmenu stavu programu]

8) 9v a 5v Battry

Krok 1: Ardunio kód

Kód Arduino je zmenený a doplnený -malý dátum, 23. februára 2016]

Tento kód je veľmi komentovaný, nechcem ho vysvetľovať, ale ak potrebujete pomoc, kontaktujte ma na ([email protected])

Poznámka: -V tomto programe používam dve podmienky, prvú na sledovanie svetla., Druhú na vyhýbanie sa svetlu.

Pokiaľ sú tieto podmienky splnené, robot bude svetlo nasledovať alebo sa mu bude vyhýbať. [Toto je minimálna hodnota LDR, ktorú som si vybral. Pri normálnom svetle je rozsah 80 až 95, ale ako sa jeho intenzita zvyšuje stále viac a viac napätia, indukuje ho a pracuje na princípe deliča napätia int a = 400; // hodnota Tolarance]

Krok 2: Súbory Proteus

Knižnicu Arduino si stiahnite z tohto odkazu

Krok 3: Ako funguje váš mostík H

Ako funguje váš H-most
Ako funguje váš H-most
Ako funguje váš H-most
Ako funguje váš H-most

L293NE/SN754410 je veľmi základný H-most. Má dva mosty, jeden na ľavej strane čipu a jeden napravo, a môže ovládať 2 motory. Dokáže napájať až 1 ampér prúdu a pracovať medzi 4,5 V a 36 V. Malý jednosmerný motor, ktorý používate v tomto laboratóriu, môže bezpečne bežať na nízke napätie, takže tento mostík H bude fungovať dobre. Mostík H má nasledujúce kolíky a funkcie: Pin 1 (1, 2EN) umožňuje a deaktivuje náš motor, či už je to HIGH alebo LOWPin 2 (1A) je logický kolík pre náš motor (vstup je buď HIGH alebo LOW) 3 (1Y) je pre jednu zo svoriek motora Piny 4-5 sú pre uzemnenie Pin 6 (2Y) je pre druhú svorku motora Pin 7 (2A) je logický kolík pre náš motor (vstup je buď VYSOKÝ alebo NÍZKY) Pin 8 (VCC2) je napájanie nášho motora, malo by to byť dané menovitým napätím vášho motora Pin 9-11 je nezapojený, pretože v tomto laboratóriu používate iba jeden motor Pin 12-13 sú na zem Pin 14-15 sú odpojené Pin 16 (VCC1) je pripojený k 5V. Hore je diagram mostíka H a ktoré kolíky robia čo v našom prípade. Súčasťou diagramu je tabuľka pravdy, ktorá ukazuje, ako bude motor fungovať podľa stavu logických pinov (ktoré nastavilo naše Arduino).

V tomto projekte sa aktivačný kolík pripája k digitálnemu kolíku na vašom Arduino, takže ho môžete odoslať buď VYSOKÝ alebo NÍZKY a zapnúť alebo vypnúť motor. Logické kolíky motora sú tiež pripojené k určeným digitálnym kolíkom na vašom Arduino, takže ho môžete odoslať VYSOKÝ a NÍZKY, aby sa motor otáčal v jednom smere, alebo LOW a HIGH, aby sa otáčal v druhom smere. Napájacie napätie motora sa pripája k zdroju napätia pre motor, ktorým je zvyčajne externé napájanie. Ak váš motor beží na 5 V a menej ako 500 mA, môžete použiť 5 V výstup Arduina. Väčšina motorov vyžaduje vyššie napätie a vyšší odber prúdu, ako je tento, takže budete potrebovať externé napájanie.

Pripojte motor k H-mostíku Pripojte motor k H-mostíku podľa obrázku na 2. obrázku.

Alebo, ak pre Arduino používate externý napájací zdroj, môžete použiť pin Vin.

Krok 4: Ako funguje LDR

Prvá vec, ktorá môže potrebovať ďalšie vysvetlenie, je použitie rezistorov závislých od svetla. Svetlo závislé odpory (alebo LDR) sú odpory, ktorých hodnota sa mení v závislosti od množstva okolitého svetla, ale ako môžeme zistiť odpor pomocou Arduina? Naozaj nemôžete, ale úrovne napätia môžete zistiť pomocou analógových pinov, ktoré môžu merať (v základnom použití) medzi 0-5V. Teraz sa môžete pýtať „Ako premeníme hodnoty odporu na zmeny napätia?“, Je to jednoduché, vyrobíme delič napätia. Delič napätia odoberá napätie a potom vydáva zlomok tohto napätia úmerne vstupnému napätiu a pomeru dvoch hodnôt použitých odporov. Rovnica, pre ktorú platí:

Výstupné napätie = vstupné napätie * (R2 / (R1 + R2)) Kde R1 je hodnota prvého odporu a R2 je hodnota druhého odporu.

Teraz to stále vyvoláva otázku „Ale aké hodnoty odporu má LDR?“, Dobrá otázka. Čím menšie množstvo okolitého svetla, tým vyšší je odpor, viac okolitého svetla znamená nižší odpor. Teraz som pre konkrétne LDR použil rozsah odporu od 200 do 10 kiloohmov, ale to sa mení pre rôzne, takže sa pozrite, odkiaľ ste ich kúpili, a skúste nájsť list s údajmi alebo niečo podobné. Teraz v tomto prípad R1 je vlastne naša LDR, vráťme teda túto rovnicu a urobme niekoľko matematických mágií (matematická elektrická mágia). Teraz musíme najskôr previesť tieto hodnoty kiloohmov na ohmy: 200 kiloohmov = 200 000 ohmov 10 kilo-ohmy = 10 000 ohmov Aby sme zistili, aké je výstupné napätie, keď sme v čiernej farbe, zapojíme nasledujúce čísla: 5 * (10 000 / (200 000 + 10 000)) Vstup je 5 V, pretože to je to, čo dostávame z Arduina. Vyššie uvedené dáva 0,24 V (zaokrúhlené). Teraz zistíme, aké je výstupné napätie v špičkovom jase pomocou nasledujúcich čísel: 5 * (10 000 / (10 000 + 10 000)) A to nám dáva 2,5 V presne. Toto sú hodnoty napätia, ktoré dostaneme do analógových pinov Arduina, ale nie sú to hodnoty, ktoré sa budú zobrazovať v programe „Ale prečo?“môžeš sa opýtať Arduino používa analógovo -digitálny čip, ktorý prevádza analógové napätie na použiteľné digitálne údaje. Na rozdiel od digitálnych pinov na Arduine, ktoré dokážu čítať iba VYSOKÝ alebo NÍZKY stav 0 a 5 V, analógové piny môžu čítať od 0 do 5 V a prevádzať to do číselného rozsahu 0 až 1023. Teraz s trochou ďalšej matematiky. môžeme skutočne vypočítať, aké hodnoty skutočne Arduino bude čítať.

Pretože to bude lineárna funkcia, môžeme použiť nasledujúci vzorec: Y = mX + C Kde; Y = digitálna hodnota m = sklon, (stúpanie / beh), (digitálna hodnota / analógová hodnota) Kde; Zachytenie Y je 0, takže dostaneme: Y = mXm = 1023/5 = 204,6. Preto: digitálna hodnota = 204,6 * analógová hodnota Takže v tóne čiernej bude digitálna hodnota: 204,6 * 0,24, čo dáva približne 49. A pri špičkovom jase to bude: 204,6 * 2,5, čo dáva približne 511. Teraz s dvoma z nich nastavenými na dvoch analógových kolíkoch môžeme vytvoriť dve celočíselné premenné na uloženie ich dvoch hodnôt a vykonať porovnávacie operátory, aby sme zistili, ktorá z nich má najnižšiu hodnotu, otáčaním robota v tomto smere.