基于C51的智能循迹小车--讲解
基于51单片机智能小车循迹程序
#include<reg52.h>#define uchar unsigned char#define uint unsigned int////电机驱动模块位定义////sbit M11=P0^0;//左轮sbit M12=P0^1;sbit M23=P0^2;//右轮sbit M24=P0^3;sbit ENA=P0^4;//左轮使能PWM输入改变dj1数值控制转速sbit ENB=P0^5;//右轮使能PWM输入改变dj2数值控制转速////占空比变量定义////unsigned char dj1=0;unsigned char dj2=0;uchar t=0;////红外对管位定义////sbit HW1=P1^0;//左前方sbit HW2=P1^1;//右前方sbit HW3=P1^2;//左后方sbit HW4=P1^3;//右后方////小车前进////void qianjin(){M11=1;//左轮M12=0;//M23=1;//右轮M24=0;//dj1=50;dj2=50;}////向左微调////void turnleft2(){M11=1;M12=0;M23=1;M24=0;dj1=7;//左轮dj2=50;//右轮}////向右微调////void turnright2(){M11=1;M12=0;M23=1;M24=0;dj1=50;dj2=7;}////向左大调////void left(){M11=0;M12=1;M23=1;M24=0;dj1=7;dj2=80;}////向右大调////void right(){M11=1;M12=0;M23=0;M24=1;dj1=80;dj2=7;}////循迹动作子函数////void xj(){if(HW1==0&&HW2==0&&HW3==0&&HW4==0)//前进逻辑{qianjin();}if(HW1==1&&HW2==0&&HW3==0&&HW4==0)//左右微调{turnleft2();}if(HW1==0&&HW2==1&&HW3==0&&HW4==0){turnright2();}if(HW1==1&&HW2==0&&HW3==1&&HW4==0)//左右大调{left();}if(HW1==0&&HW2==1&&HW3==0&&HW4==1){right();}}////初始化////void init(){TMOD=0x01;TH0=(65536-500)/256;TL0=(65536-500)%256;EA=1;ET0=1;TR0=1;}////定时器0中断////void timer0() interrupt 1 using 1{TH0=(65536-500)/256;TL0=(65536-500)%256;t++;if(t<dj1)ENA=1;else ENA=0;if(t<dj2)ENB=1;else ENB=0;if(t>=50){t=0;}}void main(){init();P1=0Xff;while(1){/////////////////循迹模式/////////////////////xj();}}。
基于51单片机智能小车循迹程序
#include <reg51.h>#include <stdio.h>#define uint unsigned int#define uchar unsigned char/**********************************/uchar led_data[9]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, 0xf8,0x80}; uchar turn_count=0;bit end=0; //圈数跑完标志/*********************************/sbit xg0=P1^0; //左寻轨对管sbit xg1=P1^1; //中间寻轨对管sbit xg2=P1^2; //右寻轨对管sbit xz=P1^3; //感应挡板对管/*********************************/sbit Q_IN1=P2^0; //车前左轮控制sbit Q_IN2=P2^1;sbit Q_IN3=P2^2; //车前右轮控制sbit Q_IN4=P2^3;sbit H_IN1=P2^4; //车尾左轮控制sbit H_IN2=P2^5;sbit H_IN3=P2^6; //车尾右轮控制sbit H_IN4=P2^7;sbit Q_ENA=P3^0; //车前左轮使能,PWMsbit Q_ENB=P3^1; //车前右轮使能,sbit H_ENA=P3^6; //车尾左轮使能,sbit H_ENB=P3^7; //车尾右轮使能,/****************************************/#define stra_q_l 100 //直线行走时,四个轮子占空比调试#define stra_q_r 100#define stra_h_l 100#define stra_h_r 100#define turn_q_l 100 //转弯时四个轮子的占空比调试#define turn_q_r 100#define turn_h_l 100#define turn_h_r 100#define turnr_time 2900//右转弯时的延时常数#define turnl_time 3000 //左转弯时的延时常数#define dt_time 5800 //原地掉头时延时常数#define over_time 1000 //停止延时#define back_time 2500 //走完环形,回到直道延时转弯#define black_time 1500 //过黑线的时间#define correct_l_time 700 //左矫正时间#define correct_r_time 700 //右矫正时间#define hou_time 200/***************************************/uchar q_duty_l,q_duty_r,h_duty_l,h_duty_r,//车前后左右轮占空比i=0,j=0,k=0,m=0;/**************************************/void delay_cir(uint n){uchar x;while(n--){for(x=0; x<250;x++);};}/***********************************/void delay(uint ct) // 延时函数{uint t;t=ct;while(t--);}/***************************************/ void straight() //直走{q_duty_l=stra_q_l;q_duty_r=stra_q_r;h_duty_l=stra_h_l;h_duty_r=stra_h_r;Q_IN1=1;Q_IN2=0;Q_IN3=1;Q_IN4=0;H_IN1=1;H_IN2=0;H_IN3=1;H_IN4=0;}/***************************************/ void houtui() //后退{q_duty_l=stra_q_l;q_duty_r=stra_q_r;h_duty_l=stra_h_l;h_duty_r=stra_h_r;Q_IN1=0;Q_IN2=1;Q_IN3=0;Q_IN4=1;H_IN1=0;H_IN2=1;H_IN3=0;H_IN4=1;}/***************************************/ void turn_left() //左转{q_duty_l=turn_q_l;q_duty_r=turn_q_r;h_duty_l=turn_h_l;h_duty_r=turn_h_r;Q_IN1=0; //左轮反转Q_IN2=1;H_IN1=0;Q_IN3=1; //右轮正转Q_IN4=0;H_IN3=1;H_IN4=0;delay(turnl_time);}/***********************************/ void turn_right() //右转{q_duty_l=turn_q_l;q_duty_r=turn_q_r;h_duty_l=turn_q_l;h_duty_r=turn_q_r;Q_IN1=1; //左轮正转Q_IN2=0;H_IN1=1;H_IN2=0;Q_IN3=0; //右轮反转Q_IN4=1;H_IN3=0;delay(turnr_time);}/**************************************************/ void turn_round() //原地掉头{q_duty_l=turn_q_l;q_duty_r=turn_q_r;h_duty_l=turn_h_l;h_duty_r=turn_h_r;Q_IN1=0; //左轮反转Q_IN2=1;H_IN1=0;H_IN2=1;Q_IN3=1; //右轮正转Q_IN4=0;H_IN3=1;H_IN4=0;delay(dt_time);}/******************************************************/void over() //小车停止{Q_IN1=0;Q_IN2=0;Q_IN3=0;Q_IN4=0;H_IN1=0;H_IN2=0;H_IN3=0;H_IN4=0;}/*****************************************************/ void correct_right() //左偏,向右矫正{q_duty_l=turn_q_l;q_duty_r=turn_q_r;h_duty_l=turn_q_l;h_duty_r=turn_q_r;Q_IN1=1; //左轮正转Q_IN2=0;H_IN1=1;H_IN2=0;Q_IN3=0; //右轮反转Q_IN4=1;H_IN3=0;H_IN4=1;delay(correct_r_time);}void correct_left() //右偏,向左矫正{q_duty_l=turn_q_l;q_duty_r=turn_q_r;h_duty_l=turn_h_l;h_duty_r=turn_h_r;Q_IN1=0; //左轮反转Q_IN2=1;H_IN1=0;H_IN2=1;Q_IN3=1; //右轮正转Q_IN4=0;H_IN3=1;H_IN4=0;delay(correct_l_time);}/*************************************/ void xunji(){if(xg1==1){turn_count++;over();delay(over_time);if(turn_count==1){straight();delay(black_time);}elseif(turn_count==2){houtui();delay(hou_time);turn_left();}elseif(turn_count==3) {houtui();delay(hou_time); turn_right();}elseif(turn_count==4) {houtui();delay(hou_time); turn_right();}elseif(turn_count==5) {straight();delay(black_time); }elseif(turn_count==6) {houtui();delay(hou_time); turn_right();}elseif(turn_count==7) {houtui();delay(hou_time); turn_right(); straight();delay(back_time); turn_left();}elseif(turn_count==8) {straight();delay(black_time); }elseif(turn_count==9) {houtui();delay(100);turn_round();}if(turn_count>=9){turn_count=0;cir_count++;circle--;}{end=1;over();delay(500);}}elseif((xg0==0)&&(xg1==0)&&(xg2==0)) {straight();}elseif((xg0==1)&&(xg1==0)&&(xg2==0)) {over();delay(over_time);houtui();delay(hou_time);correct_right();}//左偏,向右矫正elseif((xg0==0)&&(xg1==0)&&(xg2==1)){over();delay(over_time);houtui();delay(hou_time);correct_left();} //右偏,向左矫正}/***********************************************/ void int0(void) interrupt 0 //中断圈数设定{EX0=0;delay_cir(250);circle++;if(circle>8){circle=0;}P0=led_data[circle];EX0=1;}/*************************************/void time1(void) interrupt 3 //T1溢出中断,电机调速{i++;j++;k++;m++;if(i<q_duty_l)Q_ENA=1;else Q_ENA=0;if(i>100){Q_ENA=1;i=0;}if(j<q_duty_r)Q_ENB=1;else Q_ENB=0;if(j>100 ){Q_ENB=1;j=0;}if(k<h_duty_l)H_ENA=1;else H_ENA=0;if(k>100){H_ENA=1;k=0;}if(m<h_duty_r)H_ENB=1;else H_ENB=0;if(m>100){H_ENB=1;m=0;}P0=led_data[circle];TH1=0XFF;TL1=0XF6;}/*************************************/ void main(){P0=led_data[circle];P1=0xFF;P1=0XFF; //P1口做输入P2=0X00; //P2口初始化,小车禁止P3=0XFF;TMOD=0X11;//T0,T1,工作方式1TH1=0XFF; //T1中断一次10USTL1=0XF6;TR1=1;EX0=1;ET1=1;EA=1;while(1){while((xz==1)&&(end!=1)) //无挡板,扫描对管,前进{xunji();};};}。
基于51单片机的智能寻迹小车 - 副本
目录摘要 (1)1.绪论 (2)1.1课题背景 (2)1.2课题研究的目的和意义 (2)2.系统方案设计 (3)2.1循迹原理 (3)2.2系统总体框图 (3)2.3轨迹检测模块 (3)2.3.1传感器模块 (4)2.3.2检测放大器方案 (4)2.4MCU控制模块 (4)2.5电机及驱动模块 (4)2.5.1转向和动力 (4)2.5.2电动机模块 (4)2.5.3调速系统 (5)2.5.4电机驱动模块 (5)2.6电源模块 (5)2.7显示模块 (5)2.8系统工作原理 (6)3.硬件设计 (7)3.1电源模块设计 (7)3.1.1 智能车电源设计要点 (7)3.1.2 低压差稳压芯片LM2940 简介 (7)3.2单片机最小系统设计 (8)3.3前向通道设计 (10)3.4后向通道设计 (14)3.4.1 后向通道简介 (14)3.4.2 后轮电机驱动模块设计 (14)4.软件设计 (17)4.1系统总体流程图 (17)4.2PWM调速简介以及实现 (18)4.3程序的模块化设计 (19)4.3.1 小车循迹原理流程图 (19)4.3.2 定时器中断程序流程图 (20)6.结束语 (21)参考文献 (22)附件 (23)摘要智能车辆作为现代社会的新产物,以及在智能车辆基础上开发出来的产品已成为自动化物流运输、柔性生产组织等系统的关键设备,智能小车的研究和开发正成为广泛关注的焦点。
本设计是一种基于单片机控制的简易自动寻迹小车系统,系统的设计主要分为总体方案设计、硬件和软件设计,其中每一部分均采用模块化设计原则,使得设计易读、易修改、易扩充。
该设计重点介绍循迹小车如何解决轨迹检测和路线跟随问题。
系统以AT89C51为控制核心,利用定时器T0通过定时器中断产生PWM波形,通过调整占空比控制小车速度和转向。
利用红外光电传感器ST188对路面黑色轨迹进行检测,并将路面检测信号反馈给单片机,单片机对采集到的信号予以分析判断,及时控制左右轮电机的转速以调整小车转向,从而使小车能够沿着环形黑色轨迹自动行驶,达到自动寻迹的目的。
基于C51的智能循迹小车--讲解
PPT课件下载:w w w .1ppt .com/kejian/
范文下载:w w w .1ppt .com/fanw en/
试卷下载:w w w .1ppt .com/s hit i/
教案下载:w w w .1ppt .com/jiaoan/ PPT论坛:w w w .1ppt .cn
1
初识循迹小车 PROJECT INTRODUCTION
硬件电路设计——开集输出与推挽输出
➢ 开集输出: 只能输出低电 平 常用作电平匹 配
电气与信息工程学院
➢ 推挽输出: 一般是指两个
三极管(或MOS 管)分别受两互 补信号的控制, 总是在一个三极 管导通的时候另 一个截止,可以 输出高电平和低 电平
12
硬件电路设计——电源模块电路设计
2 GND
VCC_7.6V
电气与信息工程学院
15
硬件电路设计——电机驱动模块电路设计——L298N驱动原理
IN1 IN2 ENA OUT1 OUT2 转向
0
0
1
0
0
停
1
0
1
1
0
正
0
1
1
0
1
反
1
1
1
1
1
停
0
0
0
----
----
停
1
0
0
----
----
停
0
1
0
----
----
停
1
1
0
----
----
停
电气与信息工程学院
16
硬件电路设计——电机驱动模块电路设计——PWM调速原理
基于51单片机循迹避障太阳能小车软硬件设计原理
基于51单片机循迹避障太阳能小车软硬件设计原理下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!一、引言一款基于51单片机的循迹避障太阳能小车是一种集成了光电传感器、红外传感器、电机驱动器等各种器件的智能小车。
基于单片机的智能小车避障循迹系统设计
基于单片机的智能小车避障循迹系统设计
随着技术的不断发展,智能小车成为人们生活中不可或缺的一部分。
本文主要介绍一款基于单片机的智能小车避障循迹系统设计。
一、系统的硬件设计
本智能小车的硬件设计包括控制模块、电源模块、驱动模块和传感器模块。
其中,控制模块采用C51单片机,电源模块采
用锂电池,驱动模块通过直流电机实现小车的前进、后退、左右转弯等各项动作,而传感器模块则包括超声波传感器、巡线传感器和红外线传感器。
二、系统的软件设计
本智能小车的软件设计包括控制程序和驱动程序。
控制程序主要实现通过巡线传感器和超声波传感器来检测路面情况,从而确定小车行驶方向和速度,同时通过红外线传感器来检测障碍物,从而进行避障。
驱动程序主要用于实现小车的前进、后退、左右转等动作。
三、系统的操作流程
小车启动时,控制程序首先检测巡线传感器和超声波传感器所处位置,从而确定小车行驶方向和速度。
接着,红外线传感器开始检测障碍物,并且在检测到障碍物时,自动转弯避免碰撞。
当小车行驶过程中检测到黑色线条时,巡线传感器将自动控制
小车前进或后退,从而使小车保持在线条上行驶。
四、系统的优点和应用
基于C51单片机的智能小车避障循迹系统具有高度自动化、低成本、易于维护等优点。
该系统可广泛应用于自动化物流、智能家居、机器人等领域。
总之,随着科技的不断发展,传感器技术和单片机技术等已经得到了广泛的应用和推广。
未来,智能小车必将在各个领域发挥更大的作用,创造更多的价值。
循迹避障小车说明
智能循迹避障小车说明1.功能简介该循迹避障小车使用红外线收发二极管作为传感器,装在前方的两组红外线收发二极管探测前方是否有障碍物,装在下面的两组红外线收发二极管作为循迹使用。
LM339将四个红外线接收二极管的输出信号放大后传送给单片机STC15W201S进行处理,单片机根据这四组信号做出判断,然后控制两个直流电机的运行和停止。
4个蓝白可调电阻可以调节4组红外线收发二极管的灵敏度。
STC15W201S 是一种C51单片机,它下载程序方便,工作电压范围宽,只需要两节1.5V电池就能工作。
2.电路图3.元件清单机械零部件4.装配与调试按电路图和电路板上的标识依次将色环电阻,瓷片电容,发光二极管,集成电路插座,排针,电位器,开关,三极管,电解电容焊接在电路板上,注意IC方向,发光二极管的方向。
所有元件焊接完成后检查电路板,以免有虚焊,漏焊,短路的情况。
循迹用的两组二极管安装在二极管的下方,距离万向轮顶端5MM左右。
直流电机的接线有正反,如果在通电后发现电机转反了,只需要将电机的两根线调换后重新焊接即可。
所有安装工作完成后,将电源开关S1拨到OFF位置,S2拨到循迹位置,放入两节电池,再将S1拨到ON位置。
这时需要先调节循迹红外接收二极管的灵敏度。
调节方法以D3 D7这一组二极管为例,先将D3 D7对准黑色的轨道线,调节可调电阻R10,使右边的电机处于刚好停止的状态,然后将D3 D7对准纸张的白色区域,只要一对准白色区域,右边的电机马上就开始运转,这时这一组二极管的灵敏度就调节好了,另外一组红外线收发二极管D4 D9的调节方法相同。
把小车放到轨道上,就可以循迹了。
把开关S2拨到避障位置,调节前方两组避障二极管的灵敏度,将D6 D10 对准一个物体,调节可调电阻R19,直到刚好有一边的电机停转,然后将D6 D10 对准空旷地方,这时停止的这一边电机恢复运转,这组二极管就调节完毕了。
由于采用的是红外线避障,如果障碍物是黑色或者表面为镜面,都会影响红外线的反射,导致检测不到障碍,无法做出避障动作。
单片机的智能循迹小车
调试方法
A
总之,基于 51单片机的 智能循迹小 车是一种简 单实用的智 能控制系统
B
通过合理的 硬件设计和 软件编程, 可以实现小 车的自动循
迹功能
C
在调试过程中, 需要逐步排查 问题,不断优 化程序,以提 高系统的性能
和稳定性
感/谢/聆/听
以及调试方法
1
原理
原理
1Байду номын сангаас
基于51单片机的智能循迹小车通过传感器检测小车与路径之间的距 离,将检测到的信号转换为电平信号,然后通过单片机进行处理
单片机根据接收到的信号控制电机驱动模块,从而控制小车的运动 方向和速度
2
3
通过不断调整小车的运动方向和速度,使得小车能够沿着指定的路 径进行运动
2
硬件组成
51单片机的智能 循迹小车
-
01
原理
02 硬件组成
03 软件设计 04 调试方法
51单片机的智能循迹小车
1
智能循迹小车是一种自动 控制系统,能够沿着指定
的路径进行运动
2
基于51单片机的智能循迹 小车是一种使用51单片机 作为主控制器的智能循迹
小车
3
下面将详细介绍基于51单 片机的智能循迹小车的原 理、硬件组成、软件设计
4
调试方法
调试方法
基于51单片机的智能循迹小车的调试方法主要包括以下几个步骤
硬件调试:检查硬件连接是否正确,确保电源、传感器、电机驱动模块等设备 能够正常工作
软件调试:通过调试器或仿真器对程序进行调试,检查程序是否存在语法错误 或逻辑错误
实际环境测试:将调试好的程序下载到单片机中,然后在实际环境中进行测试 。观察小车的运动情况,如果存在偏差或问题,需要对程序进行调整和优化
基于51单片机控制的自动循迹小车技术指标要求
基于51单片机控制的自动循迹小车技术指标要求1.引言1.1 概述概述部分:在现代科技的发展中,自动化技术逐渐成为人们生活和工作中不可或缺的一部分。
自动循迹小车作为自动化技术的一种重要应用,广泛应用于工业生产、仓储物流、无人驾驶和教育领域等各个领域。
本文将以基于51单片机的自动循迹小车为研究对象,探讨其技术指标要求及实现原理。
通过对循迹传感器原理和控制算法原理的介绍,将带领读者深入了解自动循迹小车的核心技术。
在循迹传感器原理方面,本文将介绍如何通过光电传感器进行光线检测,并利用检测结果来实现对小车运动方向的控制。
同时,在控制算法原理方面,本文将详细介绍基于51单片机的控制算法的设计思路和实现方法。
在硬件要求和软件要求部分,本文将分别列举并详细说明自动循迹小车各个功能模块的需求和实现方法。
通过对硬件和软件的需求分析,读者将了解到自动循迹小车技术研究和开发过程中的具体要求和实现方式。
通过本文的阅读,读者将能够全面了解基于51单片机控制的自动循迹小车的技术指标要求及实现原理。
同时,本文还将总结研究结果并展望未来自动循迹小车技术的发展方向,希望能够为相关领域的工程应用和学术研究提供有益的参考和借鉴。
1.2文章结构文章结构本文将详细介绍基于51单片机控制的自动循迹小车技术指标要求。
文章结构如下所述。
引言部分概述了本文的内容和目的。
首先,对自动循迹小车的技术指标要求进行了概述,包括硬件要求和软件要求。
然后,介绍了基于51单片机的控制原理,包括循迹传感器原理和控制算法原理。
正文部分将详细讨论技术指标要求。
首先,对硬件要求进行了分析和说明,包括所需的传感器、电机、微控制器等。
其次,对软件要求进行了介绍,包括编程语言、开发环境和控制算法等。
接下来,详细介绍基于51单片机的控制原理。
首先,解释了循迹传感器原理,包括红外线传感器的工作原理和信号处理方法。
其次,探讨了控制算法原理,包括循迹算法的设计和实现。
结论部分对全文进行总结,并展望了未来可能的研究方向。
基于51单片机的循迹小车系统设计说明
基于51单片机的循迹小车系统设计摘要80C51单片机是一款八位单片机,他的易用性和多功能性受到了广大使用者的好评。
在生活中但凡涉及到自动控制的地方都会出现单片机的身影,单片机的应用有利于产品的小型化、智能化,并且能够提高生产效率。
这里介绍的是如何用AT89C52单片机来实现小车的循迹功能,该设计是结合科研项目而确定的设计类课题。
本系统以设计题目的要求为目的,采用AT89C52单片机为控制核心,利用红外传感器检测道路上的黑线,控制电动小汽车的自动循迹,快慢速行驶,以及自动停车,并可以自动记录时间、里程和速度,和寻光功能。
整个系统的电路结构非常简单,可靠性能很高。
实验测试结果满足要求,本文着重介绍了该系统的硬件设计方法及测试结果分析。
关键词:80C51单片机;电动小车;pwm调速;光电检测;自动调速系统Car tracking system based on microcontrollerAbstract80C51 is a 8 bit single chip computer. Its easily using and multi-function suffer large users.In life, whenever it comes to automatic control of the local microcontroller will appear figure, microcontroller applications in favor of product miniaturization, intelligent, and can improve productivity. Here is how to use AT89C52 microcontroller to achieve the car tracking feature, which is designed to determine the combination of scientific research and design class topic. This system design requirements of the subject for the purpose of usingAT89C52 microcontroller core, the use of infrared sensors to detect the black line on the road, the automatic tracking control of electric cars, fast low traffic speeds, as well as automatic parking, and can automatically record time , mileage and speed, and look for the light function.The circuit structure of the entire system is very simple, very high reliability. The test results meet the requirements, the paper focuses on the hardware design and test results of the system analysis.Keywords:80C51 microcontroller; Electric car Pwm speed; A photodetector; Automatic Speed Control System.目录中文摘要 (I)外文摘要 (Ⅱ)1 绪论 (1)1.1 课题背景及意义 (1)1.2 智能小车研究前景及功能 (3)1.3 国外的研究情况 (6)1.3.1 智能小车国外研究现状.........................1.3.2 智能小车国研究现状.........................1.4 本课题具体应用方面及场合2 智能循迹小车的方案设计2.1 智能小车的运行环境及行走路线 (7)2.1.1 智能小车的运行环境2.1.2 智能小车的运行路线2.2 主控芯片的选择与原理 (8)2.2.1 51单片机引脚与功能说明2.3 调速系统的设计 (8)2.3.1 PWM逆变电路及其控制方法2.3.1.1 计算法2.3.1.2 调制法2.3.2 PWM调速的优点3 硬件电路的选择与搭建3.1 单片机的辅助电路3.1.1 时钟电路3.1.2 复位电路3.2 单片机控制模块的设计3.3 驱动模块的设计3.3.1 电机驱动芯片3.3.2 电机驱动模块3.4 循迹模块的制作与设计3.4.1 循迹传感器工作原理3.4.2 寻光电路分析3.4.3 循迹电路分析3.4.3.1 红外对管TCRT5003.4.3.2 电压比较器LM3243.5 各模块的组装与连接4 循迹小车的软件设计4.1 软件设计开发平台 (15)4.2 小车运动状态分析及三路算法的设计 (16)4.2.1 小车运动状态分析 (16)4.2.2 三路循迹算法设计 (17)4.3 软件设计流程图 (20)4.4 软件的调试 (24)4.4.1 设置和删除断点 (24)4.4.2 查看和修改寄存器的容 (26)4.4.3 观察和修改变量 (28)4.4.4 查看存储器区域结论 (44)参考文献 (45)致 (46)附录1 智能循迹小车原理图 (50)附录2 循迹程序附录3 外文参考文献(译文) (50)附录4 外文参考文献(原文)51绪论1.1课题背景及意义随着汽车工业的发展,关于汽车的研究也就越来越受到人们的关注。
智能循迹小车精讲PPT课件
2024/1/27
22
地图构建技术探讨
增量式地图构建
随着机器人的移动不断更新地图信息。
多机器人协同建图
利用多个机器人的感知信息共同构建环境地 图。
2024/1/27
23
导航策略优化方向
动态避障
实时感知环境中的动态障碍物,并调整路径规划以避免碰撞。
2024/1/27
24
导航策略优化方向
多目标点导航
代码实现
在循迹算法的基础上,增加避障逻辑。当检测到障碍物时,根据避障策略调整小车的运动状态,同时更新路径信 息,确保小车能够安全地绕过障碍物并继续沿着预定路径行驶。
2024/1/27
15
调试技巧与经验分享
调试技巧
使用仿真工具进行前期验证,可以大大缩短开发周期;在实际调试过程中,可以采用分模块调试的方 法,逐一验证各个模块的功能和性能。
智能循迹小车精讲 PPT课件
2024/1/27
1
目 录
2024/1/27
• 智能循迹小车概述 • 智能循迹小车硬件组成 • 软件编程与算法实现 • 路径规划与导航策略 • 无线通信与远程控制 • 性能测试与评估指标 • 总结与展望
2
01
智能循迹小车概述
2024/1/27
3
定义与发展历程
2024/1/27
适用于无权图,能找到最短路径。
A*算法
引入启发式函数,提高搜索效率。
18
路径规划方法比较
RRT(快速扩展随机树)
通过随机采样构建路径,适用于高维空间和 复杂环境。
2024/1/27
PRM(概率路线图法)
构建连通图后进行路径搜索,适用于静态环 境。
19
基于51单片机的循迹小车程序设计
#include<reg51.h>#define uchar unsigned char#define uint unsigned intuint zkb1=0 ; //**右边电机的占空比**//uint zkb2=0 ; //**左边电机的占空比**//uint t=0; //**定时器中断计数器**//sbit rin1=P1^0;sbit rin2=P1^1;sbit lin1=P1^2;sbit lin2=P1^3;sbit lift2=P2^2;sbit lift1=P2^3;sbit mid=P2^4;sbit right1=P2^5;sbit right2=P2^6;sbit pwm1=P2^0;sbit pwm2=P2^1;//****************延时函数****************// void delay(uint x){uchar j;while (x--){for(j=0;j<123;j++);}}//**********初始化定时器,中断***********// void init(){ TMOD=0x01;TH0=(65536-100)/256;TL0=(65536-100)%256;EA=1;ET0=1;TR0=1;}//***********中断函数+脉宽调制***********// void timer0() interrupt 1{TH0=(65536-100)/256;TL0=(65536-100)%256;++t;if(t<=zkb1){pwm1=1;}if(t>zkb1){pwm1=0;}if(t<=zkb2){pwm2=1;}if(t>zkb2){pwm2=0;}if(t==1000){t=0;}}// zkb2=左,zkb1=左//******************直行******************// void qianjin(){// zkb2=200; zkb1=170;zkb2=1000; zkb1=920;lin1=1; //******给电机加电启动******//lin2=0;rin1=1;rin2=0;}//***************左转1函数***************// void turn_right1(){// zkb2=200; zkb1=0;zkb2=950; zkb1=100;rin1=0;rin2=1;}//***************左转2函数***************// void turn_right2(){// zkb2=300; zkb1=0;zkb2=1000; zkb1=110;rin1=0;rin2=1;}//***************右转1函数***************// void turn_lift1(){// zkb2=0; zkb1=200;zkb2=100; zkb1=950; lin1=0;lin2=1;}//***************右转2函数***************//void turn_lift2(){// zkb2=0; zkb1=300;zkb2=110; zkb1=1000; lin1=0;lin2=1;}//***************循迹函数*****************//void xunji(){uchar flag;if((lift2==1)&&(lift1==1)&&(mid==0)&&(right1==1)&&(right2==1)) { flag=0; }//*******直行*******//else if((lift1==0)&&(mid==0)&&(right1==0)){ flag=0; } //******直行*******////else if((lift2==1)&&(lift1==1)&&(mid==1)&&(right1==1)&&(right2==1)) // { flag=0; } //*******直行*******//else if((lift2==1)&&(lift1==0)&&(mid==1)&&(right1==1)&&(right2==1)) { flag=1; } //*******左转1*******//else if((lift2==0)&&(lift1==1)&&(mid==1)&&(right1==1)&&(right2==1)) { flag=2; }//***左转2***//else if((lift2==1)&&(lift1==1)&&(mid==1)&&(right1==0)&&(right2==1)) { flag=3; }//***右转1***//else if((lift2==1)&&(lift1==1)&&(mid==1)&&(right1==1)&&(right2==0)) { flag=4; }//***右转2***//switch (flag){case 0:qianjin();break;case 1:turn_lift1();break;case 2:turn_lift2();break;case 3:turn_right1();break;case 4:turn_right2();break;default: break;}}//****************主程序****************// void main(){init();while(1){ lin1=1; //******给电机加电启动******// lin2=0;rin1=1;rin2=0;// pwm1=1;// pwm2=1;while(1){xunji(); //*********寻迹**********// // zkb1=0;// zkb2=500;// qianjin();// turn_lift1();// turn_lift2();// turn_right1();// turn_right2();}}}。
基于51系列单片机的音乐智能寻迹避障小车的设计与控制
摘要在日常生活中人们,电子产品和人的生活密不可分,我们接触的电子产品有像平常用的手机、电脑、相机等高端的电子产品;也有像平常用的通电器,收音机等低端的电子产品;有智能的电子产品,也有非智能的电子产品。
电子产品的总类是很多的,而在众多电子产品中有些带简单的智能控制的往往用到一些小芯片如单片机和一些传感类的器件如光耦元件、红外避障器等。
本次工程训练我们就将采用51系列的AT89C51单片机和光耦器件RPR220和红外避障器E18-D80NK为主要的器件来制作音乐智能寻迹避障小车的控制电路,通过训练来达到对课本知识的更深认识和运用。
目录第一章音乐智能寻迹避障小车的概述1.1音乐智能寻迹避障小车工作原理 (3)1.2音乐智能寻迹避障小车的目的要求、技术指标及训练任务 (4)第二章设计方案的选择和确定2.1方案的主要组成部分及整体原理图 (5)第三章系统硬件设计3.1传感部分的设计 (10)3.2控制部分的设计 (12)第四章系统的软件设计4.1流程图 (14)4.2程序清单 (15)第五章性能测试与分析5.1传感PCB板传感信号的测量 (20)5.2控制PCB板测量 (20)5.3小车跑道测试 (20)第一章音乐智能寻迹避障小车的概述1.1音乐智能寻迹避障小车工作原理所谓寻迹是在一个白色的塑料泡沫板上的宽25cm左右的有黑色电工胶布做成的椭圆轨道上寻黑线。
避障是在小车在轨道上寻迹是当发现前方有障碍物时采取一定的操作,避免碰撞,在这里是停车。
音乐是只在启动、左转、右转、停车、前方有障碍、倒退时可以放出小车本身有的语音信号,在这里是从过但单片机发送解码来控制。
智能控制也是由单片机来实现的。
寻迹:寻迹是通过红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。
基于51单片机循迹智能小车
小车走翘翘板摘要本次设计的简易智能电动车采用简单的人工智能技术,使用AT89C52作为小车的检测和控制核心。
根据题目设定的行进及具体要求,分别采用红外传感器进行寻迹行驶、黑带采集及变速行驶,采用霍尔元件对小车行驶过程中的速度进行测量,并在终点进行行驶路程的测量,采用直流减速电机对小车实行较精确定位,由LCD显示出各项功能知识。
由数码管进行行驶时间显示,由蜂鸣器及LED构成声光提示电路。
最后,小车的运行过程中的各种自动化过程由单片机通过编程实现。
关键词:AT89C52 红外传感器减速电机光电管霍尔元件一、方案比较1.轨迹探测模块设计与比较方案一:用光敏电阻组成光敏探测器。
光敏电阻的阻值可以跟随周围环境光线的变化而变化。
当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。
因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。
将阻值的变化值经过比较器就可以输出高低电平。
但是这种方案受光照影响很大,不能够稳定的工作。
方案二:红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。
单片机就是通过接收到的高低电平为依据来确定黑线的位置和小车的行走路线。
对于发射和接收红外线的红外探头,可以自己制作或直接采用集成式红外探头。
经测试,此种方法简单可靠。
经反复对比后,采用方案二。
1、控制电机方案比较方案一:利用步进电机的准确定长步进性能方便的实现调速和方向的偏转,且能准确的测量速度、路程以及时间,简化编程和硬件连接的工作量。
但是步进电机在与机械配合的小车改装上难度极大,非短时间所能完成。
该方案实现较困难。
方案二:用玩具小车上自带的双直流电机,只需对后轮电机进行简单改造,加上一个齿轮减速装置即可,两电机分别负责小汽车的驱动和转向的功能,依据外围红外反射传感器所采集到的信息可以补足直流电机定位不准的缺点,同时红外反射传感器的使用还能实现比较准确的寻迹行驶,用较好的控制算法及特色硬件来提高小车的整体性能,可具有很高的性能/价格比。
基于51单片机的循迹避障小车的设计ppt课件
复位电路
时钟电路
时钟电路是用来产生AT89C51单片机工 作时所必须的时钟信号,AT89C51本身就是 一个复杂的同步时序电路,为保证工作方式 的实现,AT89C51在唯一的时钟信号的控制 下严格的按时序执行指令进行工作,时钟的 频率影响单片机的速度和稳定性。
系统程序流程设计
本智能小车通过实时检测各个模 块传感器的输入信号,利用红外对 管检测黑线实现寻迹,通过光电传 感器实现避障,把所有采集到的信 息送到主处理器,让小车做出正确 的行驶路线。小车的启动与停止, 均采用了声控模块,实现对小车的 声音控制,其程序流程图如图所示。
请多指教
我们系统采用内部时钟方式来为系统提 供时钟信号,如图所示。AT89C51内部有一 个用于构成振荡器的高增益反向放大器,该 放大器的输入输出引脚为XTAL1和XTAL2它们 跨接在晶体振荡器和用于微调的电容,便构 成了一个自激励振荡器。
时钟电路
循迹模块
小车循迹,采用红外检测的方法,红外 检测法是通过黑线和白色对红外线的吸收效 果不同,当红外光线射到白色底板时,会发 生漫反射反射到智能车的接受管上,而射到 黑线则会被吸收不会产生发射,智能车红外 接收管就接收不到。故,整个智能车通过红 外接收管是否接收到红外线来判断黑线和白 线的,从而实现循迹。但需要主要的是,红 外传感器的检测距离有限,一般在3cm之内。 红外光电传感器由1个红外发射管(发射器) 和1个光电二极管(接收器)所构成,循迹 示意图如图所示。
基于51的避障循迹重力感应遥控的智能小车设计(C语言)
基于51的避障/循迹/重力感应遥控的智能小车设计1 绪论1.1 选题背景随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。
全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。
可见其研究意义很大。
本设计就是在这样的背景下提出的,指导教师已经有充分的准备。
本题目是结合科研项目而确定的设计类课题。
设计的智能电动小车应该能够实现适应能力,能自动避障,可以智能规划路径。
智能化作为现代社会的新产物,是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。
同遥控小车不同,遥控小车需要人为控制转向、启停和进退,比较先进的遥控车还能控制器速度。
常见的模型小车,都属于这类遥控车;智能小车,则可以通过计算机编程来实现其对行驶方向、启停以及速度的控制,无需人工干预。
操作员可以通过修改智能小车的计算机程序来改变它的行驶方向。
因此,智能小车具有再编程的特性,是机器人的一种。
中国自1978年把“智能模拟”作为国家科学技术发展规划的主要研究课题,开始着力研究智能化。
从概念的引进到实验室研究的实现,再到现在高端领域(航天航空、军事、勘探等)的应用,这一过程为智能化的全面发展奠定基石。
智能化全面的发展是实现其对资源的合理充分利用,以尽可能少的投入得到最大的收益,大大提高工业生产的效率,实现现有工业生产水平从自动化向智能化升级,实现当今智能化发展由高端向大众普及。
从先前的模拟电路设计,到数字电路设计,再到现在的集成芯片的应用,各种能实现同样功能的元件越来越小为智能化产物的生成奠定了良好的物质基础。
智能小车,是一个集环境感知、规划决策,自动行驶等功能于一体的综合系统,它集中地运用了计算机、传感、信息、通信、导航、人工智能及自动控制等技术,是典型的高新技术综合体。
1.2 智能小车研究现状智能车辆作为智能交通系统的关键技术,是许多高新技术综合集成的载体。
基于51单片机的蓝牙循迹小车
基于51单⽚机的蓝⽛循迹⼩车51单⽚机课程设计做了辆蓝⽛⼩车,下⾯是对课程设计内容的⼀些总结基于51单⽚机的蓝⽛循迹⼩车硬件模块L298N具体如图所⽰:⼯作原理简介:可以直接驱动两路 3-16V 直流电机,并提供了 5V 输出接⼝(输⼊最低只要 6V),可以给 5V 单⽚机电路系统供电。
输⼊电压最好是7v以上,输⼊电压低了会导致⼀系列问题,在后⾯有具体实践总结具体应⽤:可以⽅便的控制直流电机速度和⽅向,也可以控制 2 相步进电机,5 线 4 相步进电机。
管脚应⽤可以参考如图所⽰:①板载5V输出使能:如果跳线帽接上,则5v端⼦可以输出电压,若跳线帽没有街上,则12v输⼊端⼦没有作⽤,只能5v输⼊⼝输⼊(如果不接上直接废了,5v 输⼊基本不能使电机模块正常⼯作)②AB通道使能:端⼦接在上⾯表⽰AB通道⼀直保持⾼电平,处于使能状态,并且电压和5v输⼊端⼝电压相同;若处于没有使能状态,直接影响到输⼊端,让其⽆法⼯作!③单⽚机IO控制输⼊ + 马达AB输出 :顾名思义,四个IO输⼊端⼝和单⽚机四个IO⼝相连,然后通过电机驱动模块(双H桥电路)马达AB输出,以获得更⼤的驱动直流减速电机的能⼒,带动电机转动!B站直接搜L298N电机驱动模块,有视频详情介绍问题以及解决⽅案下⾯是⼀些使⽤L298N驱动电机的⼀些问题以及解决⽅法总结问题:1.直流减速电机不能正常转动,⼀个轮⼦只能单⽅向转动2.使能端⼝帽摘下来后,pwm信号输⼊问题3.供电问题解决:1.起初⽤4节南孚电池供电,⽤万⽤表测电压⼩于4.8v(电池快没啥电了),更换四节电池后⽤万⽤表测得4.9v+,上⾯出现的问题解决了2.输⼊端电压⼩于7v(⽤得四节南孚电池6v不到供电),使能电压和5v输⼊端⼦的电压相同,经测量5v端⼝电压只有3.8v左右,故使能电压就只有3.8v左右了,对PWM输出使能有⼀定影响3.L298N电机驱动中有稳压降压模块,如果供电⾜够⼤(⼤于7v),那么稳压降压模块会发挥作⽤,使得5v输⼊端⼦、使能端⼦、马达电机都能有稳定的5v⾼电平输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
➢循迹小车简介 ➢循迹小车工作原理
电气与信息工程学院
3
初识循迹小车——简介
基于C51单片机的循迹小车
循迹小车在黑色轨道上运行
电气与信息工程学院
4
初识循迹小车——工作原理
传感器: 红外反射式光电传感器
循迹原理: 白色和黑色路面对光的反射程度不同 白色地面对光线的反射程度强 黑色地面会吸收大量光线,反射程度弱
第五阶段
循迹小车自动循迹,根据 黑线轨迹情况,前进、后 退、左转或右转。
电气与信息工程学院
8
3
硬件电路设计 PC DEVELOPMENT
➢最小系统电路设计 ➢红外检测模块电路设计 ➢电源模块电路设计 ➢电机驱动模块电路设计
电气与信息工程学院
9
硬件电路设计——最小系统电路设计
➢ 电源 ➢晶振电路 ➢复位电路
TCRT5000 红外反射式光电传感器
黑色地面:光线被反射,黑色光电管导通 白色地面:光线被吸收,黑色光电管不导通
黑色和白色地面
电气与信息工程学院
5
2
系统构成 RESEARCH CONTENT
➢系统框图 ➢循迹小车工作流程
电气与信息工程学院
6
系统构成——系统框图
电源模块
红外光电传感 器循迹模块
单 片 机
电气与信息工程学院
2
PPT模板下载:w w w .1ppt .com/moban/ 行业PPT模板:w w w .1ppt .com/hangye/
节日PPT模板:w w w .1ppt .com/jieri/
PPT素材下载:w w w .1ppt .com/s ucai/
PPT背景图片:w w w .1ppt .com/beijing/ PPT图表下载:w w w .1ppt .com/t ubiao/
510R
D14
LED
D15
LED
D16
LED
VCC_5V VCC_7.6V
9
4
U5
5 7 10 12 6 11
IN1 IN2 IN3 IN4 ENA ENB
VCC
VS OUT1
2
OUT2 3
OUT3 13
1 15
SENSA SENSB
GND
OUT4 14
8
L298
VCC_7.6V
D2
1N4007
D4
3
2
4
RV3
10k
4
8
R14
5.1k
R8
ቤተ መጻሕፍቲ ባይዱ510R
U5:A
1 LM393
D12
LED
C1
22pF
C3
22pF
X1
CRYSTAL FREQ=12MHz
U1
19 XTAL1 18 XTAL2
9 RST
R1
C2
VCC_5V
29 30 31
PSEN ALE EA
10k 10uF
1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
W ord教程: w w w .1ppt .com/w ord/
Excel教程:w w w .1ppt .com/excel/
资料下载:w w w .1ppt .com/ziliao/
PPT课件下载:w w w .1ppt .com/kejian/
范文下载:w w w .1ppt .com/fanw en/
电气与信息工程学院
15
硬件电路设计——电机驱动模块电路设计——L298N驱动原理
IN1 IN2 ENA OUT1 OUT2 转向
0
0
1
0
0
停
1
0
1
1
0
正
0
1
1
0
1
反
1
1
1
1
1
停
0
0
0
----
----
停
1
0
0
----
----
停
0
1
0
----
----
停
1
1
0
----
----
停
电气与信息工程学院
16
硬件电路设计——电机驱动模块电路设计——PWM调速原理
6
5
3
2
4
RV1
10k
4
8
R5
5.1k
U4:A
1 LM393
R6
510R
D10
LED
VCC_5V
R9
510R
U3
1
2
TCRT5000
R10
5.1k
6
5
5
6
4
RV2
10k
4
8
R13
5.1k
R7
510R
U4:B
7 LM393
D11
LED
VCC_5V
R11
510R
U3
1
2
TCRT5000
R12
5.1k
6
5
7
系统构成——系统工作流程
循迹 小车 工作 流程
第二阶段
光电传感器模块采集路径信 号,送给单片机主控模块
第四阶段
电机驱动模块执行主控单元 发来的指令,驱动电机转动
1
2
3
4
5
第一阶段
通电,系统初始化,等待按 键按下(起始信号)
第三阶段
主控单元对采集到的信号进 行处理和逻辑判断,发出控 制信号,送给电机驱动模块
21 22 23 24 25 26 27 28
P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1
P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD
10 11 12 13 14 15 16 17
R15
510R
D13
LED
VCC_5V
R16
510R
R17
510R
R18
U2
LM7805
1 VI
C5
1uF
VO 3
C4
10uF
VCC_5V
R2
510R
D1
LED
电气与信息工程学院
13
硬件电路设计——电机驱动模块电路设计
VCC_5V VCC_7.6V
9
4
U5
5 7 10 12 6 11
IN1 IN2 IN3 IN4 ENA ENB
VCC
VS OUT1
2
OUT2 3
OUT3 13
PPT课件下载:w w w .1ppt .com/kejian/
范文下载:w w w .1ppt .com/fanw en/
试卷下载:w w w .1ppt .com/s hit i/
教案下载:w w w .1ppt .com/jiaoan/ PPT论坛:w w w .1ppt .cn
1
初识循迹小车 PROJECT INTRODUCTION
1N4007
+88.8
D3
1N4007
D5
1N4007
VCC_7.6V
D6
1N4007
D7
1N4007
+88.8
D8
1N4007
D9
1N4007
VCC_7.6V
U2
LM7805
1 VI
C5
1uF
VO 3
VCC_5V
C4
10uF
R2
510R
2 GND
D1
LED
电气与信息工程学院
19
PPT模板下载:w w w .1ppt .com/moban/ 行业PPT模板:w w w .1ppt .com/hangye/
启动按钮 否 按下
是
采集传感器 信号
转向控制 逻辑判断
电气与信息工程学院
21
软件设计——软件流程图—PWM方波产生流程图
开始 计数变量t=t+1
是
否
计数值t<占空比数
值m
P2.4和P2.5输出 高电平
P2.4和P2.5输出 高电平
结束
定时器赋初值
t=0 是 否 计数值t>=100
电气与信息工程学院
基于C51单片机的智能循迹小车
制作讲解
By:Krishna
电气与信息工程学院
1
CONTENTS
初识循迹小车
PROJECT INTRODUCTION
系统构成
RESEARCH CONTENT
硬件电路设计
1 4
2 5
3
软件设计
PC DEVELOPMENT
总结
TEST AND CONCLUSION
THE FPGA REALIZATION OF PAPER DEFECT DETECTION SYSTEM
1 15
SENSA SENSB
GND
OUT4 14
8
L298
VCC_7.6V
D2
1N4007
D4
1N4007
+88.8
D3
1N4007
D5
1N4007
VCC_7.6V
D6
1N4007
D7
1N4007
+88.8
D8
1N4007
D9
1N4007
➢ 电机调速:PWM调速 ➢ 驱动芯片:L298N
电气与信息工程学院
80C51