Jindra Fučík


Připojení Lego® Power Functions™

Zařízení se propojují pomocí speciálních čtyř-pinových konektorů, které mají tvar odvozený od běžné kostky. Konektory umožňují paralelní propojování (stohování). Komunikace je jen jedním směrem, mezi komponenty není žádný snímač ani senzor. Na komunikaci je zajímavé, že pokrývá stejným způsobem běžný motor, stejně jako servo, stejným způsobem neproporcionální řízení (motor plnou rychlostí na jednu stranu, motor plnou rychlostí na druhou stranu; servo plná výchylka na jednu stranu, servo plná výchylka na druhou stranu), stejně jako proporcionální (sedm rychlostních kroků na jednu stranu, sedm rychlostních kroků na druhou stranu; sedm výchylek serva na jednu stranu, sedm výchylek serva na druhou stranu).

Pro napájení se používají baterie s napětím maximálně 9V. V nabídce jsou jak držáky pro běžné AA tužkové baterie (6 * 1,5 V), tak několik verzí akumulátorů. Všechny napájecí zdroje jsou vytvořené tak, aby dodávali napětí maximálně 9V. Existují projekty, které porovnávají provoz motorů s použitím modelářských baterií 7,2V s celkem pozitivními výsledky.
Konektor obsahuje dva napájecí piny 0V (nebo společná zem), +9V (kladné napájení). Dále pak dva komunikační piny (nejčastěji označovaná jako C1 a C2
TBD
Vlastní komunikace je překvapivě jednoduchá. Vychází primárně z potřeb běžného komutátorového stejnosměrného motoru. Pro řízení otáček se používá pulzně šířková modulace (PWM). Stejně tak komunikace po pinech C1 a C2 je založená na PWM. Komunikace používá PWM s opakovacím kmitočtem cca 1200 Hz a sedmi hodnotami plnění (jak již zaznělo, sedm rychlostních kroků).
Komunikace je taková, aby vyhovovala stejnosměrnému motoru připojenému na piny C1 a C2. Tedy pro otáčení jedním směrem je C1 připojen na 0V a na C2 se objevují pulzy +9V, pro otáčky druhým směrem se na C1 objevují pulzy +9V a C2 je připojený na 0V.
Stejnou komunikaci používá i servo. Výchylka serva na jednu stranu odpovídá šířce pulzu pro vývod C1 a výchylka na druhou stranu odpovídá šířce pulzu pro vývod C2.
Pokud tedy máme neproporcionální ovládání, pak je v jedné poloze přepínače trvale připojen C1 na 0V a C2 na +9V. Motor se tedy otáčí na jednu stranu, servo má plnou výchylku na jednu stranu. V opačné poloze přepínače je C1 trvale připojen na +9V, C2 na 0V, takže se motor otáčí na druhou stranu a servo má plnou výchylku na druhou stranu. Ve středové poloze není na C1 ani C2 žádné napětí, motor tedy stojí a servo je ve středové poloze. Po nastavení středové polohy může docházet k odpojení napájení. Přepínače na držáku baterií odpojují napájení okamžitě, takže servo nestihne doběhnout do středové pozice, ostatní přepínače odpojují napětí později, nebo jej neodpojují.
Ovladače, které umožňují proporcionální ovládání, používají těchto sedm úrovní plnění: 0%, 26.6%, 38.9%, 51.2%, 63.0%, 75.0%, 87.2% a 100%. Není nutné dodržovat hodnoty plnění úzkostlivě přesně, ale servo není schopné vybavovat polohu přesněji.
TBD

Průběhy řídících signálů C1 a C2 a jím odpovídající poloha serva, směr a rychlost otáčení motoru.
Motor je tedy přímo připojen na signály C1 a C2, zatímco servo používá pro napájení vývody +9V a 0V a vývody C1 a C2 používá jako signálové. Proto je nutné budit vývody C1 a C2 dostatečným proudem. Přijímač Lego 8884, který mám k dispozici (starší verze, bez popisku, označovaná jako V1), používá pro vytváření signálů C1 a C2 budič motoru On Semiconductor/Sanyo LB1836M. Podle informací uživatelů novější V2 verze, je tento přijímač osazen budičem motoru Texas Instruments DRV8833. (Já v současné době používám častěji Toshiba TB6612FNG)
Mluvíme-li o budiči, je vhodné zmínit vlastnosti použitých motorů. V následující tabulce jsou uvedené parametry motorů, které se vyskytují v rámci rodiny. Parametry jsou získané měřením převážně jednoho vzorku. Lze je tedy považovat spíše za orientační. Měření probíhalo při napájení zdrojem 9V.
TBD
MotorNaprázdnoNakrátko
Otáčky za minutu (rpm)Odebíraný proud (mA)Točivý moment (N.cm)Odebíraný proud (mA)
Nejmenší (8883 Medium)4056511800
Střední (88003 Large)390120181200
Největší (8882 eXtra Large)22080401800
Servo (88002)125*15012,8900
* hodnota vznikla přepočtem, servo má maximální dráhu 180°, kterou ujede za 0,24s.