单片机学习小组
登录
直播中
杨勇
8年用户
1259经验值
私信
关注
怎样利用闲置遥控器去制作一种PC电脑遥控器呢
开启该帖子的消息推送
遥控器
红外解码
怎样利用闲置遥控器去制作一种PC电脑遥控器呢?有哪些制作步骤?
回帖
(1)
笪琳琳
2022-2-24 11:00:05
找一个家里闲置的遥控器。
上某宝买一块“红外解码模块”。
再买一个带线的“USB转TTL USB转串口下载线CH340G模块”。
像我这样,把线接到一起。
找个好看的塑料外壳。
把这些都装里面,PC电脑遥控器的接收设备就做好了。
把这个设备插上电脑,安装USB串口线的驱动,
可以看到我的电脑识别出串口 com 6 。
打开串口测试软件,像我这样设置。
按下遥控器上的按钮,就可以直接看到接收到的遥控器数据了。
然后用你熟悉的PC桌面版本的编程语言,写一个串口接收程序来控制电脑就可以了。
我用的是Qt,串口接收到的数据,对应上你要模拟的遥控器上的按键就可以了。
模拟键盘上键,模拟键盘下键, 模拟音量大小按键。
根据自己的遥控器按键编码,修改如下程序即可。
if(receive_data)//向上Key_Up 00ff96
{
//on_key_Up();
keybd_event(38,0,0,0);
keybd_event(38,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//向下 00ff92
{
keybd_event(40,0,0,0);
keybd_event(40,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//向左 00ff97
{
keybd_event(37,0,0,0);
keybd_event(37,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//向右 00ff8c
{
keybd_event(39,0,0,0);
keybd_event(39,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//ok
{
keybd_event(32,0,0,0);//空格
keybd_event(32,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//全屏 ctrl+回车
{
keybd_event(17,0,0,0);
keybd_event(13,0,0,0);//回车
keybd_event(13,0,KEYEVENTF_KEYUP,0);
keybd_event(17,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//开始
{
keybd_event(13,0,0,0);
keybd_event(13,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//ESC
{
keybd_event(27,0,0,0);
keybd_event(27,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//关机
{
system("shutdown -s -t 00");
}
if(receive_data)//win + D
{
keybd_event(91,0,0,0);
keybd_event(68,0,0,0);
keybd_event(68,0,KEYEVENTF_KEYUP,0);
keybd_event(91,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//菜单
{
keybd_event(164,0,0,0);
keybd_event(164,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//鼠标左键
{
mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 );
}
if(receive_data)//鼠标右键
{
mouse_event (MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 );
}
if(receive_data)//w
{
keybd_event(87,0,0,0);
keybd_event(87,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//e
{
keybd_event(69,0,0,0);
keybd_event(69,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//q
{
keybd_event(81,0,0,0);
keybd_event(81,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//音量静音键
{
keybd_event(173,0,0,0);
keybd_event(173,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//音量增加键
{
keybd_event(175,0,0,0);
keybd_event(175,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//音量降低键
{
keybd_event(174,0,0,0);
keybd_event(174,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//停止媒体键
{
keybd_event(178,0,0,0);
keybd_event(178,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//媒体暂停键
{
keybd_event(179,0,0,0);
keybd_event(179,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//媒体上一曲键
{
keybd_event(177,0,0,0);
keybd_event(177,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//媒体下一曲键
{
keybd_event(176,0,0,0);
keybd_event(176,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//recall 退格按键
{
keybd_event(8,0,0,0);
keybd_event(8,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//Tab
{
keybd_event(9,0,0,0);
keybd_event(9,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//窗口切换 alt+tab
{
keybd_event(18,0,0,0);
keybd_event(9,0,0,0);
keybd_event(9,0,KEYEVENTF_KEYUP,0);
keybd_event(18,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//alt+F4
{
keybd_event(18,0,0,0);
keybd_event(115,0,0,0);
keybd_event(115,0,KEYEVENTF_KEYUP,0);
keybd_event(18,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//声道切换 alt+a
{
keybd_event(18,0,0,0);
keybd_event(65,0,0,0);
keybd_event(65,0,KEYEVENTF_KEYUP,0);
keybd_event(18,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//字幕切换 alt+L
{
keybd_event(18,0,0,0);
keybd_event(76,0,0,0);
keybd_event(76,0,KEYEVENTF_KEYUP,0);
keybd_event(18,0,KEYEVENTF_KEYUP,0);
}
找一个家里闲置的遥控器。
上某宝买一块“红外解码模块”。
再买一个带线的“USB转TTL USB转串口下载线CH340G模块”。
像我这样,把线接到一起。
找个好看的塑料外壳。
把这些都装里面,PC电脑遥控器的接收设备就做好了。
把这个设备插上电脑,安装USB串口线的驱动,
可以看到我的电脑识别出串口 com 6 。
打开串口测试软件,像我这样设置。
按下遥控器上的按钮,就可以直接看到接收到的遥控器数据了。
然后用你熟悉的PC桌面版本的编程语言,写一个串口接收程序来控制电脑就可以了。
我用的是Qt,串口接收到的数据,对应上你要模拟的遥控器上的按键就可以了。
模拟键盘上键,模拟键盘下键, 模拟音量大小按键。
根据自己的遥控器按键编码,修改如下程序即可。
if(receive_data)//向上Key_Up 00ff96
{
//on_key_Up();
keybd_event(38,0,0,0);
keybd_event(38,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//向下 00ff92
{
keybd_event(40,0,0,0);
keybd_event(40,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//向左 00ff97
{
keybd_event(37,0,0,0);
keybd_event(37,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//向右 00ff8c
{
keybd_event(39,0,0,0);
keybd_event(39,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//ok
{
keybd_event(32,0,0,0);//空格
keybd_event(32,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//全屏 ctrl+回车
{
keybd_event(17,0,0,0);
keybd_event(13,0,0,0);//回车
keybd_event(13,0,KEYEVENTF_KEYUP,0);
keybd_event(17,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//开始
{
keybd_event(13,0,0,0);
keybd_event(13,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//ESC
{
keybd_event(27,0,0,0);
keybd_event(27,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//关机
{
system("shutdown -s -t 00");
}
if(receive_data)//win + D
{
keybd_event(91,0,0,0);
keybd_event(68,0,0,0);
keybd_event(68,0,KEYEVENTF_KEYUP,0);
keybd_event(91,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//菜单
{
keybd_event(164,0,0,0);
keybd_event(164,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//鼠标左键
{
mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 );
}
if(receive_data)//鼠标右键
{
mouse_event (MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 );
}
if(receive_data)//w
{
keybd_event(87,0,0,0);
keybd_event(87,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//e
{
keybd_event(69,0,0,0);
keybd_event(69,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//q
{
keybd_event(81,0,0,0);
keybd_event(81,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//音量静音键
{
keybd_event(173,0,0,0);
keybd_event(173,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//音量增加键
{
keybd_event(175,0,0,0);
keybd_event(175,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//音量降低键
{
keybd_event(174,0,0,0);
keybd_event(174,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//停止媒体键
{
keybd_event(178,0,0,0);
keybd_event(178,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//媒体暂停键
{
keybd_event(179,0,0,0);
keybd_event(179,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//媒体上一曲键
{
keybd_event(177,0,0,0);
keybd_event(177,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//媒体下一曲键
{
keybd_event(176,0,0,0);
keybd_event(176,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//recall 退格按键
{
keybd_event(8,0,0,0);
keybd_event(8,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//Tab
{
keybd_event(9,0,0,0);
keybd_event(9,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//窗口切换 alt+tab
{
keybd_event(18,0,0,0);
keybd_event(9,0,0,0);
keybd_event(9,0,KEYEVENTF_KEYUP,0);
keybd_event(18,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//alt+F4
{
keybd_event(18,0,0,0);
keybd_event(115,0,0,0);
keybd_event(115,0,KEYEVENTF_KEYUP,0);
keybd_event(18,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//声道切换 alt+a
{
keybd_event(18,0,0,0);
keybd_event(65,0,0,0);
keybd_event(65,0,KEYEVENTF_KEYUP,0);
keybd_event(18,0,KEYEVENTF_KEYUP,0);
}
if(receive_data)//字幕切换 alt+L
{
keybd_event(18,0,0,0);
keybd_event(76,0,0,0);
keybd_event(76,0,KEYEVENTF_KEYUP,0);
keybd_event(18,0,KEYEVENTF_KEYUP,0);
}
举报
更多回帖
rotate(-90deg);
回复
相关问答
遥控器
红外解码
怎样
去
设计
一种
基于Python的OpenTX无线
遥控器
呢
2021-12-20
2099
如何
去
实现
一种
基于STM32的万能红外
遥控器
设计
呢
2021-11-15
1669
怎样
去
使用
一种
红外线
遥控器
呢
2021-11-18
1448
怎样
去
设计
一种
基于STM32F407的万能红外
遥控器
2021-10-18
2098
求
一种
基于STM32与NFC的万能红外
遥控器
设计方案
2022-01-25
1431
求大神分享
一
份智能
遥控器
的设计方案
2021-04-19
1745
如何设计基于NiosⅡ的学习型
遥控器
?
2019-10-16
2011
如何实现基于51单片机的无线
遥控器
的
制作
?
2021-10-26
3131
红外
遥控器
原理。
2015-07-13
11755
怎样
去
设计
一种
基于STM32F103C8T6的无线
遥控器
呢
2021-12-17
2660
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分