基于单片机控制的智能小车
一、设计背景
随着人们物质生活水平的提高,汽车已经越来越普及,但交通事故也随之增加,危及了人们的财产及生命安全。与此同时,随着科学技术的发展,探险、排爆等危险场合工作的机器人,以及自动化生产中运输小车的应用也日益广泛,汽车已经不再只是拥有四个轮子的交通工具,人们更加希望汽车作为日常生活以及工作范围的一种延伸。所以智能小车的设计与发展是必须的,智能小车是一个集坏境感知、规划决策等功能于一体的综合系统,它集中的运用了计算机、传感、信息、通信、导航、人工智能及自动控制等技术,是典型的高新技术综合体。
二、设计总框图
三、硬件电路设计
1、L7805稳压器
STC89C
51单片
机系统
八路红
外传感
L298N
电机控
电机
总体设计框图
L7805是我们最常用到的稳压芯片,本设计中采用7节5号干电池进行供电,电容C2、C3对输入到L7805前的直流电进行滤波,之后输入到L7805,经其稳压后输出5V直流电,给单片机供电。
稳压电路
2、八路红外传感器模块
红外线在不同颜的物体表面具有不同的反射性质,所以我们可以利用红外对管对黑线及障碍物进行检测;此模块拥有两个LM324放大器和两个74HC14D,当红外线在不同颜物体上的反射光被接收管接收到时会产生不同幅度的电压,经由模块的LM324芯片进行信号放大,之后输入到74HC14D进行高低电平的转换。小车在行驶过程中红外管不断地向外发射红外线,当红外光遇到白地面时发生漫发射,反射光被接收管接收,模块输出低电平;如果遇到黑线则红外线被吸收,接收管接收不到信号,此时模块输出高电平;单片机通过程序控制不断检测模块输出引脚的高低电平从而实现信号的检测。小车的避障原理与此类似,当红外管不断发出红外线,而在距小车前方6cm无障碍物时,红外线不发生反射,此时接收管接收不到反射光,模块输出低电平;当小车前方6cm
内有障碍物时,红外管发出的红外线将会被反射回来,接收管接受到反射光,模块输出高电平。
3、L298N 电机驱动模块
该模块采用了L298N 双H 桥直流电机驱动芯片,驱动电机部分VIN 采用+9V 直流电源供电,同时模块上安装了L78M05稳压器对vin 的输入进行稳压,逻辑部分VCC 采用+5V 供电,小车运行时通过单片机向该模块1、2、3、4脚输入控制信息来控制小车电机的转速。
4、L298N 简介
L298N 内部包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。输出电压最高可达50V ,可以直接通过电源来调节输出电压;用单片机的IO 口提供信号;而且电路简单,使用比较方便。L298N 可接受标准TTL 逻辑电平信号VSS ,VSS 可接4.5~7 V 电压。4脚VS 接电源电压,VS 电压范围VIH 为+2.5~
TTL 转换电路
电机控制电路
46 V 。输出电流可达2 A ,可驱动电感性负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机。控制逻辑见表:
电机
旋转方式 控制端IN1 控制端IN2 控制端IN3 控制端IN4
输入PWM 信号改变
脉宽可调速 调速端A
调速端B
M1
正转
1 0 / /    1 / 反转 0    1 / /    1 / 停止 0 0 / /    1 / M2
正转
/ /    1 0 /    1 反转 / / 0    1 /    1 停止
/
/
/
1
四、程序流程图
五、程序设计
#include<reg51.h>
#define uchar unsigned char #define uint unsigned int
开始
设置初始值 启动电机 避障
停止
Y
N
Y
N 避线
检测到障碍物?
检测到黑线?
uchar pro_left=35,pro_right=35,i,j; //左右占空比标志
sbit left1=P2^1;
sbit left2=P2^0;
sbit right1=P2^3;
sbit right2=P2^2;
sbit pleft=P2^7;
sbit pright=P2^6;
sbit en1=P1^0;
sbit en2=P1^1;
//循迹口三个红外传感器
sbit left_red=P1^2; //白线位置
sbit right_red=P1^4; //白线位置
void delay(uint z)
{
uchar i;
while(z--)
{for(i=0;i<121;i++);}
}
void init()
{
left_red=0; //白线位置
right_red=0;
51汽车网TMOD=0X01;