智能车制作全过程

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

智能车制作全过程

(本人在很久以前做的一辆用来比赛的智能车--获得华北一等奖,全国二等奖,有许多可改进地方.)

下面我们来立即开始我们的智能车之旅:

首先,一个系统中,传感器至关重要.

"不管你的CPU的速度如何的快,通信机制如何的优越,系统的精度永远无法超越传感器的精度" .是的,在这个系统中,传感器的精度,其准确性就显得至关重要.如果你问我传感器的电路,呵呵,我早就和大家分享了,在我发表的日志中,有一篇<<基于反射式距离传感器>>的文章就详细的说明了传感器的硬件电路以及可以采取的信号采样方式.

传感器安装成一排,如上面排列.(就是个一字排列,没有什么特别)

接下来,看看我们如何处理传感器得到的信息:

大家看到了.结构很简单,我们已经搞定了传感器通路.下面我们来看看多机的控制方面的问题:

其实,不管是便宜还是比较贵的舵机,都是一样的用法.舵机的特点就是不同的占空比方波就对应着舵机的不同转角.当然不同的舵机有不同的频率要求.比如我用的这个舵机:方波

频率50HZ。

仔细看,和后轮之间有一条皮带的这个貌似电机的东西,就是我的速度传感器,它的学名叫"旋转编码器".这个器件的特点就是:每转一圈,就会从输出端输出一定的脉冲,比如我这个旋转编码器是500线的,就是转一圈输出500个脉冲.因此,我只要在单位时间内计数输出端输出的脉冲数,我就可以计算出车辆的速度.显然,这个速度可以用来作为PID速度调节的反馈.

现在有了反馈,我们需要的是调节智能车驱动电机的速度了,如何来调速,就成了必须解决的问题了.我用的是驱动芯片MC33886.

其实,这个芯片就是一个功率放大的模块.我们知道,单片机输出的PWM信号还是TTL信号,是不能直接用来驱动电机的.非要通过功率模块的放大不可.这个道理其实很简单,就像上次

我给大家画的哪个电子琴电路的放大电路一样:

看上面的那个三极管,就是将TTL电路的电流放大,才能够来驱动蜂鸣器.其实这里的这

个MC33886就是这样的一个作用.而且我们自己也完全可以用三极管自己搭建一个这样的功

率放大电路,当然,驱动能力肯定不如这里的这个MC33886(如我们用三极管就搭建了超过

MC33886的电路,摩托罗拉就不会卖几十块钱一个了.呵呵.)知道了这个MC33886的工作原理,就好说了,一句话,通过PWM来调节电机的速度.当方波中高电平占的比例大,电机的平均电压肯定高,转速肯定快.也就是说,PWM的占空比越大,电机转速越高.

看,就这么简单,这个智能车就做好了.接下来,我们就把我们知道的PID知识放到舵机

和直流驱动电机的控制中去.就可以达到一个比较好的控制效果.

如果要达到更高的水平,肯定机械方面的改造也少不了.当然,这不属于本文的讨论范围.呵呵.

基于视觉的高速寻线机器人设计与实现

在最近一些机器人竞赛中,对于机器人的寻线行走,除了要求精确之外,对机器人寻线速度也提出了很高的要求,速度往往成为某些比赛制胜的关键。在最近教育部推出的全国大学生智能汽车大赛中,更是将寻线速度定为比赛的主题。本文在总结参加此类赛事的基础上,提出了一种将单片机作为核心控制器,利用低分辨率摄像头代替通用光电传感器的机器人高速寻线行走机构设计方法。

1 车体机械设计

为了体现速度要求,采用仿真赛车模型作为车体机械平台。采用后轮驱动,前轮转向的工作方式,实现高速转向运动;而如果采用两轮式结构,通过双电机差速方式实现的转向运动,在高速转向情况下,对电机同步控制要求很高,难以实现。前轮转向采用舵机驱动,后轮驱动通过直流电机传动到后轮轴,利用机械差速机构避免转向打滑。其各主要部件安装位置如图1所示。

图1 车体实物及结构示意图

机器人采用摄像头作为寻线传感器,为了使摄像头获得很好的前方视野,将摄像头安装在车体前部高处,从而捕获车体前方足够丰富的路线信息,实现线路预判,这是视觉方案在寻线速度上大大优于光电传感器方案的关键。

2 硬件电路设计

这里主要介绍作为核心控制器的单片机性能以及视频采集模块电路结构,简要介绍其他模块硬件实现。系统整体结构如图2所示:

图2 系统硬件结构设计图

2.1 核心控制器设计

为了实现视频采集,考虑综合性价比、设备安装等因素,核心控制器选用Freescale公司的16位高性能单片机——MC9S12DG128(以下简称S12)。它的指令处理时钟可以达到38MHz,其A/D转换器的工作时钟可以达到16MHz,用于采集视频。同时它拥有8路PWM通道,控制舵机和直流电机完成转向和速度控制;8路捕捉/比较通道获取作为速度传感器的编码器脉冲信号;串行通信接口用于无线调试;多达64个IO(通过IO复用方式)足够用于状态显示及参数设置。另外,其拥有128k的flash存储空间,无需进行存储器扩展,在片内就可以实现视频数据存储和调用。如图2所示,整个系统采用一块单片机,无需添加其他控制器、存储器,成为真正的“单片”系统。

2.2视频采集模块

由于单片机A/D速度限制,需要选用低分辨率的黑白摄像头。因为低分辨率意味着视频单行扫描时间的增加,而黑白摄像头意味着只需要单路A/D就可以完成视频采集工作。选择了Omvision生产的ov5116芯片为内核的CMOS黑白摄像头,分辨率为320×240,图像刷新频率50Hz。同时选用LM1881视频同步信号分离芯片提取视频信号中的行同步和场同步信号,连入s12的脉冲捕捉通道。通过捕捉信号触发AD模块工作,采集存储视频数据。

图3 视频采集电路原理图

2.3电机控制及电源

选用Mabuchi公司生产的RS-380SH直流电机作为主驱动电机,通过PWM信号控制。选用Freescale公司的MC33886全桥驱动芯片,通过两路半桥实现电机正反转。这里的电机反转并不为实现倒车,而主要用于车体减速。在进行电机正反转切换时,电机驱动电流会随着负载增大而瞬间放大,因此需要增大稳压能力,保证系统正常工作电压,避免单片机自动重启。在整个系统中,有多种电压需求,单片机和舵机为5V供电;CMOS摄像头为6~9V。因此,为了方便开发,这里选用最常用的7.2V充电电池组。只需在系统内加入5V稳压芯片,提供5V 电压。

3 视频采集与处理

这里重点介绍用s12片内A/D实现视频采集和视频处理工作。

3.1视频采集

S12上AD标准工作时钟为2MHz,而AD采样至少需要14个时钟周期。由此可得,每采集一次需要7us=14/2M。根据视频传输原理和CMOS摄像头参数,视频单行扫描时间为。因此,在默认时钟工作情况下,A/D模块单行只可以采集9个视频点,采集效果如图5。

图4 2MHz A/D时钟下视频采集效果

这种采集效果显然无法满足寻线控制要求,因此需要加快AD工作时钟,将速度提高8倍,达到16MHz,采样所需时间也同比视频加快8倍,理论上,单行可以采集77个点。实际采集效果如图5,精度达到40×76象素。这样的视频效果足已达到寻线精度要求。(由于采集精度很高,其中每行视频中多个采样点位于视频行消隐区,即图像两侧黑色区域)

相关文档
最新文档