第八届智控-王永康_第1页
第八届智控-王永康_第2页
第八届智控-王永康_第3页
第八届智控-王永康_第4页
第八届智控-王永康_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、题目要求:设计一辆能够划线的智能小车。要求小车在活动场上能利用传感器精确的绘制要求图形。图形说明:线段字形矩形“凹”如上图所示,场地为一张铺在地上的白纸,要求小车携带一只马克笔(安装方式不限)完成对要求图形的精确绘制。车模与传感器要求:车模大小不限,传感器只能安装在小车上,不允许使用场外其他定位器件基本要求:1. 小车能直线前行,完成 40CM,80CM ,100CM 的线段绘制。评判时设置起点基准线(黑胶带),小车绘制的线段长度为小车从基准线出发到最终停止绘线的距离。2. 小车能完成 90转弯,完成 40CM X 60CM 的矩形绘制。不设起始基准线。拐点处能实现“”“等精确绘制。扩展要

2、求:1.小车能完成外三条为 60CM,凹三条为 30CM 的 “凹”字形绘制;2.小车能完成四个 30CM X 30CM 正方形组成的“田”字形绘制;3.自行设计趣味图案的绘制;4.能完成现场提供的图案(仅包括线段和 90角)绘制。二、设计思路:1.车型选择:小车需要实现的功能是直走和转弯。为了能够精确绘画直角,需要小车在进行左右转弯的时候的旋转中心在小车上。而当三轮的小车两个反向转动的时候,小车的旋转中心在无法画直角。的中间位置。而四轮小车的旋转中心在小车外面,2.电机选择电机选择直流电机和步进电机。步进电机可实现精确定位控制,配广泛应用于位移精确中;但控制相对直流电机复杂;直流电机控制相对

3、简单,但是定位精度不高,可用于对速度要求高,而对位移定位不高的系统。鉴于复杂度考虑,本小车采用了直流电机配合箱。3.驱动模块本小车采用L298N 为制作驱动模块。L298N 是ST 公司生产的一种高电压、大电流电机驱动。该采用 15 脚封装。主要特点是:工作电压高,最高工作电压可达 46V;输出电流大,瞬间峰值电流可达 3A,持续工作电流为 2A;额定功率 25W。内含两个 H 桥的高电压大电流全桥式驱动器,可以用来驱动直流电和步进电、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或器件工作有一个逻辑电源输入端,使逻辑电路部分在低电压下工作;

4、可以外接检测电阻,将变化量反馈给控制电路。使用 L298N 芯片驱动电机,该台直流电机。可以驱动一台两相步进电机或四相步进电机,也可以驱动两典型驱动电路图如下图,同时带有稳压模块提供 5v 电源用于单片机供电和提供输入端的参考电压。4.测速模块和码盘:采用光电对管配合码盘测两的速度。本小车采用了 20 格的码盘,转一圈将产生 20 个脉冲信号。光电管的电路图如下。5.控制部分:采用 stc89C52 最小板作为控制板。三、设计1.转数:借助光电对管和码盘,测量两个于计算转数。的转速。输出作为 51 单片机的外部中断,用2.调速:采用调制波来控制两电机的转速。3.直走:当小车走直线的时候,理论上

5、应该是两左右的转速一致,但是由于测速相对较为麻烦,而且没有必要。所以调速的策略是尽量使两个走得一致。因为小车的硬件上的选配对称较好,仅需要在两提高转速即可。的转速出现差值的时候采用比例控制加大较慢的电压来4.测距:的直径约为 66mm,所以走一圈大概为 20cm。而因为转一圈产生 20 个脉冲,所以走 20cm 即为产生 20 个脉冲即可。5.转弯:左转为左轮后腿,右轮前进。而右转使左轮前进,右轮后退即可。通过实际测量,当左右轮转一圈时为 90 度代码如下:/*硬件连接P1_6 接驱动模块 ENAP1_7 接驱动模块 ENB使能端,输入使能端,输入信号调节速度信号调节速度P3_4 P3_5 接

6、 IN1OUT1 OUT2 接左电机 P3_4 P3_5 接 IN1 P3_6 P3_7 接 IN3OUT3 OUT4 接右电机P3_6 P3_7 接 IN3IN2当 P3_4=1,P3_5=0; 时左电机正转 驱动蓝色输出端IN2IN4当 P3_4=0,P3_5=1; 时左电机反转当 P3_6=1,P3_7=0; 时右电机正转驱动蓝色输出端IN4当 P3_6=0,P3_7=1; 时右电机反转*/#include sbit P1_6=P16; sbit P1_7=P17; sbit P1_0=P10; sbit P1_1=P11; sbit P1_2=P12; sbit P1_3=P13; s

7、bit P2_0=P20; sbit P2_1=P21; sbit P2_2=P22; sbit P2_3=P23; sbit P3_4=P34; sbit P3_5=P35; sbit P3_6=P36; sbit P3_7=P37; sbit K1=P24;sbit K2=P25; sbit K3=P26;sbit K4=P27;#defineuunsigned#define Left_moto_节速度#define Right_moto_P1_6/接驱动模块 ENA 使能端,输入信号调P1_7/接驱动模块 ENBunsigned code table=0 xc0,0 xf9,0 xa4,

8、0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;#define off P2_0=1;P2_1=1;P2_2=1;P2_3=1;#define Left_moto_go P3_4=0,P3_5=1; 时左电机前进#define Left_moto_back P3_4=1,P3_5=0; 时左电机后退 #define Right_moto_go P3_6=0,P3_7=1; 时右电机前转#define Right_moto_back P3_6=1,P3_7=0; 时右电机后退#define stopP3_4=0,P3_5=1; /P3_4 P3_5 接 IN1

9、IN2当P3_4=1,P3_5=0; /P3_4 P3_5 接 IN1IN2当P3_6=0,P3_7=1; /P3_6 P3_7 接 IN1IN2当P3_6=1,P3_7=0; /P3_6 P3_7 接 IN1IN2当Right_moto_stop=0;Left_moto_stop =0;/暂停两个电机#define start tt; i,b,j,xx;a20;e,ek,ekk,deta;_val_leftRight_moto_stop=1;Left_moto_stop =1;=0;/变量定义push_val_left =0;/ 左电机占空比 N/100_val_right =0;push_

10、val_right=0;/ 右电机占空比N/100 bit Right_moto_stop=1;bit Left_moto_stop =1;unsignedcount1; count2; count3;count4;time=0;unsigned code dis=0 xfe,0 xfd,0 xfb,0 xf7;描数码管客值unsigned char disbuff5=0;/显示缓存/扫void delay(ui;n)for(i=0;icount1)/右电机前进Display_SMG();stopvoid turn_left(void)ustep=20;push_val_left=60;改变其

11、速度push_val_right =60;以改变其速度count1=0; count2=0;/调节参数 1-10 01 为最慢,10 是最快 改这个值可以/调节参数 1-10 01 为最慢,10 是最快改这个值可Left_moto_back ;Right_moto_go ;/左电机前进/右电机后退startwhile(stepcount1); stopvoid turn_right(void)ustep=20;push_val_left=60;改变其速度push_val_right =60;以改变其速度count1=0; count2=0;Left_moto_go ; Right_moto_b

12、ack ; start while(stepcount1); stop/调节参数 1-101 为最慢,100 是最快 改这个值可以/调节参数 1-101 为最慢,100 是最快改这个值可/左电机前进/右电机后退/*/*调制电机转速*/*/*左电机调速*/*调节 push_val_left 的值改变电机转速,占空比*/void_out_left_moto(void)if(Left_moto_stop)if(_val_left=100)_val_left=0;if(elseLeft_moto_=0;/*/*/右电机调速_out_right_moto(void)voidif(Right_moto_s

13、top)if(_val_right=100)_val_right=0;if(elseRight_moto_=0;/*/*TIMER0 中断服务子函数产生信号*/void timer0()errupt 1using 2TH0=0XFE; TL0=0X00;time+;/1Ms 定时e=count1-count2;deta=0;_val_left+;_val_right+;_out_left_moto();_out_right_moto();void0(void)count1+;errupt 0using 1void1(void)errupt 2using 3count2+;/*/ void ma

14、in(void)TMOD=0X01; TH0= 0XFE; TL0= 0X00; TR0= 1;ET0= 1;EA = 1;/1ms 定时IT0=1; EX0=1; IT1=1;EX1=1;while(1)tt=0; P0=table0; if(!K1)while(K4) if(!K1)delay(10000); while(!K1) ; tt+;off P0=tablett; P2_0=0;/当光电管不为黑 for(i=0;itt;i+);if(!K2)while(K4) if(!K2)delay(10000); while(!K2) ; tt+;off P0=tablett; P2_1=0

15、;switch(tt)case 1:break; case 2:break; case 3:break; if(!K3)off P2_2=0;while(!K3); while(K4)P0=table0; if(!K1)delay(10000); if(!K1)att+=1; P0=table1;while(!K1);if(!K2)delay(10000); if(!K2)att+=2;P0=table2;while(!K2); if(!K3)delay(10000); if(!K3)att+=3; P0=table3;while(!K3);for(i=0;itt;i+)b=ai; switch(b)case 1:P0=table1;delay(100000);break; case 2:P0=table2;dela

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论