小车循迹壁障等流程图.docx
- 文档编号:2106656
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:14
- 大小:201.61KB
小车循迹壁障等流程图.docx
《小车循迹壁障等流程图.docx》由会员分享,可在线阅读,更多相关《小车循迹壁障等流程图.docx(14页珍藏版)》请在冰点文库上搜索。
小车循迹壁障等流程图
#include
的Input1*/sbits2=P1A3;/*L298的Input2*/sbits3=P1A4;/*L298的Input3*/sbits4=P1A5;/*L298的Input4*/uchart=0;/*中断计数器*/ucharm仁0;/*电机1速度值*/ucharm2=0;/*电机2速度值*/uchartmp1,tmp2;/*电机当前速度值*//*电机控制函数index-电机号(1,2);speed-电机速度(-100—100)*/voidmotor(ucharindex,charspeed){if(speed>=-100&&speed<=100){if(index==1)/*电机1的处理*/{m1=abs(speed);/*取速度的绝对值*/if(speed<0)/*速度值为负则反转*/{s1=0;s2=1;}else/*不为负数则正转*/{s1=1;s2=0;}}if(index==2)/*电机2的处理*/{m2=abs(speed);/*电机2的速度控制*/if(speed<0)/*电机2的方向控制*/{s3=0;s4=1;}else{s3=1;s4=0;}}}}voiddelay(uintj)/*简易延时函数*/{for(j;j>0;j--);}voidmain(){uchari;TMOD=0x02;/*设定T0的工作模
式为2*/TH0=0x9B;/*装入定时器的初值*/TL0=0x9B;EA=1;/*开中断*/ET0=1;/*定
时器0允许中断*/TR0=1;/*启动定时器0*/while
(1)/*电机实际控制演示*/{for(i=0;i<=100;i++)/*正转加速*/{motor(1,i);motor(2,i);delay(5000);}for(i=100;i>0;i--)
/*正转减速*/{motor(1,i);motor(2,i);delay(5000);}for(i=0;i<=100;i++)/*反转加速*/
{motor(1,-i);motor(2,-i);delay(5000);}for(i=100;i>0;i--)/*反转减速*/{motor(1,-i);
motor(2,-i);delay(5000);}}}voidtimer0()interrupt1/*T0中断服务程序*/{if(t==0)/*1个PWM周期完成后才会接受新数值*/{tmp1=m1;tmp2=m2;}if(t
#include"reg52.H"#include"MyType.h"//=============L298端口定义
===============sbitENA=P3A6;//左轮驱动使能sbitIN1=P0A3;//左轮黑线(-)sbitIN2=卩0人4;//左轮红线(+)sbitIN3=卩0人5;//右轮红线(-)sbitIN4=卩0人6;//右轮黑线(+)sbitENB=P3A7;//右轮驱动使能//=============PWM================#definePWM_COUST100//PWM细分等份100ucharMOTO_speed1;//左边电机转速ucharMOTO_speed2;//右边电机转速ucharPWM_abs1;//左边电机取绝对值后占空比ucharPWM_abs2;//左边电
机取绝对值后占空比ucharPWM_var1=20;//左边电机直走速度
同)ucharPWM_var2=20;//右边电机直走速度ucharPWMAnd
motor_PWM(){ucharPWM_abs1;ucharPWM_abs2;PWM_abs1=MOTO_speed1;PWM_abs2=MOTO_speed2;if(PWM_abs1>PWMAnd)ENA=1;//左边电机占空比输出
/**
elseENA=O;if(PWM_abs2>PWMAnd)ENB=1;//右边电机占空比输出elseENB=O;if
名称:
void
无返回
:
无
void
TCON=0x00;
(PWMAnd>=PWM_COUST)PWMAnd=O;〃PWM计数清零elsePWMAnd+=1;}****************************************************************
TIME」nit();功能:
定时器初始化指令:
调用:
/******************************************************************/
TIME_Init(){//=========定时器T2初始化PWM==================
TMOD=0x00;RCAPH=0xff;//定时0.1msRCAPL=0x47;TH0=0xff;TL0=0x47;ET0=1;//定时器2中断开TR0=1;//PWM定时器关,PWM周期为
voidPWM_Time2()interrupt5功能:
T2中断,PWM控制参数:
占空比输出
/******************************************************************/void
PWM_Time2()interrupt5{TR2=0;TF2=0;ET2=0;//定时器0中断禁止motor_PWM();//PWM占空比输出ET2=1;//定时中断0开启TR2=1;}main(){TIME_Init();motor(50,50);//左右电机的转速都是
50}
首先机器人前进,并判断是否冇障碍*当机器人遇到障碣物吋■屮断口获得的是一个脉冲电位变化.然后单片机的控制模块进行厳障"脐处理。
特别需真抵出的是•机器人要转国并不是一件容易的事,考虑到小车的响应时间问题,在实现时采用的是先使电机后退,再启动电机进厅转弯,
电机转动狀态編码:
左电机
右电机
左粗机
右电机
电动车运行状态
INI
IN2
IN3
IN4
1
0
1
0
正转
正转
前行
1
0
0
1
正转
反转
左转
1
0'
1
1
正转
停
以左电机为中心原地左转
0
1
1
0
反转
正转
右转
1
1
1
0
停
正转
以右电机为中心愎地右转
0
1
0
1
反转
反榕
后退
对于电机的调速,我们采用卩諏调速的方法。
就是开关管在一个周期内的导通时间为J周期%T,则电机两端的平均电压r=Vcc*(t;T)=aVce.其屮,u=t/T(占空比),Vcc是电源电压。
电机的转速与电机两端的电压成比例,血电机两瑞的电压与担制波形的占空比成正比.禺此电机的速度与占空比成比方秦二:
利用L298N构咸电机驱动电路.
L298N是SGS公司的尹治内部包含4通道逻黑駆动电路,是一种二相和四相电机的专用驱动器.即内含,个H桥的高电乐大电流可亡桥式腿动器.搖收标准TTL逻揖电平信号*可驱动46J弘以下的电机°其引脚排列如下图所示。
CHI.0CT2和0UT3、0VT4之间分别接2个电动机。
INI.IN2.IN3,IM引脚从单片机核輸入捋制电平.捽制电机的IF应转*EEFNB搔拎制使能端,控制电机的停转。
L的8的逻辂功能衣如卜所示:
通过ST188佥测黑线,输出接收到的信号给LM324,接收电压与比较电压比较后,输出信号变为高低电平,再输入到单片机中,用以判定是否检测到黑线。
rt
nR2
R3
220
10k
II = — ST1B8 图3-5传感器模块电路图 9I FWl^Jl-PW2731时,心和駁导谨,节寿丄和2都是底电平,毎5和Q15辱通,电机不工作 FW1H洵0,PWI2知时,G1和貂导通! 节訣和2都是高电平! QL3和Q14异通,电til■不工布 F1O1対1,FWI2为0时,□导通而Q2不导血节豆1是低底平而雇高电平.314和Q15导通,电枫逆时钝 FWM1対0,P毗%1时,爼不孕連而Q2导通,节点丄是高吐平而屋低也平,爼3和QM导通"电机顺时AeL PWM为1,PWM为1时,Q1和Q2导通,节点1和节点2都是低电平,Q15和 Q16导通,电机不工作。 PWM为0,PWM为0时,Q1和Q2导通,节点1和节点2都是高电平,Q13和 Q14导通,电机不工作。 PWM为1,PWM为0时,Q1导通但Q2不导通,节点1是低电平而节点2是 高电平,Q14和Q15导通,电机逆时针转动。 PWM为0,PWM为1时,Q1不导通但Q2导通,节点1是高电平而节点2是 低电平,Q13和Q16导通,电机顺时针转动。 红外传感器探测头 电机驱动控制电机引脚 P02 P01 POO P13 P14 P11 P10 电机动作 0 0 0 到终点 OlOO 1 1 1 1 全韶停止 OxOf 0 0 1 偏右WI闵 0x01 1 1 0 1 左转宵 OxOd 0 1 0 不能存在 0x02 0 1 1 偽右倾向 0x03 1 1 0 1 左转弯 OxOd 1 0 0 陽左IW向 OiOl 0 1 1 1 右转弯 0x07 1 0 1 中间行驶 0x05 0 1 0 1 0x05 1 1 0 闻左倾向 0x06 0 1 1 1 右转弯 0x07 1 1 1 闌偏 0x07 檢照是后一次检测运行 图2-1系统实现原理结构图 产生控制信号 5/11 h<2Ftc*冬2 开始 甲乙各跑一圈 甲乙两 车在起始点 行驶 检测第1条转*弯标志线 检测第2条转甲乙/弯标志线一圈 检测超车标 志区 左转直行 200cm右转驶 于起始点 甲乙两 车在起始点 行驶 检测第1条转 *弯标志线 检测第2条转 *弯标志线 检测超车标 *志区 第一圈乙超甲 第二圈甲超乙 小车进入循迹模式后,即开始不停地扫描与探测器连接的单片机I/O口, 旦检测到某个I/O口有信号,即进入判断处理程序,先确定4个探测器中的哪一个探测到了黑线,如果左面第一级传感器或者左面第二级传感器探测到黑线,即 小车左半部分压到黑线,车身向右偏出,此时应使小车向左转;如果是右面第一级传感器或右面第二级传感器探测到了黑线,即车身右半部压住黑线,小车向左偏出了轨迹,则应使小车向右转。 在经过了方向调整后,小车再继续向前行走,并继续探测黑线重复上述动作。 循迹流程图如图4-2所示 开始 上电运行后,放到没有障碍物的空地上,小车直走。 当前方没有障碍物的的时候车就一直直走。 如果前方遇到障碍物,则小车做左转运动。 直至前方没有障碍物,这时小车恢复直走。 如果前方有障碍物的时候,左边同时也有障碍物,则小车右转。 直至左边没有障碍物或者前方没有障碍物。 这时小车恢复左转,或者直走。 如果前面没有障碍物,则先执行直走。 如果前方,左方,右方均有障碍物,则小车后退,直至前方,左 方,右方任一方向没有障碍,则此时小车开始以前方,左方,右方的优先级开始执行转向。 也就是说如果前方没有障碍物,即使其他任意 方向都有障碍则小车依然直走,如果前方有障碍,左边没有则右转, 前方左方都有障碍,则小车右转。 否则小车后退 避障及寻光源子程序 在没有检测到障碍物时调用光源检测子程序,寻找光源。 当检测到障碍物时,控制小车左转一定时间后,再右转一定时间,再次判断前方是否有障碍物,直到没有障碍物的信号再调用寻光源子程序。 绕障碍物程序流程图如图6。 囲艮绕障開物子程序流程图 外避障传感器,这是一种集发射与接收于一 体的光电传感器。 检测距离可以根据要求进行调节,调节范围为3〜80cm该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特点,可以广泛应用于机器人避障、流水线计件等众多场合。 应用如图2.1.3. 红 传+(5V) 感黄 信号输出 图2.1.3传感器应用图示 传感器 综 +(5V) 信号输出 图2.1.3传感器应用医示 信号输出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小车 循迹壁障 流程图
![提示](https://static.bingdoc.com/images/bang_tan.gif)