John Lim

micromouse je robot, který používá algoritmus řešení bludiště k autonomnímu řešení problému bludiště. V tomto příspěvku, podělím se o to, jak se mi s týmem podařilo udělat to s velmi potřebným vedením od některých velmi užitečných lidí.

během mého podzimního semestru na UC Berkeley jsem vzal studentskou třídu, abych vytvořil robota, který autonomně řeší problém bludiště. Moje myšlenky jsou, že pokud jste v UC Berkeley, zájem o projekty elektroniky a hledají vysoce řízený program s úžasnými instruktory,to je skvělé místo! Pro mě, tento kurz je zvláštní, protože to je místo, kde jsem začal svou cestu do robotiky,šťourat a dělat a je ten, který jsem hluboce užil. Tento kurz mi dal skvělé základy, a naučil jsem se více na cestě, když jsem začal přijímat nové projekty.

já a můj tým a naše myš
naše myš v bludišti
já a můj týmový kolega a moji instruktoři kurzu

zde je hrubý soubor pokynů, jak začít svůj projekt Micromouse jako začátečník:

  1. Seznam dílů
  2. uvedení hardwarových částí dohromady
    1. nastavení Teensy Micro Controller & Arduino IDE
    2. Teensy pinOut Úvod
    3. použití senzorů
    4. regulace napětí
    5. H Bridge Motor Controller pro ovládání motoru
    6. pomocí Hall Effect Rotorary Encoder
    7. uvedení všeho dohromady
  3. kódování
    1. jak ovládat hardware pomocí kódu
    2. snímání
    3. řízení PID
    4. algoritmus řešení bludiště
    5. jemné doladění
  4. jak řešit

Seznam dílů

  • mechanické díly
    • podvozek
    • kola
    • spousta lepící pásky, pokud nemáte v úmyslu 3D tisknout díly na zakázku nebo utrácet peníze za nákup vlastních držáků
  • elektrické části
    • prkénko, dráty
    • dva 5 voltové mini stejnosměrné motory
    • malá 7 až 9 voltová baterie
    • 7805 regulátor napětí
    • Hallův snímač rotorový kodér
    • H-Bridge
    • Teensy (nebo jakýkoli malý mikroregistr. Arduino funguje také!)
    • dva senzory vzdálenosti (použil jsem infračervený senzor)

uvedení hardwaru dohromady

2.1 nastavení Teensy Micro Controller & Arduino IDE

Teensy je mikrořadič, který funguje jako Arduino. Jednou obrovskou výhodou je jeho velikost. Jak již název napovídá, Teenst je malý a kompaktní, což je skvělé!

začneme umístěním Teensy na horní část některých hlavičkových kolíků a poté pájením hlavičkových kolíků na Teensy a poté ji pevně připevníme na naši prkénko.

umístěte kolíky záhlaví na konec desky chleba
umístěte Teensy na kolíky
Pájejte hlavičkové kolíky na Teensy
Připojte se k počítači pomocí kabelu MicroUSB

pokud jste tak ještě neučinili, nainstalujte Arduino IDE do počítače. https://www.arduino.cc/en/Main/Software

velmi důležité: pokud používáte Teensy 3.1, ujistěte se, že jste nainstalovali verzi Arduino, která je kompatibilní s Teensy. Zde je odkaz pro instalaci Teensyduino, aby vaše Teensy mohla pracovat s Arduino IDE: https://www.pjrc.com/teensy/td_download.html

2.2 obvod

2.21) napájení baterie: napájení musí být 7.2 V a více. Obvodovou konvencí můžeme nazvat Vcc2.

2.22) 5V regulovaný zdroj napájení: součásti elektronických čipů často potřebují stabilní napájecí napětí, aby správně fungovaly. Problém je v tom, že u zařízení, jako jsou motory, které mohou čerpat velké množství proudu, to způsobí pokles napájecího napětí. To je důvod, proč potřebujeme regulátor napětí pro napájení stabilního 5V do vašich dalších elektronických součástek.

 VoltageReg

2.23) Micro controller: to je mozek každého robota, který vypadá, že má nějaké zdání inteligentního myšlení. Mikrokontrolér se může na začátku zdát komplikovaný, ale začít, opravdu to není tak těžké. Zde jsou základy: Jednoduché, ale velmi důležité.

 mikro regulátory

2.23 a) digitální vstupní piny: schopnost číst a zapisovat binární signály. Různé mikrokontroléry mají různé logické úrovně, ale většina mikrokontrolérů má logickou úroveň buď 3.3 V nebo 5V. například Arduino je mikrokontrolér s logickou úrovní 5V. při čtení se napětí někde poblíž 5V registruje jako vysoké, zatímco napětí někde poblíž 0V registruje jako nízké.

2.23 b) Pulse Width Modulated (PWM) piny: Jedná se o digitální vstupní piny se speciální schopností vydávat signál modulovaný šířkou impulsu. Jedná se o digitální signál, který je vysoký po určité procento času a nízký po jiné procento času. Toto je známé jako pracovní cyklus. Signál PWM s 60% pracovním cyklem je úroveň logiky vysoká 60% času, zatímco úroveň logiky nízká 40% času. Další informace o PWM naleznete zde.

2.23 c) Analogové Piny: tyto piny jsou schopny číst analogové napětí kdekoli od 0 do uvedeného množství voltů. V případě Arduino, jeho 0-5V. mohou jej číst s různým stupněm rozlišení, v závislosti na tom, kolik bitů analogového digitálního převodníku se používá. 8bitový analogový digitální převodník může číst rozlišení 2^8 = 256. Pro úroveň 5V logiky může číst s přesností 5V / 256 = 19,5 mV.

2.23 d) digitální přerušení: Některé digitální piny na mikrokontrolérech lze konfigurovat jako signály přerušení. Přerušení je velmi cool. Když je pin nakonfigurován jako přerušovací pin, detekuje buď (1) stoupající okraj signálu (2) klesající okraj signálu nebo (3) změnu logické úrovně. Každá z nich spustí to, čemu říkáme rutina přerušení (ISR). ISR je krátká funkce v kódu, která se spouští vždy, když je detekováno přerušení.

2.26) motory: motory jsou zařízení, která se otáčejí při daném napětí. V tomto případě používáme kartáčovaný stejnosměrný motor. Je pojmenován jako takový, protože uvnitř je komutátorový DC kartáč, který mu pomáhá správně se otáčet, když je podáno napětí. Motory obecně čerpají velký proud a všechny motory mají určitý napěťový výkon. Když se motory otáčejí, vytvářejí zpětný emf. To může znít kontraintuitivně, ale motor, který se otáčí maximální rychlostí, ve skutečnosti čerpá nejmenší množství proudu díky zadnímu emf. Naopak, motor, který je zastaven (tj. chce se pohybovat, ale nemůže kvůli vnějším silám) čerpá největší množství proudu.

 Motor

2.25) ovladač motoru: to je nutné k ovládání rychlosti/směru motoru pomocí mikrokontroléru. Je to proto, že váš mikrokontrolér nemůže dodávat dostatečné napětí nebo proud k pohonu motoru. Kromě toho, když se motory točí, generovaný zpětný emf by mohl snadno poškodit váš mikrokontrolér. Pro ovládání rychlosti a směru motoru je mezi nimi zapotřebí rozhraní. Použitým regulátorem motoru byl čtyřnásobný poloviční ovladač SN754410. Co regulátor motoru dělá, je to, že bere signál přicházející z vašeho mikro-regulátoru (obvykle signál modulovaný šířkou impulsu) a poté aktivuje „Digitální přepínač“ z baterie do motoru. To, co dělá, je, že zapne Digitální přepínač z baterie na motor velmi rychle. Pokud je tento digitální spínač zapnutý 100% času (nebo 100% pracovního cyklu), motor běží na plný výkon. Pokud je digitální spínač zapnutý pouze 50% času, motor běží na 50% výkonu.

motordriver

2.26) enkodéry: enkodéry jsou chytrá zařízení, která detekují pohyb. Jako například, některé enkodéry zjistit, kolikrát kolo se točil, jiní jsou ještě přesnější, aby vám přesně říct, jaký úhel robot rameno se otočil atd. Pro Mikromouse používáme kodéry, které detekují, kolikrát se kolo otočilo. Existují kodéry Hallova efektu nebo optické kodéry. Dva typy kodérů, ale v podstatě dělají totéž. Spustí digitální puls, kdykoli se kolo otočí! Jak Hallův efekt kodér funguje, je to, že uvnitř něčeho, co je připojeno k hřídeli motoru, je malý permanentní magnet. Když se motor otočí, magnet se také otočí. Existují senzory, které detekují, kdy magnet prošel. Když to udělá, vyšle puls, který lze číst mikrokontrolérem. Tento signál obvykle posíláme na pin nakonfigurovaný jako pin digitálního přerušení.

kodér

2.27) infračervené senzory vzdálenosti: snímá vzdálenost pomocí infračervené. To, co dělá, je, že vystřelí infračervený signál a čeká, až se tento signál odrazí zpět, aby určil, jak daleko je objekt od něj. Můžete experimentovat, ale pokud odkloníte signál ze šikmého povrchu, nemusí se vám odečíst IR senzor. Díky tomu to není tak ideální. Tento IR senzor má také omezený rozsah, který dokáže detekovat vzdálenosti. Červený vodič je určen pro napájení 5V, černý vodič pro GND, žlutý vodič pro signál. Pro tento konkrétní IR senzor, v závislosti na tom, jak daleko IR senzor snímá váš objekt, vydává Jiné analogové napětí. Co můžete udělat, je přečíst toto analogové napětí pomocí mikrořadiče. Další informace o IR senzoru najdete v datasheetu zde.

IRsensor

2.3 Schémata zapojení & zapojení

zde je hrubý schéma zapojení. Poznámka: nespecifikoval jsem přesně, ke kterým kolíkům se mají vodiče připojit. Je to proto, že čísla pin se liší v závislosti na tom, který mikrořadič používáte, ale tady, dávám zastřešující principy:

wiringdiagram

signály z kodéru by měly být připojeny k digitálnímu Přerušovacímu kolíku. Tímto způsobem, kdykoli je vyslán signál, mikrokontrolér může vědět, že kolo se otočilo o 1 kolo.

signály z infračerveného senzoru by měly být zapojeny do analogového vstupního kolíku.

signály přiváděné do regulátoru motoru by měly vycházet z PWM kolíku.

* vložte schéma zapojení

3.0 kód & ovládací prvky:

nebudu zveřejňovat kód, ale zde jsou některé obecné pojmy:

3.1 jak přimět myš k pohybu rovně nebo otočení:

tato myš je řízena odlišně. Na každém kole jsou dvě kola se dvěma motory. Pokud se obě kola otáčejí stejnou rychlostí, myš jde rovně. Pokud se levé kolo zrychlí, zatímco pravé kolo se zpomalí, myš se otočí doprava. Toto je známé jako diferenciální řízení.

3.2 Ovládací prvky & Oprava chyb

ale je třeba přemýšlet o tom, jak ovládat myš. Jak se dostaneme k pohybu uvnitř bludiště, aniž bychom narazili do zdi? Mohli bychom si myslet, že vysíláme dva stejné signály do levého a pravého motoru, abychom řekli myši, aby šla rovně. Takže myš by měla jít rovně doprava? Špatně! Různé důvody mohou způsobit, že motory nereagují tak, jak jim říkáme. V zásadě je každý motor postaven téměř stejný, ale ne úplně stejný. Hardware není nikdy postaven dokonale a vždy existuje nějaká konečná chyba.

jak se ujistíme, že se myš skutečně pohybuje ve směru, kterému jí říkáme? Potřebujeme to, co se nazývá řízení uzavřené smyčky. To znamená, že my připojit senzory pro měření výstupu a poté přivádějte výsledek zpět do vstupu, abyste provedli opravu chyb. Více o tom později. Potřebujeme to, čemu říkáme PID (proporcionální integrální derivace) regulátor.

v tomto případě bychom mohli chtít, aby myš udržovala přísnou vzdálenost od zdi. Řekněme, 5 cm od zdi vpravo. Říkáme tomu set-point. Jakákoli odchylka od nastavené hodnoty je to, čemu říkáme chyba. Když je zjištěna chyba, chceme, aby se myš sama opravila. Když je chyba velká, chceme velkou opravnou akci. Když je chyba malá, chceme malou opravnou akci.

senzory na straně myši určují vzdálenost myši od stěny. Řekněme, že myš je příliš daleko od zdi na pravé straně. Chceme, aby se levé kolo otáčelo rychleji, zatímco pravé kolo se otáčelo pomaleji, aby se myš mohla pohybovat doprava, aby se chyba napravila. Pokud je myš velmi daleko od nastavené hodnoty 5 cm, jako 10 cm od zdi, chceme, aby se levé kolo otočilo velmi rychle, zatímco pravé kolo se hodně zpomalilo. Pokud je myš vzdálena pouze 6 cm od zdi, chceme, aby levé kolo zvýšilo rychlost a pravé kolo snížilo rychlost, ale jen velmi mírně.

Leave a Reply

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.