10
編者注:本項目由HactiCs發(fā)表于Instructables上,講解了如何DIY一個使用遙控器控制計算機(jī)的小設(shè)備的過程,其中涉及到的程序作者都已提供,趕緊來學(xué)習(xí)一下吧。
遙控器現(xiàn)在已經(jīng)成為電視機(jī)、空調(diào)、機(jī)頂盒等設(shè)備的標(biāo)配,但是隨著計算機(jī)的普及,許多年輕人對電視機(jī)已經(jīng)沒有了需求,最多也只是用來作為連接游戲機(jī)的顯示器。那對于只有電腦的年輕人來說,如果電腦放在桌子上,又該怎么方便地坐在床上看片呢?
今天的這個教程將告訴你如何使用Arduino開發(fā)板和紅外接收器為自己的電腦制作一個遙控器。這樣不僅能讓你坐在床上輕松看片,還能用來作為PPT遙控器哦。下面就開始行動吧:
Arduino UNO
紅外接收器
紅外遙控器
Arduino IDE
Microsoft Visual Basic 2010 Express
一些庫
看得出來,這個項目需要的硬件非常簡單。
首先我們看看如何使用Arduino和遙控器控制LED燈。連接過程非常簡單,只需要像下圖一樣進(jìn)行連接即可。
本項目最為關(guān)鍵的還是代碼,但在使用以下代碼之前,你需要現(xiàn)在開發(fā)環(huán)境中配置紅外庫,你可以在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代表十進(jìn)制數(shù)
{
digitalWrite(13,HIGH); //LED開啟
else
digitalWrite(13,LOW); //LED關(guān)閉
delay(300);// 延遲以避免0xFFFFFFF
irrecv.resume (); // 接收下一個值
}
}
等你熟悉了如何遙控LED之后,我們該試試遙控電腦了。為了實(shí)現(xiàn)這一目標(biāo),我們需要用到Visual Basic中的一個SendKeys.Send(“”)指令,該指令可以在電腦上模擬空格鍵,然后你可以借此控制在線視頻或本地播放器的播放。以下是實(shí)現(xiàn)這一功能的代碼部分:
If data = "1" Then
SendKeys.Send(" ")
TextBox1.Text = "SPACE"
End If
而Arduino中對應(yīng)的代碼為:
if(results.value==0xFA10EF)
Serial.write('1');
解釋:當(dāng)你按下代碼是0xFA10EF的按鈕時,Arduino會發(fā)送“1”到電腦的串口。這時使用Visual Basic編寫的程序?qū)拇诮邮艿綌?shù)據(jù)1,然后通過軟件的方式模擬空格點(diǎn)擊,從而控制視頻的播放和停止,當(dāng)然這也可以用來控制PPT演示。
如果你覺得Visual Basic實(shí)在太難了,不要擔(dān)心,下載鏈接在下面:
接下來就需要配置你的紅外遙控器代碼了,這個步驟和上面第二步的差別不大,只不過我們需要發(fā)送一個特定的返回值到電腦的Arduitop.exe。接下來將改好的代碼寫入Arduino,完成之后打開Arduitop.exe,選擇Arduino所連接的COM口,點(diǎn)擊init執(zhí)行。
這一步對Visual Basic的要求較高,作者提供的參考代碼點(diǎn)此下載:IR PROJECT.rar。
通過對該代碼進(jìn)行適當(dāng)?shù)男薷?,你還能實(shí)現(xiàn)音量控制、快進(jìn)快退等常見的電視功能,如下視頻:
2015-2016賽季全球創(chuàng)客馬拉松北理工珠海學(xué)院站已經(jīng)開始接受報名啦!關(guān)注“硬創(chuàng)邦”(微信號:leiphone_bang),回復(fù)“北理工”即可參與報名!此外還可加入全球創(chuàng)客馬拉松主群(群號:259592983),參與我們的互動討論~
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。