|
本帖最后由 andeyqi 于 2018-8-24 13:35 编辑 最开始萌生这个想法是因宝宝的遥控车,小宝宝只会控制一个方向不会转向控制操作,就想到了如果可以使用PS游戏机的摇杆来控制,就能解决这个问题了,就开始上网找找资料,发现万能的某宝真的有破解了PS2协议的手柄,就觉得这个方法应该是可行的。废话不多说了下面进入正题。 ====================正文分割线================== 开发环境: 硬件环境:STM43F407VET6+L298+PS2手柄接收器+12V锂电池 软件环境:STM32F4xx_DSP_StdPeriph_Lib_V1.8.0+arm-none-eabi-gcc+JLINK
图片为制作完成后各模块在车内的放置位置,电池在MCU下方被挡住了看不到,本来准备使用前端时间社区活动获得的NUCLEO-F042K6开发板来做,正好利用其尺寸小巧的特点便于在车身内放置,开发板现在还没到位正好试了下手头的407正好可以放下,尺寸大小刚刚好基本就像是量身定做的,就直接使用手头的407来开发了。开发板的供电由12V的锂电池通过L298后会有一路5V的输出直接给开发板供电。PS2接收模块的供电由开发板的3.3V输出电压提供。至此外部条件已经具备,只欠内部代码编写调试了。 电机控制: 基于ST 的L298模块的电机控制非常简单,L298可以输出两路通道来控制电机,一路输出用来控制前面的前面舵机来控制转向,一路输出用来控制后面的驱动电机控制前进后退,控制方式可以通过调节PWM来控制小车的加减速。 PS2接收模块: 通过PS2接收模块接收到的摇杆的模拟量来判断要控制小车的前进后退左右转弯。 方案其实还是很简单的,代码的实现就不在这啰嗦了,代码放到如下github(http://github.com/andeyqi/PS2CAR)上了,因为是初版代码,代码写的也比较仓促可能存在些问题,发现什么问题欢迎大家指正。 代码的编译在顶层文件夹下有makefile,我使用的编译器是arm-none-eabi-gcc(gcc version 5.4.1 20160919),可以替换成本地的编译器编译。 烧好程序后,控制效果如下(通过手柄的左摇杆来控制):
最后来个全家福,带上车壳的小车是不是能美观些。
后续计划: ①手柄的好多按键现在都没有充分利用,可以利用手柄的L2,L3来控制小车的加减速,遥想当年实况8的时候就是用这连个按键来控制的。 ②可以增加红外传感器来避障,避免小车的碰撞和撞到人,试验了下被撞一下还是很疼的。 ③一直想做个APK通过手机来连接wifi控制,可惜不会andirod和java,待安卓充电完成后可以继续下这个。 |
PS2CAR-master.zip
下载438.38 KB, 下载次数: 107
微信公众号
手机版
感谢捧场,实现没有多难。
小孩的玩具车 之前是在京东买的,http://item.jd.com/1179294.html
小孩的玩具车 之前是在京东买的,http://item.jd.com/1179294.html
谢谢哈。不过家里是个女儿哎,这些玩意儿只能偷偷摸摸地搞了。要是儿子就可以光明正大地折腾了
哈哈