基于AVR的智能教学无人车控制系统设计

发布者:幸福之路最新更新时间:2014-01-23 来源: 电子设计工程 关键字:AVR  智能教学  无人车控制系统 手机看文章 扫描二维码
随时随地手机看文章
    智能教学无人车是一种履带式移动机器人,目前市场上的无人车大多采用单片机对其进行控制,其优点是体积小,成本低,结构简单,但仅仅依靠单片机远不能使无人车在复杂多变的工作环境中进行及时调整,并且极大地限制了其功能的扩展。基于此不足,本设计主要利用PC机与无人车的无线通信,使无人车在PC机无线指令下完成前进、后退、转弯、打击、生命值显示、调速和自动行驶等功能,并通过车载摄像头实时获取无人车所处环境信息,实现了远程监控。在执行任务时,如遭遇敌方车辆干扰通信,无人车在抵御干扰信号同时进行敌我识别,适时作出反击。

1 设计原理
   
教学无人车控制系统由上位机(PC)控制部分和下位机(教学无人车)控制部分组成。系统结构框图如图1所示。

a.jpg


    系统工作原理为:打开教学无人车电源时,Atmega128单片机通过语音模块使扬声器发出启动提示。当上位机无线控制台及PC端软件准备好后,PC端控制软件通过USB口向无线控制台单片机发出指令,使其配置无线模块相关寄存器,芯片进入指令发射模式;下位机由Atmega128单片机控制,在接收到上位机的指令后通过其集成的PWM外设模块产生2路PWM波和4条转向控制线经电机驱动模块增大驱动能力后控制左右2个电机产生相应的动作。例如,当PC端发出“左转”的指令时,下位机的无线模块接受成功后会自动返回接受成功应答信号。接着Atmega128单片机通过PA口控制L298P,使左侧电机反向转动,右侧电机正向转动,从而实现左转的功能;当PC端发出“打击”指令时,Atmega128则通过PE5口使红外发射管发出相应码制的红外进攻信号;当PC端发出“自动行驶”指令时,Atmega128结合接收霍尔传感器采集回来的数据,通过相应算法来协调左右两侧的电机,使坦克完成直线行走、转过固定角度,行驶固定距离等功能。教学无人车通过连接到PE5口的红外传感器感应对方无人车的攻击信号。如果接收到红外信号,PE5口会输入固定码制的信号,此时主控芯片会将生命参数减一并熄灭一个LED灯,当所有LED灯都被熄灭后,主控模块会通知语音芯片发出阵亡提示,无人车停止一切动作。

2 硬件电路设计
   
教学无人车控制系统硬件电路设计包括PC端无线控制台部分和下位机无人车控制部分的硬件设计。
2.1 PC端无线控制台部分硬件设计
   
无线控制台部分由PC机、STC12LE5A60S2单片机、NRF24L01无线模块及PL2303组成。PC端控制台软件通过USB口向STC12LE5A60S2发出指令,使其通过SPI串行通信协议配置NRF24L01的相关寄存器,随后芯片进入发射模式,将上位机指令转发给下位机。其设计电路图如图2所示。

b.jpg


2.2 下位机无人车控制部分硬件设计
   
下位机硬件由MCU模块、电机驱动模块、传感器模块、无线模块、语音模块、LED生命值显示模块以及电源模块组成。
2.2.1 MCU模块
    MCU模块以Atmega128单片机为核心,Atmega128单片机是一款高性能、低功耗的AVR 8位微处理器,处理速度可达1 MIPS/MHz,应用先进的RISC结构,特别是具有I2C、SPI、PWM、RS232串口、ADC、定时器等功能十分全面的外设。该单片机通过SPI串行通讯接口与无线模块连接,通过通用可编程I/O接口与电机驱动模块、语音模块、红外发射管和接收管连接。
2.2.2 电机驱动模块
   
电机驱动模块用于驱动直流电机,采用L298P电机驱动芯片。L298P是SGS公司的产品,为20管脚的专用电机驱动芯片,内含二个H—Bridge的高电压、大电流双全桥式驱动器,接收标准TTL逻辑准位信号,可驱动46 V、2 A以下的步进电机和直流电机,具有高电压、高电流的特点。电路设计如图3所示。

c.jpg


    Enable控制电机停转,接到单片机的PE3、PFA口上,由这两个I/O口产生PWM波控制电机转动。input1—input4控制电机的正反转,接到单片机的PA0-PA3口上。OUT1、OUT2和OUT3、OUT4之间分别接2个直流电机。
2.2.3 传感器模块
   
传感器模块包括红外模块和霍尔模块两部分。
    红外模块包含接收和发射两个功能模块。红外接收模块由一个红外接收管构成,接收对方车辆发射的红外攻击信号。当系统接收到进攻信号时,PE6引脚上会出现一个高电平,触发一次外部中断,在中断服务程序中处理并判断红外数据。如果确认为进攻信号,则使生命值变量减一,同时熄灭一个LED灯。发射模块由一只红外发射管和一个三极管组成,红外攻击信号经过三极管放大后由红外发射管发出。攻击信号为8位数据,当收到进攻指令时,发射模块将程序中设定好的8位数据按位发出。
    霍尔模块由两只霍尔传感器和四片磁铁组成,用于测速,以实现调速、自动行驶等功能。磁铁正反安放在左右两个电机减速箱的二级齿轮的边缘上。当教学无人车行驶时,电机带动齿轮转动,两片磁铁就会交替从霍尔元件下面经过,由于两片的磁场方向不同,就会使霍尔元件内部的电子发生不同的偏转,这样,二级齿轮每转过一周就会使霍尔元件产生一个脉冲信号,构成闭环系统。主控芯片接收脉冲信息,通过不同算法可控制两电机完成不同的控制要求。[page]
2.2.4 语音模块
   
语音模块由WT588D语音芯片和SPI寻址的8M ROM芯片及其外围电路组成。使用前将需要播放的语音烧写在ROM芯片中。语音模块使用三线串口控制模式,这种控制模式由CS,DATA,CLK 3条通信线组成,分别连接到Atmega128的PC0、PC1、PC2 3个I/O口。控制时序根据标准SPI通信方式。
2.2.5 无线模块
   
无线模块主要包括NRF24L01和Atmega128。NRF24L01采用FSK调制,内部集成NORDIC公司自家的Enhanced Short Burst协议,可实现点对点或是1对6的无线通信,无线通信速度可达2.4 Gbps,并可以通过配置其寄存器实现调频传输。主控芯片通过SPI协议配置NRF24L01的相关寄存器来完成对无线模块的初始化和数据的传输。无线模块的SPI信号线对应的接到Atmega128的PB0-PB3 4个I/O口上,CE端接到PE2,利用Atmega128内部集成的SPI功能进行通信。无线模块电路设计如图4所示。

d.jpg



3 软件设计
   
软件设计包括控制端软件的设计和终端软件的设计。
3.1 控制端软件设计
   
无人车控制台的主控软件将键盘指令转化为控制码发往下位机,控制小车的动作并显示下位机发来的状态信息???。该软件利用Labview串口通讯将键盘指令转化为二进制字符串送到上位机。利用模拟SPI的方式,通过STC12LESA60S2配置NRF24L01的寄存器使其处于发射模式。当收到PC串口发送的数据时,NRF24L01在单片机的控制下将数据逐位发出。设计的控制端软件如图5所示。

f.jpg


3.2 终端软件设计
   
教学无人车的终端软件主要包括无线接收程序、驱动控制程序等。程序中定义变量Life为生命值标识,定义Date为小车的控制标识,定义函数Motor()为电机控制函数。流程图如图6所示,主要分为以下步骤:

e.jpg


    1)小车启动后,首先初始化各I/O口、系统中断、SPI接口以及NRF24L01的相关寄存器。小车的无线模块配置为接收模式。
    2)下位机接收到无线信号后会产生一个中断,将数据通过SPI送到Atmega128中。在控制程序中,用多分支选择结构switch—case判断Date的值,通过调用Motor()函数控制电机做出相应动作。
    3)接收到红外信号时,经判断若为有效信号,则使生命值标识Life减一。同时判断当前的Life值,设置PA口的值控制LED灯(生命值)的显示。

4 结束语
   
文中进行了一种基于Atmega128单片机和无线通信的无人车控制系统设计。实验结果表明,教学无人车在无障碍区域无线通信有效传输距离可达80~100米,利用车载摄像头可以实时获取无人车所处环境信息,实现远程监控。其创新点是采用了PC控制模式和单兵运行模式两种方式对无人车进行控制,极大地增强了无人车的功能性和环境适应能力。在实际对抗演练中,无人车在遇到干扰的情况下顺利完成货物运输、环境勘探、反击敌方车辆等功能,取得了良好的控制效果。该设计可广泛应用于短途货运客运、应急救援、恶劣环境下自动作业等领域。

关键字:AVR  智能教学  无人车控制系统 引用地址:基于AVR的智能教学无人车控制系统设计

上一篇:VLSI平台的AVR处理器仿真与设计
下一篇:基于无线传感器网络农田信息自动检测系统的设计与实现

推荐阅读最新更新时间:2024-03-16 13:34

AVR单片机的中断和中断键盘的使用
一、 中断的过程就不再赘言,功能,一般用于 实时处理程序 :快速执行 -中断键盘 分时操作 :进行另外的功能模块 -uart spi 故障处理 :也算实时处理的一部分 -掉电处理 待机唤醒 :可工作在低功耗下 使用的名词 : 中断源 中断标志 中断响应 请求信号 服务程序 中断使用的过程: 全局中断运行 本模块中断的允许 本中断标志出现了 AVR中断向量(地址)需要占用空间的,一般占用1-2个字 ATMEGA128有35个中断源 二、 中断响应过程 需要将
[单片机]
AVR单片机的C语言开发简介
Avr单片机和其他单片机一样,有自己的指令和寄存器,特定的IO口操作方法,有定时器,AD转换,串行口,PWM输出,EEPROM等。为了缩短大家学习的时间,快速的了解avr编程思路,拟定avr程序设计系列教程。我使用avr也不是很长时间,技术有限,错误再所难免,还请指出,以期改正。 【说明】:本页是针对从来没有碰过单片机或者用过单片机而没有用c语言的朋友,如果你已经用过其他单片机,此页说明可能对你没有很大帮助,且显得有些幼稚,请你跳过。 本站所有程序都是在icc+avrstudio下进行的,如果你没有配置好环境 采用icc的原因之一是它自带一个非常好用的application builder,生成的代码结构清晰,层次清楚,特别
[单片机]
<font color='red'>AVR</font>单片机的C语言开发简介
AVR单片机内部的复位功能解析
AVR单片机的复位:看门狗复位、上电复位、掉电复位看到大家对复位特别是AVR单片机内部的复位功能还不太清楚,现在这里简单说一下,希望在家能有个总体的认识。 AVR单片机复位大概有:上电复位、掉电复位、看门狗超时复位、外部复位,这么四种。 上电复位:就是在一通电的时候对单片机进行复位,这和我们外接RC复位电路的作用是一样的,AVR单片机内部带有上电复位功能。 掉电复位:就是在单片机运行过程中电压突然跌落,这个时候单片机会出现很多不确定的现象,所以在这个时候需要将单片机复位,让它处于一个确定的状态。这就是BOD功能,一个非常实用的功能,AVR单片机带有这个功能。 看门狗复位:这是我们常说的看门狗了,就是当程序进入某个地
[单片机]
<font color='red'>AVR</font>单片机内部的复位功能解析
基于AVR单片机和温度传感器实现智能温控系统的设计
引言 在工农业生产和日常生活中,温度的测量及控制越来越重要。传统的温度控制系统采用热敏电阻器或热电偶测量温度,但是由于模拟温度传感器输出的是模拟信号,必须经过A/D转换等环节才能获得数字信号,再加上这种温度采集电路有时需要冷端补偿电路,这样增加了电路的复杂性,且电路易受干扰,使采集到的数据准确性不高。随着技术的发展,目前国际上新型温度传感器已从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展。智能化温度传感器DS18B20将温度传感器、寄存器、接口电路集成在一个芯片中,能直接输出数字信号。本论文设计了以ATmega16单片机和DS18B20为主构成的智能温控系统,该系统的温度启控点可以根据用户需要而自行设定。 1、 系统
[单片机]
基于<font color='red'>AVR</font>单片机和温度传感器实现<font color='red'>智能</font>温控系统的设计
基于AVR单片机的激光测距机性能检测设计方案
  笔者设计了一种基于AVR单片机的激光测距机综合性能检测设备,借助该设备,对不同型号的激光测距机完成测距精度、测距能力、测距逻辑、单脉冲能量等的数字化检测,大大提高了检测效率和测试精度。    1 设计方案   本方案的基本思想基于模拟激光测距机的工作原理和激光传输过程,激光测距机在工作时,首先从其发射通道发射一激光脉冲,经过大气传输照射在被测物体上,然后漫反射,激光测距机的接收通道接收到漫反射的激光回波,激光测距机内部安装有激光脉冲的发射、接收和计时模块,根据激光脉冲从发射到返回的时间可以计算出其走过的距离,从而得到被测目标和激光测距机之间的距离。而本方案的综合性能检测设备与激光测距机的接收、发射通道相对应,分别提供发射、
[单片机]
基于<font color='red'>AVR</font>单片机的激光测距机性能检测设计方案
学习AVR(十) 复位和中断处理
AVR提供了几种不同的中断源。这些中断和复位向量在程序存储器空间内都有自己单独的程序向量。所有中断都被分配一个私有的使能位,要想使能某一中断,就要向其使能位写入逻辑1,而且要把状态寄存器中的全局中断使能位置1。 程序存储器空间最低的一些地址,被默认定义为复位和中断向量。完整的向量列表见 中断 部分。该列表也决定了不同中断的优先级。地址越小,优先级越高。RESET具有最高的优先级,其次是INT0 外部中断请求0。详细讨论见 中断 部分。 当某个中断产生时,全局中断使能位I被清零,所有中断都被禁止。用户程序可以向I位写入1,以实现中断嵌套。所有已使能的中断就可以中断当前的中断程序。当从中断指令 RETI 的执行返回时,I位被自
[单片机]
avr bootloader学习
Spm操作步骤: 1.检查SPM 操作是否已经完成 2.保存状态寄存器,关中断 3.检查当前是否有EEPROM写操作 4.执行SPM 5.恢复状态寄存器,开中断. FLASH自编程过程: 1.页擦除 2.全能RWW区 3.把数据从RAM移到时FLASH缓冲区 4.页写 5.重新使能RWW区 6.从FLASH读回数据,比较检查写入是否正确(此步骤为可选操作) 7.检查RWW区可以安全读取,函数返回.
[单片机]
AVR ATMega16在段式液晶上显示红外码
硬件:ATMega16(8MRC)+HT1621+一体化红外接收头 思路:红外解码采用中断捕捉方式(NEC编码),显示用液晶驱动HT1261 程序如下(WinAVR GCC环境编译): #include avr/io.h #include avr/delay.h #include avr/signal.h #include avr/interrupt.h #include avr/pgmsPACe.h #define HT1621_BIAS 0x29 // 设置LCD偏压发生器为1/3偏压,4个公共端 #define HT1621_RC256K 0x18 // 设置系统时钟源为片内RC(
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
    502 Bad Gateway

    502 Bad Gateway


    openresty
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved