三人行+郑灿宜+高级组画画小车.docx
《三人行+郑灿宜+高级组画画小车.docx》由会员分享,可在线阅读,更多相关《三人行+郑灿宜+高级组画画小车.docx(14页珍藏版)》请在冰豆网上搜索。
三人行+郑灿宜+高级组画画小车
“三星视界杯”第八届智能控制设计大赛之高级组C题
画画小车
队名:
三人行
专业:
自动化
队长:
郑灿宜
队员:
欧德苗
队员:
蒙俊志
提交日期:
2013年5月1日
目录
摘要.....................................................3
第一部分方案比较........................................3
1.1整体分析与设计.................................................4
1.2控制芯片的比较和选择..........................................4
1.3遥控控制的方案比较和选择.......................................4
1.4.总体设计框图..................................................4
第二部分设计与论证.............................................5
2.1硬件设计.....................................................5
2.1.151最小系统..................................................5
2.1.2LM2940稳压电源模块..........................................5
2.1.3L298电机驱动模块............................................5
2.1.4按键系统....................................................6
2.1.5测速模块....................................................6
2.2算法分析与软件设计........................................7
2.3.1算法设计框图与思想..........................................7
2.3.2具体算法实现................................................7
第三部分理论分析与计算..................................12
3.1.1电机参数.....................................................12
3.1.2直角拐角计算.................................................12
3.1.3测速模块的计算...............................................12
第四部分调试结果............................................13
第五部分设计总结............................................14
4.1调速结果....................................................14
4.2参赛感悟....................................................14
附录一参考文献....................................................14
附录二系统源代码..................................................14
基于51单片机的画画小车的设计
【摘要】智能小车是大学阶段一个重要的学习、制作内容。
本系统是基于51单片机的画画小车。
该小车通过L298模块驱动轮子转动,利用测速模块精确的绘制图案。
即是小车通过2个码盘和2个红外对管利用读回的脉冲数与定时器配实现小车行走距离的测量。
本迷宫小车实用性强,安全可靠性高,价格低廉,简单易用,有较好的性能。
【关键词】智能小车画画小车红外控制码盘测速
一、方案比较和选择
1.1整体分析与设计
整个系统是基于51单片机的画画小车。
该小车通过L298模块驱动轮子转动,利用测速模块精确地绘制图案。
即是小车通过2个码盘和2个红外对管利用读回的脉冲数与定时器配实现小车行走距离的测量。
1.2控制芯片的比较和选择
方案一:
采用MC9S12DG128单片机,该单片机以运算速度很快的CPU12内核为核心的单片机,经过锁相环后,时钟频率可达到40MHz,内部Flash高至128KB,拥有2组各8路10位A/D、16路I/O口,有功能强大的8位PWM输出共8路,以及8路16位增强型定时器(ECT),相比STC89C52单片机它编程更加简单,反应速度快;但是成本较高且短时间内不易掌握。
方案二:
采用STC89C52单片机,该单片机是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。
其完全可以满足本设计对小车功能的要求,并且价格便宜;所以本设计最终选用STC89C52单片机作为其控制芯片
1.3遥控控制的方案比较和选择
方案一:
由发射和接收两大部分组成红外遥控系统,应用编/解码专用集成电路芯片来进行控制操作,传感器采用HX1838,灵敏度高,在市场上非常普及,价格便宜,且红外遥控模块相对结构比较简单。
缺点是控制范围小。
方案二:
无线电遥控也由发射和接收两大部分组成,传输距离远、抗干扰能力强、无方向性等优点,对于小车的控制是一个不错的选择,但是但是无线电遥控相对于方案一的的红外遥控价格要贵上好几倍,所以今天的画画小车画画范围较小,综合考虑之下,我们选择了方案一
1.4.总体设计框图
二、设计与论证
2.1硬件设计
2.1.151最小系统
本模块采用51系列单片机作为核心处理器。
单片机控制系统基本由最小系统和外围信号I/O口组成,其中最小系统包括电源(地),CPU时序电路(一般使用11.0592M或者12M和30P电容组成),复位电路。
2.1.2电源模块
5V稳压电源模块不只为51单片机供电,而且还要为传感器和红外模块等供电考虑两次到小车可能做频繁的加速,减速动作使得电池两端电压会有较大的波动,因此为了确保系统能正常工作避免单片机意外的重启,在电源输入端加上旁路电容。
如图4.1所示,为了消除来自电源的干扰,在输入端分别接入了电容值比较大的的电解电容和瓷片电容
2.1.3L298N电机驱动模块
该模块采用了L298N双H桥直流电机驱动芯片,驱动电机部分VIN采用+9V直流电源供电,同时模块上安装了L78M05稳压器对vin的输入进行稳压,逻辑部分VCC采用+5V供电,小车运行时通过单片机向该模块1、2、3、4脚输入控制信息来控制小车电机的转速
2.1.4按键系统
为了实现最后的现场按图画画功能,我们设计了按键模块,当按下1键时,端口4就会接上低电平,之后输入到单片机的IO口,触发直走功能,每按一下代表走了10cm。
2键是右拐,3键是左拐,4键是确认键。
2.1.5测速模块
槽型内没有障碍物时,将模块接上电源后,用万用表测OUT0输出端电压。
此时的电压应接近电源电压,D1指示灯不亮;当用大于2MM的透明物体通过槽型光电,OUT输出端电压为0.3V左右,D1指示灯亮(表示已检测到物体)。
2.2算法分析与软件设计
采用PWM控制输出占空比,从而达到控制电机转速的的目的。
PWM的定时器计数频率为1KHZ。
由于左右电机机械特性不同,通过输出不同占空比而使两个电机转速一致。
主要程序:
voidkey_scan()//走直线
{
if(key1==0)
{
delay(10);//去抖动
if(key1==0)
{
while(!
key1);//等待按键释放
delay(500);
TMOD=0X01;
TH0=0XF8;//1ms定时
TL0=0X30;
TR0=1;
ET0=1;
EX0=1;//开启外部中断0
IT0=1;//下降沿有效
EX1=1;//开启外部中断1
IT1=1;//下降沿有效
IE0=0;//清中断标志位
IE1=0;
EA=1;
qianjin(60);
}
}
if(key2==0)//画矩形
{
delay(10);
if(key2==0)
{
while(!
key2);
delay(500);
TMOD=0X01;
TH0=0XF8;//1ms定时
TL0=0X30;
TR0=1;
ET0=1;
EX0=1;//开启外部中断0
IT0=1;//下降沿有效
EX1=1;//开启外部中断1
IT1=1;//下降沿有效
IE0=0;//清中断标志位
IE1=0;
EA=1;
qianjin(40);
turn_right90();
qianjin(60);
turn_right90();
qianjin(40);
turn_right90();
qianjin(60);
}
}
if(key3==0)//凹字
{
delay(10);
if(key3==0)
{
while(!
key3);
delay(500);
TMOD=0X01;
TH0=0XF8;//1ms定时
TL0=0X30;
TR0=1;
ET0=1;
EX0=1;
IT0=1;
EX1=1;
IT1=1;
IE0=0;
IE1=0;
EA=1;
qianjin(90);
turn_right90();
qianjin(60);
turn_right90();
qianjin(30);
turn_right90();
qianjin(30);
turn_left90();
qianjin(30);
turn_left90();
qianjin(30);
turn_right90();
qianjin(30);
turn_right90();
qianjin(60);
}
}
if(key4==0)
{
delay(10);
if(key4==0)
{
while(!
key4);
delay(500);//防止按键时阻止小车前进
TMOD=0X01;
TH0=0XF8;//1ms定时
TL0=0X30;
TR0=1;
ET0=1;
EX0=1;
IT0=1;
EX1=1;
IT1=1;
IE0=0;
IE1=0;
EA=1;
while
(1)
{
qianjin(30);
turn_right90();
qianjin(30);
turn_right90();
qianjin(30);
turn_right90();
qianjin(30);
turn_right90();//kouzi
qianjin(15);
turn_right90();
qianjin(30);
turn_right90();
qianjin(15);
turn_right90();
qianjin(15);
turn_right90();
qianjin(30);
}
}
}
if(key5==0)
{
delay(10);
if(key5==0)
{
while(!
key5);
buzou[num]=1;
num++;
}
}
if(key6==0)
{
delay(10);
if(key6==0)
{
while(!
key6);
buzou[num]=2;
num++;
}
}
if(key7==0)
{
delay(10);
if(key7==0)
{
while(!
key7);
buzou[num]=3;
num++;
}
}
if(key8==0)
{
delay(10);
if(key8==0)
{
while(!
key8);
TMOD=0X01;
TH0=0XF8;//1ms定时
TL0=0X30;
TR0=1;
ET0=1;
EX0=1;
IT0=1;
EX1=1;
IT1=1;
IE0=0;
IE1=0;
EA=1;
num=0;
while(buzou[num]!
=0)
{
switch(buzou[num])
{
case1:
qianjin(10);break;
case2:
turn_right90();break;
case3:
turn_left90();break;
}
buzou[num]=0;
num++;
}
num=0;
EA=0;
}
}
}
第三部分理论分析与计算
3.1电机参数
3.2直角拐弯的计算
小车轮子周长约21CM,测速码盘共有20个间隔。
转过直角的路程约10CM,需要触发10个脉冲。
经调试,定为8个脉冲。
3.3测速模块的计算
20个脉冲对应于21CM,已此为基础计算各种线段。
误差部分使用延时进行修正。
第四部分调试结果
在外部干扰较小的情况下,可以走出较理想的40CM、80CM、100CM的线段和40*60的矩形。
“凹”字和“田”字,累积误差较大。
第五部分设计总结
过一个月的努力,小组成员分工合作,分别从硬件、驱动、算法三方面入手,对小车进行合理的设计,最终完成作品。
一个个夜晚我们守在电脑前,修改着电路,程序,攻克一个又一个的难题。
最终,完成项目。
通过本次比赛,我们不仅学习了书本上学习不到的知识,同时,掌握了自主探索,自主学习的方法与技巧,为我们以后研究学习奠定了基础。