小车循迹壁障等流程图Word文档格式.docx
- 文档编号:17103013
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:13
- 大小:197.42KB
小车循迹壁障等流程图Word文档格式.docx
《小车循迹壁障等流程图Word文档格式.docx》由会员分享,可在线阅读,更多相关《小车循迹壁障等流程图Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
电机控制函数
index-电机号(1,2);
speed-电机速度(-100—100)
void
motor(uchar
index,
speed)
{
if(speed>
=-100
&
speed<
=100)
if(index==1)
/*
的处理
m1=abs(speed);
取速度的绝对值
if(speed<
0)
速度值为负
则反转
s1=0;
s2=1;
}
else
不为负数则正转
s1=1;
s2=0;
if(index==2)/*电机
的处理*/ { m2=abs(speed);
/*电机
的速度控制*/
if(speed<
的方向控制
s3=0;
s4=1;
s3=1;
s4=0;
void
delay(uint
j)
简易延时函数
for(j;
j>
0;
j--);
void
main()
i;
TMOD=0x02;
/*设定
T0
的工作模式为
TH0=0x9B;
/*装入定时器的初值*/
TL0=0x9B;
EA=1;
开中断
ET0=1;
定时器
0
允许中断
TR0=1;
启动定时
器
while
(1)
电机实际控制演示
for(i=0;
i<
=100;
i++)
正转加速
motor(1,i);
motor(2,i);
delay(5000);
for(i=100;
i>
i--)
/*正转减速*/
/*反转加速*/
motor(1,-i);
motor(2,-i);
反转减速
timer0()
interrupt
中断
服务程序
if(t==0)
个
PWM
周期完成后才会接受新数值
tmp1=m1;
tmp2=m2;
if(t<
tmp1)
en1=1;
else
en1=0;
产生电机
信号
tmp2)
en2=1;
en2=0;
t++;
if(t>
信号
由
100
次中断产生
有两路
PWM,希望对你有帮助!
#include"
reg52.H"
#include"
MyType.h"
//=============L298
端口定义
=============== sbit
ENA
=
P3^6;
//左轮驱动使能 sbit
IN1
P0^3;
//左轮黑线(-)
sbit
IN2
P0^4;
//左轮红线(+) sbit
IN3
P0^5;
//右轮红线(-) sbit
IN4
P0^6;
//右轮
黑线(+) sbit
ENB
P3^7;
//右轮驱动使能 //=============PWM================
#define
PWM_COUST
//PWM
细分等份
100 uchar
MOTO_speed1;
//左边电机转速
MOTO_speed2;
//右边电机转速 uchar
PWM_abs1;
//左边电机取绝对值后占空比
PWM_abs2;
//左边电机取绝对值后占空比
PWM_var1=20;
//左边电机直
走速度
(不同的电机,此参数不同) uchar
PWM_var2=20;
//右边电机直走速度 uchar
PWMAnd=0;
//PWM
自增变量
/****************************************************************** 名称:
motor(char
speed1,char
speed2);
功能:
同时调节电机的转速 参数:
speed1:
的
值;
speed2:
值
speed>
0.正转;
0.反转(-100~100) 调
用:
externintabs(intval);
取绝对值 返回:
/******************************************************************/ void
speed2) { //==============左边电机=============
if
(speed1>
0) { IN1
=0;
=1;
//正转 }
if
(speed1<
IN2
//反转 }
//==============右边电机=============
(speed2>
0) {
//正转 }
(speed2<
0) { IN3
//反转 } }
motor_PWM();
占空比输出 参数:
无 调用:
无 返回:
无
/******************************************************************/ void
motor_PWM
() {
PWM_abs1=MOTO_speed1;
PWM_abs2=MOTO_speed2;
(PWM_abs1>
PWMAnd)
ENA=1;
//左边电机占空比输
出 else
ENA=0;
(PWM_abs2>
ENB=1;
//右边电机占空比输出 else
ENB=0;
(PWMAnd>
=PWM_COUST)
PWMAnd=0;
计数清零 else
PWMAnd+=1;
}
void
TIME_Init();
定时器初始化 指令:
调用:
TIME_Init
()
{ //=========定时器
T2
初始化
PWM================== TCON
0x00;
TMOD
RCAPH
0xff;
//定时
0.1ms RCAPL
0x47;
TH0
TL0
ET0
1;
//定时器
中断开 TR0
定时
器关,PWM
周期为
10ms }
PWM_Time2
5 功能:
中断,PWM
控制 参数:
motor_PWM();
占空比输出 返回:
/******************************************************************/ void
5 { TR2
TF2
ET2
中断禁止
占空比输出 ET2
//定时中断
开启 TR2
}
main() { TIME_Init
();
motor(50,50);
//左右电机的转速都是
50 }
图
3-1ST188实物图图
3-2ST188管脚图及内部电路
通过ST188检测黑线,输出接收到的信号给LM324
,接收电压与比较电压
比较后,输出信号变为高低电平,再输入到单片机中,用以判定是否检测到黑
线。
图3-5传感器模块电路图
PWM1为1,PWM2为1时,Q1和Q2导通,节点1和节点2都是低电平,Q15
和Q16导通,电机不工作。
PWM1为0,PWM2为0时,Q1和Q2导通,节点1和节点2都是高电平,Q13
和Q14导通,电机不工作。
PWM1为1,PWM2为0时,Q1导通但Q2不导通,节点1是低电平而节点2是
高电平,Q14和Q15导通,电机逆时针转动。
PWM1为0,PWM2为1时,Q1不导通但Q2导通,节点1是高电平而节点2是
低电平,Q13和Q16导通,电机顺时针转动。
传感器循迹
检测
信息采集
STC89C52
主控系统
交替超车
控制行进
通信协同
无线通信
小车运行
2-1
系统实现原理结构图
开始
甲乙两
车在起始点
行驶
检测第1条转
弯标志线
检测第2条转
检测超车标
志区
左转直行
200cm右转驶
于起始点
甲车左转直
行120cm停止
甲车开始直
行80cm右转
驶于起始点
乙车左转进
入超车区
直行120cm
乙车右转驶
乙车左转直
乙车开始直
甲车左转进
甲车右转驶
系统初始化
任务计数器归零
是否完成全部
任务?
N
循迹子函数
Y
4-1
主程序流程图
是否完成本次
结束
小车进入循迹模式后,即开始不停地扫描与探测器连接的单片机
I/O
口,
一旦检测到某个
口有信号,即进入判断处理程序,先确定
个探测器中的
哪一个探测到了黑线,如果左面第一级传感器或者左面第二级传感器探测到黑
线,即小车左半部分压到黑线,车身向右偏出,此时应使小车向左转;
如果是
右面第一级传感器或右面第二级传感器探测到了黑线,即车身右半部压住黑线,
小车向左偏出了轨迹,则应使小车向右转。
在经过了方向调整后,小车再继续
向前行走,并继续探测黑线重复上述动作。
循迹流程图如图
4-2
所示
启动循迹模式
探测黑线
是否检测到黑
线
判断处理程序
向左转
Turn
_left2
_left1
向右转
Turn_
right1
Lright2
继续前进
循迹流程图
上电运行后,放到没有障碍物的空地上,小车直走。
当前方没有障碍
物的的时候车就一直直走。
如果前方遇到障碍物,则小车做左转运动。
直至前方没有障碍物,这时小车恢复直走。
如果前方有障碍物的时候,左边同时也有障碍物,则小车右转。
直
至左边没有障碍物或者前方没有障碍物。
这时小车恢复左转,或者直
走。
如果前面没有障碍物,则先执行直走。
如果前方,左方,右方均有障碍物,则小车后退,直至前方,左方,
右方任一方向没有障碍,则此时小车开始以前方,左方,右方的优先
级开始执行转向。
也就是说如果前方没有障碍物,即使其他任意方向
都有障碍则小车依然直走,如果前方有障碍,左边没有则右转,前方
左方都有障碍,则小车右转。
否则小车后退。
避障及寻光源子程序
在没有检测到障碍物时调用光源检测子程序,寻找光源。
当检测到障碍物
时,控制小车左转一定时间后,再右转一定时间,再次判断前方是否有障碍物,
直到没有障碍物的信号再调用寻光源子程序。
绕障碍物程序流程图如图
6。
外避障传感器,这是一种集发射与接收于一
体的光电传感器。
检测距离可以根据要求进行调节,调节范围为
3~80cm。
该
传
感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特
点,
可以广泛应用于机器人避障、流水线计件等众多场合。
应用如图
2.1.3.
红
传+
(5V)
感
黄
信号输出
器
绿
—
2.1.3
传感器应用图示
+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小车 循迹壁障 流程图