Dobré odpoledne, pokračujeme ve výrobě robotů a hraček. Dnes je dalším krokem úprava mého modelu tanku. Čitelné výrobní pokyny zde
Podstatou úpravy je změna způsobu řízení. Tentokrát pro ovládání použijeme laserové ukazovátko. Přesněji řečeno, tank bude jezdit za laserovou tečkou. Nádrž určí umístění bodu pomocí fotorezistorů. Seznam nezbytných je podobný seznamu z výše uvedeného domácíale ne úplně:
- Tamiya 70168 dual gear
- Tamiya 70100 sada válečků a pásů
- Tamiya 70157
- Překližka 10 mm (malý kus)
- Arduino Pro Mini 5V AtMega 328
- DRV 8833
- Fotorezistory 5506 4 ks.
- USB-UART pro firmware Arduino
- Obdélníkové červené a zelené LED
- Bílé LED diody 5 mm 2ks.
- Odpory 3x 150 Ohmů
- Li-ion 18650 baterií
- Dupont Dad-Mom Connectors
- dráty různých barev
- pájka
- Rosin
- páječka
- Šrouby 3x40, 3x20, matice a podložky pro ně
- 2x10 vrutů do dřeva
- Vrtáky do dřeva 3 mm a 6 mm
- Elektrické pilky na pražce
- Akrylová barva
Krok 1 Výroba cisternových dílů.
Podrobně výrobní proces nádrže popsáno v domácí.
Opakování to nedává smysl. Proto první a druhý krok výše uvedeného domácího kompletního.
Krok 2 Instalace fotorezistorů.
Budeme potřebovat nejběžnější fotorezistory, které lze snadno koupit v obchodě s rádiem:
Před instalací skladeb musíte připravit místa pro fotorezistory a vložit je tam. Máme tedy čtyři fotorezistory, dva vpředu a dva vzadu. Všechny budou umístěny ve spodní části pouzdra, v rozích. Při ustupování 5 mm z každé strany vytvořte dva otvory pro nohy fotorezistoru. Vzdálenost mezi otvory je 4 mm. Můžete použít vrták s nejmenším průměrem nebo jen propíchnout dýhu pomocí šrotu. Poté to vložte fotorezistory. Začněme frontou:
Poté, co jste vložili fotorezistory do překližky, připájejte dráty ke kontaktům a konektoru Dupont matky. Izolujeme místo pájení. Můžete použít elektrickou pásku, nebo můžete jako já dát izolaci na drát silnější.
A v zádech také děláme:
Níže bude vypadat takto:
Případ dále sestavujeme podle pokynů, na které je odkaz výše uveden.
Aby se zvýšila citlivost fotorezistorů na laserový bod a zbavily se zbytečného rušení, musí být natřeny červenou značkou nebo barvou. Hlavní věc je, že světlo proniká skrz povlak. Nepoužívejte na ně úplně barvy.
Tímto způsobem zvýšíme citlivost senzorů na červenou tečku laseru.
Krok 3 Elektrikář.
Ve čtvrtém kroku pokyny k vytvoření nádrže podrobně popisují, co a jak se připojit. Děláme vše podle toho, s výjimkou připojení modulu Bluetooth. Nepotřebujeme ho. Připojujeme jeden z kontaktů fotorezistoru k GND. Druhý je připojen k Arduinu podle schématu:
Přední pravý na A0 (Pin14)
Přední zleva k A1 (Pin15)
Zleva na A2 (Pin16)
Zadní pravý na A3 (Pin17)
Jako kontrolní nástroj použijeme obvyklý čínský laserový ukazovátko s červeným paprskem:
Krok 4 Úpravy skici.
Chcete-li upravit a vyplnit náčrtek, musíte si stáhnout Arduino IDE. Jdeme k úředníkovi stránky projektu a stáhněte si nejnovější verzi.
Nejsou potřeba žádné další knihovny.
Fotorezistory nejsou zdaleka nejpřesnější měřicí zařízení. Jeho vlastnosti v praxi závisí na velkém počtu faktorů. Pro správnou funkci je proto nutné upravit každý fotorezistor. Hodnoty opravíme úpravou náčrtu pomocí Arduino IDE a monitoru portů. Otevřete náčrt:
Začněme předními fotorezistory. Úplně dole rozepněte tři řádky pro přední senzory:
//Serial.print(senLF); // Odvolání k úpravě předních fotorezistorů
//Serial.print ("");
//Serial.println(senRF);
A také musíte přidat pauzu, abyste měli čas na jejich prohlížení. Zrušte proto i tento řádek:
// zpoždění (500);
Vyplňte náčrt. Položili jsme nádrž na stůl, při osvětlení místnosti běžným lustrem by se stolní lampa neměla zapínat. A otevřete monitor portu Arduino IDE. Při normálním osvětlení by hodnoty měly být vyšší než 500 a současně přibližně stejné pro oba senzory. Pokusme se pohnout laserovým ukazovátkem před nos nádrže. Indikace by se měly lišit. Čím je bod blíže, tím menší by měla být čísla. Měly by být v rozsahu od 80 (v maximální blízkosti bodu) do 500 (ve vzdálenosti asi 2-3 cm).
Chcete-li upravit, použijte proměnné v náčrtu:
int corLF = 0; // Korekční proměnné, vlevo vpředu
int corRF = 30; // Přední pravý
Korekční proměnné mohou být buď kladné (přidané k hodnotám snímače) nebo záporné (odečtené z naměřených hodnot). Pokud tyto proměnné změníte, znovu vyplňte náčrt a zjistěte, že indikátory jsou v rozsahu, který potřebujeme.
Teď udělejte totéž se zadními fotorezistory. Chcete-li to provést, okomentujte řádky pro přední senzory a odkomentujte následující řádky:
//Serial.print(senLB); // Nekompromisní úprava zadních fotorezistorů
//Serial.print ("");
//Serial.println(senRB);
Pauza by měla zůstat nezměněna. Stejná měření provádíme teprve nyní s fotorezistory vzadu. A napište opravné proměnné:
int corLB = 0; // Zadní levá
int corRB = 35; // Zadní pravý
Aby bylo jasné, jak všechno funguje. Levý přední senzor řídí pohyb pravé stopy dopředu a pravý přední senzor řídí levou stopu dopředu atd. Hodnoty senzorů jsou nastaveny podle následujících vzorců:
senLF = (analogRead (senLFPin) + corLF); // vlevo vpředu
senRF = (analogRead (senRFPin) + corRF); // Přední pravý
senLB = (analogRead (senLBPin) + corLB); // Zadní levá
senRB = (analogRead (senRBPin) + corRB); // Zadní pravý
Kde, senLF, senRF, senLB, sen RB - opravené hodnoty
analogRead (senLFPin), (analogRead (senRFPin), (analogRead (senLBPin), (analogRead (senRBPin)) - „čisté“ hodnoty senzorů
colLF, colRF, corLB, corRB - korekční proměnné.
A pak jsou hodnoty převedeny na rychlost rotace opačné dráhy:
walRF = mapa (senLF, 80, 500, 100, 255);
walLF = mapa (senRF, 80, 500, 100, 255);
walRB = mapa (senLB, 80, 500, 100, 255);
walLB = mapa (senRB, 80, 500, 100, 255);
Pokud nemůžete opravit hodnoty senzorů, změňte maximální a minimální hodnoty, při kterých se stopy začnou pohybovat. Toto jsou čísla 80 a 500 ve výše uvedených konverzních řádcích.
Po dokončení všech postupů komentujte všechny tyto řádky a vyplňte náčrt. Nyní bude tank jezdit za červenou tečkou laserového ukazovátka.