《循迹小车全面软硬件分析报告.doc》由会员分享,可在线阅读,更多相关《循迹小车全面软硬件分析报告.doc(11页珍藏版)》请在课桌文档上搜索。
1、 . . 循迹小车设计任务和资料一、 设计任务:使用单片机接收传感器发来识别的信号,经过处理,控制电机前进、左转和右转,使小车沿着一定的轨迹行驶。二、 循迹小车软硬件分析建议循迹传感器硬件设计1. 电路图如下V2的电压计算公式R6不变 有光照1R1变小 则V2变大无光照R1变大 则V2变小有光照情况光敏电阻R1变小 V2变大 假设V2=4.6VTV3电压 4VV2V3 反向端大于同向端 参考模电课程 运放作为比较器部分 则OUT5输出低电平为低0给单片机识别,单片机通过if来扫描out5给的引脚无光照情况光敏电阻R1变大 V2变小 假设V2=3.2VV3电压不变还是 4VV2V3 同向端大于反
2、向端 参考模电课程 运放作为比较器部分 则OUT5输出为高电平1给单片机识别,单片机通过if来扫描out5给的引脚1、没有检测到黑线,则H4发光到白纸光反射到H4接收端,H4接收端导通,导通则T1接地=0(提问会不会等于0,哪位有测试)2、有检测到黑线,则H4发光到黑线光全部被吸收,H4接收端,没有收到任何信号,因为H4不导通(截止),则T1=VCC(提问T1会不会等于5V,哪位有测试)检测到白纸有接收到反射光LM324,2脚比较器反向端T1=0V,3脚比较器同向端=3V同向端大于反向端则OUT1输出1检测到黑线没接收到反射光了,LM324,2脚比较器反向端T1=5V,3脚比较器同向端=3V,
3、反向端大于同向端则OUT1输出0调试方法,黑色物体遮挡传感器检测T1脚电压变化是否正常,调节电位器R13,使得3脚电压介于(2脚)T1电压的最大和最小值之间传感器距离地面3-5CM电机驱动模块设计建议1、 VDD越大电机A,B速度越快,VDD所接电池盒或者直流电源最好不要超过11V,否则比较容易烧毁。2、控制时请尽量避免电机在短时间频繁正反转,这样容易也烧毁注:有的电机是不带线的,要一头接A1一头焊接在电机上,其他同理。单片机模块设计左轮右轮万向滑轮左减速电机前方右减速电机LA LBRA RB电机驱动电路单片机单片机通过电机驱动电路控制小车运行方法P1.3 P1.2 P1.1 P1.0 P0.
4、0(0有障碍)0 1 0 1 前进 11 0 1 0 后退 01 1 0 1 左转弯0 1 1 1 右转弯探测障碍物30cm程序设计if(P00=0)P1=0X0AelseP1=0X05障碍实验P13 P12P13 P12注:检测到黑线输出低电平系统软件设计4-1方向的判别程序在寻黑胶带模式下:车前从左至右安装5个红外发送接收对管。(白色输出0,黑色输出1)ABCDE小车运动状态00100直线行走01100一级左转11000二级左转10000原地左转00110一级右转00011二级右转00001原地右转00000后退其他情况不动#include#define uint unsigned int
5、#define uchar unsigned char#include#define uint unsigned int#define uchar unsigned charuchar i=0,j=0,k,temp;sbit P10=P10;/循迹传感器最左有测得信号 低电平有效sbit P11=P11;/循迹传感器次左有测得信号sbit P12=P12;/循迹传感器中有测得信号sbit P13=P13;/循迹传感器次右有测得信号sbit P14=P14;/循迹传感器最右有测得信号sbit P23=P23;/单片机输出到L298N控制电机左后退sbit P24=P24;/单片机输出到L298N
6、控制电机左前进sbit P25=P25;/单片机输出到L298N控制电机右后退sbit P26=P26;/单片机输出到L298N控制电机右前进void init() TMOD=0x01; TH0=(65536-1000)/256;/1ms TL0=(65536-1000)%256; EA=1; ET0=1; TR0=1;void zuo()/左走 P23=1; P24=1; P25=1; P26=0;void you()/右走 P23=1; P24=0; P25=1; P26=1;void zhi()/直走 P23=1; P24=0; P25=1; P26=0;void ting()/停止 P
7、23=1; P24=1; P25=1; P26=1;void main() init(); while(1) ;void time0() interrupt 1 TH0=(65536-1000)/256;/1ms TL0=(65536-1000)%256; temp=(P1|0xe0);/停僻高三位 switch(temp) case 0xf7:i=1;you();break; case 0xef:i=2;you();break;case 0xe7:i=3;you();break;case 0xe3:i=4;you();break;case 0xf3:i=5;you();break;case
8、0xfe:j=1;zuo();break;case 0xfc:j=2;zuo();break;case 0xf8:j=3;zuo();break;case 0xf9:j=4;zuo();break;case 0xfd:j=5;zuo();break; case 0xfb:k=1;zhi();break;case 0xf1:k=2;zhi();break;case 0xe0:ting();break;case 0xff:if(i=1|i=2|i=3|i=4|i=5)i=0;you(); if(j=1|j=2|j=3|j=4|j=5)j=0;zuo(); if(k=1|k=2)k=0;zhi();
9、break;default : break; 表1 控制代码表传感器循迹代码转向灯控制代码显示器显示码电动机控制代码小车运动状态0x0f,0x17,0x1f,0x37,0x3f,0x7f0x2f0xbf, 0xbf, 0xbf, 0xb00x4f右转0x47,0x67,0x87,0xc7,0xe7,0xf70x1f0x86, 0xbf, 0xbf, 0xbf0x1f左转0x770x2f0xf9, 0xf9, 0xf9, 0xf90x5f直行0xff0xff0xbf, 0xbf, 0xbf, 0xbfOx0f后退0x000xcf0xc0, 0x c0, 0x c0, 0x c00xff停止11 / 11