51红外循迹小车报告(舵机版)最终版.doc_第1页
51红外循迹小车报告(舵机版)最终版.doc_第2页
51红外循迹小车报告(舵机版)最终版.doc_第3页
51红外循迹小车报告(舵机版)最终版.doc_第4页
51红外循迹小车报告(舵机版)最终版.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

简易教程前 言往届全国大学生电子设计竞赛曾多次出现了集光、机、电于一体的简易智能小车题目,此次,笔者在通过多次论证、比较与实验之后,制作出了简易小车的寻迹电路系统。整个系统基于普通玩具小车的机械结构,利用小车的底盘、前后轮电机及其自动复原装置,能够平稳跟踪路面黑色轨迹运行。系统分为检测、控制、驱动三个模块。首先利用光电对接收管和路面信号进行检测,然后经过比较器处理,对软件控制模块进行实时控制,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。智能小车能在画有黑线的白纸“路面”上行驶,这是由于黑线和白纸对光线的反射系数不同,小车可根据接收到的反射光的强弱来判断“道路”-黑线,最终实现简单的循迹运动。 个人水平有限,有错误不足之处,还望各位前辈同学多多包含,指出修正,完善。谢谢! 李学云 王维2016年7月27号目录前 言1第一部分硬件设计11.1 车模选择11.2传感器选择11.3 控制模块选择2第二部分软件设计及调试32.1 开发环境32.2总体框架32.3 舵机程序设计与调试32.3.1 程序设计32.3.2 调试32.3.3 程序代码42.4 传感器调试52.4.1 传感器好坏的检测52.4.2 单片机能否识别信号并输出信号52.5 综合调试7附 录19第一篇 舵机(舵机及转向控制原理)91.1概述91.2舵机的组成101.3舵机工作原理111.4舵机使用中应注意的事项121.5如何利用程序实现转向121.6舵机测试程序13附 录214第二篇 光电红外传感器142.1传感器的原理142.2红外光电传感器ST188 结构图152.3传感器的选择152.4传感器的安装152.5使用方法162.7红外传感器输入输出调试程序17一、课题任务及要求 用360连续舵机设计一个自动循迹小车,可以自动行驶并检测到地面黑色轨迹,沿着黑色轨迹行驶.2、 小车行驶基本原理 小车在白色地板上循黑线行走,由于黑线和白色地板对光线的反射系数不同,可以根据接收到的反射光的强弱来判断“道路”。通常采取的方法是红外探测法。 红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。3、 总体设计方案 通过51单片机,在“while(1)”里面不断扫描外部输入I/O口,若能读到高电平,则输出相应的舵机控制程序。(要求:51 I/O口 TTL门输入电压3.5V以上为高电平,1.2V以下为低电平。读取引脚时,先置1再读取).第一部分硬件设计1.1 车模选择本教程选择带有两舵机和一万向轮的车模。舵机型号:SM-S4303R(360旋转舵机).其原理及详细操作说明,见附录1.车模实物如图1.1.图1.11.2传感器选择本教程选择ST188 红外对管光电传感器,使用左、前、右分布的三个传感器(前伸为了检测十字路口)。传感器应用电路图如图1.2。光电传感器原理详情,请看附录2-传感器篇。图1.2 应用原理:红外探测法红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号。1.3 控制模块选择 因为循迹小车,只需要做简单的输入输出操作,普通51单片机都能实现其功能.本教程选用是51单片机型号为STC89C52RC的最小系统板(有引脚引出的)。本教程里的程序理论上具有51内核的单片机都可使用。最小系统原理图,如图1.3.图1.3 51最小系统原理图1.4 供电扩展版为了控制的稳定,舵机直接从电源VCC串个二极管供电。这里采用简单的电源扩展,将5V电源引入扩展板,再引出供给电机和控制模块。(这里最好把二极管接上,消除电机感性对单片机的影响)注意:当舵机与控制板供电电源不同时,两边必须共地,数字信号才能同步。否则控制信号会发生混乱,导致无法控制。第二部分软件设计及调试2.1 开发环境 Keil C51 v9.54a、stc-isp-15xx-v6.85H、USB-TLL 51下载器(烧录程序用)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.0 P1.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左舵机为例): 频率50HZLS=12 (即占空比%6),电机正转最慢 *RS=13 (即占空比%6.5),电机正转最慢*/*提示:1.调试舵机时,最好单独供电(控制信号与电源供电分离).2.控制信号与供电电源必须共地。*/*作者:李学云2016.7.23*/(.排版好乱)#include reg52.h#define uchar unsigned charuchar count=0,LS=2,RS=15; /count: 定时计数LS:左路舵机脉宽调试sbit pwm_L=P10; /左路电机输出sbit pwm_R=P11;void init()pwm_L=0; /占空比控制变量初始化pwm_R=0;/定时器,初始化,定时器T0工作方式1TMOD=0x01; TH0=(65535-100)/256; /基准定时时间为0.1msTL0=(65535-100)%256;EA=1;ET0=1;TR0=1;void main() init();while(1) void timer0() interrupt 1 /定时器T0中断服务函数, 1 为T0中断号,3 为T1中断号TH0=(65535-100)/256; TL0=(65535-100)%256; count+;if(count=LS) pwm_L=1; else pwm_L=0;if(count0;k-)for(i=0;i=128;i+);void init()pwm_L=0;pwm_R=0;P1=0xff;TMOD=0x01;TH0=(65535-100)/256; TL0=(65535-100)%256;EA=1;ET0=1;TR0=1;void main()init();while(1)if(k1=1) LS=0; RS=5;led1=0;delay(100);led1=1;if(k2=1) LS=16;RS=0;led2=0;delay(100);led2=1;if(k3=1) LS=0; RS=5;led3=0;delay(100);led3=1; if(k1=0) LS=16;RS=0;led4=0;delay(100);led6=1;if(k2=0) LS=0; RS=5;led5=0;delay(100);led5=1;if(k3=0) LS=16;RS=0;led6=0;delay(100);led6=1; void timer0() interrupt 1TH0=(65535-100)/256; TL0=(65535-100)%256; count+;if(count=LS) pwm_L=1; else pwm_L=0;if(count=RS)pwm_R=1; else pwm_R=0;count=count%200;第三部分综合调试 3.1综合调试 3.1.1接线3.1.2 调试程序接线:P2.0 P2.1分别接舵机pwm输入线。P1.5 P1.6 P1.7接红外传感器三路输入。此程序只是简单的测试程序。#include reg52.h#define uchar unsigned charuchar count=0,LS=0,RS=0; sbit pwm_L=P20;sbit pwm_R=P21;sbit k1=P15;sbit k2=P16;sbit k3=P17;uchar L2,M3,R4;void init()pwm_L=0;pwm_R=0;P1=0xff;TMOD=0x01;TH0=(65535-100)/256; TL0=(65535-100)%256;EA=1;ET0=1;TR0=1;void Straight()LS=1,RS=25;void line_left()LS=11;RS=25;void line_right()LS=1;RS=12;void detect_infrared() /循迹,红外检测 if(k1=1)line_right(); else if(k3=1)line_left(); else Straight(); void main()init();while(1) detect_infrared(); void timer0() interrupt 1TH0=(65535-100)/256; TL0=(65535-100)%256; count+;if(count=LS) pwm_L=1; else pwm_L=0;if(count0;k-)for(i=0;i=128;i+);void init()pwm_L=0;pwm_R=0;P1=0xff;TMOD=0x01;TH0=(65535-100)/256; TL0=(65535-100)%256;EA=1;ET0=1;TR0=1;void Strainght()LS=25,RS=1;void line_left()LS=12;RS=16;void line_right()LS=10;RS=14;void Run()if(L2&M3&R4)Strainght();elseif(L2) line_left();if(M3) Strainght();if(R4) line_right();void main()init();while(1)if(k1=1) L2=1;if(k2=1) M3=1;if(k3=1) R4=1;/Run();if(k1=1) LS=0; RS=5;led1=0;delay(100);led1=1;if(k2=1) LS=16;RS=0;led2=0;delay(100);led2=1;if(k3=1) LS=0; RS=5;led3=0;delay(100);led3=1; if(k1=0) LS=16;RS=0;led4=0;delay(100);led6=1;if(k2=0) LS=0; R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论