您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 51单片机无线遥控小车设计
单片机之家:智能小车•单片机之家:•智能小车•智能小车利用单片机STC10F08XE作为控制核心,使用红外线发射和接收器件、接近反射式光电感应器件、编码解码芯片和无线收发模块,实现智能小车的红外探测避障以及循迹功能,遥控小车的运动轨迹,用单片机输入/输出接口控制伺服电机方向、速度和运行时间,模块化结构保证了小车成为一个可靠整体,软件采用C语言编程,完成小车所要实现的功能。•关键词:单片机STC10F08XE红外避障循迹遥控伺服电机•第一章:智能小车总体设计结构及硬件模块设计•1.1总体设计结构•1.2智能小车硬件模块•第二章:智能小车各模块电路设计•2.1红外避障模块•2.1.1检测原理•2.1.2红外检测原理图•2.1.3测试红外发射探测器•2.1.4红外避障程序•2.2循迹模块•2.2.1循迹原理•2.2.2循迹原理图•2.2.3小车的循迹程序•2.2.4红外避障及循迹程序流程图•2.2.5红外避障及循迹程序程序代码•2.3无线遥控模块•2.3.1无线遥控原理•2.3.2无线遥控发射原理•2.3.3无线遥控发射原理图•2.3.4无线遥控接收原理•2.3.5无线遥控接收原理图•2.3.6无线遥控控制程序•第一章:智能小车总体设计结构及硬件模块设计•1.1总体设计结构•智能小车采用STC单片机集中控制和分散模块化设计。智能小车硬件由STC单片机开发板,红外检测模块组、轨迹检测模块以及无线遥控模块组成,智能小车采用左右两个伺服电机,高电平持续的时间控制电机运动转速。智能车前下端4组检测灯对黑线的反馈信号,通过单片机控制伺服电机的转动。前端的两组红外检测灯对障碍物进行检测,通过单片机P2口的低四位对遥控信号进行检测。•小车的机械结构设计:为了保证小车能够进行循迹,同时避免外界光的干扰,我们将道路检测电路板放在小车底盘的前端,红外避障模块放在小车的前部,无线接收模块放在小车的尾部,单片机控制板放在小车的正上方保持小车的平衡性,小车的主动轮为前端两个,从动轮为后面一个,电池放在两个主动轮之间,这样的整体设计既可以保持重心尽量在一条竖直线上又方便电源的开关,使小车转弯时的转动惯量减小,增强其稳定性。1.2智能小车硬件模块智能小车主要机构——从侧面观察各板的排列。各个模块附图如下:红外避障模块红外循迹模块遥控发射端无线遥控接收端第二章:智能小车各模块电路设计•电路的设计包括三个模块:红外避障模块,红外循迹模块,无线遥控模块•2.1红外避障模块•2.1.1检测原理•红外线二极管发射红外光,如果机器人前面有障碍物,红外线从物体反射回来,相当于机器人眼睛的红外检测(接收)器,检测到反射回的红外光线,并发出信号来表明检测到从物体反射回红外线。51单片机基于这个传感器的输入控制伺服电机。•红外线(IR)接收/检测器有内置的光滤波器,除了需要检测的980nm波长的红外线外,它几乎不允许其它光通过。红外检测器还有一个电子滤波器,它只允许大约38.5kHz的电信号通过。换句话说,检测器只接收每秒闪烁38,500次的红外光。这就防止了普通光源象太阳光和室内光对IR的干涉。太阳光是直流干涉(0Hz)源,而室内光依赖于所在区域的主电源,闪烁频率接近100或120Hz。由于120Hz在电子滤波器的38.5kHz通带频率之外,它完全被IR探测器忽略。•一组红外光电传感器包括有一个发射管和一个接收管。当发射管照射到障碍物时,大部分红外光都会返回给接收管,接收管输出为低电平;反之,当红外发射管前方无障碍物时,光线几乎没有被返回,那么接收管就不会接收到足够反射回来的光线,接收管输出高电平。输出的高低电平经IO口接入STC中,再通过程序的控制,使得小车作出相应的动作。•无线遥控接收端•2.1.2红外检测原理图•元件清单:•(1)两个1938(红外探测器)•(2)两个EL-1L1(红外LED)•(3)四个470Ω电阻•(4)两个9013三极管•说明:•因为STC的IO驱动能力较弱,这里我们加入三极管使其工作在开关状态来增强驱动能力。本任务中用到的是NPN型三极管9013,当单片机的IO口输出高电平时,三极管导通,IRLED可发出红外光;反之,当IO口输出低电平时,三极管截止,IRLED不能发射红外光。•2.1.3红外发射探测器应用•应用说明•让每个IRLED探测器组工作的关键是发送1毫秒频率为38.5kHz的红外信号,然后立刻将IR探测器的输出存储到一个变量中。可以给P1_3输出的信号高电平13微秒,低电平为13微秒,总周期为26微秒,即频率约为38.5kHz。•当没有红外信号返回时,探测器的输出状态为高。当它探测到被物体反射的38500Hz红外信号时,它的输出为低。因红外信号发送的持续时间为1毫秒,因此IR探测器的输出如果处于低,其持续状态也不会超过1毫秒,因此发送完信号后必须立即将IR探测器的输出存储到变量中。这些存储的值即可表示前方是否有障碍物。由此,可以实现智能小车的红外避障功能。•电路测试程序如下:•#includeuart.h•voiddelay_nus(unsignedinti)//延时,单片机为STC10F08XE•{•i=i*10/12;•while(--i);•}•voidHardware_delay_1ms(void)•{•TMOD&=0xF0;•TMOD|=0x01;//T0--16位定时器器模•TH0=0xFC;•TL0=0x18;//64536••TF0=0;//清除定时器溢出标志•TR0=1;//启动定时器•while(TF0==0);//等待计数完成•TR0=0;//停止定时器•}•voiddelay_nms(intn)•{•intj;•for(j=n;j0;j--)•Hardware_delay_1ms();•}•intP3_5state(void)•{•return(P3&0x20)?1:0;//返回P1_2的状态•}•intmain(void)•{•intcounter;•intirDetectLeft;•uart_Init();//串口初始化•printf(ProgramRunning!\n);•while(1)•{•for(counter=0;counter38;counter++)•{•P2_3=1;//红外发射约38.5kHz的红外光•delay_nus(13);•P2_3=0;•delay_nus(13);•}•irDetectLeft=P3_5state();//将返回的状态给irDetectLeft•printf(irDetectLeft=%d\n,irDetectLeft);•delay_nms(100);•}•}•说明:•保持机器人与串口线的连接;•在红外检测电路前放一个物体,比如手或一张纸,距离左侧IR组大约2到3厘米;•当放一个物体在IR组前时,串口调试助手会显示“irDetecfLeft=0”,将物体移开时,它会显示“irDetectLeft=1”;•调整红外检测器的角度,尽量使其与地面垂直;•测试的结果如下图示:•2.1.4红外避障程序•#includeuart.h•#defineLeftIRP1_2//左边红外接收连接到P1_2•#defineRightIRP3_5//右边红外接收连接到P3_5•#defineLeftLaunchP1_3//左边红外发射连接到P1_3•#defineRightLaunchP3_6//右边红外发射连接到P3_6•voiddelay_nus(unsignedinti)•{•i=i*10/12;•while(--i);•}••voidHardware_delay_1ms(void)•{•TMOD&=0xF0;•TMOD|=0x01;//T0——16位定时器器模•TH0=0xFC;•TL0=0x18;//64536••TF0=0;//清除定时器溢出标志•TR0=1;//启动定时器•while(TF0==0);//等待计数完成•TR0=0;//停止定时器•}•voiddelay_nms(intn)//延时ms•{•intj;•for(j=n;j0;j--)•Hardware_delay_1ms();•}•voidIRLaunch(unsignedcharIR)•{•intcounter;•if(IR=='L')//左边发射•for(counter=0;counter38;counter++)•{•LeftLaunch=1;•delay_nus(13);•LeftLaunch=0;•delay_nus(13);•}•if(IR=='R')//右边发射•for(counter=0;counter38;counter++)•{•RightLaunch=1;•delay_nus(13);•RightLaunch=0;•delay_nus(13);•}•}•voidForward(void)//向前行走子程序•{•P1_1=1;•delay_nus(1700);•P1_1=0;•P1_0=1;•delay_nus(1300);•P1_0=0;•delay_nms(20);•}•voidLeft_Turn(void)//左转子程序•{•inti;•for(i=1;i=23;i++)•{•P1_1=1;•delay_nus(1300);•P1_1=0;•P1_0=1;•delay_nus(1300);•P1_0=0;•delay_nms(20);•}•}•voidRight_Turn(void)//右转子程序•{•inti;•for(i=1;i=23;i++)•{•P1_1=1;•delay_nus(1700);•P1_1=0;•P1_0=1;•delay_nus(1700);•P1_0=0;•delay_nms(20);•}•}•voidBackward(void)//向后行走子程序•{•inti;•for(i=1;i=65;i++)•{•P1_1=1;•delay_nus(1300);•P1_1=0;•P1_0=1;•delay_nus(1700);•P1_0=0;•delay_nms(20);•}•}•intmain(void)•{•intirDetectLeft,irDetectRight;•uart_Init();•printf(ProgramRunning!\n);•while(1)•{•IRLaunch('R');//右边发射•irDetectRight=RightIR;//右边接收•IRLaunch('L');//左边发射•irDetectLeft=LeftIR;//左边接收•if((irDetectLeft==0)&&(irDetectRight==0))//同时接到红外线•{•Backward();•Left_Turn();•Left_Turn();•}•elseif(irDetectLeft==0)//只有左边接收到红外线•{•Backward();•Right_Turn();•}•elseif(irDetectRight==0)//只有右边接收到红外线•{•Backward();•Left_Turn();•}•else•Forward();•}•}•2.2红外循迹模块•2.2.1循迹原理•接近反射式光电感应器件RPR220由一个红外线发射二极管和一个光电二极管组成,可以发射并检测到反射回的光线。由于不同颜色的物体对光的反射率不同,当RPR220对准黑色物体时,黑色对光线反射率低,光电二极管接收到的反射光很少,不能导通,输出高电平;反之,当RPR220对准白色物体时,输出低电平。故而可以利用RPR220区分出黑色跑道与白色跑道边缘,STC单片机可基于返回的信号控制伺服电机,从而控制小车的行进。•2.2.2循迹原理图•元件清单•四个RPR220•100Ω、2K、10K电阻各四个•四个10K滑动变阻器•LM339芯片说明:安装时需要注意将焊有RPR220的电路板安装到小车的底部,并将RPR220对准地面,增强反射光的强度,同时可遮挡外界光;
本文标题:51单片机无线遥控小车设计
链接地址:https://www.777doc.com/doc-5017338 .html