Infra dálkový ovladač a tento způsob dálkového ovládání známe jistě všichni ze spotřební elektroniky. Televize, domácí kina, projektory, přehrávače, ale i garážová vrata, klimatizace, brány a další spotřebiče. To všechno často ovládáme pomocí různých dálkových ovladačů. Člověk na tu věc jednoduše ovladačem zamíří, zmáčkne tlačítko a ona udělá, co je třeba. Musí mít samozřejmě v ruce ten správný ovladač, což je zvláště v poslední době trochu problém, protože vlastní ovladač má doslova kde co. Pravděpodobnost, že nám nějaký dálkový ovladač zůstane po vyřazené elektronice na vlastní pokusy, je tedy dost vysoká.
Nakonec cena nového DIY ovladače s příslušenstvím není také závratná. V bastlení můžeme IR dálkový ovladač využít třeba na ovládání microbit robota, hry nebo nějakého projektu. A na to se dnes podíváme! Použití dálkového ovladače je velmi jednoduché a tak to zvládnou i začátečníci. V článku si ukážeme, jak dekódovat signál z dálkového ovladače, který vysílá infra signál s protokolem kódování NEC. Získané zkušenosti pak využijeme pro ovládání robůtka Cutebot. V článku nebudu rozebírat moc teorii kódování signálu, ale budeme se zabývat více praktickými věcmi.
Dálkový ovladač s protokolem NEC
NEC kódování je u dálkových ovladačů velmi běžné. Většina ovladačů, které jsem doma otestoval, vysílala data ve formátu NEC. Testoval jsem 10 ovladačů od spotřební elektroniky pořízené cca za posledních 10 let a pouze z jednoho ovladače nešel signál detekovat. Více o různých typech modulace a kódování pro IR datový přenos se dozvíte zde.
Pro dekódování jsem využil IR přijímač ze sady IR dálkového ovládání a zapojil jsem ho k microbitu na port 16. Přijímač by bylo možné připojit k microbitu i pomocí kablíků s krokodýli, ale přehlednější je to s využitím nějaké rozšiřující desky. Já jsem použil jednouchou desku Senzor:bit. Pro zobrazení kódů jsem využil malinký OLED displej, který je součástí microbit sady pro chytrou domácnost. Data by bylo možné zobrazit samozřejmě i na matici microbitu, ale OLED displej mi umožnil zpracovat vše rychleji. OLED displej stačí píchnou to konektoru s I2C sběrnicí, jako je to na obrázku.
Následující program zjišťuje přítomnost datagramu přijatého z dálkového ovladače. Pokud se objeví, tak ho program zobrazí na OLED displeji. V programu jsem využil rozšíření MakerBit IR Receiver od Keyestudio a SmartHome od Elecfreaks. Následující bloky si můžete rovnou otevřít v makecode. Pokud vůbec nevíte, jak na to, tak mrkněte nejdříve na článek s úvodem do makecode.
Tabulka získaných datagramů pro jednotlivá tlačítka
Postupným testováním tlačítek dálkového ovladače jsem získal následující tabulku. V datagramu se mění vždy jen polední 4 znaky. Podobně by šlo vytvořit tabulku i pro jiný IR dálkový ovladač a pak ho využít ve vlastním projektu.
Klávesa | Datagram |
1 | 0x00FFA25D |
2 | 0x00FF629D |
3 | 0x00FFE21D |
4 | 0x00FF22DD |
5 | 0x00FF02FD |
6 | 0x00FFC23D |
7 | 0x00FFE01F |
8 | 0x00FFA857 |
9 | 0x00FF906F |
* | 0x00FF6897 |
0 | 0x00FF9867 |
# | 0x00FFB04F |
↑ | 0x00FF18E7 |
↓ | 0x00FF4AB5 |
→ | 0x00FF5AA5 |
← | 0x00FF10EF |
OK | 0x00FF38C7 |
Dálkové ovládání robůtka Cutebot
A teď se podíváme, jak získaná data využít k ovládání robůtka Cutebot. Jezdící robot Cutebot je ideální pomůcka pro hravou výuku programování, tak k tomuto účelu dobře poslouží. Program je opět velmi jednoduchý. Pro požadované klávesy jsem přidal konkrétní akce robota Cutebot. Směr pohybu se ovládá šipkami, tlačítko OK robota zastaví. Pomocí * si zapnu přední světlomety a pomocí # je vzpnu. Takto by šlo naprogramovat různé funkce pro každé tlačítko. Robot Cutebot má vlastní IR přijímač připojený na pinu 16, tak už nemusím nic připojovat. Pokud budete program tvořit sami, nezapomeňte nejprve nainstalovat rozšíření Cutebot.
To bylo jednoduché, co dál?
Možností využití IR dálkového ovladače je nespočet. Ať už bude váš projekt mini vozítko s microbitem nebo automatické zapnutí klimatizace podle teploty u vašeho pracovního stolu, určitě to bude stát za to a člověk se na tom naučí nové věci. Pokud budete chtít vyzkoušet IR ovládání s Arduinem, pak se podívejte na návod pro bezdrátové ovládání pomocí IR ovladače. Zajímavý je také projekt Arduino překladač signálů z TV.