红外遥控器
=
该项目允许任何人使用LIRC(LINUX红外遥控器)将树莓派变成通用遥控器。
这个项目中使用的东西
硬件
Raspberry Pi 3B 1个
红外接收器(通用) 1个
红外发射器(通用) 1个
NPN三极管 1个
软件应用程序和在线服务
开始
最近,我一直在从事一个项目,该项目将允许任何人将树莓派变成通用遥控器。为此,我一直在使用LIRC (LINUX红外遥控器),LIRC是一个软件包,可让您解码红外信号并将其发送到许多(但不是全部)常用遥控器。该项目为在Raspberry Pi 上试验IR LED和LIRC封装以及使用新功能扩展基本设置提供了一个起点,例如添加IR接收器以使用现有的遥控器生成LIRC远程配置文件。
步骤1:材料
-
树莓派2
-
940nm红外LED 40度-40度视角。明亮并调谐到940nm波长。
-
38khz红外接收器-以遥控频率接收红外信号
-
PN2222晶体管-用于驱动IR LED
-
10k 电阻器-用于RPI GPIO和PN2222晶体管之间的电阻器
步骤2:电路
尽管您可以将IR LED直接连接到Raspberry Pi上的GPIO引脚,但是LED的输出信号将太弱,并且IR发送器的范围将非常有限。一个简单的晶体管电路通过放大从引脚输出的电流来解决该问题,从而提高了IR LED的信号强度。首先将IR LED放在面包板上,并将长脚(阳极)连接到3.3伏(引脚1),并将长脚(阴极)连接到晶体管的发射极。接下来,将一根接地线(引脚6)连接到晶体管的集电极,然后使用10K电阻将晶体管的基极连接到引脚22。
首先将您的IR LED放在面包板上,并将长脚(阳极)连接到3.3伏(引脚1),并将长脚(阴极)连接到晶体管的发射极。接下来,将一根接地线(引脚6)连接到晶体管的集电极,然后使用10K电阻器将晶体管的基极连接到引脚22。接下来,将IR接收器放在面包板上。 在其右脚上运行3.3伏,并将其中脚接地。最后,将针脚23连接到IR接收器的左脚。
步骤3:LIRC安装和设置
首先,我们需要安装和配置LIRC以在RaspberryPi上运行:
sudo apt-get install lirc
输入以下命令添加到/etc/modules
文件中:
sudo cat >> /etc/modules \<\<EOF lirc\_dev lirc\_rpi gpio\_in\_pin=23 gpio\_out\_pin=22 EOF
通过输入以下命令来更改/etc/lirc/hardware.conf
文件:
sudo cat > /etc/lirc/hardware.conf <<EOF
\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#
\# /etc/lirc/hardware.conf
\#
\# Arguments which will be used when launching lircd
LIRCD_ARGS="--uinput"
\# Don't start lircmd even if there seems to be a good config file
\# START\_LIRCMD=false
\# Don't start irexec, even if a good config file seems to exist.
\# START\_IREXEC=false
\# Try to load appropriate kernel modules
LOAD_MODULES=true
\# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="default"
\# usually /dev/lirc0 is the correct setting for systems using udev
DEVICE="/dev/lirc0"
MODULES="lirc\_rpi"
\# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""
\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#
EOF
通过输入以下命令来编辑您/boot/config.txt
的:
cat >> /boot/config.txt \<\<EOF dtoverlay=lirc-rpi,gpio\_in\_pin=23,gpio\_out\_pin=22 EOF
现在重新启动,lircd
以便它进行以下更改:
sudo /etc/init.d/lirc stop
sudo /etc/init.d/lirc start
步骤4:测试红外线接收器
测试IR接收器相对简单。运行以下两个命令以停止lircd
并开始从IR接收器输出原始数据:
sudo /etc/init.d/lirc stop
mode2 -d /dev/lirc0
将遥控器对准IR接收器,然后按一些按钮。您应该会看到以下内容:
space 16300
pulse 95
space 28794
pulse 80
space 19395
pulse 83
space 402351
pulse 135
space 7085
pulse 85
space 2903
如果不这样做,则可能是某些配置错误。仔细检查您是否已正确连接所有设备,并且未交叉任何电线。我强烈建议参考我上面链接的示意图。我在上面链接到的RaspberryPi论坛线程中也存在一些麻烦的建议咨询。最后-您可能想在黑暗的房间里这样做。我发现我的台灯和头灯会使IR接收器认为它正在接收有效信号。
步骤5:测试IR LED
您将需要找到用于遥控器 的现有LIRC配置文件,或者使用IR接收器生成新的LIRC配置文件(在此处查找现有的远程配置文件)。就我而言,我创建了一个新的LIRC配置文件。为此,请阅读LIRC随附的irrecord 应用程序上的文档。
当使用irrecord时,它会要求您在编程按钮时给它们命名。在开始之前,请确保先运行irrecord --list-namespace
以查看有效名称。
这是我运行以生成远程配置文件的命令:
\# Stop lirc to free up /dev/lirc0
sudo /etc/init.d/lirc stop
\# Create a new remote control configuration file (using /dev/lirc0) and save the output to ~/lircd.conf
irrecord -d /dev/lirc0 ~/lircd.conf
\# Make a backup of the original lircd.conf file
sudo mv /etc/lirc/lircd.conf /etc/lirc/lircd\_original.conf
\# Copy over your new configuration file
sudo cp ~/lircd.conf /etc/lirc/lircd.conf
\# Start up lirc again
sudo /etc/init.d/lirc start
完成远程配置文件并将其保存/添加到远程文件后,/etc/lirc/lircd.conf
可以尝试测试IR LED。我们将使用LIRC附带的irsend 应用程序来方便发送命令。您一定要查看文档以了解有关选项的更多信息irsend
。
这是我运行以测试我的IR LED的命令(使用我创建的“ Roku”远程配置文件):
\# List all of the commands that LIRC knows for 'Roku'
irsend LIST Roku ""
\# Send the KEY\_POWER command once
irsend SEND\_ONCE Roku KEY\_POWER
\# Send the KEY\_VOLUMEDOWN command once
irsend SEND\_ONCE Roku KEY\_VOLUMEDOWN
我通过将红外灯对准我的Roku接收器并测试是否可以打开它并按Enter来测试它是否有效。
步骤6:结束
翻译自:https://www.hackster.io/austin-stanton/creating-a-raspberry-pi-universal-remote-with-lirc-2fd581