一、基础配置:
先将红外接收头连接和录制遥控器按键,确保能够正常使用。
1.修改配置

sudo nano /boot/config.txt
添加:
dtoverlay=lirc-rpi,gpio_out_pin=17,gpio_in_pin=18,gpio_in_pull=up

重启后查看/dev/lirc0是否存在
2.连接红外接收头: 注意是gpio18是第12针
3.安装软件:

sudo apt-get install lirc
注意:内核版本4.14和4.19的lirc好像还不同。

4.测试红外遥控器

sudo /etc/init.d/lirc stop
mode2 -d /dev/lirc0

5.录制遥控器

sudo /etc/init.d/lirc stop
irrecord -l  #记录想要的key
irrecord -d /dev/lirc0 ~/lircd.conf   #这步比较麻烦,刚开始要每个键都压一遍,生成2行,我搞了好几遍。

而且~/lircd.conf也没有生成,到时出现了,XXX.lircd.conf xxx就是输入的remote name
6.将XXX.lircd.conf文件复制到/etc/lirc/lircd.conf.d目录下

sudo cp ~/XXX.lircd.conf  /etc/lirc/lircd.conf.d/

7.测试,输入irw:回显示输入的按键–对应刚才的录制
问题:没有任何反应。解决方法最下面:

二、按键行为与特定程序进行关联
1.配置~/.lircrc文件把按键与需要出发的行为进行关联

beginprog = irexecbutton = KEY_UPconfig = sudo omxplayer ~/aiqingzhuanyi.mkv &  #设置成自己的程序
end
beginprog = irexecbutton = KEY_DOWNconfig = sudo killall omxplayer.bin
end

2.开启程序,等待按键触发

sudo /etc/init.d/lirc restart
irexec

3.当按up键时候打开程序,down键时候关闭

三、树莓派通过发送红外信号控制设备:
向aphero设备发送KEY_UP,没有发射头,没有测试

irsend LIST "" ""
irsend SEND_ONCE aphero KEY_UP
#没有测试

四.把红外遥控器模拟成鼠标模式
官方文档:http://lirc.org/html/configure.html#lircmd.conf
1.修改配置文件:

sudo nano /etc/lirc/lirc_options.conf
[lircmd]
uinput          = True   ##将False修改为True

根据官方文档:
lircmd - Translate infrared signals into mouse events.
output socket and converts them to mouse events. These events are made available either on the lircmd output socket (by default
/usr/var/run/lirc/lircmd) or, using the --uinput option, on a /dev/input device like /dev/input/event12 .
意思是:默认输出到socket,树莓派上可通过cat /var/run/lirc/lircm 按遥控器时候有乱码输出;添加–uinput选项后,作为/dev/input设备
根据官方文档还要设置Xorg.conf,树莓派没有这个文件,我没有设置;新建 /etc/udev/rules.d/55-uinput,删除好像也可以。
2.修改鼠标与前面设置的key建立映射

sudo nano /etc/lirc/lircmd.conf
PROTOCOL IntelliMouse
ACCELERATOR 1 30 10
MOVE_N * KEY_UP
MOVE_E * KEY_RIGHT
MOVE_S * KEY_DOWN
MOVE_W * KEY_LEFT
BUTTON1_CLICK * KEY_ENTER
BUTTON3_CLICK * KEY_BACK
BUTTON2_CLICK * KEY_MENU
#N E S W表示鼠标移动方向,1代表左键,2代表中间键,3代表右键

3.开启服务:

# systemd start lircmd.service
# systemd enable lircmd.service

四.把红外遥控器模拟成键盘模式:
1.测试:先用 lircd-uinput程序测试成功后,再设置为服务

sudo lircd-uinput lircd-0.9.4c[21627]: Info: lircd-uinput:  Opening log, level: Infolircd-0.9.4c[21627]: Info: Reading data from /var/run/lirc/lircd, writing to /dev/uinputlircd-0.9.4c[21627]: Info: Using "_UP" as release suffix

3.ir-keytable程序测试:目前输入太快了,延时、重复参数还没有搞清楚。
注意:ir-keytable只有产生了/dev/input/event*文件后,才有输出。使用apt-get安装即可,这个程序不在lirc包中,好像是v4l-utils中。

ir-keytable -t -d /dev/input/event0 1582638176.865978: event type EV_SYN(0x00).1582638176.915959: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c)1582638176.915959: event type EV_SYN(0x00).1582638176.965979: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c)1582638176.965979: event type EV_SYN(0x00).1582638177.016006: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c)1582638177.016006: event type EV_SYN(0x00).1582638177.065964: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c)1582638177.065964: event type EV_SYN(0x00).

(3)开启服务:

sudo systemctl start lircd-uinput

目前,只是进行了初步测试,还没有深入配置,主要是看官方文档,仅做已备忘记录,有时间再测试吧。

------关于输入irw:没有任何反应---------------------------------------------------------------------
树莓派安装红外接收,irw无输出:https://www.hachina.io/dwqa-question/10554.html
also, i have faced a problem where everything seemed to work fine, but i didn’t get any output running irw command. in case someone’s stuck there: the problem is lircd.conf file which you’ve just generated. take a look at it – you probably will get two hex codes for each button, where the second one is always the same. simply delete this value from each line and everything should work now.
另外,我也遇到过这样一个问题:一切看起来都很好,但是我没有得到任何运行irw命令的输出。万一有人被困在那里:问题是您刚刚生成的lircd.conf文件。看看它-你可能会得到两个十六进制代码为每个按钮,其中第二个总是相同的。只需从每一行中删除这个值,现在一切都应该正常了
XXX.lircd.conf文件如下:删除每行的第二个十六进制的数,就可以使用irw输出了

begin remotename  apherobits           32flags SPACE_ENC|CONST_LENGTHeps            30aeps          100header       9134  4555one           565  1694zero          565   579ptrail        564repeat       9130  2271gap          108958toggle_bit_mask 0x0frequency    38000begin codesKEY_UP                   0x00FF629DKEY_DOWN                 0x00FFA857KEY_LEFT                 0x00FF22DDKEY_RIGHT                0x00FFC23DKEY_ENTER                0x00FF02FDKEY_BACK                 0x00FFE01FKEY_MENU                 0x00FF906FKEY_KP0                  0x00FF6897KEY_KP1                  0x00FF30CFKEY_KP2                  0x00FF18E7KEY_KP3                  0x00FF7A85KEY_KP4                  0x00FF10EFKEY_KP5                  0x00FF38C7KEY_KP6                  0x00FF5AA5KEY_KP7                  0x00FF42BDKEY_KP8                  0x00FF4AB5KEY_KP9                  0x00FF52ADend codesend remote

树莓派3使用红外遥控器模拟鼠标和键盘相关推荐

  1. C# WPF 中用代码模拟鼠标和键盘的操作

    C# WPF 中用代码模拟鼠标和键盘的操作 原文:C# WPF 中用代码模拟鼠标和键盘的操作 原文地址 C#开发者都知道,在Winform开发中,SendKeys类提供的方法是很实用的.但是可惜的是, ...

  2. Android 使用 sendevent 模拟鼠标和键盘事件

    Android 使用 sendevent 模拟鼠标和键盘事件 模拟原理是对驱动发送消息,就是linux里面的input子系统. 命令格式: sendevent /dev/input/eventX [t ...

  3. 控制台模拟鼠标、键盘操作

    控制台模拟鼠标.键盘操作 模拟鼠标.键盘操作,能让命令行顿然强大,想想,制作批处理版屏幕键盘等都不在话下(已制作过,效果很不错).虽然这也跟CUI无关.本教程教会你如何让命令行模拟鼠标.键盘的操作. ...

  4. java模拟器键盘输入_Java模拟鼠标和键盘输入

    用途 在电脑(Windows/Mac)上模拟鼠标和键盘输入 Mac运行需要打开相关权限,详见文末说明. 效果图 代码 import java.awt.*; import java.awt.event. ...

  5. Python - Python 模拟鼠标和键盘进行基本操作

    文章目录 Python - Python 模拟鼠标和键盘进行基本操作 相关内容:Python 实用内容 1.安装模块pyautogui 2.基本操作 Python - Python 模拟鼠标和键盘进行 ...

  6. C++实现鼠标控制 封装常见的模拟鼠标、键盘的操作函数

    API 或 MFC 视窗程序 里 有 函数, 例如 API 函数 设位置: BOOL SetCursorPos( int x, int y); 参数是屏幕坐标x,y 头文件 Winuser.h 链接库 ...

  7. java鼠标事件获得键盘值_请问JAVA怎么模拟鼠标和键盘事件[200分]

    比如要求模拟鼠标在左下角的[开始]上点一下 多谢 | 看看java.awt.Robot这个类,可能对你有帮助 Class Robot This class is used to generate na ...

  8. selenium模拟鼠标和键盘操作的基本方法

    前言 前面已经把环境搭建好了,这从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可视化工具,我们要学的是 ...

  9. python模拟键盘输入视频_python教程-模拟鼠标和键盘输入

    大家可能知道,有的情形下,如果我们需进行自动化操作的应用程序不提供相对应的的接口,就难以通过Python直接调用API来做到自动化.在此类情形下,Python也并非压根没有办法,我们可以通过模拟键盘和 ...

最新文章

  1. readline停止后怎么重新开始_2021,离婚后人生重新开始
  2. Linux系统内存的Cached Memory
  3. 数据中心机房应该如何布线,机柜布线方法详解!
  4. 一个简洁、有趣的无限下拉方案
  5. openstack quantum搭建过程中一些有用的链接
  6. bem什么意思_BEM命名法
  7. python 3.7下载安装scrapy_win10上python3.7安装scrapy1.5.1
  8. 乐高创意机器人moc_LEGO乐高MOC作品欣赏:超有爱机器人偶E-MOTE
  9. pku2250--Compromise(最长公共子串,记录结果)
  10. AndroidQ 分屏窗口尺寸计算 (WMS部分)
  11. python求数独全解
  12. HKEY_LOCAL_MACHINE:hardware\DeviceMap\SerialComm里找不到串口的解决办法
  13. 金山与永中,谁主沉浮?
  14. 【华为OD机试真题 python】连续出牌数量【2022 Q4 | 200分】
  15. linux之父博客,Linux25周年之际:专访 Linux 之父 Linus Torvalds
  16. Android-smart-image-view加载网络图片
  17. C语言邮箱名字用什么存储,用c++定义一个描述学生通讯录的类数据成员包括姓名学校电话号码和邮箱...
  18. 【产业互联网周报】AI独角兽们集体亮相安博会,侧重点各不相同;BAT智慧城市布局进一步加深...
  19. 摄像头各参数的意义_手机摄像头的一些主要参数表达了什么意思?
  20. Perl之正则表达式基础(一)

热门文章

  1. steam怎么转区?
  2. c#未能加载基类System
  3. Naptime POJ - 2228
  4. C++编程(二):CURL错误码及含义
  5. vb.net 获取系统图标_微商城和小程序商城图标8个设计注意事项
  6. 用Python写了个电影网站系统(附源码)
  7. 【Unity VR开发】结合VRTK4.0:导航网格限制移动区域
  8. 北京市大兴区卫星地图下载
  9. SDD与SDT的区别
  10. 谷歌浏览器安装Vue Devtools