文章定位:记录此次DIY的技术路线,主要阐明思路,开发方法,具体技术细节可能有所欠缺
DIY目的:借此实践环节系统了解嵌入式Linux开发环节
笔者QQ: 1270035388 各位同仁可一同交流相关开发思路
软件硬件环境:
Windows10
vmware+Ubuntu12.04
OK335xd+am3354(forlinx家的板子,飞凌的底板用来烧写程序到flash)
车载主控:AM3354核心板+自己设计的底板
遥控器:使用STM8单片机做成的简易按键遥控器,主要由4个按键,1个通信模块,1个核心板组成
先上成果图(自动忽略凌乱的桌面):
技术路线:
1.小车底盘条件:
某鱼上淘的个遥控玩具车,拆去它的主板和遥控器,只留下底盘,车上总共三个130电机,型号相同,舵机就是个130电机,上电一直旋转;前后各一个130驱动电机,车上自带减速器,前后电机并联到继电器电路。
2.车载主控:
使用飞凌家的FET系列的AM3354核心板
自行设计底板,力求功能实现简单易行,可能不是成本最低,最聪明的方法,但是最终走通了Linux开发的学习,使用四路继电器实现舵机和电机的正反转(相当于四个继电器控制2个电机,改变电流方向),使用HC-12无线透传模块通信,比ZigBee便宜点
3.遥控器
使用STM8单片机,第一次使用此型号单片机,后期用来做小型低功耗电路,借此试验一下,直接使用核心板模块,省去各种麻烦,外设为4个按键,1个HC-12无线透传模块,另外设计了2.4Ghz模块接口,AD接口尚未测试
控制思路:
STM8检测到按键按下----发送信息到车----车接收到信息控制两路继电器实现转向或运动同时亮灯----STM8按键松开----发送归正或停车信号-----车接收到信号回正方向或停车同时灭灯
车载软件开发方法:
1.关于IO控制的基本技术原理借鉴嵌入式移植8
2.使用NFS挂载文件系统,在Ubuntu上开发车上的控制程序,为了显示程序运行,在接收到特定信号后打开LED,关掉LED,先在飞凌主板上测试通过(拿电表量IO变化,拿串口线代替无线)
3.修改内核驱动,添加输出IO,用来控制4个继电器,串口驱动采用飞凌自带的,不做修改,编译生成新的uImage文件
4.飞凌主板上测试成功后,将根文件系统制作好,其中将控制车的程序放在/mnt中,在etc的文件中将车控制程序设置成开机启动,然后将根文件系统打包成ubi.img镜像文件
5.将新生成的uImage和ubi拷进SD卡,烧录进核心板的flash
6.将核心板放到自己的底板
遥控器软件开发:
1.使用IAR,配置好芯片型号,打开串口例程,按键例程,安装配置好stvp下载软件
2.在串口例程上添加4个按键(第一次使用不熟悉,对我来说这样开发最快),编译生成hex文件
3.使用stvp下载hex文件到STM8,测试
硬件开发:
笔者做电路板开发已有几年,此次开发虽然要求简单,但迫于时间限制马失前蹄。。同时因为不想做电路开发这方面,结果一天设计完PCB,先是核心板的两侧引脚搞反,好在敷铜前发现错误,三极管线序搞错,继电器怎么都不响,直接架起直插三极管解决,后来拿降压模块给2个驱动电机供电直接卡掉电,切板子上走线另接一路电池解决。
警示各位道友。。不管什么时候硬件设计都不能掉以轻心,修改成本太大,还不如开发时上点心
由于技术涉及面比较广,所以文章写得比较凌乱,如有同仁做相关开发有疑问可QQ1270035388联系一同交流