智能循迹小车报告(3)

2019-08-31 23:16

五、系统调试

1、硬件部分 焊接完成后,首先进行的调试是用数字万用表测量各个电路是否焊接正常,是否有虚焊漏焊等现象的出现,以及各个电容是否是正常的未被击穿状态、电阻的阻值是否与设计的原理图上的一致。接通电源,用数字万用表测量当有+5V的各引脚是否有+5V的电压,测量电路中是否出现了不该有的短路现象。接入光电传感器模块,使各个光电检测器的光电对管靠近白纸,观察对应的发光二极管是否发光,不发光表示正常。 然后再使各个光电对管靠近黑线,观察对应的发光二级管是否发光,发光表示正常。 硬件部分的原理图见附录一。 2、软件部分

首先我们先测试了小车的前进,停止,左转和右转。组装信号采集模块后,实现小车的自动循迹功能。 软件部分的程序代码见附录三。

六、实验结果

1、主要功能测试:小车可以在黑色轨迹上完成循迹任务。并且在转弯时,前面的定位发光二极管可以模拟汽车的转向。 2、其他功能测试:二极管的动态显示,红外遥控,防撞等功能将相应程序烧入其中基本上都可以实现。

七、拓展功能

防止掉落地面功能:当小车行驶到悬空的地方时,前面的红外对管检测不到信号就会停止,防止小车掉落。

八、参考资料

《电子信息专业实验教程》 四川大学出版社 《C语言程序设计与应用》 清华大学出版社 《电路理论基础》 科学出版社 《模拟电子技术》 清华大学出版社 《数字电路设计》 四川大学出版社

九、附录

11

附录一:总体电路原理图:

12

附录二:主板和传感器电路焊接装配图:

13

附录三:软件部分程序代码

#include //包含51单片机相关的头文件

sbit LeftLed=P2^0; //定义前方左侧指示灯端口 sbit RightLed=P0^7; //定义前方右侧指示灯端口 sbit FontLled=P1^7;

sbit LeftIR=P3^5; //定义前方左侧红外探头端口 sbit RightIR=P3^6; //定义前方右侧红外探头端口 sbit FontIR=P3^7;

sbit M1A=P0^0; sbit M1B=P0^1;

sbit M2A=P0^2; sbit M2B=P0^3;

sbit B1=P0^4; sbit SB1=P0^6;

void tingzhi() {

M1A=0; M1B=0; M2A=0; M2B=0; }

void qianjin() {

M1A=1; M1B=0; M2A=1; M2B=0; }

void houtui() {

M1A=0; M1B=1; M2A=0; M2B=1;

//定义前方正前方红外探头端口 //定义左侧电机驱动A端 //定义左侧电机驱动B端 //定义右侧电机驱动A端 //定义右侧电机驱动B端 //定义语音识识别传感器端口 //定义蜂鸣器端口 //将M1电机A端初始化为0 //将M1电机B端初始化为0 //将M2电机A端初始化为0 //将M2电机B端初始化为0 14

}

void zuozhuan() {

M1A=0; M1B=1; M2A=1; M2B=0; }

void youzhuan() {

M1A=1; M1B=0; M2A=0; M2B=1; }

void delay_nus(unsigned int i) //延时:i>=12 ,i的最小延时单12 us {

i=i/10; while(--i); }

void delay_nms(unsigned int n) //延时n ms {

n=n+1;

while(--n)

delay_nus(900); //延时 1ms,同时进行补偿 }

void ControlCar(unsigned char ConType) //定义电机控制子程序 {

tingzhi();

switch(ConType) //判断用户设定电机形式 {

case 1: //前进 //判断用户是否选择形式1 {

qianjin();

break; }

case 2: //后退 //判断用户是否选择形式2

15


智能循迹小车报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《列方程解决实际问题》教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: