当前位置:首页 > 单片机 > 单片机
[导读]历时7天,跨度两个多星期,才将微型四轴的遥控器调试好,中间除了备考两科考试,其余时间全在宿舍蹭网消磨青春,不得不说状态不好,实际上内心也极度的空虚。之前将微型四轴的机体做好,迫不及待的进行了一下测试,天

历时7天,跨度两个多星期,才将微型四轴的遥控器调试好,中间除了备考两科考试,其余时间全在宿舍蹭网消磨青春,不得不说状态不好,实际上内心也极度的空虚。

之前将微型四轴的机体做好,迫不及待的进行了一下测试,天真的以为,飞机不用遥控器也可以,实际上我设想的是直接用手头的开发板对其进行简单的增减速,为此我还特意为它写了一个触摸控制界面,只有三个触控点,一个加速,一个减速,一个停止,非常无聊。



后来发现,没有一个遥控器真的非常不方便,周六便去二手市场仅用5元便淘得一飞机遥控器,里面电池都还没用完,质量算上乘。这遥控器是红外遥控的,用手机看了下红外管,能够正常发光实际上,我当然最希望直接对现有电路进行一下线路修改就实现最方便了,事情往往没有那么顺利。



仔细端详了这块板子,一大堆的元件,右上角唯一的一块芯片却也被磨去型号,对于我这种电路经验较少的青年自然无从下手,遂决定重新开发一块。但是为了能够跟原先机壳匹配,电路的摸样和尺寸,完全根据原板用尺子测量而规划。



遥控器板子采用低功耗MSP430G2553主控,NRF24L01发射遥控信号。对于操纵杆,说白了就是一个双方向和一个四方向的电位器,通过430内部AD采样便可得到操纵命令,电路十分简洁。实际上,遥控器的程序也相当的简单,就我目前需要实现的功能来看。只需要根据AD门限值判断出上下左右的方向,然后直接发送给接收机即可。电源稳压用ASM1117-3.3V实测它的压降有1V,所以至也得4.3V供电,事实上买回来这破东西的时候里面就残存有6节干电池,测了一下电压还有6V,足够我调试挥霍。实现代码如下:



在遥控板子左上角的排针是我预留的程序调试和烧写端口,同样的为了方便,我并不需要再做下载器了,直接采用TI推出的大学计划的LaunchPad可以完美的实现程序调试和烧写,这块LaunchPad最值钱的地方就在于它的仿真器,官方才卖8美元,而一个430仿真器市面价格是200,上学期学校给了一块比赛用,电子工程师之家网站又送了我一块,那块G2553就是我从上面抠下来的。



当然,最为重点的地方便在于接收端了,怎么实现接收到的数据能够操控电脑游戏?这点由于之前我做了有线重力感应的游戏遥控器,我试图仍然采用此方法,就是通过STM32把命令接收下来,然后通过串口传到我的VC上位机,用上位机的程序实现键盘敲击的命令。



VC上位机上,我同样用的是keybd_event事件来实现按键的按下和弹起。



那天晚上我测试了电脑上的所有程序窗口以及几个小游戏,发现都没有问题,可以实现操控,第二天我想正式在极品飞车上测试的时候,终于暴露除了问题,根本没有效果!是的,VC的这段代码在游戏里面无法实现操控,为什么其它的程序可以,而就是这大型的游戏不行,后来百度查了一下,终于看出点端倪,好像是说这种游戏的操作用的那种操控方式是直接读取电脑键盘的那个端口来接收命令的,我用VC写的那段代码实际上只是模拟出了系统按键而已。网上也没有给出解决方法,后来我问了下一个以前通过影子系统认识的一位程序开发工程师,他告诉我用Winio来向键盘端口写入命令达到驱动级的命令试试。



后来发现,效果是一样的,并且由于我对VC++编程经验不丰富,直接操作了端口导致给电脑带来了不好的后果,导致了我笔记本的键盘按键出现了紊乱,当然对于我的电脑这一切都不是问题,由于Powershadow的保护,很多问题重启之后便得到了解决。

我不相信用VC不可以实现,但是这已经涉及到计算机的端口这些跟底层相关的东西,专研下去对我来讲太困难,毕竟缺少专业的知识和经验。经过考虑我终于还是决定采用比较简单的方案,直接通过单片机模拟出键盘的PS/2协议,让电脑就认为它是一个键盘,这样子,所有的操作对于电脑的任何程序必定都是有效的。PS/2的协议相对来讲,也是比较简单,跟串口有点类似,一个时钟脉冲发送一位数据,只要知道键盘的编码,给电脑发过去就OK了。



对于该时序的实现代码如下




而键盘的扫描码可以查表获得,分为通码和断码,对于键盘来讲,按键按下的时候就是向电脑发送了通码,释放的时候,就是给电脑发送了断码,这个我用示波器也看过键盘的波形,为此发波学弟还特意给我抱来一台数字示波器,真心非常的感谢。



键盘的协议有些比较有趣的地方,比如,你先按下‘上’不放,然后按下‘左’,那么就只有‘左’是有效的了,并且此时你放开‘左’,‘上’虽然依旧按下,但是它已经无效了。那为什么在游戏里面我可以同时按下上和右,并且它们都是有效的呢,因为游戏里面只要收到按键的通码之后没有收到到按键的断码,那么它都是在执行命令的。而这段协议可以通过以下代码实现。





整个接收电路我直接用开发板兼万用板搭了个简单的3.3V转5V电路实现,显得有些凌乱,但不缺美丽。为了能够在我I5处理器的acer上实现当然还得PS/2转USB接口



最后,进行《极品飞车》实战测试



实际上,我很少玩游戏,但是也略懂,在《极品飞车》里除了控制方向键之外,还有按ALT键液氮加速的,当然我也考虑到了这点,事实上,我在遥控器的板子上预留了两个按键专用的端口,可以实现。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭