Vlastní senzory pro Mindstorms

Možná si řeknete, že Mindstorms RIS 2.0, který se v tomto článku objeví, už patří do starého železa. Ale podle mého názoru se pořád může hodit a navíc, pro začátečnické pokusy se mi přecejen zdál vhodnější.

Už delší dobu jsem si chtěl vyrobit nějaký vlastní senzor nebo v tomto případě spíše jednoduché vstupní zařízení. Vycházel jsem z toho, že například dotykový senzor je vlastně jen obyčejné tlačítko s rezistorem zapojeným do série. RCX potom měří hodnotu odporu - buď je malá (tlačítko stisknuto) nebo proud obvodem vůbec neprochází (tlačítko není stisknuto). Jednoduché, že? Navíc mohu pracovat přímo s RAW hodnotou senzoru (rozmezí 0-1023), kterou RCX umí poskytnout. Polopaticky řečeno, číslo, které nám RCX "vyhodí" je závislé na odporu obvodu, který mu připojíme na vstup. A toho se dá dobře využít, šikovní kutilové už vyrobili spoustu vlastních senzorů, stačí se trochu kouknout na internetu.

Poznámka ze dne 20.3.2009 - Nedávno mi dorazily kabely s redukcí, takže jsem v praxi vyzkoušel připojení níže popisovaných výrobků i k novější řídicí jednotce NXT. Vše funguje bez problémů, stejné jsou samozřejmě i vzorce pro výpočty.

Potenciometr

Já jsem se rozhodl začít tím nejjednodušším - potenciometrem. Po připojení na vstup RCX ho můžu využít třeba k nastavení velikosti nějaké proměnné, kterou RCX později zpracuje. Následovala ovšem otázka: Podle jakého vzorce RCX vypočítává z naměřeného odporu hodnotu, kterou později zobrazí? Zapátral jsem na internetu a objevil stránky LEGO fandy, který se tím samým zabýval. Našel jsem tam nejenom potřebný vzorec, ale také popisky vyrobených senzorů. A začínal také s tím nejjednodušším - s potenciometrem. Takže když to zvládli jiní, proč né já.

Vzorec je tedy následující: X = (1023*R) / (10000+R)
X je výsledná RAW hodnota a R odpor obvodu připojeného na vstup RCX

Po prostudování stránky jsem zakoupil 50KΩ potenciometr, který se pro toto užití asi hodí nejlépe, a zabudoval ho do plastové krabičky. Pro jistotu jsem přidal do série ještě 300Ω rezistor (stejně jako v dotykovém senzoru), takže v krajní poloze potenciometru není odpor nulový. Aby připojení k RCX bylo bezproblémové, obětoval jsem jeden LEGO kabel. Výsledek si můžete prohlédnout níže na fotografii. Není to zrovna výkřik nejmodernější technologie, ale může se to hodit.

Potenciometr zabudovaný do plastové krabičky Pohled do vnitřku krabičky Připojení k RCX

Technické podrobnosti

Graf Po připojení k RCX všechno funguje dle očekávání. Minimálnímu odporu (cca 300Ω) odpovídá přibližně hodnota 30, maximálnímu (cca 44,8 KΩ) pak 836. Záleží na odporu (délce) kabelu, který použijeme, a správném nacvaknutí konektorů.

Rád bych ale ještě upozornil na jednu věc, pokud se znovu podíváme na vzorec pro výpočet RAW hodnoty, zjistíme, že funkce s tímto předpisem rozhodně není přímá úměrnost. V praxi to znamená, že číslo zobrazené RCXem nebude růst rovnoměrně s odporem. Rozdíl dobře poznáme z obrázku napravo, červeně je graf přímé úměrnosti (tedy přímka) a modře je znázorněna závislost RAW hodnoty na odporu. Výsledná křivka dokazuje, že při nízkém odporu bude RAW hodnota růst rychle a při vyšším už jen pozvolna. Je dobré s tím počítat a upravit programy tak, aby nedošlo k problémům.

Mým prvním využitím potenciometru byla stavba joysticku. Protože výše zobrazené krabičkové provedení není příliš praktické, vytvořil jsem raději nové a věnoval mu vlastní stránku.

Panel s tlačítky

Tabulka použitých rezistorů a výsledných RAW hodnot Jako další vstupní zařízení pro RCX jsem se rozhodl vyrobit malou klávesnici. Označení klávesnice mi přijde vzhledem k jednoduchosti trochu nadnesené, takže jako nadpis jsem použil raději výraz panel s tlačítky. Myslím, že na funkci není příliš co vysvětlovat. K jednotlivým tlačítkům jsou připojeny rezistory různé velikosti, což umožní rozeznat, které stiskneme. Z jednoduchého zapojení ovšem vyplývá, že problém nastane, pokud stiskneme třeba dvě tlačítka naráz.

Rezistory jsem volil s ohledem na jejich dostupnost v obchodě a rovnoměrné rozestupy mezi RAW hodnotami tlačítek (Pokud netušíte jak jsem hodnotu vypočetl, pročtěte si začátek této stránky). Samotná tlačítka jsou obyčejná, provedení do panelu. Plastová krabička by se hodila nižší, ale žádnou přesně padnoucí jsem nesehnal, nicméně do ruky sedí dobře. Celková cena součástek by neměla překročit 80Kč, ale nepočítám LEGO konektor pro pohodlné připojení k RCX. No dost už popisování, lépe poslouží tabulka vpravo a obrázky níže. (Výsledky v tabulce jsem zaokrouhlil)

Schéma zapojení Hotový panel s tlačítky Hotový panel s tlačítky - vnitřek

- Stránka vytvořena 5. února 2009 -

- Aktualizováno 22. března 2009 -