紅外線遙控器是家中常見的控制電器的裝置,micro:bit如果裝上紅外線LED以及紅外線接收器,便可以發射以及接收紅外線訊號,進而控制其他的東西,或是用紅外線來控制micro:bit。一般家中使用的紅外線大部份是38KHZ頻率的紅外線,因此必須購買的接收器也必須是38KHZ頻率的才行。紅外線發射以及接收都是利用紅外線的脈衝送出0或是1的訊號,因此,發射紅外線就是把數字訊號編碼成二進位,然後以脈衝的型式發送出去。接收時,也是由接收器吸收紅外線脈衝,然後要寫程式將這些脈衝解碼成為數字訊號,不同的家電廠商的紅外線訊號格式都不一樣,NEC、SONY、PANASONIC等等不同的廠商,訊號編碼都不同,目前來說,NEC算是比較廣泛運用的編碼,許多arduino自走車所附的遙控器也大部份是NEC的格式,所以,我先完成的便是NEC格式的紅外線編碼及解碼。這中間的編碼及解碼的動作有些複雜,一般人可能處理不來,為了讓使用micro:bit的人有更好的使用體驗,所以我設計了micro:bit在makecode裡的紅外線積木,讓一般人也可以進入紅外線操控microbit的殿堂。
目前只能接收NEC編碼的紅外線,接收後會得到「編碼方式」以及「紅外線訊息」,可以利用以下的程式接收紅外線之後,將其訊息記錄下來,便可以用來發射紅外線訊息。例如,利用以下程式接收電視遙控器的電源訊號,並將其訊號記錄下來,接下來就可以用紅外線LED發射這個訊號,就可以控制電視的開和關了。
發射紅外線訊號可以有二種方式,所以有二個發射的積木:
1.如果知道要發射的紅外線訊息是什麼,便可以直接將訊息輸入進積木,選擇編碼方式,便可以發射紅外線(以下範例的當A鍵被按下)
2.如果有接收器接收到訊號,可以將接收到的訊號以及編碼方式直接塞入發射訊息的積木中,便可以發射紅外線(以下範例的當B鍵被按下)
PS.不建議同時安裝紅外線LED以及接收,因為micro:bit發射紅外線光的時候,如果沒有適當的阻隔,接收器也會收到自己的紅外線LED發出的訊號而互相干擾。