智能循迹避障小车_论文

更新时间:2023-06-03 23:57:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

AVR单片机智能循迹壁障小车论文

机 器 人 大 赛 论 文

摘要

AVR单片机智能循迹壁障小车论文

本系统是通过红外检测器和光电传感器采集信号,并将采集到的信号传送给

以AVR Atmega16单片机为控制核心的控制系统,与L298一起驱动空载转速为300r/min直流减速电机,使智能小车在跑道中智能的进行寻迹行走和越过障碍物,采用MG995旋转角度为180度的金属舵机辅助机械臂进行抓罐。小车在整本系统的模块主要有:红外循迹模块、光电传感器模块、单片机最小系统模块(控制器模块)、电源模块、L298芯片驱动电机模块。

关键词:红外检测器光电传感器 AVR Atmega16单片机L298芯片舵机

目录

摘要................................................................................................................................................... 1 1 系统方案 ....................................................................................................................................... 3

1.1 1.2 1.3 1.4 1.5

电源模块的论证与选择 ............................................................................................... 3 控制模块的论证和选择 ............................................................................................... 3 电机驱动模块 ............................................................................................................... 3 十字线检测模块的比较与论证 ................................................................................... 3 机械臂模块的比较与论证 ........................................................................................... 3

2电路设计 ........................................................................................................................................ 4 2.1 电源电路 ................................................................................................................................... 4 2.2 主控电路 ................................................................................................................................... 4 2.3 红外探头循迹电路 ................................................................................................................... 4 2.4 L298N电机驱动电路 ................................................................................................................ 5 3 程序设计 ....................................................................................................................................... 6 3.1整体流程图 ................................................................................................................................ 6 3.2 小车循迹流程图 ....................................................................................................................... 6 4总结................................................................................................................................................ 7 参考书籍 ........................................................................................................................................... 7 附录程序 ........................................................................................................................................... 9

AVR单片机智能循迹壁障小车论文

1 系统方案

小车主要由电源模块,单片机控制模块,L298驱动电机模块,红外探头循迹模块,十字线边界检测模块和机械臂模块组成。下面分别论证这几个模块的选择。

1.1 电源模块的论证与选择

方案一:选择一块12v直流线性锂电源直接给电机供电,经过LM7805三端稳压芯片输出

5v直流电源给红外循迹模块,检测十字线和障碍物的光电传感器,单片机舵机供电。

方案二:选择用两块12v锂电原,一块电源经7805降压后给红外循迹模块和光电传感

器和单片机供电,另一块电源给直流电机,电机驱动L298和负责抓罐子的舵机供电。 考虑到电路的功耗较大且金属舵机所需电流较大,一块电源负荷太大,所以选择方案二。

1.2 控制模块的论证和选择

方案一:采用传统的51单片机。传统的51单片机为8位机,价格便宜,控制简单,但是控

制速度慢,片内资源和存储容量较少,计算精度不高,增加了外围电路的不可靠性。 方案二:采用AVRmegel16单片机。16单片机片内资源较丰富,处理速度较快,有多路PWM

输出口,便于电机的调速和舵机的旋转角度的控制。 考虑到系统的精确性,快速性和简便性,选择方案二。

1.3 电机驱动模块

方案一:采用分立组件组成的平衡式驱动电路,可以由单片机直接对其进行控制,但由于分立组件占空间较大,考虑到电机的体积问题,还需要继电器,此方案不够理想。 方案二:采用L298N电机驱动模块。此模块工作较稳定,且编程简单,体积小,内部集成了两个H桥,可以同时控制两个电机。硬件实现较简单。

考虑到软硬件的控制的简便性,采用方案二。

1.4 十字线检测模块的比较与论证

方案一:采用红外探头传感器进行检测是否走到十字线,此方案直接利用四路循迹红外传感器的最外侧的两路,如果最外面的两侧的传感器都检测到黑线则会给输出端在高电平。这种方案可以检测到十字线,但由于受速度和跑道环境的影响,状态不是很稳定。 方案二:采用一个光电开关传感器安装在小车两侧的任意一侧的外侧,光电开关传感器是一种集发射器和接收器于一体的传感器,当检测到十字线时,会将光电发射的足够的光线反射到接收器,于是光电开关就产生了开关信号。此种方法没有利用循迹的传感器,便于程序的编写。

经实际编程的需要,采用方案二

1.5 机械臂模块的比较与论证

方案一:采用磁铁片附在机械臂上进行吸合罐子。此种方法控制简单,且速度快,失误率低,

但是其到终点时无法放下罐子,不能满足赛题的要求。

AVR单片机智能循迹壁障小车论文

2.2 主控电路

2.1 电源电路

2.3 红外探头循迹电路

考虑到实际情况,采用方案二。

图二

图一

2电路设计

方案二:采用舵机进行抓罐子,舵机可以旋转180度,可以利用PWM输出控制舵

旋转角度从而将罐子抓起,到达终点可以将其放下。舵机易于控制,价格不是很贵。

利用红外线在不同颜色物体表面具有不同的反射性强度,在小车行驶的过程中不断地向地面发射红外光,当反射光遇到白线时,发生漫反射,被接收管吸收。但遇到黑线时,发射的红外光被黑线吸收,接收管就不会接收到反射回来的红外光。并将输出高电平送给单片机判断。电路如图三所示。

系统采用ATmegel16单片机为主控电路,此电路简单并且具有良好的可靠性,电路图如图二。

系统采用两路12V的锂电池经LM7805三端稳压芯片输出5V电压,由于LM7805输出并不是很稳定,所以须加以合适的保护措施电路。电路图如图一。

AVR单片机智能循迹壁障小车论文

图三

2.3 反射性开关电路

当开关发射光束时,目标产生漫反射,发射器和接收器构成单个的标准部件,当有足够的组合光返回接收器时,开关状态发生变化,作用距离的典型值一直到3米。特征:有效作用距离是由目标的反射能力决定,由目标表面性质和和颜色决定;较小的装配开支,当开关由单个元件组成时,通常是可以达到粗定位;采用背景抑制功能调节测量距离;对目标上的灰尘敏感和对目标变化了的反射性能敏感。光电开关工作电路如下图所示。

【图四】

2.4 L298N电机驱动电路

L298有两路电源分别为逻辑电源和动力电源,上图中6V为逻辑电源,12V为动力电源。J4接入逻辑电源,J6接入动力电源,J1与J2分别为单片机控制两个电机的输入端,J3

AVR单片机智能循迹壁障小车论文

J5分别与两个电极的正负极相连。

ENA与ENB直接接入6V逻辑电源也就是说两个电机时刻都工作在使能状态,控制电机的运行状态只有通过J1与J2两个接口。

由于我们使用的电机是线圈式的,在从运行状态突然转换到停止状态和从顺时针状态突然转换到逆时针状态时会形成很大的反向电流,在电路中加入二极管的作用就是在产生反向电流的时候进行泄流,保护芯片的安全。

3 程序设计

3.1整体流程图

【图6】

3.2 小车循迹流程图

AVR单片机智能循迹壁障小车论文

【图7】

4总结

4.1结果分析:

小车有循迹轨道时循迹,没有时可执行前进。如果小车遇到十字路口时或小车遇到停止线时,执行中断计数语句,这样就可以继续判别怎样走。这样小车就能成功的跑完整个赛道,达到比赛的要求。

4.2制作的心得体会:

在整个智能循迹小车的制作阶段,我们学到了许多有关单片机的知识以及团队合作的重要性,也明白了学好了课本上的知识而没有实际的动手能力也是不行的。虽然在焊件时将手烫伤过,调试硬件、软件调试不出来烦躁过,但没放弃过。制作小车需要的不仅仅是兴趣,更多的是耐心。刚开始时,由于第一次焊件,我们焊接的循迹模块并没有想象的那样,可以正常循迹。经过一个一个的调试,一遍又一遍的检查,最后终于可以实现正常循迹。看到小车能够沿着轨道正常的行驶,那种成就感更是我们今后学习的不竭动力。

4.3更远发展的设想:

(1) 该车的速度不是很快,如果有可能可以使其正常时能提速,在拐弯处能适当减速进行拐弯,实现又快又稳行走。

(2)程序执行速度些慢,如果将单片机换成ARM板,也许会达到更好的效果。

参考书籍

(1)马忠梅.单片机的c 语言应用程序设计[M]. 北京:北京航空航天大学出版社,2007

AVR单片机智能循迹壁障小车论文

(2)陈永甫.红外探测与控制电路[M]. 北京:人民邮电出版社,2004.

(3)李华等.MCS-51 系列单片机实用接口技术[M].北京:北京航空航天大学出版社,2003.

AVR单片机智能循迹壁障小车论文

附录程序

#include <iom16v.h> #include <macros.h> #define uint unsigned int #define uchar unsigned char int b=0,c=0; int m=1; uint w=1;

//传感器从左到右 PA0 PA1 PA2 PA3 //IN1 IN2 IN3 IN4 PC0 PC1 PC2 PC3 //使能 B PB3 A PD7 void delay_us(int t) { do t--; }

void delay_ms(uint t) {

while(t!=0) {

delay_us(1142); t--; } } void zero() {

DDRA=0XF0; DDRB=0XFF; DDRD=0XFB;

PORTB=0XFF; PORTD=0XFF;

DDRC=0XFF; PORTC=0XFF;

MCUCR=0x03;//INT0 上升沿出触发; while(t>1);

GICR=0xC0;//外部中断使能打开 SREG|=BIT(7);//全局使能打开

//舵机

TCCR1A=0XA2; TCCR1B=0X1A; ICR1=19999;

OCR1A=2500; //2500 1200 SULIAO OCR1B=2400; //2400 780 //电机的初始化 TCCR0=0X69;

OCR0=205; TCCR2=0X69; OCR2=205; }

void duoji_shang()//下——舵机执行函数 {

TCCR1A=0XA2; TCCR1B=0X1A; ICR1=19999; OCR1B=780; }

void duoji_xia()//上——舵机执行函数 {

TCCR1A=0XA2; TCCR1B=0X1A; ICR1=19999; OCR1A=1000;//1200 delay_ms(500); OCR1B=2400; }

void stop() {PORTC=0XFF; }

//INT1低电平触发 0000 1011

AVR单片机智能循迹壁障小车论文

void zhi_zou() //直走函数 { }

void zhi_zou1() {

OCR0=175; //蔽障减速 OCR2=182; PORTC=0XFA; }

void head_left() //蔽障左转右后左前 {

OCR0=200; }

void head_right() //蔽障右前左后 {

OCR0=112; } //左扭

void turn_left1() { } //右扭

void turn_right1() {

OCR0=205; OCR2=190; PORTC=0XFA;

}

TCCR0=0X69; TCCR2=0X69; OCR0=245; OCR2=220;

//左扭 void turn_left() { } //右扭

void turn_right() { }

#pragma interrupt_handler INT_0:2 void INT_0() { b=b+1;

PORTC=0XF6; TCCR0=0X69; TCCR2=0X69; OCR0=220;//255 OCR2=245;

if(b==1)//启动区 {NOP();}

if(b==2)//第一个跷跷板 {NOP();} if(b==3)//转弯区 { stop();

delay_ms(1000); turn_left();

OCR2=200; PORTC=0XF9;

PORTC=0XF9; TCCR0=0X69; TCCR2=0X69; OCR0=255; OCR2=255;//

OCR2= 119; PORTC=0XF6; //

PORTC=0XF6; TCCR0=0X69; TCCR2=0X69; OCR0=255;//205 OCR2=255;

AVR单片机智能循迹壁障小车论文

}

{

} }

if(b==4) { duoji_shang();} if(b==5)//罐子区 {stop();

delay_ms(1500); duoji_xia(); delay_ms(10); }

if(b==6)//临近启动区 {NOP();}

if(b==7)//临近启动区 {NOP();}

if(b>=8)//临近启动区 { m=0; } }

#pragma interrupt_handler INT_1:3 void INT_1()//壁障中断函数 { c=c+1; if(c==1)

void main() uint a; zero(); while(m) {

a=PINA&0X0F; switch(a) } while(1) { stop(); OCR1B=780;

OCR1A=2500;//停车区放下罐子 } }

{

case0x02:turn_left1(); break; case 0x01: turn_left();break; case0x04:turn_right1();break; case 0x08:turn_right();break; default:zhi_zou();break;

zhi_zou(); delay_ms(400);

}

{

zhi_zou1(); delay_ms(40); head_left(); delay_ms(550); zhi_zou1(); delay_ms(580); head_right(); delay_ms(1000);

zhi_zou(); delay_ms(1000); head_left();

AVR单片机智能循迹壁障小车论文

1

本文来源:https://www.bwwdw.com/article/1ln1.html

Top