您好, 访客   登录/注册

智能车系统的设计

来源:用户上传      作者: 杨景昱 周宇 邱敏

  摘 要:本文在参考国内外车辆自动驾驶技术的基础上,设计了智能模型车遥控及自动驾驶系统的硬件电路,建立了相关的开发调试平台,并实现了基于车轮码盘测速的导航测距和控制算法。
  关键词:智能模型车;MATLABGUI;无线串口
  中图分类号:TP274 文献标识码:A 文章编号:1674-7712 (2013) 04-0094-01
  随着科技的进步和人类需求的不断提升,传统汽车已不能满足人们的需求,具有自动驾驶功能的概念汽车已频频出现,也许在不久的将来,具备自动驾驶功能的智能汽车将走进我们的生活.为此本文构建了一个基于模型车的遥控及自动控制开发调试平台。
  一、总体设计
  该平台由PC机MATLABGUI软件充当上位机,以ATmega16单片机为核心的模型车充当下位机,二者通过无线蓝牙模快通信,系统简单稳定可靠。整体设计结构图见图1。
  二、智能模型车硬件电路
  智能模型车采用Atmega16单片机集中控制和分散模块化设计。智能模型车硬件由AVR单片机最小系统板,蓝牙模块HC-06实现无线串口连接以及电机驱动电路组成,智能模型车采用左右两个电机,Atmega16单片机OCR1输出PWM控制电机运动转速,单片机Atmega16的四个I/O口PC0、PC1、PC2、PC3分两组控制电机的转动方向。智能模型车装内部车轮转轴部分有SM100K模组,用于测量两路电机转速。
  三、智能模型车软件程序设计
  智能模型车的核心控制程序主要涉及三个部分:1.通过串口中断发送当前的车轮计数值;2.通过串口中断接收PC机部分传来的控制指令;3.单片机通过对L298N的各个管脚传输信号达到控制电机运行的目的。
  单片机的程序主要应用到ATmega16单片机的外部中断EXT0和EXT1用于接收车轮码盘的转动计数,由串口中断接收PC端发送的控制信息,经过单片机处理将控制信息转化成对电机的驱动信号。这时再由串口中断发送将当前的转动方向与码盘计数传回到PC端,完成模型车当前状态的信息采集工作。单片机程序设计基本流程见图2。
  四、MATLABGUI程序设计
  在GUIDE上设计的压力传感器标定软件GUI见图3,在此GUI上可以实现对串口的属性设定,对下位机ATmega16通过蓝牙串口进行控制并将两个轮子的速度值以进度条的方式显示在程序界面上。
  本设计主要设计了两种控制方式,一种是利用键盘对模型车进行实时手动控制,另外一种是在MATLABGUI的axes控件空间内设定样值点,运行自动控制,小车将按照设定的轨迹进行运行。
  上位机的主要任务是将控制信息转换成单片机能够接收的控制指令,首先加入两个0xff最为数据包头,接着发两个轮子的方向和速度信息的编码,最后是校验和。整个程序流程见图4。
  本文对自动驾驶技术进行了深入的了解的基础上,对自动驾驶如何控制问题的进行了抽象模拟,建立了以计算机为上位机,MATLABGUI程序作为控制平台,ATmega16主控模型车为下位机的开发调试环境。提出了一种自动驾驶的控制思路,在系统设计中综合了多学科的知识,对提高学生的综合素质,激发学生自主学习兴趣起到一定的作用。
  参考文献:
  [1]马潮.AVR单片机嵌入式系统原理与应用实践[M].北京:北京航空航天大学出版社,2007.
  [2]罗华飞.MATLABGUI设计学习手记[M].北京:北京航空航天大学出版社,2011.
  [作者简介]杨景昱(1981.10-),男,黑龙江省黑河人,黑龙江省黑河学院物理化学系,硕士,讲师,研究方向:单片机与嵌入式系统。
转载注明来源:https://www.xzbu.com/1/view-5182714.htm