Přejít k navigační liště

Zdroják » Různé » Programovací úloha: Vidět infračervené světlo

Programovací úloha: Vidět infračervené světlo

Články Různé

Ukážeme vám další z úloh do kroužků programování, která využívá roboty Meet Edison.

Text vyšel původně na autorově webu.

Mezi první úlohy, které zkoušíme s roboty Meet Edison, patří program „vyhýbej se překážkám“ a řízení dálkovým ovladačem (třeba od televize). To je příležitost vysvětlit si, jak to funguje pod pokličkou, a probrat tak infračervené světlo.

Úvod

Z didaktického hlediska záleží na vás, co chcete všechno s dětmi probrat. Neosvědčila se mi frontální přednáška. Spíš sonduju, co vědí (rády se pochlubí) a následně to vhodně rozvinu.

Když se řekne světlo, často máme na mysli viditelnou část elektromagnetického záření. Spektrum je však mnohem širší.

Nejblíže viditelnému světlu je nám neviditelné ultrafialové záření, kterému se víc věnovat nebudeme. Z mnoha využití jmenujme například dezinfekci nebo kontrolu bankovek.

Na opačné straně viditelného světla najdeme infračervené světlo. Toho se prakticky využívá v přístroji pro noční vidění (neodolám a musím zmínit článek o uniformách americké armády, který popisuje, že maskování musí fungovat ve dne i v noci). Dále se infračerveného světla využívá pro vyhledávání ohnisek požárů pomocí termovize. Povídání je vhodné doplnit obrazovým materiálem. Je to divácky velmi atraktivní.

Pro potřeby kroužku programování nás nejvíc zajímá dálkové ovládání a detekce překážek. Dálkové ovládání pomocí infračerveného světla pošle nějaké číslo, na které je namapovaná v přístroji určitá akce. Až při přípravě tohoto příspěvku jsem si ze školy vzpomněl, že abyste signál odlišili od všudypřítomného infračerveného světla, tak ho musíte modulovat (to je informace spíš pro zvídavé lektory než pro děti). Pro vyhýbání překážek se využívá toho, že infračervené světlo se odráží, takže robot něco vyzáří a měří, co se mu vrátí.

Pro názorné ukázky a ladění problémů se nám zrovna nehodí, že infračervené světlo není vidět. Bohužel si ho ani nevyfotíme, jelikož fotoaparáty mají předřazený filtr, který infračervené světlo tlumí, protože čipy jsou na něj velmi citlivé. Existuje obor, který se soustředí na focení infračerveného světla.

Jak je tedy možné „vidět“ infračervené světlo? Můžeme si sestavit jednoduché Arduino udělátko.

Arduino

Martin Javorek napsal článek Jak si vypsat hodnotu, kterou ví jen robot Edison (pokus o debugging), který trochu předžvýkám a zjednoduším. Ještě jsem našel podrobný anglický článek How to Set Up an IR Remote and Receiver on an Arduino.

Přeskočím úvod do Arduina, který můžete najít jinde.

Kromě Arduina budeme potřebovat doinstalovat knihovnu IRremote a doslova za pár korun pořídit čidlo, například VS 1838B.

Schéma zapojení

Autor obrázku: Martin Javorek

Popis nožiček senzoru VS 1838B

Autor obrázku: Martin Javorek

Zdrojový kód

Procházel jsem mnoho tutoriálů a chvíli mi trvalo, než jsem zjistil, že nefungují, protože knihovna lehce změnila svoje API. V dokumentaci je to sice popsané, ale tam jsem hned nekoukal.

Funkční řešení pro verzi IRremote 4.0.0

#include <IRremote.hpp>

const int RECV_PIN = 13;
IRrecv irrecv(RECV_PIN);

void setup() {
    Serial.begin(9600);
    irrecv.enableIRIn();
}

void loop() {
    if (IrReceiver.decode()) {
        IrReceiver.printIRResultShort(&Serial);
        IrReceiver.printIRSendUsage(&Serial); 
        irrecv.resume();
    }
}

Záznam pro stisk tlačítka pak může vypadat například takto (pro každé tlačítko něco jiného):

Protocol=NEC Address=0x1000 Command=0x15 Raw-Data=0xEA151000 32 bits LSB first Send with: IrSender.sendNEC(0x1000, 0x15, <numberOfRepeats>);

Budeme-li sledovat Edisona, který se vyhýbá překážkám, tak můžeme číst něco podobného:

Protocol=UNKNOWN Hash=0x0 1 bits (incl. gap and start) received
Protocol=UNKNOWN Hash=0x0 1 bits (incl. gap and start) received
Protocol=UNKNOWN Hash=0x0 1 bits (incl. gap and start) received
Protocol=UNKNOWN Hash=0x0 2 bits (incl. gap and start) received
Protocol=UNKNOWN Hash=0x0 1 bits (incl. gap and start) received
Protocol=RC5 Address=0x0 Command=0x40 Repeat gap=11750us
Protocol=UNKNOWN Hash=0x0 1 bits (incl. gap and start) received
Protocol=RC5 Address=0x0 Command=0x40 Repeat gap=11750us
Protocol=RC5 Address=0x0 Command=0x40 Repeat gap=24200us
Protocol=RC5 Address=0x0 Command=0x40 Repeat gap=11750us
Protocol=RC5 Address=0x0 Command=0x40 Repeat gap=11750us
Protocol=RC5 Address=0x0 Command=0x40 Repeat gap=24300us
Protocol=UNKNOWN Hash=0x0 1 bits (incl. gap and start) received
Protocol=RC5 Address=0x0 Command=0x40 Repeat gap=11800us
Protocol=RC5 Address=0x0 Command=0x40 Repeat gap=11800us
Protocol=RC5 Address=0x0 Command=0x40 Repeat gap=11750us
Protocol=UNKNOWN Hash=0x0 1 bits (incl. gap and start) received
Protocol=RC5 Address=0x0 Command=0x40 Repeat gap=11750us
Protocol=UNKNOWN Hash=0x0 1 bits (incl. gap and start) received
Protocol=UNKNOWN Hash=0x0 1 bits (incl. gap and start) received
Protocol=UNKNOWN Hash=0x0 1 bits (incl. gap and start) received
Protocol=UNKNOWN Hash=0x0 1 bits (incl. gap and start) received

Meet Edison

Roboti Meet Edison si mezi sebou můžou posílat a přijímat signály pomocí infračerveného světla. Na tom jsem postavil úlohu železniční přejezd.

Martin Javorek v článku Jak si vypsat hodnotu, kterou ví jen robot Edison (pokus o debugging) empiricky namapoval signály na čísla. Meet Edison protokol je popsaný v Edison Infrared Communication Protocol. Knihovna IRremote tento protokol (zatím, pokud nikdo nedopíšete) nepodporuje.

Závěr

Ukázali jsme si, co to je infračervené světlo a k čemu se prakticky používá. Vyzkoušeli jsme si způsob, jak můžeme infračervené světlo vidět a sledovat, co se v éteru děje. Pokročilé diagnostice robotů Meet Edison se budu možná věnovat někdy později. Chtěl jsem si především připravit udělátko na demonstraci dálkového ovladače.

Související

Komentáře

Odebírat
Upozornit na
guest
0 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
Zobrazit všechny komentáře

Přístupnost není jen o splnění norem: nový pohled na inkluzivní design

Přístupnost a inkluze možná nepatří mezi nejžhavější témata digitálního světa – dokud o nich nezačne mluvit Vitaly Friedman. Na WebExpo 2024 předvedl, že inkluzivní design není jen o splněných checkboxech, ale hlavně o lidech. S energií sobě vlastní obrátil zažité přístupy naruby a ukázal, že skutečně přístupný web je nejen možný, ale i nezbytný.

Efektivnější vývoj UI nebo API: Co si odnést z WebExpo 2025?

Různé
Komentáře: 0
Jak snadno implementovat moderní uživatelské rozhraní? Které funkce brzdí rychlost vašeho webu? A kdy raději sami přibrzdit, abychom využitím AI nepřekročili etické principy? Debatu aktuálních dev témat rozdmýchá sedmnáctý ročník technologické konference WebExpo, která proběhne v Praze od 28. do 30. května. Který talk či workshop si rozhodně nenechat ujít? Toto je náš redakční výběr z vývojářských hroznů.

Zapřáhněte AI jako nikdy předtím. Květnová konference WebExpo přivítá hvězdy technologického světa

Od 28. do 30. května 2025 promění pražský Palác Lucerna na tři dny technologická konference WebExpo. Na programu je více než 80 přednášek a workshopů od expertů z celého světa. WebExpo tradičně propojuje vývojáře, designéry, marketéry i byznysové lídry a nabízí praktické dovednosti, strategické myšlení a přináší nejnovější trendy nejen v oblasti AI.