|
|
Vlastní senzory pro MindstormsMož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. PotenciometrJá 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) 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. Technické podrobnosti
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
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) |