第一篇:智能小车总结
第二届“飞思卡尔杯”智能小车
技术总结报告
队名:BIT 电气二队
队员:叶林瓒
李文楠
学院:信息科学技术学院
专业:电气工程与自动化
宣言:做到最好
2008-9-3
第二届“飞思卡尔杯”智能小车..................................................1 技术总结报告..............................................................................1 摘要..............................................................................................3 第一章:智能小车总体概况.....................................................3 1.1 概况.................................................................................3 2.总体结构如图....................................................................3 3.作品 智能小车如图...........................................................4 第二章 智能小车硬件系统设计...............................................5 2.1 控制核心DSP电路........................................................5 2.2 直流电机驱动模块.........................................................6 2.3 智能小车路径检测.........................................................8 第三章 智能小车软件设计.....................................................11 3.1算法描述........................................................................11 3.2主程序流程图................................................................12 3.3 程序清单.......................................................................14 四:总结与体会.......................................................................19 五:参考书目...........................................................................19
摘要
本智能小车采用飞思卡尔公司的56F8013VF DSP芯片作为控制核心,通过红外发射管和接收管识别路径,利用PWM技术控制直流电机的前进速度和方向,硬件电路基于提供的DSP开发板可靠完善,软件采用C语言编程简单明确,经反复调试安装,形成一完整作品,可满足大赛要求。
关键词:DSP 智能小车 路径识别 PWM控制技术
第一章:智能小车总体概况 1.1 概况
智能小车采用56F8013VF DSP开发板和一块通用板为基础,经焊接相关控制芯片而成,通过I/O口检测信号,输出PWM信号控制直流电机 前进 停止 左转 右转。检测信号则为三组红外发射和接收管,黑线时输出高电平,白线时输出低电平。
2.总体结构如图
3.作品 智能小车如图
第二章 智能小车硬件系统设计 2.1 控制核心DSP电路 如图
输出主要包括: 1.6通道PWM模块 2.串行通行接口(SPI)3.16位定时器 4.6通道12位ADC 5.26个GPIO 智能小车主要利用 PWM模块,定时器,GPIO口。
2.2 直流电机驱动模块
直流电机采用H桥控制方案 如图
通过采用L293D芯片可以达到目的,整体控制方案如图
电机有两个分别作为左右轮的驱动,而通过两路PWM输出即可控制一个电机,故共需4路PWM输出。
L293D芯片内部结构如图
真值表如下
当允许信号 ENABLE 为高时 输出才随输入变化,否则为高阻态,所以焊接时,ENABLE及VS均接VCC。具体控制过程为:
1.通过编程由控制芯片8013经PWM发出驱动信号,PWM输出作为L293D的输入,经L293转换输出控制信号使电机转动,进而带动车轮转动,使小车前进后退。2.PWM输出信号的高低则可以控制直流电机转动的快慢,当占空比大时,转速高,占空比小时,转速低,所以当PWM输出占空比为0时可控制电机停止。
3.当左轮停止,右轮转时,小车右转。当右轮停止,左轮转动时,小车左转。而两路PWM输出的正负顺序转换则可控制电机的正反转,进而控制小车的前进和后退。2.3 智能小车路径检测 1.路径检测原理
路径检测采用红外光电传感器,包括白色的发射管和黑色的接收管。如图
根据不同颜色对红外光的反射率不同,白色很高,黑色很低。所以当发射管发出红外光线经白色线时,觉大部分都被黑色管接收,处于导通状态,输出低电平,而红外光经黑色线时,接收不足,黑色管无法导通,输出高电平。输出的高低电平经GPIO口接入8013DSP中,通过一定的算法即可判断,从而输出控制信号,控制小车的路径。2.红外传感器电路如图
a.红外发射管为二级管,接收为三极管,当接收三级管导通时集电极输出低电平,断开时集电极输出高电平。b.如图所示,接收管集电极输出接入比较器339正极,比较器负极则为滑动变阻器的输出,当正极高于负极时,比较器输出5V高电平,否则为0V低电平
c.比较器输出则接入8013DSP的GPIO口,通过读GPIO口的状态即可判断是黑线或白线
d.光电传感器都接限流电阻,比较器输出接上拉电阻。3.检测算法规划
根据比赛要求采用三组红外光电传感器即可,排列如图
a.小车前两组用于辨识黑色线,使小车能沿着黑色线前进,且两组宽度要恰好,太窄则同时感应到黑线或白区域,算法不好控制小车能沿着黑色线行走,即易偏离轨迹。太宽则令小车容易成大S型行走,影响前进速度。
当左组光电传感器检测到黑色线时,小车右转,当右组光电传感器检测到黑色线时,小车左转,否则小车前进,这样即可保证小车能沿着既定的轨迹前进而不篇路。b.第三组位于小车左中间电路板外侧,用于判断黑色线十字交叉口,控制小车的停止,左转或右转,亦可判断小车前进了几个方格。
第三章 智能小车软件设计
软件编程采用 codewarrior软件在线编程,C语言模式,通过添加相关“豆子” 简单方便。3.1算法描述
预赛主要通过定时器定时扫描,GPIO口读入黑白线判断,从PWM口输出驱动信号驱动电机。具体如下 a.定时器定时10ms,中断
b.中断程序读入,三个GPIO口数据,value1,value2,value3,其中value3为底盘左侧信号,为停止转弯信号,value1,value2使小车直走。
c.如果读入value3大于0,则为停止信号,PWM输出0信号小车停止,定时10秒。否则若value1大于0,则小车右转,输出PWM信号控制小车右转,否则若value2大于0,则小车左转,输出PWM信号控制小车左转。否则为直线前进,两边输出PWM信号,使小车全速前进。d.决赛阶段考虑到两车PK,小车前进速度优先,故编程时会让小车一直走直线,但我们会在小车前进前方设置干扰装置,破坏对方,除定时停止外,程序基本不变。
3.2主程序流程图
定时器流程图
3.3 程序清单 主程序:
/**
#### **
Filename : xiaoche1.C **
Project
: xiaoche1 **
Processor : 56F8013VFAE **
Version
: Driver 01.09 **
Compiler : Metrowerks DSP C Compiler **
Date/Time : 2008-8-28, 12:22 **
Abstract : **
Main module.**
Here is to be placed user's code.**
Settings : **
Contents : **
No public methods ** **
(c)Copyright UNIS, spol.s r.o.1997-2004 **
UNIS, spol.s r.o.**
Jundrovska 33 **
624 00 Brno **
Czech Republic **
http
: www.xiexiebang.com **
: info@processorexpert.com **
####*/ /* MODULE xiaoche1 */
/* Including used modules for compiling procedure */ #include “Cpu.h” #include “Events.h” #include “PWMC1.h” #include “Bits1.h” #include “Bits2.h” #include “Bits3.h” #include “TI1.h” #include “PC_M1.h” #include “Inhr1.h” /* Include shared modules, which are used for whole project */ #include “PE_Types.h” #include “PE_Error.h” #include “PE_Const.h” #include “IO_Map.h”
void main(void){
/*** Processor Expert internal initialization.DON'T REMOVE THIS CODE!!***/
PE_low_level_init();
/*** ***/ /* Write your code here */ PWMC1_Enable();PWMC1_OutputPadEnable();for(;;){;
} } /* END xiaoche1 */ /* ** End of
Processor
Expert
internal
initialization.中断程序:
#pragma interrupt called /* Comment this line if the appropriate 'Interrupt preserve registers' property */
/* is set to 'yes'(#pragma interrupt saveall is generated before the ISR)
*/ int value1=0;int value2=0;int value3=0;int time=0;void TI1_OnInterrupt(void){value1=Bits1_GetVal();
//left value2=Bits2_GetVal();
//right value3=Bits3_GetVal();
//centen if(value3>0&&time<1000)
//stop
{ PWMC1_SetDutyPercent(0,0);PWMC1_SetDutyPercent(1,0);PWMC1_SetDutyPercent(2,0);
PWMC1_SetDutyPercent(3,0);
time++;
//stop
}
else if(value1>0)
//turn right
{PWMC1_SetDutyPercent(0,0);PWMC1_SetDutyPercent(1,0);PWMC1_SetDutyPercent(2,0);
PWMC1_SetDutyPercent(3,100);
}
10s
else if(value2>0)
//turn left
{PWMC1_SetDutyPercent(0,100);PWMC1_SetDutyPercent(1,0);PWMC1_SetDutyPercent(2,0);
PWMC1_SetDutyPercent(3,0);
}
else
//go
{PWMC1_SetDutyPercent(0,100);PWMC1_SetDutyPercent(1,0);PWMC1_SetDutyPercent(2,0);
PWMC1_SetDutyPercent(3,100);
} /* Write your code here...*/ } /* END Events */
四:总结与体会 经过两周左右的时间,我们终于完成了小车的制作和程序的编写。制作过程中,我们克服了许多困难,通过参考前人的经验,完成了小车主体的器件分布规划和焊接。期间出现了很多错误,但都被及时发现并纠正了。从中我们体会到前期规划的重要性,在焊之前考虑一下器件的焊接顺序和可能出现的问题,这样在焊的时候才会比较流畅,布线也比较清楚,查错也很容易。
编程是整个小车制作的重点,我们通过对小车电路、比赛规则、外部环境等情况的研究,编写出了相应的程序,经过几次调试最终完成了比赛用程序。通过编写程序,我们感到了DSP的功能的确很强大而且程序编写也不是很麻烦。
对于这次比赛,很感谢学校和Freescale公司给了我们参与这次比赛的机会,也很感谢实验室的学长的帮助,通过实际操作加深了我们对理论知识的理解和运用能力,相信我们的努力能使我们取得好的成绩。
五:参考书目
1.Free scale DSP实验指导书
2.DSP原理及开发技术
清华大学出版社 东雷著
第二篇:智能循迹小车实验报告
摘要
本设计主要有单片机模块、传感器模块、电机驱动模块以及电源模块组成,小车具有自主寻迹的功能。本次设计采用STC公司的89C52单片机作为控制芯片,传感器模块采用红外光电对管和比较器实现,能够轻松识别黑白两色路面,同时具有抗环境干扰能力,电机模块由L298N芯片和两个直流电机构成,组成了智能车的动力系统,电源采用7.2V的直流电池,经过系统组装,从而实现了小车的自动循迹的功能。
关键词 智能小车
单片机红外光对管 STC89C52 L298N 1 绪论
随着科学技术的发展,机器人的设计越来越精细,功能越来越复杂,智能小车作为其的一个分支,也在不断发展。在近几年的电子设计大赛中,关于小车的智能化功能的实现也多种多样,因此本次我们也打算设计一智能小车,使其能自动识别预制道路,按照设计的道路自行寻迹。设计任务与要求
采用MCS-51单片机为控制芯片(也可采用其他的芯片),红外对管为识别器件、步进电机为行进部件,设计出一个能够识别以白底为道路色,宽度10mm左右的黑色胶带制作的不规则的封闭曲线为引导轨迹并能沿该轨迹行进的智能寻迹机器小车。方案设计与方案选择
3.1 硬件部分
可分为四个模块:单片机模块、传感器模块、电机驱动模块以及电源模块。
3.1.1 单片机模块
为小车运行的核心部件,起控制小车的所有运行状态的作用。由于以前自己开发板使用的是ATMEL公司的STC89C52,所以让然选择这个芯片作为控制核心部件。STC89C52是一种低损耗、高性能、CMOS八位微处理器,片内有4k字节的在线可重复编程、快速擦除快速写入程序的存储器,能重复写入/擦除1000次,数据保存时间为十年。其程序和数据存储是分开的。
3.1.2 传感器模块
方案一:使用光敏电阻组成光敏探测器采集路面信息。阻值经过比较器输出高低电平进行分析,但是光照影响很大,不能稳定工作。
方案二:使用光电传感器来采集路面信息。使用红外光电对管,其结构简明,实现方便,成本低廉,没有复杂的图像处理工作,因此反应灵敏,响应时间少。但也存在不足,它能获取的信息是不完全的,容易受很多扰动(如背景光源,高度等)的影响,抗干扰能力较差。
方案三:使用CCD传感器来采集路面信息。使用CCD可以获取大量的图像信息,掌握全面的路径信息,抗干扰能力强,为以后功能的扩展提供方便。但使用CCD需要大量的图像处理工作,进行大量数据的存储和计算,因此电路复杂,实现起来工作量大。
方案四:使用光电对管采集路面信息。RPR220结构紧凑,体积小,调整电路简单工作性能稳定。
可见方案四最适宜,但仅从此项目考虑,方案二成本低,也能完成设计,故选用方案二。3.1.3 电机控制模块
3.1.3.1电机的选择
方案一:采用步进电机,其转过的角度可以精确定位,可实现小车行进过程的精确定位。但步进电机的输出力矩低,随转速的升高而降低,且转速越快下降得越快。
方案二:采用直流电机,其转动力矩大,体积小,重量轻,装配简单,操作方便。速度的调节可以改变电压也可以调节PWM。
基于以上,我们选择了方案二,使用直流电机作为驱动电机。
3.1.3.2电机的驱动
采用专用芯片L298N作为电机驱动芯片,其操作方便,稳定性好,性能优良。一片L298N就可以分别控制两个直流电机。
3.1.4 电源模块
给整个系统稳定供电以保持其正常工作,包括7.2V的电源以及转5V部分,其中7.2V的是给电机和其驱动供电,5V的用来驱动单片机及其他芯片。
以上单元连接如下图所示: 3.2 软件部分
3.2.1程序流程图
此系统采用89C52单片机,再根据硬件连接,通过相应的软件来完成对信号的采集和数据的分析,再控制小车的运行状态,以下为主程序流程图:
3.2.2程序设计思路
3.2.2.1寻迹模块程序
通过传感器获得路面信息然后反馈给单片机,再通过单片机来实现相应的功能。
3.2.2.2电机驱动模块程序
控制两个直流电机,实现前进、后退、前左转、前右转、停车等功能。各部分电路的作用及电路工作原理分析
4.1 信号采集模块
4.1.1 TCRT500结构与工作原理
TCRT5000(L)具有紧凑的结构发光灯和检测器安排在同一方向上,利用红外光谱反射对象存在另一个对象上,操作的波长大约是950毫米。探测器由光电晶体三极管组成的,它由高发射功率红外光电二极管和高度灵敏光电晶体管组成。通过测试,其检测距离在2mm-10mm。TCRT5000的发射管和接收管是一起封装在矩形塑料壳中,为了使检测更加准确,我们用了5只TCRT5000检测黑线,实物见图4-1。
4.1.2 信号采集电路图及原理
小车在白色地面行驶时,红外发射管发出的红外信号被反射,接收管收到信号后,输出端为低电平,经过比较器比较后输出为低电平。而当红外信号遇到黑色导轨时,红外信号被吸收,接收管不能接收信号,输出端为高电平,经过比较器比较后输出高电平。单片机通过采集每个比较器的输出端电压,便可以检测出黑线的相对位置的位置,从而控制小车的行驶方向。
4.2 信息处理模块
4.2.1 原理
检测到白色路面的红外接收头处理后送出的是低电平,而检测到黑色路线的检测头送出的是高电平,由此可根据这5个红外接收头的高低电平判断路线情况而调整小车前进方向。具体情况有如下几种: a 检测到
1 1 1 1 或
0 0 0 0 0小车应该停止。
b 检测到
0 0 0 0 或
0 1 0 0 0 或 1 0 0 0 说明路线向左偏,小车向左转。
c 检测到
0 0 0 0 1 或
0 0 0 1 0 或
0 0 0 1 1说明路线向右偏,小车向左转。
d 检测到
x x 1 x x(x不全为1)说明线路是直的,小车直走。4.3 电机驱动模块
4.3.1直流电机
给两个电刷A和B加上直流电源,如上图(a)所示,则有直流电流从电刷 A 流入,经过线圈abcd,从电刷 B 流出,根据电磁力定律,载流导体ab和cd收到电磁力的作用,其方向可由左手定则判定,两段导体受到的力形成了一个转矩,使得转子逆时针转动。如果转子转到如上图(b)所示的位置,电刷 A 和换向片2接触,电刷 B 和换向片1接触,直流电流从电刷 A 流入,在线圈中的流动方向是dcba,从电刷 B 流出。
此时载流导体ab和cd受到电磁力的作用方向同样可由左手定则判定,它们产生的转矩仍然使得转子逆时针转动。这就是直流电动机的工作原理。外加的电源是直流的,但由于电刷和换向片的作用,在线圈中流过的电流是交流的,其产生的转矩的方向却是不变的。实用中的直流电动机转子上的绕组也不是由一个线圈构成,同样是由多个线圈连接而成,以减少电动机电磁转矩的波动,绕组形式同发电机。
4.3.2电路图
我们采用成品L298N电机驱动模块,采用光电耦合器件隔离单片机与L298N的控制电路,工艺精度高,性能可靠。L298N模块内部通过H桥电路实现直流电机的正转,反转,其原理如下:
如图4-3所示,全桥式驱动电路的4只开关管都工作在斩波状态,S1、S2为一组,S3、S4 为另一组,两组的状态互补,一组导通则 另一组必须关断。当S1、S2导通时,S3、S4关断,电机两端加正向电压,可以实 现电机的正转或反转制动;当S3、S4导 通时,S1、S2关断,电机两端为反向电 压,电机反转或正转制动。
桥驱动电路
4.3.3原理
L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N芯片驱动电机,该芯片可以驱动两台直流电机。系统调试
5.1硬件部分
焊接完成后,首先进行的调试是用数字万用表测量各个电路是否焊接正常,是否有虚焊漏焊等现象的出现,以及各个电容是否是正常的未被击穿状态、电阻的阻值是否与设计的原理图上的一致。接通电源,用数字万用表测量当有+5V的各引脚是否有+5V的电压,测量电路中是否出现了不该有的短路现象。接入光电传感器模块,使各个光电检测器的光电对管靠近白纸,观察对应的发光二极管是否发光,不发光表示正常。然后再使各个光电对管靠近黑线,观察对应的发光二级管是否发光,发光表示正常。
5.2软件部分
我们先测试了小车的前进,停止,左转和右转。组装信号采集模块后,实现小车的自动循迹功能。
具体实现程序见附录一
总结
实验结果如符合实验要求,小车按照黑胶布轨迹前进,并能够及时正确显示小车的行进状态以及行进距离。具体现象如下:
左边传感器检测到黑线,小车左转; 右边传感器检测到黑线,小车右转; 中间传感器检测到黑线,小车直行。从而就可以完成对黑胶布的循迹功能。参考文献
[1]电子信息专业实验教程 赵刚 李佐儒 四川大学出版社 [2]单片机C语言教程 郭天祥 电子工业出版社 [3]模拟电子技术 童诗白 清华大学出版社 附录一 程序:
#include
sbit DJ_left_s = P1^0;//直流电机控制 sbit DJ_left_n = P1^1;
sbit DJ_right_s = P1^2;sbit DJ_right_n = P1^3;
//左转函数
void Turn_right(){ DJ_left_s = 0;DJ_left_n = 1;DJ_right_s = 1;DJ_right_n = 0;}
//右转函数
void Turn_left(){ DJ_left_s = 1;DJ_left_n = 0;DJ_right_s = 0;DJ_right_n = 1;}
//前进函数
void Go_ahead(){ DJ_left_s = 1;DJ_left_n = 0;DJ_right_s = 1;DJ_right_n = 0;}
//停止函数 void Stop(){ DJ_left_s = 0;DJ_left_n = 0;DJ_right_s = 0;DJ_right_n = 0;}
//循迹函数
void xunji(unsigned int m){
if(m==0x7c)
{
Turn_right();
return;
}
if(m&0x10)
{
Go_ahead();
return;
}
if(m&0x0c)
{
Turn_right();
return;
}
if(m&0x60)
{
Turn_left();
return;
} } //主函数 void main(){ while(1){
xunji(P2&0x7c);
}
} 附录二 实物图:
第三篇:毕业设计任务书(智能小车)
安徽建筑工业学院
毕业设计(论文)任务书
课题名称
系别
专业
姓名 基于单片机智能小车的设计 电子与信息工程学院 城建电子学号
2011 年 2 月 20 日至 2010 年 6 月 22 日共 17 周指导教师签字
系主任签字 201日 年 1 月
一、毕业设计(论文)的内容
毕业设计(论文)是高等学校培养学生的最后一个环节。是锻炼和培养学生综合运用本专业学科的基础理论知识、专业知识和基本技能,提高综合分析问题和解决问题的能力,实现研发和技术人员的初步训练,使学生具有从事科学研究初步能力的重要环节,并且它是学生承担技术性工作前的一次理论联系实际的实践。学生通过设计(论文)综合运用所学的基础理论和专业知识,理论联系实际,提高分析问题和解决本专业从事研发和工程应用问题的能力,为以后走上工作岗位打下一定的基础。
随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。可见其研究意义很大。设计的智能电动小车应该能够实时显示时间、速度、里程,具有自动寻迹、寻光、避障功能,可程控行驶速度、准确定位停车。本系统以设计题目的要求为目的,采用80C51单片机为控制核心,利用光电等传感器检测道路上的障碍,控制电动小汽车的自动避障,快慢速行驶,以及自动停车,并可以自动记录时间、里程和速度,自动寻迹和寻光功能。整个系统的电路结构简单,可靠性能高。
二、毕业设计(论文)的要求与数据
本课题的任务主要是设计采用以80C51 为控制核心,利用光电等传感器检测道路上的障碍,控制电动小车的自动避障,快慢速行驶,以及自动停车,并可以自动记录时间、里程和速度,自动寻迹和寻光功能。
本课题由6位学生完成。现就6位学生的具体分工叙述如下:
1.同学负责主控制电路的方案设计和实现;
2.同学负责电机驱动电路及方案设计和实现;
3.同学负责传感器电路的设计和相关程序设计和调试;
4.同学负责小车控制策略程序设计和调试。
三、毕业设计(论文)应完成的工作
1. 查阅有关资料(51单片机、传感器技术、电机驱动与控制等);
2. 熟练掌握51单片机开发系统;
3. 根据课题要求,分别进行硬件和软件的设计,使用Protel99SE设计出硬件原理图和PCB板图,并制作出印刷电路板,然后进行系统的安装与调试完成课题的设计功能;
4. 完成12000字左右的论文;
5. 翻译3000~5000字的英文资料。
四、毕业设计(论文)进程安排及实习安排
五、应收集的资料、主要参考文献及实习地点
[1] 何立民,单片机应用系统设计,北京:航天航空大学出版社,2~5,46~50
[2] 李广弟,单片机基础,北京:北京航空航天大学出版社,2001,56~64
[3] 何希才,新型实用电子电路400例,电子工业出版社,2000年,60~65
[4] 赵负图,传感器集成电路手册,第一版,化学工业出版社,2004,590~591
[5] 陈伯时,电力拖动自动控制系统,第二版,北京:机械工业出版社,2000年6月,127~
130
[6] 张毅刚,彭喜元,新编 MCS-51 单片机应用设计,第一版,哈尔滨工业大学出版社,2003,25~27,411~417
实习地点:校外
第四篇:智能小车设计报告
机器人控制技术
实验设计报告书
题
目:基于STC89C52的智能小车的设计 姓
名:李如发 学
号:073321032 专
业:电气工程及其自动化 指导老师:李东京 设计时间:2010年 6 月
目
录
1.引 言..............................................1 1.1.设计意义......................................1 1.2.系统功能要求..................................1 1.3.本组成员所做的工作............................1 2.方案设计...........................................1 3.硬件设计...........................................2 4.软件设计...........................................7 5.系统调试...........................................7 6.设计总结...........................................8 7.附 录A;源程序.....................................8 8.附 录B;作品实物图片...............................10 9.参考文献..........................................11
16×16点阵LED室内电子显示屏的设计
单片机原理及应用课程设计
基于STC89C52的智能小车的设计
1.引 言
1.1.设计意义
本智能小车的设计,首先针对大学所有学习的知识是一个很好的回顾和总结。此智能小车是基于单片机所设计的,具有自动寻迹能力,在实际的很多方面有应用。当我们进一步的改进机器人系统时,可实现更重要的功能,如可设计出自动扑火机器人等。1.2.系统功能要求
此智能小车是基于STC89C52设计的具有自动寻迹能力的小车。系统可实现跟随黑色引导线行走的能力,在行驶过程中,并能用测速传感器和光电码盘对小车速度实现实时监测。小车在行驶过程中并能实现播放美妙的音乐。1.3.本组成员所做的工作
本组成员有李如发,汪航,黄建安,韩文龙,罗莹,明菲菲,邹珊,江锐,邵进。
李如发:驱动 073321032 汪航: 电源 073522036 黄建安:最小统 073521013 韩文龙:源程序 073522007 罗莹: 传感器 073522038 明飞菲:调试 073522012 邹芬 : 数码显示 073521025 邵琎 : 焊接 073522017 江锐 : 蜂鸣器 073522032
2.方案设计
智能小车主要分为传感器部分,最小系统部分,电机驱动部分,电源部分。根据功能要求,提出合理的设计方案,画出方案方框图,并对系统工作原理进行阐述。
原理,本系统的重要部分是传感器,它对整个小车的定位起到很重要的作用,由传感器检测黑线的位置,其中黑线对光能吸收,白线对光反射。利用此原
16×16点阵LED室内电子显示屏的设计
单片机原理及应用课程设计
理将红外线传感器采集到的信号转换为数字信号并送入单片机,单片机根据收到的信号实时的控制小车的方向。控制小车的方向主要是运用pwm原理来控制电机的平均电压,从而来控制电机的转速,实现小车对黑线的实时跟踪。
3.硬件设计
硬件设计各模块电路图及原理描述 传感器模块
方案1:用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。
但是这种方案受光照影响很大,不能够稳定的工作。因此我们考虑其他更加稳定的方案。
方案2:用RPR220型光电对管。RPR220是一种一体化反射型光电探测器,其发射器是一个砷化镓红外发光二极管,而接收器是一个高灵敏度,硅平面光电三极管。
方案3:用红外发射管和接收管自己制作光电对管寻迹传感器。红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。我们选择了此方案。
传感器是整个系统的眼睛,这部分主要运用红外线传感器采集信号送给单片机处理。由于黑色车道对红外线传感器发出的光有吸收能力,白色地方对发出的光反射,从而当传感器在不同的地方产生不同的信号,传送个单片机。单片机根据采集的信号做出实时的处理。
16×16点阵LED室内电子显示屏的设计
单片机原理及应用课程设计
最小系统
最小系统是整个系统的心脏,我们采用的是AT89C52芯片。
80C52单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上[2]。如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。
驱动模块
方案1:采用专用芯片L298N作为电机驱动芯片。L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流
16×16点阵LED室内电子显示屏的设计
单片机原理及应用课程设计
电机,而且还带有控制使能端。用该芯片作为电机驱动,操作方便,稳定性好,性能优良。
方案2:对于直流电机用分立元件构成驱动电路。由分立元件构成电机驱动电路,结构简单,价格低廉,在实际应用中应用广泛。但是这种电路工作性能不够稳定。
因此我们选用了方案1。
由于最小系统和电机驱动部分的电压幅值不一样,而且电机是感性负载,在制动时可能反馈电流,因此要在最小系统和驱动模块之间采用光电隔离,所以用到了光电隔离芯片,TPL521-4
由于光耦芯片的引脚不够所以在之后采用了一片反相器74HCT14,反相器图如下
L298是双H桥高电压大电流功率集成电路,直接采用TTL逻辑电平控制,可用来驱动继电器、线圈、直流电动机、步进电动机等电感性负载。它的驱动电压可达46V,直流电流总和可达4A。其内部具有2个完全相同的PWM功率放大回路。由L298构成的PWM功率放大器的工作形式为单极可逆模式。12个H桥的下侧桥晶体管发射极连在一起,其输出脚(1和15)用来连接电流检测电阻。第9脚接逻辑控制部分的电源,常用+5V,第4脚为电机驱动电源,本系统中为40V,第5,7,10,12脚输入标准TTL逻辑电平,用来控制H桥的开和关,16×16点阵LED室内电子显示屏的设计
单片机原理及应用课程设计
第6,II脚则为使能控制端。当Vs=40V时,最高输出电压可达35V,连续电流可达2A。
L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动两台电动机。5,7,10,12脚接输入控制电平,控制电机的正反转。EnA,EnB接控制使能端,控制电机的停转。电动 机的转速由单片机调节PWM信号的占空比来实现。
L298驱动电路图
16×16点阵LED室内电子显示屏的设计
单片机原理及应用课程设计
PWM调速器的硬件组成
在整个PWM调速器中,CPU既是运算处理中心,又是控制中心,是最关键的器件。本系统中选用与MCS-51系列完全兼容的AT89C52单片机,它是一种低功耗、高性能、CMOS八位微处理器。片内具有8K字节的在线可重复编程快擦快写程序存储器,128x8位内部RAM,AT89C52可构成真正的单片机最小应用系统,缩小系统体积,提高系统可靠性,降低系统成本。
电源模块
电源中我们采用LM7805稳压芯片将12v直流电源稳压成5v直流源。方案1: 采用10节1.5V干电池供电,电压达到15V,经7812稳压后给支流电机供电,然后将12V电压再次降压、稳压后给单片机系统和其他芯片供电。但干电池电量有限,使用大量的干电池给系统调试带来很大的不便,因此,我们放弃了这种方案。
方案2:采用3节4.2V可充电式锂电池串联共12.6V给直流电机供电,经过7812的电压变换后给支流电机供电,然后将12V电压再次降压、稳压后给单片机系统和其他芯片供电。锂电池的电量比较足,并且可以充电,重复利用,因此,这种方案比较可行。但锂电池的价格过于昂贵,使用锂电池会大大超出我们的预算,因此,我们放弃了这种方案。
方案3:采用12V蓄电池为直流电机供电,将12V电压降压、稳压后给单片机系统和其他芯片供电。蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。虽然蓄电池的体积过于庞大,在小型电动车上使用极为不方便,但由于我们的车体设计时留出了足够的空间,并且蓄电池的价格比较低。因此我们选择了此方案。下:
16×16点阵LED室内电子显示屏的设计
单片机原理及应用课程设计
4.软件设计
程序流程图
5.系统调试
本系统的设计是首先完成每一小部分的设计,因此我们在没完成一个模块时就回检测调试该模块。在初次调试时我们采用的电源是又单片机开发板所带的的电源来调试的。调试过程中我们就发现了很重要的问题,由于对本设计的很多模块的没有共同的接地使得很多模块无法工作,我们的解决办法是12v的直流源稳压来供给所以的模块,然后将所以的模块连接共同的地。在驱动模块的调试中发现当光耦芯片给定信号时对lm298的输出没有反应。我们在检验时发现是由于在光耦芯片后部焊接没有焊好,出现了虚焊。在重新焊接好后,芯片正常工作。分
16×16点阵LED室内电子显示屏的设计
单片机原理及应用课程设计
块调试传感器时,我们将传感器导通,用黑色物体将传感器发射部分盖住检测输出,在将黑色物体移开,再检测输出。
6.设计总结
本文是关于基于单片机的智能小车的设计,在共同的努力下,各部分的设计均成功,在调试过程中都无误。本次设计最终实现了直流电机的动态调压,电源正常输出供电,数码管动态显示数据,蜂鸣器播放美妙的音乐,小车实现简单的转弯功能。由于本次设计中尚存在些缺陷和对寻迹程序编写困难,实现的功能不是很完美,但要求的所有功能基本实现。
本次设计中,从中的体会很多
1、本次的设计可以说设计到大学所学到的所有专业知识,是对大学所学知识的一个整体的回顾。
2、在设计中,不能一气呵成,因为所有的电路图都是自己设计的,图中尚存在不足,所以要反复的琢磨和修改。
3、设计中要注意对每焊完一部分,都要独立的进行检查调试,及时的发现错误,及时的修改
4、本次最重要的收获是从中我们看到了团队合作的重要性,任何事都不是一个人所能完成的,需要大家的共同努力才能获得最后的成功。
7.附 录A;源程序
源程序代码(主要语句要有注释)。循迹的程序 #include
sbit R=P2^0;//右边传感器 sbit L=P2^1;//左边传感器 sbit RM1=P1^1;sbit RM2=P1^2;//右边电机 sbit LM1=P1^3;sbit LM2=P1^4;//左边电机 void main(){
16×16点阵LED室内电子显示屏的设计
单片机原理及应用课程设计
RM1=1;
RM2=0;
LM1=1;
LM2=0;
delay(5);
while(1)
{
if((L==1)&&(R==1))//小车前进 {
RM1=1;
RM2=0;
LM1=1;
LM2=0;
delay(5);
}
else if((L==1)&&(R==0))//小车右偏
{
RM1=1;
RM2=0;
LM1=0;
LM2=1;
//左边的电机停止转动,右边的电机转动,这样就实现了左转
delay(10);
}
else if((L==0)&&(R==1))//小车左偏
{
RM1=0;
RM2=1;
LM1=1;
LM2=0;
//右边的电机停止转动,左边的电机转动,这样就实现了右转
delay(10);}
else if((L==0)&&(R==0))//小车停车
{
RM1=0;
RM2=1;
LM1=0;
LM2=1;delay(5);
}
16×16点阵LED室内电子显示屏的设计
单片机原理及应用课程设计
else
//左右两个电机同时启动,直线前进
{
RM1=1;
RM2=0;
LM1=1;
LM2=0;
}
}
delay(10);
}
void delay(uint z)
{
uint a,b;for(a=z;a>0;a--)for(b=120;b>0;b--);}
8.附 录B;作品实物图片
16×16点阵LED室内电子显示屏的设计
单片机原理及应用课程设计
9.参考文献
[1] Mark Nelson著.潇湘工作室译.串行通信开发指南[M].中国水利水电出版社,2002.[2] 王宜怀.单片机原理及其嵌入式应用教程[M].北京希望电子出版社,2002.[3] 张毅刚.单片机原理及应用.高等教育出版社,2009 [4] 康华光.电子技术基础(模拟部分).高等教育出版社.2006
第五篇:智能小车设计报告
智能小车设计报告
魏旭峰、孔凡明、陈梦洋
(河北科技大学 电气信息学院)摘要:
AT89S52单片机是一款八位单片机,他的易用性和多功能性受到了广大使用者的好评。该设计是结合科研项目而确定的设计类课题。本系统以设计题目的要求为目的,采用89S52单片机为控制核心,利用红外线传感器检测道路上的黑线,控制电动小汽车的自动寻路,快慢速行驶。整个系统的电路结构简单,可靠性能高。实验测试结果满足要求,本文着重介绍了该系统的硬件设计方法及测试结果分析。
采用的技术主要有:
通过编程来控制小车的速度及方向; 传感器的有效应用; 1602液晶显示的应用;
关键词: 89S52单片机、光电检测器、PWM调速、电动小车
第一章 方案设计与论证
一 供电系统
二 光电检测系统
三 单片机最小应用系统设计
四 液晶显示1602的应用
五 电机驱动
第二章 软件设计
第二章 方案设计与论证
根据要求,小车应在规定的赛道上行驶,赛道中央黑线宽为25MM,确定如下方案: 在现有玩具电动车的基础上,加装光电检测器,实现对电动车的位置的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的转向和速度的智能控制.这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。
一 供电系统
本模块使用LM2940芯片输出+5V的电压,为89S52单片机光电检测电路供电,采用LM1117可控变压芯片输出+6V电压为舵机供电.而电机则由单片机来控制,当单片机输出的电压不同时,电机的转速不同,以此来达到控制小车速度的目的.电路如图:
二 光电检测系统
本模块采用七对红外线发射和接收对管,来检测小车前方黑线位置和模拟车站停车位置.发射管发射管出红外线,当对管正下方为白色跑道时,发射管发射出去的红外线会被反射回来, 接收因接收到红外线而导通,两端电压为零,当对管正下方为黑色线时,黑线将吸收红外线,接收管因接收不到红外线而无法导通,两端电压为+4V左右,将接收管端电压与一个给定电压经LM324比较后输出0和+5V两固定个值,当对管正下方为白色时输出+5V电压,当对管正下方为黑线时输出0V,输出的电压交给单片机,以此来确定黑线的位置.电路如图:
三 单片机最小应用系统设计
89S52单片机是本系统的核心所在,自动寻迹和调速都是它控制, 七对光电对管经比较器输出的电压输入单片机,单片机根据电压的高低来判断黑线位置,进而调整速度和方向,电路如下:
四 舵机的应用
舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前在高档遥控玩具,如航模,包括飞机模型,潜艇模型;遥控机器人中已经使用得比较普遍。舵机是一种俗称,其实是一种伺服马达。
其工作原理是:单片机放的控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。
舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。
五 电机驱动
电机驱动电路是根据单片机的控制型号来控制电机的转动的,电路如下:
第二章 软件设计 #include
#define uchar unsigned char//宏定义 uchar duoj,dianj,time0=0,time1=0,L=0,e=30;void timer0()interrupt 1 //定时器零 控制舵机 { time0++;
if(time0==duoj)moto=0;if(time0==80){ time0=0;
moto=1;} TH0=(65536-313)/256;TL0=(65536-313)%256;} void timer1()interrupt 3 ///定时器一 控制电机 { time1++;if(time1==dianj)in1=1;if(time1==80){
time1=0;
in1=0;} TH1=(65536-340)/256;TL1=(65536-340)%256;}
void main()/////主函数开始 { TMOD=0x11;TH0=(65536-313)/256;TL0=(65536-313)%256;TH1=(65536-340)/256;TL1=(65536-340)%256;EA=1;ET0=1;
ET1=1;in1=0;moto=1;TR0=1;TR1=1;while(1)//////检测黑线位置
{
while(1)
{
if(P1==0xff){duoj=8;dianj=55;break;} 全白时缓进
if(L1==0){duoj=10;dianj=37;L=1;break;} //L1
if(L7==0){duoj=6;dianj=37;L=7;break;} //L7
if(L2==0){duoj=10;dianj=22;L=2;break;} //L2
if(L6==0){duoj=6;dianj=22;L=6;break;} //L6
//
if(L3==0){duoj=9;dianj=27;L=3;break;} //L3
if(L5==0){duoj=7;dianj=27;L=5;break;}
//L5
if(L4==0){duoj=8;dianj=70;L=4;break;}
//l4
//else {duoj=8;dianj=17;break;}
}
while(P1==0xff)当检测不到信号时保持最后的状态
{
switch(L)
{
case 1:duoj=10;dianj=39;break;
case 2:duoj=10;dianj=22;break;
// case 3:duoj=9;dianj=25;break;
// case 4:duoj=8;dianj=70;break;
// case 5:duoj=7;dianj=25;break;
case 6:duoj=6;dianj=22;break;
case 7:duoj=6;dianj=39;break;
}
} } }////////主函数结束