1.从智能车说起
本小书是以全国大学生智能车比赛作为案例来展开,这是我大学时候的最爱,也是目前自己带的学生创新实验室主要的比赛项目,所以站在这个角度给大家简单说一下如何构建一个基本的嵌入式系统,不求实现的多么完美,但求简洁而明白。
智能车比赛主要任务是做赛道寻线跟踪处理,用摄像头采集前方赛道图像,实现车速和转向的控制,达到跟踪赛道行驶的效果,如果类比人开车的话,摄像头就相当于司机的眼睛,图像处理和控制相当于老司机,转速控制相当于加减油门和刹车,转向控制相当于方向盘,这样对应理解了吧。
智能车整体结构的俯视图和侧视图如图1所示,后轮电机驱动,电池后放,摄像头中间放置,舵机改造为立式。
整个智能车系统里面涉及几部分:机械设计,硬件设计,嵌入式平台软件,控制算法软件与图像处理软件,本小书将会重点对后三部分详细展开介绍。这里要说一点,虽然本小书不探讨机械,但是整个智能车机械部分是非常重要的部分,或者可以这样说,机械调教决定了车的理论最高车速,而控制软件部分只决定实际车速,由于受限于自己自动化的专业背景,机械这方面不能过多展开。如果想深入学习机械,请大家阅读相关的专业书籍。
2.整体系统结构
智能车的整体结构如图2所示,上面是软件部分,主要包括图像处理,转速控制和转向控制,下面是硬件机械部分,主要包括电机,驱动,编码器,舵机,摄像头。整个系统的信号流和控制结构都可以从图中看出来,获取图像进行处理得到加减速指令和转向指令,下发给转速控制器和转向控制器,转向控制器负责控制舵机实现路径跟踪,转速控制器负责两个后轮的转速闭环控制。
机械与硬件设计(电源,编码器,电机驱动,摄像头)
嵌入式平台软件(系统结构,分层设计,模块设计)
控制算法软件(转速PI控制器,Matlab仿真,转向控制器设计)
图像处理软件(Matlab与C语言混合编程,图像处理与验证)
3.经验之谈
一个嵌入式产品都会涉及到机械,硬件和软件,需要三部分的协作才能够完成,如果把做这个比赛看成一个项目的话,那就要考虑时间上的安排,这里要注意三者时间上的关系,机械如果有定制件的话,迭代周期会是1-2个月,硬件的迭代周期一般是1-2周,软件的迭代周期是1-2天,务必要清楚这一点,用到的机械上大部件(电机,舵机,摄像头等),必须提前采购好,做好充分的备料,这玩意如果出了问题,妥妥地托一个星期没商量,所以在满足性能和可用性的前提下,尽量简化机械与硬件的设计,做好保护措施。同时也要提前安排好时间,比如PCB发出去之前,最好所有用到的元器件要买齐,不然PCB板回来了,根本焊不出一个完整板子。