Vlastní ovladač podobný Lego 8879Při začátcích experimentování s Lego Power Functions jsem si chtěl postavit sadu ovladač/přijímač velmi podobné originálu. Proto jsem si vytvořil ovladač odpovídající Lego 8879-1. |
|
HardwarePochopitelně jsem si práci velmi zjednodušil. Použil jsem běžné, levné rotační enkodéry a běžná tlačítka. Nijak jsem se nezabýval tvorbou vhodné krabičky. Jediné co jsem udělal je, že jsem desku tištěných spojů vytvořil v rozměrech vhodných pro přišroubování držáku 3x AA článků na spodní stranu.Jinak je zapojení celého zařízení velmi základní. Prostě jen připojení dvou rotačních enkodérů a dvou tlačítek k procesoru. V zapojení jsou použité externí pull-up rezistory a nikoli vnitřní. Je to proto, že se používá uspávání procesoru a pro spící procesor nejsou interní pull-up dostupné. Také používám kondenzátory paralelně ke spínačům. Je to jednoduchá metoda, jak si zjednodušit sledování zákmitů spínačů. Pozor na to, že kondenzátory Cx a Cy lze osadit až po nahrání kódu. Na trhu existují rotační enkodéry s tlačítkem a bez tlačítka. Já jsem použil ty bez tlačítka a použil jsem samostatná tlačítka "stop". Pokud použijete enkodéry s tlačítkem, pak budou fungovat právě jako "stop", je tedy možné vynechat ta, která jsou pod enkodéry. Pochopitelně jsem zachoval přepínače pro změnu směru, stejně jako jsou u původní 8879. |
|
SoftwareSoftware pro ovladač také není složitý. Nepoužívá žádné speciální funkce procesoru. Jediná podstatná funkce je uspávání procesoru. Procesor většinu času spí a probouzí se pouze při stisku tlačítka, nebo otočení enkodéru. Pak vybaví provedenou akci a zase usne. To je důležité z hlediska celkové spotřeby s tím, že ovladač má být napájen bateriemi.Vyslání informace o akci se provádí v hlavním kódu s použitím běžného čekání. Není zde použito žádného sofistikovaného algoritmu. Odeslání probíhá v souladu s popisem komunikace. Existují dvě verze software. Jedna si sama počítá rychlostní stupeň podle otočení enkodéru a odesílá požadavek na konkrétní rychlostní stupeň. Tato verze je více méně experimentální. Druhá verze odesílá příkazy pro zrychlení a zpomalení a vyhodnocení vlastní rychlosti nechává na 8884. Toto chování odpovídá originální verzi ovladače. Tato druhá verze je také výhodná v tom, že je velmi jednoduché editovat kód a namísto příkazů pro zrychlení/zpomalení je možné si vložit jiné příkazy a experimentovat s chováním 8884. |
|
Obrázky |
|