智能循迹小车实训报告 - 图文(3)

2020-04-16 12:40

unsigned int i;

while(1) {

for(i=0;i<200;i++)//喇叭发声的时间循环,改变大小可以改变发声时间长短 {

delay(80);//参数决定发声的频率,估算值 SPK=!SPK; }

SPK=1; //喇叭停止工作,间歇的时间,可更改 delay(20000); }

}

1.4 电机与驱动模块的工作原理与接口 电机驱动原理图

电机驱动接口图 1.4.1电机驱动模块

采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的 H型桥式电路。用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,H型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的 PWM调速技术。

这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。

1.5循迹模块的工作原理与接口

1.6 避障模块的工作原理与接口

2 功能方案及软件设计 2.1 功能设计

本次功能设计为智能小车循迹加避障,循迹指寻黑线走,避障指遇到障碍物小车会自动避开,寻找无障碍路线走下去;以及小车快速前进走直线后慢速后退走直线功能。

2.2 软件设计

2.2.1程序设计要求

赛道一:小车循迹黑线,在桌子上用黑线画出一个椭圆赛道,小车将沿着黑线做循迹运动;中间会设置障碍物,看小车能否自动避障。

2.2.4 程序代码

#include //包含51单片机头文件,内部有各种寄存器定义

#include //包含HL-1蓝牙智能小车驱动IO口定义等函数

#ifndef _LED_H_ #define _LED_H_

//定义小车驱动模块输入IO口 sbit IN1=P1^2; sbit IN2=P1^3; sbit IN3=P1^6; sbit IN4=P1^7; sbit EN1=P1^4; sbit EN2=P1^5;

/***蜂鸣器接线定义*****/ sbit BUZZ=P2^3;

#define Left_1_led P3_3 //左传感器(循迹) #define Right_1_led P3_2 //右传感器(循迹)

#define Left_2_led P3_5 //左传感器(避障)

#define Right_2_led P3_4 //右传感器(避障)

#define Left_moto_pwm P1_5 //PWM信号端

#define Right_moto_pwm P1_4 //PWM信号端

#define Left_moto_go {P1_2=0,P1_3=1;} //左电机向前走 #define Left_moto_back {P1_2=1,P1_3=0;} //左边电机向后转

#define Left_moto_Stop {P1_5=0;} //左边电机停转 #define Right_moto_go {P1_6=1,P1_7=0;} //右边电机向前走 #define Right_moto_back {P1_6=0,P1_7=1;} //右边电机向后走 #define Right_moto_Stop {P1_4=0;} //右边电机停转

unsigned char pwm_val_left =0;//变量定义

unsigned char push_val_left =0;// 左电机占空比N/20 unsigned char pwm_val_right =0;

unsigned char push_val_right=0;// 右电机占空比N/20 bit Right_moto_stop=1; bit Left_moto_stop =1; unsigned int time=0;

/************************************************************************/ //延时函数

void delay(unsigned int k) {

unsigned int x,y; for(x=0;x

for(y=0;y<2000;y++); }

/************************************************************************/

//前速前进

void run(void) {

push_val_left=6; //速度调节变量 0-20。。。0最小,20最大 push_val_right=6;

Left_moto_go ; //左电机往前走 Right_moto_go ; //右电机往前走 }

//后退函数 如果看不明白,请看慧净电子51智能小车视频教程 void backrun(void) {

push_val_left=6; //速度调节变量 0-20。。。0最小,20最大 push_val_right=6;


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

下一篇:项目时间管理计算练习题

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

马上注册会员

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