嵌入式Linux移植10. 实践环节-基于Linux的遥控小车

文章定位:记录此次DIY的技术路线,主要阐明思路,开发方法,具体技术细节可能有所欠缺

DIY目的:借此实践环节系统了解嵌入式Linux开发环节

笔者QQ:  1270035388 各位同仁可一同交流相关开发思路

 

软件硬件环境:

Windows10

vmware+Ubuntu12.04
OK335xd+am3354(forlinx家的板子,飞凌的底板用来烧写程序到flash)

车载主控:AM3354核心板+自己设计的底板

遥控器:使用STM8单片机做成的简易按键遥控器,主要由4个按键,1个通信模块,1个核心板组成

先上成果图(自动忽略凌乱的桌面):

 

嵌入式Linux移植10. 实践环节-基于Linux的遥控小车

技术路线:

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联系一同交流