10

編者注:本項目由HactiCs發表于Instructables上,講解了如何DIY一個使用遙控器控制計算機的小設備的過程,其中涉及到的程序作者都已提供,趕緊來學習一下吧。
遙控器現在已經成為電視機、空調、機頂盒等設備的標配,但是隨著計算機的普及,許多年輕人對電視機已經沒有了需求,最多也只是用來作為連接游戲機的顯示器。那對于只有電腦的年輕人來說,如果電腦放在桌子上,又該怎么方便地坐在床上看片呢?
今天的這個教程將告訴你如何使用Arduino開發板和紅外接收器為自己的電腦制作一個遙控器。這樣不僅能讓你坐在床上輕松看片,還能用來作為PPT遙控器哦。下面就開始行動吧:
Arduino UNO
紅外接收器
紅外遙控器
Arduino IDE
Microsoft Visual Basic 2010 Express
一些庫
看得出來,這個項目需要的硬件非常簡單。
首先我們看看如何使用Arduino和遙控器控制LED燈。連接過程非常簡單,只需要像下圖一樣進行連接即可。

本項目最為關鍵的還是代碼,但在使用以下代碼之前,你需要現在開發環境中配置紅外庫,你可以在GitHub上下載,也可以在PJRC上了解更多。
具體的代碼如下:
#include
int RECV_PIN = 3;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); //啟動接收器
pinMode(13,OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) {// irrecv.decode(&results) :如果收到代碼則返回true
Serial.println(results.value, HEX); //檢查你按下紅外遙控器上的按鈕的代碼
if(results.value==0xFA08F7) // 0x代表十進制數
{
digitalWrite(13,HIGH); //LED開啟
else
digitalWrite(13,LOW); //LED關閉
delay(300);// 延遲以避免0xFFFFFFF
irrecv.resume (); // 接收下一個值
}
}
等你熟悉了如何遙控LED之后,我們該試試遙控電腦了。為了實現這一目標,我們需要用到Visual Basic中的一個SendKeys.Send(“”)指令,該指令可以在電腦上模擬空格鍵,然后你可以借此控制在線視頻或本地播放器的播放。以下是實現這一功能的代碼部分:
If data = "1" Then
SendKeys.Send(" ")
TextBox1.Text = "SPACE"
End If
而Arduino中對應的代碼為:
if(results.value==0xFA10EF)
Serial.write('1');
解釋:當你按下代碼是0xFA10EF的按鈕時,Arduino會發送“1”到電腦的串口。這時使用Visual Basic編寫的程序將會從串口接受到數據1,然后通過軟件的方式模擬空格點擊,從而控制視頻的播放和停止,當然這也可以用來控制PPT演示。
如果你覺得Visual Basic實在太難了,不要擔心,下載鏈接在下面:

接下來就需要配置你的紅外遙控器代碼了,這個步驟和上面第二步的差別不大,只不過我們需要發送一個特定的返回值到電腦的Arduitop.exe。接下來將改好的代碼寫入Arduino,完成之后打開Arduitop.exe,選擇Arduino所連接的COM口,點擊init執行。

這一步對Visual Basic的要求較高,作者提供的參考代碼點此下載:IR PROJECT.rar。
通過對該代碼進行適當的修改,你還能實現音量控制、快進快退等常見的電視功能,如下視頻:
2015-2016賽季全球創客馬拉松北理工珠海學院站已經開始接受報名啦!關注“硬創邦”(微信號:leiphone_bang),回復“北理工”即可參與報名!此外還可加入全球創客馬拉松主群(群號:259592983),參與我們的互動討論~

雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。