Jindra Fučík


Vlastní ovladač podobný Lego 8879

Př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.

Hardware

Pochopitelně 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.

Software

Software 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

Download: L'EGO 8879.gerber gerber soubor pro výrobu desky u AllPCB nebo JLCpcb. L'EGO 8879.source&hex zdrojové a přeložené soubory pro procesor.