0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用16位单片机和激光传感器实现寻迹智能车的软硬件设计

电子设计 作者:电子设计 2018-11-27 08:36 次阅读

智能车竞速比赛以及多种智能车的应用场合中,需要智能车沿着某条轨迹快速前进,使用普通红外传感器、激光传感器、摄像头识别均可有效提取路面轨道信息而解决这一问题,现在常见使用16位单片机作为控制核心。普通红外传感器因为易受干扰、前瞻距离短等缺点已经较少使用,摄像头有丰富的数据信息,但是低成本8位单片机不能很好的处理这些信息。激光传感器成本适中,处理的信号便于8位单片机处理,能够有效的节省硬件成本。针对寻迹智能车进行了软硬件设计,采用3位freescale单片机MC9S08AC16作为控制核心,使用激光传感器提取赛道信息,采用低成本的红外测速方案,算法使用以PID为基础的枚举查表法,做到了处理快速高效。整个设计既满足了竞速小车的响应迅速的要求,又是一种较低成本的设计方案。

1 车模安装

智能车的控制采用的是前轮转向,B型车模采用的是国内厂商生产的1:16的电动越野遥控车的底盘部分,突出特点为四轮驱动,四轮独立悬挂。反射式光电传感器在小车前方一字形简单排布,14个发射,7个接收,一个发射带两个接收,传感器的前瞻可以达到40cm以上,两个激光发射头间距1.8cm.传感器单元安装图如图1所示。

图1 改装后智能车

系统选用红外传感器作为测速传感器把红外传感器安装在后轮上,在后轮的内壁贴上黑白等距的胶带,这样子安装就充分利用了空间,且完成了测速的要求。红外传感器测速安装图如图2所示。车轮转动时,红外传感器将会输出脉冲电平,检测脉冲频率将得到小车速度。这种测速方法无法达到光电解码器的精度,但是对于小车的速度处理并没有太大影响,而光电解码器价格昂贵,安装在齿轮上,同等电源和PWM的输出时,小车速度会变慢。

图2 红外传感器测速的安装

2 硬件设计

电源管理模块采用7.2 V 2 000 mAh Ni-Cd蓄电池作为系统能源,并且通过降压稳压电路分出6 V,5 V分别给舵机和单片机等供电;使用H桥及其相关器件做了直流电机驱动模块;转向伺服舵机控制智能车转向;用红外传感器测量模块实时测量智能车车速;采用激光传感器作为赛道的检测;系统充分使用了M9S8AC16CG单片机的外围模块,具体使用到的模块包括:定时器模块、PWM脉冲宽度调制模块、中断模块、I/O端口实时时钟模块等。

2.1 最小系统及主板

系统采用的常规使用的最小系统板,以MC9S08AC16为核心的单片机系统的最小系统主要包括以下几个部分:时钟电路(外接的8 MHz的石英晶振)、电源电路(提供5 V直流电源)、复位电路、BDM接口(通过BDM头向单片机下载和调试程序)。

主板上有组成本系统的主要电路,具体包括:

电源稳压电路 7.2 V的电池电源将会通过3个集成稳压电路处理成两个5 V、一个约5~7.2 V的可调直流输出,其中一个5 V直流电源供单片机和相关外设工作,另外一个5V直流单独供激光传感器工作,可调直流输出供舵机工作,采用这种电源设计方式,可以提供所需不同大小的电源,同时在舵机、激光传感器工作时不会影响单片机的工作电源。

接口电路 包括舵机接口、电机驱动接口、电源接口、调试用人机界面电路接口、单片机最小系统插座。

电机驱动板作为一个独立的单元制作的直流电机"H"型双极性驱动电路

2.2 传感器模块

采用14个发射,7个接收,两个发射一个接收为一组一字排开。每次选中不相邻两个发射管发射,由两个接收譬分别接受。AC16单片机的IO端口进行控制,由74LD164驱动选择要发射的传感器,由一个555芯片发出100 kHz的频率震荡波,激光管发光。接受部分有一个相匹配的100 kHz的接收管接收返回的光,7路接收管的接收信号直接进单片机。传感器原理如图3所示。

使用16位单片机和激光传感器实现寻迹智能车的软硬件设计

图3 激光传感器原理图

3 软件设计

3.1 软件设计概要

系统的主函数将执行图4所示流程图对应的程序。调试程序可以完成的功能有:检验传感器故障、调试速度控制参数、舵机中点设置、舵机转角参数控制等。传感器数据的读取特指激光传感器的读取,在定时器程序中,每5 ms开始新的一轮激光扫描,每125μs更换1组激光发射管,每组发射两个不相邻的激光信号,所有激光发射5遍之后,3次以上检测到赛道轨迹信号才确认有效,此时才会设置传感器数据读取完成标志,所以系统每5 ms进入后续程序执行。小车舵机转向控制、速度控制稍后详细论述。对于小车马达速度控制则为闭环控制,采用bang-bang控制与P算法控制相结合,小车的速度读取采用了输入捕捉功能完成,车子运动时,车轮转动,每转过1/5圈,红外传感器就会输出一个完整的脉冲周期,通过读取红外传感器的输出脉冲频率确定小车的速度。

使用16位单片机和激光传感器实现寻迹智能车的软硬件设计

图4 软件设计流程图

3.2 小车行驶状态确定

该系统采用的赛道为宽为50 cm,中心线为25 mm的赛道,传感器在黑色上读取为1,在白色上读取为0,赛道外地板使用传感器有可能读1,也有可能读0.激光传感器终采用"一"字型排布方式,相邻的两个传感器的距离为20 mm.赛道如图5所示。

图5 赛道示意

传感器在赛道上可能的状态可分为:在普通的赛道处、在十字交叉线处,还有跑出赛道。系统定义了变量Car_State来代表小车当前的状态,可能会出现的情况如下:

1)当小车在赛道上时,将会有1到2个传感器输出高电平,如果有两个传感器同时打到黑点,而两个传感器并不是相邻的则认为是干扰信号,不作特别处理,其他按照如图6的传感器排布方法计算坐标从左向右依次为-13到13,此时Car_State计为传感器打到的坐标;

2)打到10个以上黑点计为交叉线,Car_State计为20;

3)没有打到黑点则认为小车即将跑出赛道,Car_State计为30;

4)另外还有一种情况传感器已经打到了赛道之外,而打到赛道外的传感器可能输出高电平,也有可能输出低电平,此时有可能读出的情况可能会判定为第一种,如图5示意,此时小车本应继续左拐,但是判读位第一种情况,就可能右拐,这种情况的判定就不能仅仅依靠读传感器来判定,还应考虑小车前面行进的趋势加以判别。因为此种情况一般只出现在小车转大弯时,由于转角不够当小车的传感器会打到相反方向的赛道外,所以左转或者右转的角度超过某一特定值时(如60°),应当屏蔽另一侧的传感器,只读转向该侧的传感器,如图5小车现转左侧大弯,右侧传感器检测到错误黑点,此时只要将右侧的7个传感器屏蔽,只读左侧传感器数值即可,此种情况Car_State计为40。

使用16位单片机和激光传感器实现寻迹智能车的软硬件设计

图6 传感器排布

3.3 舵机控制

小车在赛道上:Car_State为-13到13间的整数,由于光电管数量少,造成传感器返回值离散度过大,不适合进行回控,故应加快采样速率,进行过采样,再进行一阶迭代滤波:

PVal=((Car_State×1 000)+(Pvalx10))/11;

小车行使5 ms后位置的偏差进行迭代滤波:

Err=((PVal-PVal1)+(Errx10))/11;//两次位置偏差

P_Offset=Err/P_err; //负值左偏 正值右偏

if(P_Offset<-5)P_Offset=-5;    //左偏最大偏离为-5个单位

if(P_Offset>5)P_Offset=5; //右偏最大偏离为5个单位

将Err进行采样划分得到P_Offset变量,P_Offset取值为-5到5的整数,负数表示向左偏,正数表示向右偏,绝对值越大代表偏转角度越大;采样分辨率为可调参数P_err,P_err偏大时,小车反应会较为迟钝,P_err偏小时,小车反应会较为灵敏,容易出现很小偏差就会引起小车较大的转向。

按照小车当前的位置以及P_Offset组织数据表Angle_Table[],该表共有27行11列,第n行m列元素j,表示小车位置Car_State为n-13偏差P_Offset为m-5时,j的值在-10到10之间,负值代表向左转,正值代表向右转,小车舵机应打的角度为jxAngle_C,可调参数Angle_C可以根据赛道状况舵机反应灵敏度等调节,其调节在调试程序中完成,其值愈大,同等情况下转角越大。

舵机的控制就是通过查数据表Angle_Table来实现,而不是通过公式求解,这种方法比较适用于8位单片机,通过检索表可以达到运算所达不到的系统速度。

小车在交叉线时Car_State=20不更改舵机的控制;当小车的传感器打不到黑点,即将跑出赛道活着已经打到赛道外时Car_State=30或40,此时按照小车转的方向,将舵机设置为最大转角,以达到尽快找到赛道黑线的目的。

舵机的输出PWM采用5 ms周期,与小车传感器采样的频率一致。

4 试验结果及总结

通过上述方法,小车取得了比较好的试验结果,在最小曲率半径不小于50 cm的赛道上,小车可以取得每秒2 m以上的速度。其速度比采用16位单片机的系统没有很大差异。要特别注意的是,运算时采用不同数据类型的变量将会带来不同的效果,经实验证明,如果可以使用字节存储类型的变量作双字节变量存储,将会严重影响小车的运行情况,这是由单片机编译环境进行数学运算引起的,应当尽量避免不恰当的变量定义及算数运算。

相较于当前流行的16位单片机控制的双舵机智能车,该系统在硬件上成本较低,而软件也根据8位单片机的特点,避开了较为复杂的运算,采用了查表的方式,只在小车位置及偏差运算以及速度P算法中涉及了少量的数学运算,以此达到系统的快速响应。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2526

    文章

    48092

    浏览量

    740028
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620825
  • 激光
    +关注

    关注

    19

    文章

    2752

    浏览量

    63485
收藏 人收藏

    评论

    相关推荐

    工程师电子制作故事:光电寻迹智能车DIY设计

    提出一种使用激光检测白底黑色跑道的寻迹智能车软硬件设计方法,在硬件上设计了最小系统、主板、电机驱动、
    发表于 03-18 12:03 4035次阅读

    电动智能车硬件设计与方法测试

    电动智能车硬件设计与方法测试80C51单片机是一款八单片机,他的易用性和多功能性受到了广大使用者的好评。这里介绍的是如何用80C51
    发表于 12-07 17:22

    AVR单片机软硬件设计教程入门篇

    AVR单片机软硬件设计教程入门篇单片机就是一台微型电脑。麻雀虽小,五脏俱全,单片机将微型电脑的所有基本部分都集成在一片硅片上。构成单片机的基
    发表于 12-09 15:22

    承接单片机软硬件开发

    领先单片机工作室在广州,专业承接控制类,消费类电子产品软硬件开发业务,包括51,PIC,AVR,三星,EMC等8单片机,MSP430等16
    发表于 04-04 14:16

    实时监控防火智能车

    的功能吧:基于51单片机,利用火焰感应、温度传感、GSM、寻迹和驱动等多个模块,实现对仓库或有毒易燃物品的无人化二十四小时监控,更灵敏更经济。可以
    发表于 04-29 00:11

    基于HOLTEK单片机智能车

    基于HOLTEK单片机智能车
    发表于 05-17 17:37

    承接单片机软硬件开发

    承接单片机软硬件方案,主营无线产品开发(GPRS,315-433M,2.4G发射接收,WIFI,ZIGBEE,蓝牙),台灯和吸顶灯灯控,工控,汽车电子,智能家居。可提供硬件设计和软件开
    发表于 09-10 11:55

    基于光电传感器的能自主识别道路的智能车

      智能车系统配有7.2v的蓄电池,可直接为直流电机供电。单片机、光电传感器和光电编码所需电压为5v,伺服舵机为6v。这些电压则由7.2v蓄电池调节得来。  
    发表于 11-05 15:50

    基于光电管路径识别的智能车系统设计

    。  4 结语  本文设计了一个智能车控制系统,实现了快速自动寻迹功能。在硬件上,该系统采用MC9S12DG128B单片机为控制核心,协调电
    发表于 11-06 15:08

    光电传感器智能车的控制设计方案

      本文是根据第三届全国大学生“飞思卡尔”杯智能汽车大赛要求设计自主识别道路的智能车。整个系统采用了组委会提供的16单片机mc9s12dg
    发表于 08-05 06:28

    智能车教程单片机原理及应用

    智能车教程单片机原理及应用(C语言版)4.ppt智能车教程制作过程单片机原理及应用 (C语言版)第4章单片机C语言及程序设计 第4章
    发表于 07-14 08:34

    怎样去设计一款完整的智能车

    的无人驾驶技术来的那么复杂,但是也需要相应的传感器、执行、控制以及硬件电路并进行控制算法的设计与调试等。一般需要数月才能较为系统地掌握上述知识,而能熟练应用并进行系统化调试以及创新
    发表于 07-29 06:00

    基于单片机智能车设计

    组、直立电磁组、双接力组、声音信标组;创意1组:AI电磁组。此外,由于今年比赛引入了更多的单片机和赞助商,因此在单片机使用上和往年有着较大的区别。1.基础四轮组四轮组从竞赛举...
    发表于 09-02 06:29

    如何去实现一种基于AT89S52单片机智能电动设计

    摘要:本智能车是以铝合金为车架,AT89S52单片机为控制核心,加以直流电机、舵机、光电传感器、火焰传感器和电源电路以及其他电路构成。系统由89S52通过IO口控制小车的前进后退以及转
    发表于 12-13 06:51

    低成本8位单片机控制的光电寻迹智能车

    提出一种使用激光检测白底黑色跑道的 寻迹智能车软硬件设计方法,在硬件上设计了最小系统、主板、电机驱动、
    发表于 05-30 15:31 369次下载
    低成本8位<b class='flag-5'>单片机</b>控制的光电<b class='flag-5'>寻迹</b><b class='flag-5'>智能车</b>