51红外循迹小车报告舵机版最终版Word文件下载.docx
- 文档编号:14102388
- 上传时间:2022-10-18
- 格式:DOCX
- 页数:21
- 大小:1.07MB
51红外循迹小车报告舵机版最终版Word文件下载.docx
《51红外循迹小车报告舵机版最终版Word文件下载.docx》由会员分享,可在线阅读,更多相关《51红外循迹小车报告舵机版最终版Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
2、小车行驶基本原理
小车在白色地板上循黑线行走,由于黑线和白色地板对光线的反射系数不同,可以根据接收到的反射光的强弱来判断“道路”。
通常采取的方法是红外探测法。
红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;
如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。
单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。
3、总体设计方案
通过51单片机,在“while
(1){}”里面不断扫描外部输入I/O口,若能读到高电平,则输出相应的舵机控制程序。
(要求:
51I/O口TTL门输入电压3.5V以上为高电平,1.2V以下为低电平。
读取引脚时,先置1再读取).
第一部分 硬件设计
1.1车模选择
本教程选择带有两舵机和一万向轮的车模。
舵机型号:
SM-S4303R(360°
旋转舵机).其原理及详细操作说明,见附录1.车模实物如图1.1.
图1.1
1.2传感器选择
本教程选择ST188红外对管光电传感器,使用左、前、右分布的三个传感器(前伸为了检测十字路口)。
传感器应用电路图如图1.2。
光电传感器原理详情,请看附录2->
传感器篇。
图1.2
应用原理:
红外探测法
红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。
在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;
如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号。
1.3控制模块选择
因为循迹小车,只需要做简单的输入输出操作,普通51单片机都能实现其功能.本教程选用是51单片机型号为STC89C52RC的最小系统板(有引脚引出的)。
本教程里的程序理论上具有51内核的单片机都可使用。
最小系统原理图,如图1.3.
图1.351最小系统原理图
1.4供电扩展版
为了控制的稳定,舵机直接从电源VCC串个二极管供电。
这里采用简单的电源扩展,将5V电源引入扩展板,再引出供给电机和控制模块。
(这里最好把二极管接上,消除电机感性对单片机的影响)
注意:
当舵机与控制板供电电源不同时,两边必须共地,数字信号才能同步。
否则控制信号会发生混乱,导致无法控制。
第二部分 软件设计及调试
2.1开发环境
KeilC51v9.54a、stc-isp-15xx-v6.85H、USB-TLL51下载器(烧录程序用)
2.2总体框架
2.3舵机程序设计与调试
2.3.1程序设计
通过了解,知道89S51单片机自身没有PWM接口,故使用定时器模拟产生PWM波,进行舵机速度调试。
使用51单片机的定时器T0工作在方式1,赋予初值“TH0=(65535-100)/256;
TL0=(65535-100)%256;
”定时0.1ms(晶振频率12MHz),用count计数200,产生50HZ的脉冲频率(舵机最适频率)。
设全局变量LS、RS来控制占空比,从P1.0P1.1输出PWM信号,两口外接舵机。
附:
1.脉冲产生原理:
周期20ms,定时1.2ms为高电平,其他时间为低电平.即可产生占空比为6%(一周期内高电平占比)的脉冲信号.
2.pwm控制舵机原理,可理解为一个高电平舵机一动,给的多动的快,但有范围。
2.3.2调试
调试目的:
得到正反转占空比范围。
我的调试数据为:
正转范围0.5%~6%(即:
LS=1,LS=12)
反转范围6.5%以上(即:
LS>
=13)
2.3.3程序代码
/******************************************************
51单片机舵机调试程序
调试参数:
1.定时器定时0.1ms,计数200,定时20ms(50HZ)
.(360°
左舵机为例):
频率50HZ
LS=12(即占空比%6),电机正转最慢
*******************RS=13(即占空比%6.5),电机正转最慢****************/
/*提示:
1.调试舵机时,最好单独供电(控制信号与电源供电分离)
.2.控制信号与供电电源必须共地。
*/
/*****************作者:
李学云 2016.7.23****************/(......排版好乱)
#include"
reg52.h"
#defineucharunsignedchar
ucharcount=0,LS=2,RS=15;
//count:
定时计数 LS:
左路舵机脉宽调试
sbitpwm_L=P1^0;
//左路电机输出
sbitpwm_R=P1^1;
voidinit()
{
pwm_L=0;
//占空比控制变量初始化
pwm_R=0;
//定时器,初始化,定时器T0工作方式1
TMOD=0x01;
TH0=(65535-100)/256;
//基准定时时间为0.1ms
EA=1;
ET0=1;
TR0=1;
}
voidmain()
{
init();
while
(1)
{}
voidtimer0()interrupt1//定时器T0中断服务函数,1为T0中断号,3为T1中断号
count++;
if(count<
=LS){pwm_L=1;
}else{pwm_L=0;
=RS){pwm_R=1;
}else{pwm_R=0;
count=count%200;
//定时20ms频率50hz
2.4传感器调试
2.4.1传感器好坏的检测
给传感器通上电,使传感器高度在0.3mm-10mm,并来回的在黑白线间移动,同时用万用表检测,看在黑线时,电压输出是否大于3.5V,白线时电压是否低于1.2V。
2.4.2单片机能否识别信号并输出信号
三路传感器分别接到单片机P1.5P1.6P1.7口,P0口接8个LED灯。
下好程序,接好线,通电并移动传感器在黑白之间(高度0.5mm左右),观察P0.5P06P0.7口LED是否有闪烁,有则单片机能识别信号并输出信号。
/******三路红外光电传感器测试程序*********/
/*****P0口接上一排LED灯做指示用*********/
/****现象:
单片机能识别到传感器信号,则对应P0.5P06P0.7口LED闪烁,否则只有P0.1P02P0.3 闪烁。
***********/
ucharcount=0,LS=0,RS=0;
sbitk1=P1^5;
sbitk2=P1^6;
sbitk3=P1^7;
sbitled1=P0^1;
sbitled2=P0^2;
sbitled3=P0^3;
sbitled4=P0^5;
sbitled5=P0^6;
sbitled6=P0^7;
voiddelay(uchark)
uchari;
for(;
k>
0;
k--)
for(i=0;
i<
=128;
i++);
P1=0xff;
{
if(k1==1){LS=0;
RS=5;
led1=0;
delay(100);
led1=1;
if(k2==1){LS=16;
RS=0;
led2=0;
led2=1;
if(k3==1){LS=0;
led3=0;
led3=1;
if(k1==0){LS=16;
led4=0;
led6=1;
if(k2==0){LS=0;
led5=0;
led5=1;
if(k3==0){LS=16;
led6=0;
}
voidtimer0()interrupt1
第三部分 综合调试
3.1综合调试
3.1.1 接线
3.1.2调试程序
接线:
P2.0P2.1分别接舵机pwm输入线。
P1.5P1.6P1.7 接红外传感器三路输入。
此程序只是简单的测试程序。
sbitpwm_L=P2^0;
sbitpwm_R=P2^1;
ucharL2,M3,R4;
voidStraight()
LS=1,RS=25;
voidline_left()
LS=11;
RS=25;
voidline_right()
LS=1;
RS=12;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 红外 小车 报告 舵机 最终版