此篇文章原稿是发在Raspbmc 万博manbext登录网址区,我已经依照文章说明,完成设定,为了让E文不熟悉以及不想翻墙的同鞋可以依样画葫芦,所以再此分享。
如果要参考E文的同鞋,可以至
http://forum.stmlabs.com/showthread.php?tid=5549 。
首先你要买个红外线接收器,一般家用电视遥控为38KHz,所以跟店家说要买 38KHz的红外线接收器,就可以了,E文中是以TSOP4838 为例子,但是我测试的结果,目前市场上的红外线接收器都是可以通用。
在图片中可以看到
Receiver Pin 1 is DATA(资料传输用), 请接到 Pi pin 12 (GPIO 18);
Receiver Pin 2 is GND(负极), 请接到 Pi pin 6 (GROUND)
Recevier Pin 3 is POWER(正极), 请接到 Pi pin 1 (3.3V)
如果你搞不清楚你买来的脚定义,记得跟店家或是上网查询相关资料,不然是无法正确使用的。
目前市售的38KHz红外线接收器都通用3.3V及5V,建议从3.3V开始测,如果3.3V不能用,再换5V,正负极不可以接反,否则会造成红外线接收器损坏,建议同鞋买二个红外线接收器,以免接反烧坏,你还要跑一趟店家。
要衔接的电线可以购买杜邦线来做连接,就是像你电脑主机板里的连接线。
下面再附上 Pi 的定义图
如果你都看懂我上面写什么,而且有能力操作,那就开始下载 Raspbmc 吧,链结
http://pan.baidu.com/share/link?shareid=224904&uk=3256396273
下载完成后,将它烧录到你的SD卡,2G~16G的都可以,它会自动安装及扩展容量。
烧录完成,就将SD卡插到你的Pi里,然后插上网线(网路需有DHCP),约十至二十分钟,就会自动安装成。
如果不会安装完成,发个信息给我,我再把我的SD卡做成 IMAGE 上传到百度云。
进入 XBMC画面,首先至最右边的设定,更改至中文(记得字型要设 arial ),设完以后,回到主画面然后选程式,你会看到下方出现一个Pi 的图形,再选择进去,到最右边的 IR 设定中,预设值是二个都开启,如果没有开启,请设定开启,然后你可以关机了。
再来将你的红外线接收器装上,并重新启动Pi,如果你要在本机操作指令,此时选择离开,Raspbmc会跳出一个视窗要求你按 ESC,按完ESC键后,会跳出 LOGIN ,请输入 pi ,password 则输入 raspberry。
接下来我们要开设定接收器了,首先启动红外线接收器,输入
sudo modprobe lirc_rpi
然后,将红线接收器的接收值清除,输入
sudo kill $(pidof lircd)
最后,再启动测试,输入
sudo mode2 -d /dev/lirc0
把你的遥控器,对准红线接收器,按下任意键,你会在的你屏幕上看到类似下面的代码出现
pulse 1681
space 4816
pulse 1695
space 4784
pulse 1333
space 3638
如果没有出现,会有下列几种情况:
1.你的红外线接收器坏了,请你换一个新的。
2.你线接错了,最常发生的是正、负极接反。
3.你不是用38KHz的遥控器,请拿电视的遥控器来测试。
4.线路接触不良,你可以拿三用电表来测试,是否有 3.3V输出。
如果你已经看到代码出现,那我们就可以开始设定遥控器。
首先,清除接收器指令
sudo kill $(pidof lircd)
列出遥控器对应指令
sudo irrecord --list-namespace
你可以看到 KEY_0 KEY_1 ……等值,我们常用的是
KEY_UP
KEY_DOWN
KEY_LEFT
KEY_RIGHT
KEY_ESC
KEY_ENTER
KEY_SPACE
其它的你就自行记住吧!
接下来我们再清除遥控器记忆,请输入
sudo kill $(pidof lircd)
要开始设遥控器了,请输入
irrecord -d /dev/lirc0 ~/lircd.conf
请先按enter二次,再按住你的遥控器任意键,直到屏幕上的...................跑完。
跑完后,你刚刚按住的那个键,请一直重覆按,直到屏幕上的...................跑完。
接下来就是设定了,请先输入
KEY_UP
然后按遥控器上的你要设定为 上 的那个键,然后再按ENTER。
再输入
KEY_DOWN
然后按遥控器上的你要设定为 下 的那个键,然后再按ENTER。
重覆上述动作,一直到你设定完成,最后按enter离开。
输入
nano /home/pi/lircd.conf
你会看到类似下面的画面
# Please make this file available to others
# by sending it to <
lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.9.0-pre1(default) on Sat Dec 22 23:05:43 2012
#
# contributed by
#
# brand: /home/pi/lircd.conf
# model no. of remote control:
# devices being controlled by this remote:
#
begin remote
name /home/pi/lircd.conf
bits 16
flags SPACE_ENC|CONST_LENGTH
eps 30
aeps 100
header 9014 4495
one 563 1687
zero 563 548
ptrail 560
repeat 9013 2245
pre_data_bits 16
pre_data 0xEF10
gap 107922
toggle_bit_mask 0x0
begin codes
KEY_UP 0x02FD
KEY_DOWN 0x827D
KEY_LEFT 0xE01F
KEY_RIGHT 0x609F
KEY_ENTER 0x22DD
end codes
如果你没看到 KEY_UP 0x02FD 这行字,那就表示你没设定成功,就请从头再确认。
要离nano 编辑器,请按 ctrl+x 。
最后我们把此值复制到 Raspbmc 的其中一个内定值中:
sudo cp /home/pi/lircd.conf /etc/lirc/xbox-lircd.conf
在这里我们是复制到 xbox 这个值,所以重启后,再回到最右边的 IR 设定中,并且在第三个选项,选xbox,再重启,就大功告成了。
目前遇到的问题,有很大的机会,你按下遥控器的按键一次,但是画面上会出现二次,例如你按左一次,但是画面上会跑二次左,这是常见的BUG,是无解的。
另外就是遥控器的问题,如果你用的是非标准38KHz的遥控器,可能会感应不出来,此问题就无解了,只能请你用标准的电视遥控器。
我想会有同鞋会问:那在家中电视与Pi是使用同一个遥控下,如何区隔呢?
基本上你只能找一个死角,是按遥控器后不会干扰到电视的地方,然后把红外线接收器放置在那里,才能够解决这个问题。