G03简易射门机器人Word下载.docx
- 文档编号:18364865
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:26
- 大小:107.14KB
G03简易射门机器人Word下载.docx
《G03简易射门机器人Word下载.docx》由会员分享,可在线阅读,更多相关《G03简易射门机器人Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
综上,我们决定采用方案一。
1.2电机的论证与分析
方案1:
采用步进电机作为该系统的驱动电机。
由于其转过的角度可以精确的定位,可以实现小车前进路程和位置的精确定位。
虽然采用步进电机有诸多优点,步进电机的输出力矩较低,随转速的升高而下降,且在较高转速时会急剧下降,其转速较低,不适用于小车等有一定速度要求的系统。
经综合比较考虑,我们放弃了此方案。
方案2:
直流电机:
直流电机的控制方法比较简单,只需给电机的两根控制线加上适当的电压即可使电机转动起来,电压越高则电机转速越高。
对于直流电机的速度调节,可以采用改变电压的方法,也可采用PWM调速方法。
PWM调速就是使加在直流电机两端的电压为方波形式,通过改变方波的占空比实现对电机转速的调节。
基于以上分析,我们选择了方案二,使用直流电机作为电动车的驱动电机。
1.3微控制器模块论证与分析
采用可编程逻辑器件CPLD
CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、IO资源丰富、易于进行功能扩展。
但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高,且从使用及经济的角度考虑,我们放弃了此方案。
方案二:
采用MCS-51系列单片机
采用MCS-51系列单片机,经典的MCS-51单片机功能和速度恰好适合本实验;
而普通的MCS-51系列衍生产品价格低、可用资源较多、使用范围较广,资料齐全。
综上所述,我们决定采用方案二。
1.4电机驱动模块论证与分析
采用大功率三极管,二极管,电阻电容等元件
采用上述元件搭建两个H桥,通过对各路信号放大来驱动电机,原理简单。
但由于放大电路很难做到完全一致,当电机的功率较大时运行起来会不稳定,而且电路的制作也比较复杂。
采用L298N驱动芯片
L298N芯片是较常用的电机驱动芯片。
该芯片有两个TTL/CMOS兼容电平的输入,具有良好的抗干扰性能;
其输出电压最高可达50V,可用单片机的I/O口提供信号,而且一块L298芯片可一驱动两个减速电机,电路简单、易用、稳定,具有较高的性价比。
1.5显示模块论证与分析
使用液晶1602屏显示
液晶屏具有显示质量高,数字式接口,体积小,质量轻,功耗功率小的特点,数据直观,显示清晰,稳定性高。
使用数码管显示
虽然数码管具备数字接口,价格较低,性价比非常高,但显示内容较单一,显示内容少。
综上所述,我们决定采用方案一。
1.6线路矫正模块分析与论证
采用普通发光二极管及光敏电阻组成的发射接收方案,电路如图1-1所示。
该方案在实际使用时,容易受到外界光源的干扰,有时甚至检测不到。
主要是因为可见光的反射效果跟地表的平坦程度、地表材料的反射情况均对检测效果产生直接影响。
虽然可采取超高亮度发光二极管降低一定的干扰,但这有增加额外的功率损耗。
脉冲调制的反射式红外发射接收器。
由于采用该有交流分量的调制信号,则可大幅度减少外界干扰;
另外红外发射接受管的最大工作电流取决与平均电流,如果采用占空比小的调制信号,在平均电流不变的情况下,瞬时电流很大(50~100mA),则大大提高了信噪比。
并且其反映灵敏,外围电路也很简单
根据以上分析我们采用方案二。
1.7避障检测模块分析与论证
超声波波避障,其优点是反映速度灵敏,距离远,受外界干扰小
但是,在本设计中,如果利用超声波传感器进行避障的话,由于空间小声波在不同方向里会进行多次反射,传感器之间相互干扰,使控制中心不能明确的判断出哪个方位遇到了障碍物,从而动作紊乱,不能实现要求。
红外避障,光电传感器模块采用LM741和LM567组成调频锁相环调制系统,红外线经LM567调制后发射。
LM567锁相电路能“锁定”在预置输入频率值的极窄频带内,其积分相位检波器比较输入信号和振荡器输出的相对频率和相位,只有当这二个信号相同时才产生一个稳定的输出。
此系统使用的是调制信号因此抗干扰能力强,能很好地满足题目的要求。
所以决定采用第二方案。
2.系统硬件设计
2.1系统总体设计
基于上述各方案的论证与分析,我们确定了最终方案。
整个系统采用3个3.7V锂电池供电。
系统的总体结构框图如图1所示。
L298电机驱动模块
左电机
车体
右电机
2.1
液晶显示模块
机械手模块
图1系统总体框图
整个系统采用3个锂电池供电。
是
2.2车体部分设计
车的底盘采用平滑板,把两减速电机固定在底盘上,用两独立电机分别带动两前车轮,后车轮与地面接触,考虑到摩擦的问题,我们采用了平滑球形刚体。
这样,该小车的两侧动力平衡,不易打滑,行驶时不偏航。
经实验,小车可在方格上平稳行使,拐弯效果良好,刹车及时。
车体如图2所示。
2.3微控制器模块设计
经上述论证,我们采用STC系列的STC89C52RC芯片作为主控芯片,其主要完成以下任务:
电机的转速及转向控制、液晶显示控制、行进障碍物的检测,寻找光源,检测黑带,射门等。
根据题目的要求,我们制作了STC89C52RC的最小系统板,其主要包括:
电源、ISP下载接口、晶振电路、复位电路,液晶模块。
具体最小系统板电路原理图见附录。
2.4电机驱动模块设计
我们用一片L298来驱动两个直流电机。
L298N的5、7、10、12四个引脚接到单片机上,通过对单片机的编程就可以实现两个直流电机的PWM调速以及正反转等功能。
为保证L298N正常工作,我们加装片外续流二极管IN4007。
具体电路见附录。
2.5液晶显示模块设计
显示部分采用LCD1602显示的方法实现。
为了减少IO口的占用,我们用74LS164来扩展IO口。
74LS164的1,2口接单片机的P3^O,8口接P3^1,9口外接高电平。
具体电路图即PCB见附件。
3.系统软件设计
具体程序见附件
4.系统测试
4.1测试仪器及设备,仿真软件
表1测试仪器表
仪器名称
型号
数量
数字万用表
UT10A
1
数字示波器
JC2042M
秒表
AS87C
仿真软件
Proteus
4.2功能测试
4.2.1基本功能测试
基本能完成要求。
4.2.2发挥部分功能测试
部分功能因时间原因无法按时完成。
5.结论
我们的小车基本能够完成部分基本部分和部分发挥部分的要求,行使平稳,不打滑,速度较快,拐弯效果良好,能够保持高效率。
附件一电路原理图:
主板
L298驱动
电源
矫正电路
程序:
#include<
reg52.h>
stdio.h>
//标准输入输出
intrins.h>
sbitqdkg=P1^0;
sbitSPK=P1^7;
//定义喇叭端口
sbitbizhang1=P0^0;
sbitbizhang2=P0^1;
sbitbizhang3=P0^2;
sbitxunjizuo=P0^3;
sbitxunjiyou=P0^4;
sbitz4=P2^4;
sbitz5=P2^5;
sbitz6=P2^6;
sbitz7=P2^7;
sbitkz1=P0^4;
sbitkz2=P0^5;
sbitkz3=P0^6;
bitflag;
charData=0;
sbitRS=P2^0;
//Pin4
sbitRW=P2^1;
//Pin5
sbitE=P2^2;
//Pin6
sbiten1=P1^1;
sbiten2=P1^2;
unsignedcharp;
unsignedcharq;
unsignedcharzuomada;
unsignedcharyoumada;
floatPassTime=0;
floatDistance=0;
unsignedcharcount=0;
floatsum=0;
charn[]={'
A'
'
B'
C'
D'
E'
F'
G'
H'
};
charl[]={'
1'
2'
3'
4'
5'
6'
intxzuobiao=0,yzuobiao=0;
int*zuobiao=&
xzuobiao;
voidxianshi(void);
voiddelay(unsignedinttime1);
voidbeep(void);
voidbizhang();
voidDisplayTime(void);
voidDisplaySpeed(void);
voidDisplayDistance(void);
voidinit();
voidxunji();
voidxiansizuobiao();
voidbeep(void)//蜂鸣器子程序
{
SPK=0;
delay(200);
SPK=1;
//关闭蜂鸣器
}
voiddelay(unsignedinttime1){
unsignedintj=0;
for(;
time1>
0;
time1--)
for(j=0;
j<
220;
j++);
}
/******************************************************************/
/*微秒延时函数*/
voiddelayus(unsignedcharus)//delayus
{
unsignedcharuscnt;
uscnt=us>
>
1;
/*12MHz频率*/
while(--uscnt);
/*毫秒函数声明*/
voiddelayms(unsignedcharms)
while(--ms)
delayus(250);
}
voiddelay2(unsignedintcnt)
while(--cnt);
voidbeep2(void){
unsignedinti;
while
(1)
for(i=0;
i<
200;
i++)//喇叭发声的时间循环,改变大小可以改变发声时间长短
delay2(80);
//参数决定发声的频率,估算值,可以自行更改参数并
SPK=!
SPK;
//喇叭停止工作,间歇的时间,可更改
delay2(20000);
qianjin(){
zuomada=10;
youmada=10;
z4=0;
z5=1;
z6=1;
z7=0;
//P1.7=0P1.6=1P1.5=1P1.4=0,小车前进
stop(){
z7=0;
z6=0;
z5=0;
z4=0;
//P1.7=0P1.6=0P1.5=0P1.4=0
delay(10);
houtui(){
zuomada=7;
youmada=7;
z7=1;
z4=1;
//P1.7=1P1.6=0P1.5=0P1.4=1
right(){
youmada=6;
//P1.7=0P1.6=1P1.5=0P1.4=1,小车右转
left(){
zuomada=6;
z7=1,z6=0;
z5=1;
right2(){
zuomada=13;
youmada=13;
left2(){
voidbizhang(){
if(bizhang1==1&
&
bizhang2==1&
bizhang3==1){zuobiao=&
xunji();
if(bizhang1==0||bizhang2==0||bizhang3==0){
beep();
right2();
delay(150);
stop();
bizhang3==1){zuobiao=&
yzuobiao;
stop();
left2();
delay(150);
zuobiao=&
if(bizhang1==0||bizhang2==0||bizhang3==0){beep();
left2();
while(xunjizuo==1&
xunjiyou==1){houtui();
while((xunjizuo==1&
xunjiyou==0)||(xunjizuo==0&
xunjiyou==1)){
//z4=0;
if(xunjizuo==0&
xunjiyou==1){
qianjin();
delay(3);
right();
delay
(2);
if(xunjizuo==1&
xunjiyou==0){
left();
while(xunjizuo==0&
//(*zuobiao)++;
if(xzuobiao==5){z4=0;
delay(400);
houtui();
delay(500);
//zuobiao=&
//(*zuosbiao)--;
delay(2000);
zuobiao=&
//(*zuosbiao)+=2;
voidxunji(){
xunjiyou==1){qianjin();
delay(10);
delay(120);
(*zuobiao)++;
delay(600);
//xunguang(){
//}
voidinit()
{
EA=1;
EX0=1;
IT0=1;
IT1=1;
EX1=1;
PT0=1;
PX1=1;
SCON=0;
//TMOD=0x61;
TMOD=0x11;
TH0=(65536-100)/256;
TL0=(65536-100)%256;
ET0=1;
TR0=1;
en1=1;
en2=1;
ET1=1;
//TH1=0xfe;
//TL1=0xfe;
TR1=1;
TH1=-(60000/256);
//晶振12M10ms16bit自动重载
TL1=-(60000%256);
//RCAP2H=-(60000/256);
//RCAP2L=-(60000%256);
//ET2=1;
//打开定时器中断
//TR2=1;
//打开定时器开关
voidtime0(void)interrupt1
p++;
q++;
if(p<
=zuomada)
else
en1=0;
if(p==40)
en1=~en1;
p=0;
if(q<
=youmada)
else
en2=0;
if(q==40)
en2=~en2;
q=0;
voidtiepian(void)interrupt0{
delay(100);
voidtime1(void)interrupt3{
//voidTIM2(void)interrupt5{//定时器2中断{
PassTime=0.05+PassTime;
TH1=-(50000/256);
TH2=-(50000%256);
//RCAP2H=-(60000/256);
//RCAP2L=-(60000%256);
count++;
if(count==20){
xianshi();
count=0;
voidlucheng()interrupt2{
if((z4==0&
z5==1&
z6==1&
z7==0)||(z4==1&
z5==0&
z6==0&
z7==1)){
sum++;
Distance=sum*0.023*3.14;
INT1=1;
/*写入命令函数*/
voidWriteCommand(unsignedcharc)
delayms(5);
//操作前短暂延时,保证信号稳定
E=0;
RS=0;
RW=0;
_nop_();
E=1;
Data=c;
SBUF=Data;
do{}while(!
TI);
TI=0;
/*写入数据函数*/
voidWriteData(unsigne
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- G03 简易 射门 机器人
![提示](https://static.bdocx.com/images/bang_tan.gif)