
循迹机器人是智能机器人领域内非常重要且被广泛研究的一种智能移动装置,国内许多重要的比赛都以循迹机器人为核心进行开展的。本文设计的智能循迹避障机器人的控制系统主要由四个模块组成:最小系统模块、循迹模块、避障模块、电机驱动模块。该机器人能在规定的场地上按指定路线行走,实现各种直走、转弯、调头、加速、减速、爬坡、探测障碍的能力。
大学生创新能力的培养是高等教育创新教育、素质教育的本质要求,是建设创新型国家、构建国家创新体系的重要组成部分,是校园文化的更高层次,是促进科研体制改革和产学研结合的有效途径,必将直接推动生产力发展,产生直接的经济和社会效益。
机器人竞赛作为一种高科技创新活动为大学生创新能力的培养提供了广阔的舞台。智能机器人作为一种人的思维与机器融为一体的自动化设备正在为改善人们的生产、生活环境,促进人类社会文明的发展发挥着越来越重要的作用。人们已经研制了各式各样的具有感知、决策、行动和交互能力的特种机器人和各种智能机器人,如水下机器人、军用机器人、空中空间机器人、搬运机器人、娱乐机器人等。可见,机器人技术的应用已经从制造业向非制造业领域发展,循迹机器人的研究也成为机器人研究领域不可或缺的一部分。循迹机器人是一种能够自动按照给定的路线进行移动的机器人,它是一个运用传感器、信号处理、电机驱动及自动控制等技术来实现路面探测、障碍检测、信息反馈和自动行驶的技术综合体,对提高学生的创新能力、综合工程应用能力将起到积极的作用。
本文针对“中国机器人大赛中的机器人游中国项目”比赛,设计制作了智能循迹避障机器人。该比赛场地采用与地面颜色有较大差别的线条作为引导线,场地上有桥、减速坡等各种障碍,并根据机器人到达景点的多少及其难度计算比赛成绩。为了能够在竞赛中取得好成绩,就必须能够对赛场上的引导线和各种障碍进行准确的检测,以便准确控制机器人行进。本文开发的机器人采用灰度传感器自动检测引导线,并沿引导线移动,采用红外传感器判断障碍物实现循迹避障的功能。
机器人控制系统的硬件部分主要由5个模块组成:控制模块、循迹模块、避障模块、电机驱动模块、电源模块。机器人控制系统的框图如图1所示。
1控制系统模块。在机器人游中国的比赛中,要时时准确的检测引导线和障碍,保证机器人准确快速到达各个景点,为此本机器人采用ATmega128控制芯片。ATmega128为基于AVR
RISC结构的8位低功耗CMOS微处理器,运算速度快,具有多路PWM输出,可将测速、避障等电路产生的输入信号进行处理,并输出控制信号给驱动放大电路,从而控制电机转速,此方式产生的PWM信号比用定时器中断产生的PWM信号实时性更好,而且不会占用系统的定时器资源。
基于ATmega128开发的机器人控制系统具有速度调节性能好、稳定性高、功能易拓展、成本低、体积小等特点。
2循迹模块。循迹是指小车在比赛场地上循白色引导线线行走,循迹模块的原理图如图2所示。循迹模块采用灰度传感器,发射管为普通LED灯,接收管为光敏三极管3DU33。工作原理为:不同颜色的物体对LED发射光反射不同的亮度,光敏三极管3DU33接收这些不同亮度的光线,就会呈现不同的电压Vx。Vx输入到比较器LM339的同相端,并与电位器设定的电压V0相比较,当Vx>V0时,比较器输出高电平,当Vx循迹机器人前后两端均是由7个灰度传感器组成的循迹模块。7个灰度传感器的布置图如图3所示。其中,中间三个灰度传感器起巡线的作用,两端的灰度传感器起探测弯道作用,剩下两个灰度传感器交替进行巡线和探测弯道。实验证明,这样的灰度传感器的布置图,机器人循迹的效果好,且“性价比”非常高。
我用十三个对管,舵机控制转向,八个对管的话状态改下就行,给你参考下,不明白可以追问我,qq 181325995
#include<reg52h>
#define uint unsigned int
#define uchar unsigned char
uint i,count;
uchar pro; //驱动电机调速//
uchar finish=0;//停车标志
sbit le1=P1^0; //左边传感器//
sbit le2=P1^1;
sbit le3=P1^2;
sbit le4=P1^3;
sbit le5=P1^4;
sbit le6=P1^5;
sbit mid=P1^6;//中间传感器//
sbit ri6=P1^7;
sbit ri5=P2^3;
sbit ri4=P2^4;
sbit ri3=P2^5;
sbit ri2=P2^6;
sbit ri1=P2^7;//右边传感器//
sbit ENA=P2^0; //驱动电机pwm//
sbit moto1=P2^1; //电机控制//
sbit moto2=P2^2;
sbit PWM=P3^5; //舵机pwm//
sbit bz=P3^7;//蔽障管
init()
{
TMOD=0x11;//设定双定时器
EA=1;
TR0=1;
TR1=1;
TH0 = 0x0B1;//设定定时初始值,可去下载个定时器计算软件,
TL0 = 0x0E0;
TH1=(65536-100)/256;
TL1=(65536-100)%256;
ET0=1;
ET1=1;
ENA=1;
}
void delay(uint n)//延时函数
{
uchar a,b,c;
for(c=1;c>0;c--)
for(b=n;b>0;b--)
for(a=2;a>0;a--);
}
void delay2(uint z)
{
uchar a,b,c;
for(a=2;a>0;a--)
for(b=100;b>0;b--)
for(c=z;c>0;c--);
}
void qctyp(void) //光电管全无状态时(脱离轨道),读取前次状态
{
le1=P1^0;
le2=P1^1;
le3=P1^2;
le4=P1^3;
le5=P1^4;
le6=P1^5;
mid=P1^6;
ri6=P1^7;
ri5=P2^3;
ri4=P2^4;
ri3=P2^5;
ri2=P2^6;
ri1=P2^7;
}
void hhig(uint y)//前进函数
{
pro=y;//变量y是改变小车速度这里范围是0--39
moto1=1;
moto2=0;
}
void back(uint z)//后退函数
{
pro=z;//改变z 可改变行驶速度
moto1=0;
moto2=1;
}
void dj(uint m) //舵机控制
{
PWM=1;
delay(m); //改变m可改变舵机转向角度,
PWM=0;
}
以上就是关于中呜机器人巡线5秒如何控制全部的内容,包括:中呜机器人巡线5秒如何控制、tcrt5000的小车循迹模块怎么用51单片机编程。、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)