新DiFi第17課紅外線遙控(機器人)

[紅外線發射器][紅外線接收器]

市面上很多遙控器都是紅外線遙控器,就是從遙控器端(紅外線發射器)透過紅外線通訊技術發出特定的編碼,然後由紅外線接收器(電視機)接收,進行解碼並執行相關功能,例如:開啟電視機的電源、加大或減少音量、切換頻道等。常見的載波頻率為38kHz,因為生活周遭的物品都會散發出不定程度的紅外線,為了避免干擾,設計紅外線接收器時便讓它只對特定載波頻率有反應。不同廠牌的遙控器可能會使用不同的載波頻率。(註1)

要檢查遙控器(紅外線發射器)是否有發出訊號,請將遙控器對準手機鏡頭,然後按下按鍵,觀察手機螢幕,就會看到螢幕上顯示閃爍的微弱紅光(註2)

注意:請先將DiFi板子連接電腦後,再接杜邦線。

如果先將[IR_R]和數位腳接在一起後,再將DiFi板子連接電腦,會造成WFduino無法使用(韌體版本空白)

新DiFi板子上已經有發射器和接收器,只要使用WFduino的遙控器積木就可以操作設計程式。

1.紅外線讀取在腳位(…)

設定用第…腳位當接收器來讀取紅外線的編碼

2.讀取感測器(IR)參數(Value)

讀取接收器收到的編碼數據

3.發射紅外線碼(…)在腳位(..)

將已知的紅外線碼從第(..)腳位發射出去,達到遙控的目的。

注意:學習板非專供紅外線遙控使用,沒有過濾雜訊功能,測試時可能會遇到電腦及環境雜訊干擾。

接線圖:

1.使用母-母杜邦線將[IR_R]和D2連接,[IR_E]和D3連接。

2.使用Jump直接將D5和LEDB、D6和LEDR、D7和LEDG兩兩接上。

注意:請先將DiFi板子連接電腦後,再接杜邦線。

一、擷取(接收)紅外線編碼

(下面測試使用投影機的紅外線遙控器,您可以視您的設備來改變,例如:電視遙控器)

1.製作變數[紅外線碼]來儲存要擷取的紅外線編碼

2.[腳位2模式設為INPUT],設定腳位2為輸入。

3.等待1秒,原來預設腳位2是輸出,需要在設定之後加一個等待時間,讓程式有時間設定為輸入。

4.[紅外線讀取在腳位(2)],設定擷取紅外線編碼的接收器在第2腳位

5.設定變數(紅外線碼)為 [ 讀取感測器(IR)參數(Value) ],擷取接收器收到的編碼數據。

6.重複執行擷取編碼的動作。

按下綠旗開始執行擷取編碼,同時按下遙控器上的按鍵,看到變數已經有填上編碼,就可以按紅色停止圖示。

程式下載擷取編碼測試.sb2

二、傳密碼遊戲(紅外線發射、接收測試)

2組同學操作程式,互相發射與接收紅外線碼,傳送密碼。

 

注意:

記得要切換[輸入法]為[],當輸入法不對時,鍵盤按鍵對應的值是錯的,無法正確反應動作。  

 

甲隊(電腦A)、發射

填上密碼後,按下鍵盤上的[空白鍵],就會發射訊號

乙隊(電腦B)、接收

執行上面擷取編碼程式,看看是否收到編碼(密碼)。

程式下載紅外線互傳.sb2

延伸

1.使用投影機的紅外線遙控器或電視遙控器,發射編碼成為密碼,互相發射與接收。

2.使用電視遙控器對著新DIFI板子上的紅外線接收器發射,上面程式做儲存編碼,再將新DIFI板子上的紅外線發射器直接對著電視發射儲存的編碼,看看電視的反應結果是否正確。

3.收到編碼後做程式控制,例如:按下遙控器上的[左]按鍵,讓小貓往左走,按下遙控器上的[右]按鍵,讓小貓往右走。

三、擷取遙控器編碼存檔

將遙控器的紅外線碼儲存成文字檔,方便使用。

注意:

輸入按鍵名稱後記得要切換[輸入法]為[英],當輸入法不對時,鍵盤按鍵對應的值是錯的,無法正確反應動作。  

1.製作變數及清單儲存資料,方便檢視。

2.[delete(…)of(…)],先清空清單內容。

3.[提問(請輸入遙控器讀取後存檔的檔名)並等待],輸入要儲存的檔案名稱。

4.[設定變數(檔名)為…..],預設將檔案存在D槽根目錄。

5.[提問(請輸入按鍵名稱)並等待],輸入要儲存編碼的按鍵名稱。

6.[說(請將遙控器對準紅外線接收器,按下按鍵直到看到[紅外線碼]變數改變,再按[空白鍵]換讀取下一個,結束讀取請按[向上鍵]) ],說明操作方式。

7.接收到紅外線編碼後,按[空白鍵],將紅外線編碼存到清單及文字檔。

注意:

1.輸入按鍵名稱後記得要切換[輸入法]為[英],當輸入法不對時,鍵盤按鍵對應的值是錯的,無法正確反應動作。  

2.最後結束前還是要先輸入按鍵名,才可以按[向上鍵],結束。最後一筆資料是錯的 。

程式下載擷取遙控器(編碼存檔).sb2

四、讀取編碼檔

讀取儲存紅外線編碼檔案裡面的編碼資料。

讀取檔案裡面的編碼資料,用清單列表顯示。

對於比較長的編碼(含有[,])就不適用。

程式下載讀取編碼檔.sb2

五、遙控器控制LED

使用遙控器控制新DiFi學習板上的RGB LED。

按下[5]亮藍色、[1]藍色熄滅、[6]亮紅色、[2]紅色熄滅、[7]亮綠色、[3]綠色熄滅、[0]全部顏色燈熄滅

A、執行前面 [ 讀取遙控器(編碼存檔) ]程式,將遙控器編碼存成文字檔案。

B、控制亮燈

1.製作變數[紅外線碼]來儲存要讀取的紅外線編碼

2.[腳位2模式設為INPUT],設定腳位2為輸入。

3.等待1秒,原來預設腳位2是輸出,需要在設定之後加一個等待時間,讓程式有時間設定為輸入。

4.[紅外線讀取在腳位(2)],設定讀取紅外線編碼的接收器在第2腳位

5.設定變數(紅外線碼)為 [ 讀取感測器(IR)參數(Value) ],讀取接收器收到的編碼數據。

6.重複執行讀取編碼並判斷收到的編碼是否相符然後做動作(LED亮燈或熄滅)。

7.可以直接打開編碼文字檔,找到對應按鍵的編碼,直接複製貼上。

程式下載遙控器控制LED.sb2

六、遙控電視

使用新DiFi學習板的紅外線發射器來控制電視。

範例為使用電腦鍵盤的上、下、左、右鍵控制頻道往上、下,音量減少、增加

A、執行前面 [ 擷取遙控器(編碼存檔) ]程式,將電視遙控器的指令編碼存成文字檔案。

B、使用編碼來控制電視

1.使用[WiFi通訊位址……],電腦使用WiFi無線連接新DiFi學習板。

2.設定指令變數為[電視遙控器的指令編碼],可以直接打開前面儲存的編碼文字檔,找到對應按鍵的編碼,直接複製貼上。例如:設定變數(頻道往上)為20DF00FF

3.當按下[向上鍵]就從數位腳3發射[頻道往上]的紅外線編碼,讓電視頻道往上。

4.其他指令也是以此類推。

程式下載遙控電視.sb2

延伸

1.錄製更多電視遙控器的紅外線編碼,增加更多功能。

2.參考新DiFi第13課繼電器(http://blog.ilc.edu.tw/blog/blog/868/post/104089/678442)中計時器單元,將控制繼電器部分改成控制發射紅外線發射器,設定時間讓電視自動開機、關機。

3.擷取冷氣機、音響的紅外線編碼,設定時間讓冷氣機、音響自動開機、關機。

七、遠端遙控機器人

使用新DiFi學習板來控制[羅本艾特]機器人。

[羅本艾特]機器人就是使用紅外線遙控器來控制動作,所以也可以用新DiFi學習板的紅外線發射器來遙控。

因為可以使用WiFi無線連接,也可以透過遠端的攝影機監看,遠端無線控制機器人的動作。

範例為使用上、下、左、右鍵控制前進、後退、左轉、右轉

A、執行前面 [ 擷取遙控器(編碼存檔) ]程式,將機器人遙控器的指令編碼存成文字檔案。

B、使用編碼來控制動作

1.使用[WiFi通訊位址……],電腦使用WiFi無線連接新DiFi學習板。

2.設定指令變數為[機器人遙控器的指令編碼],可以直接打開前面儲存的編碼文字檔,找到對應按鍵的編碼,直接複製貼上。

3.當按下[向上鍵]就從數位腳3發射[前進]的紅外線編碼,讓機器人往前走。

4.其他指令也是以此類推。

5.因為網路傳輸訊號,怕有中斷時,機器人不受控制,所以每個指令都執行3秒,就停止。怕沒收到停止訊號,所以重複發射止訊號。

程式下載遙控機器人.sb2

延伸:

錄製更多紅外線編碼,增加更多功能

八、避障自走人

機器人遇到障礙物自動會後退、轉彎,再前進。

在新DiFi學習板上加上超音波感測器線路,然後安置到[羅本艾特]機器人身上,超音波感測器的Vcc接5V,Gnd接地,Echo接腳位5,Trig接腳位6

1.先點一下[WiFi通訊位址……],確定可以電腦可以使用WiFi無線連接到新DiFi學習板。

2.設定指令變數為[機器人遙控器的指令編碼],可以直接打開前面儲存的編碼文字檔,找到對應按鍵的編碼,直接複製貼上。

3.重複執行超音波偵測,如果超音波偵測值小於40(前面有撞到障礙)就停止、後退、右轉,再繼續前進。

注意:

1.超音波感測器位置請適當調整。

2.指令中間需要有等待時間,不可以密集下達指令,會造成機器人當機。

3.程式的參數部分可以視偵測結果自由發揮。

程式下載避障自走人.sb2

九、冰山美人

當有人靠近時機器人時,機器人就往後退。

1.先點一下[WiFi通訊位址……],確定可以電腦可以使用WiFi無線連接到新DiFi學習板。

2.設定指令變數為[機器人遙控器的指令編碼],可以直接打開前面儲存的編碼文字檔,找到對應按鍵的編碼,直接複製貼上。

3.重複執行超音波偵測,如果超音波偵測值小於40(前面有人)就後退。

注意:

1.超音波感測器位置請適當調整。

2.指令中間需要有等待時間,不可以密集下達指令,會造成機器人當機。

3.程式的參數部分可以視偵測結果自由發揮。 

程式下載冰山美人.sb2

十、跟屁蟲

機器人跟在主人後面,主人往前走,機器人就往前走,主人停止,機器人就停止。

1.先點一下[WiFi通訊位址……],確定可以電腦可以使用WiFi無線連接到新DiFi學習板。

2.設定指令變數為[機器人遙控器的指令編碼],可以直接打開前面儲存的編碼文字檔,找到對應按鍵的編碼,直接複製貼上。

3.重複執行超音波偵測,如果超音波偵測值大於40(主人往前走了),就前進跟上。

注意:

1.超音波感測器位置請適當調整。

2.指令中間需要有等待時間,不可以密集下達指令,會造成機器人當機。

3.程式的參數部分可以視偵測結果自由發揮。 

延伸

設計讓主人後退時,機器人也會後退走

程式下載跟屁蟲.sb2

十一、進京趕考機器人

當燈暗時,機器人停止不動,燈亮時,機器人往前走。

使用Jump直接將A0和[PhotoR](光敏電阻)接上。

1.先點一下[WiFi通訊位址……],確定可以電腦可以使用WiFi無線連接到新DiFi學習板。

2.[腳位A0模式設為INPUT]:設定類比腳位A0模式為輸入。

3.設定指令變數為[機器人遙控器的指令編碼],可以直接打開前面儲存的編碼文字檔,找到對應按鍵的編碼,直接複製貼上。

4.重複執行,讀取A0的值,如果A0的值大於900,就發送前進指令。

注意

1.程式的參數部分可以視偵測結果自由發揮。

2.指令中間需要有等待時間,不可以密集下達指令,會造成機器人當機。

程式下載進京趕考機器人.sb2

十二、123木頭人(玩具總動員)

夜深時,機器人偷偷跑出來玩囉。

當燈暗時,機器人往前走,燈亮時,機器人停止不動。

1.先點一下[WiFi通訊位址……],確定可以電腦可以使用WiFi無線連接到新DiFi學習板。

2.[腳位A0模式設為INPUT]:設定類比腳位A0模式為輸入。

3.設定指令變數為[機器人遙控器的指令編碼],可以直接打開前面儲存的編碼文字檔,找到對應按鍵的編碼,直接複製貼上。

4.重複執行,讀取A0的值,如果A0的值小於900,就發送前進指令,如果A0的值大於900,就發送停止指令。

注意:

1.程式的參數部分可以視偵測結果自由發揮。

2.指令中間需要有等待時間,不可以密集下達指令,會造成機器人當機。

程式下載123木頭人.sb2

十三、溫度感應機器人

使用在新DiFi學習板上內建的,DHT11溫溼度感測器,偵測環境溫度。溫度太高時,機器人就逃走,溫度降到舒適溫度,機器人就停下來休息一下。 

使用Jump直接將D1和[DHT](DHT11溫溼度感測器)接上。

1.先點一下[WiFi通訊位址……],確定可以電腦可以使用WiFi無線連接到新DiFi學習板。

2.[腳位1模式設為INPUT],設定數位腳D1為輸入訊號。

3.設定指令變數為[機器人遙控器的指令編碼],可以直接打開前面儲存的編碼文字檔,找到對應按鍵的編碼,直接複製貼上。

3.重複執行下面的動作。

4.[溫溼度感測器(11)在腳位(1)],設定數位腳D1接收來自DHT11的訊號

5.[等待1秒],因為DHT11需要做資料轉換,每筆資料的抓取時間不能太快。

6.如果溫度大於28度,就發送前進指令,如果溫度小於28度,就發送停止指令。

注意:

1.指令中間需要有等待時間,不可以密集下達指令,會造成機器人當機。

2.程式的參數部分可以自由發揮。 

程式下載溫度感應機器人.sb2

十四、溫度測量機器人

不用出門就可以知道家裡外面的溫溼度,使用DiFi內建的DHT11溫溼度感測器,偵測外面環境溫度。

讓機器人帶著新DiFi學習板走到戶外,就可以透過無線WiFi連線在室內監看戶外的溫溼度。

1.先點一下[WiFi通訊位址……],確定可以電腦可以使用WiFi無線連接到新DiFi學習板。

2.[腳位1模式設為INPUT],設定數位腳D1為輸入訊號。

3.設定指令變數為[機器人遙控器的指令編碼],可以直接打開前面儲存的編碼文字檔,找到對應按鍵的編碼,直接複製貼上。

3.重複執行下面的動作。

4.[溫溼度感測器(11)在腳位(1)],設定數位腳D1接收來自DHT11的訊號

5.[等待1秒],因為DHT11需要做資料轉換,每筆資料的抓取時間不能太快。

6.搭配監視器,用鍵盤操控機器人走到戶外,就可以在螢幕上看到戶外的溫溼度。

程式下載:溫度測量(機器人).sb2

十五、機器人祝您生日快樂

當燈暗時,機器人停止不動,燈亮時,機器人往前走,唱生日快樂,再跳舞表演。

使用光敏電阻感應光線變化,蜂鳴器發出音樂。

使用Jump直接將A0和[PhotoR](光敏電阻)、D8和BEEP(蜂鳴器)兩兩接上。

1.先點一下[WiFi通訊位址……],確定可以電腦可以使用WiFi無線連接到新DiFi學習板。

2.[腳位A0模式設為INPUT]:設定類比腳位A0模式為輸入。

3.設定指令變數為[機器人遙控器的指令編碼],可以直接打開前面儲存的編碼文字檔,找到對應按鍵的編碼,直接複製貼上。

4.重複執行,讀取A0的值,如果A0的值大於900(光敏電阻感應到亮光),就發送前進指令,然後唱生日快樂歌(新DiFi板子上的蜂鳴器),然後再跳舞。

程式下載生日快樂(機器人).sb2

———————————–

註1:

http://yehnan.blogspot.tw/2013/05/arduino.html

每家廠商都有其一套專屬的紅外線通訊協定(protocol),知名的有NEC、SONY、Philips的RC5與RC6、Toshiba、Sharp等,這也就是為什麼這一家的遙控器不能控制那一家的電視機。還好WFduino已經幫我們準備好了,一般常見的紅外線協定都有支援。

註2:

http://www.masters.tw/138811/night-vision

若將遙控器對準手機鏡頭來發射紅外線時,手機螢幕上通常能顯示閃爍的微弱紅光(註:iPhone無此現象),這是因為手機鏡頭中的紅外線濾鏡濾除的不夠徹底所致。

註3:

關於紅外線控制的那些事

https://medium.com/@tih/%E9%97%9C%E6%96%BC%E7%B4%85%E5%A4%96%E7%B7%9A%E6%8E%A7%E5%88%B6%E7%9A%84%E9%82%A3%E4%BA%9B%E4%BA%8B-7e9848eb5b7e

————————-

相關連結:

新DiFi課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/104089/678192

WFduino(Arduino)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433 

DIY萬能遙控器
http://www.masters.tw/89771/diy%E8%90%AC%E8%83%BD%E9%81%99%E6%8E%A7%E5%99%A8?utm_campaign=shareaholic&utm_medium=facebook&utm_source=socialnetwork

roc

宜蘭縣國小資訊小站

您可能也會喜歡…