北邮电子工艺实习智能小车实习报告附程序

北邮电子工艺实习智能小车实习报告附程序
北邮电子工艺实习智能小车实习报告附程序

北京邮电大学实习报告

附页:学生实习总结

一、初步设计

二、走迷宫小车利用单片机STC900C52RC 作为中控核心,光电开关

E18-D80NK 作为走迷宫小车的探测障碍的传感器,以及其它L298N电机驱动芯片、LM1117-5.0/LDO电源。

三、小车走迷宫使用的是左手算法(即摸墙算法),是简单连通的,即迷宫

的墙总是相互相连的或与迷宫的外轮廓相连,那么迷宫的搜索者从起点开始将左手扶在墙面前行,总能保证不会迷失并且找到迷宫中存在的出口(若忽略出口将回到迷宫起点)。这种策略在刚进入迷宫时即执行的效果是最佳的。小车采用一个L298N电机驱动模块、LM1117-5.0/LDO电源、两个E18-D80NK光电开关(一个放置在小车正前方,一个放置在小车正左方),分别判断小车的前方和左方是否有障碍,并将高低电平传递至传递给单片机,使单片机控制电机实现左转、右转、前进、掉头(实际为连续两次右转)的功能穿越迷宫。

四、小车是三轮小车,前两个是驱动轮,后一个是支点轮(从动轮),两个

驱动轮是分别由两个电机驱动,通过同速率同向转动前进和同速率反向转动转向。

五、具体工作

六、1) 元器件的焊接与组装

七、2) 部分代码的编写与调试

3) 小车外观的设计与制作

八、小车焊接与电路测试

1)在我们焊接小车之前,我们用了两天时间学习和熟悉焊接工艺,同时还

做了个发光二极管的小实验,这些基础让我在焊接小车电路板的时候

有了底气,做起来也有些轻车熟路。我们用了半天的时间就几乎完成

了全部的焊接任务,按照小车的装配步骤,我们依次焊接了电阻、晶

体、排阻、二极管、开关、三极管、二极管、电容、数码管、电源电

机端子、排针、驱动芯片等,同时也学会了“先焊矮的后焊高”的道

理。在完成焊接之后,小车的组装也颇为顺利,在实验步骤的指导下,

顺利完成了小车的组装,小车已初现其形。

2)在小车焊接与组装之后,开始进行小车电路测试,植入CHECK程序之后,

小车完美的实现了前进与后退的功能,而且前行的轨迹相对笔直,这

和我们的焊接与组装有很大关系。但是,在实现前进功能的同时也出

现了问题,数码管有一个数字不显示,在查看电路图,和老师同学讨

论之后,我们确定了问题的源头,是有一个三极管在焊接过程中烧坏

了,在更换了三极管之后,数码管全都亮了。同时我也帮其他电机不

转的同学发现和解决了问题,大都是电元件被烧坏了。这也提醒我们

在焊接的时候,要小心谨慎。

九、小车硬件调试

1)光电开关E18-D80NK的最远感应距离是80cm,因为迷宫的宽度不过

20cm,所以在编程调试之前,应将两个光电开关的感应距离从80cm

调整到10cm(最小)-20cm,才能编程使用。但是在将正前方的光电

开关调整到最小感应距离时,仍然不能符合硬件调试的标准,所以在

编程时,应先使其前进一小段距离,达到转弯的标准之后,再进行转

弯。

2)车轮的两轴应该先标定在同一条直线上,并且平行。首先让小车直线

前进,观察小车是否能直线行进,如果不能就需要进行编程的相应调

整。

十、小车动力控制

1)L298的逻辑功能(1是高电平,0是低电平)

端口IN1IN2IN3IN4状态

11001前进

21010左转

30101右转

40000停止

i.前进代码qianjin()

qianjin()

{ IN1=1;

IN2=0;

IN3=0;

IN4=1;

}

ii.左转代码leftro()

leftro()

{ LED2=1;//左侧灯亮

LED1=0;//右侧灯灭

IN1=1;

IN2=0;

IN3=1;

IN4=0;

}

iii.右转代码rightro()

rightro()

{ LED1=1;//右侧灯亮

LED2=0;//左侧灯灭

IN1=0;

IN2=1;

IN3=0;

IN4=1;

}

2)单片机逻辑功能

i.左侧有障碍物(低电平);前方没有障碍物(高电平)

ii.单片机指令:前进

iii.左侧有障碍物(低电平);前方有障碍物(低电平)

iv.单片机指令:

v. a.前进15步(设1步是10ms,此后都如此)

vi. b.停止10步

vii. c.右转30步

viii. d.停止10步

ix. e.判断此时障碍物情况,如果前方没有障碍物(高电平)

x.停止10步再前进25步

xi. f. 否则【即前方有障碍物(低电平)】,右转30步.

xii.左侧没有障碍物(高电平)

xiii.单片机指令:

xiv. a.前进25步

xv. b.停止10步

xvi. c.左转38步

xvii. d.停止10步

xviii. e.前进15步.

十一、小车外观设计与制作

1)组装并调程序十天以后,终于可以给小车做外壳了。在有限经费的条件

下,我们的小车外壳实现了完全零成本。我们设计小车为一个超跑,所

以小车以纸箱板为骨架,每一个部分都是相互独立得,在完成基本骨架

的设计与制作之后,我又给小车涂了一层水彩,使得小车更加炫酷。

2)我们的小车除了基本的外壳以外,我还设计了超跑的挡风玻璃,大灯,

车座,以及后车厢。整个外观设计加制作用了两晚一天,凝聚了自己的

汗水和爱。

十二、常见问题、故障及解决方案

1) 在焊接阶段,高温可能会损坏一些电元件,尤其是二极管。三极管。我

们的数码管有一个不亮,就是有一个相应的二极管烧坏了。因此焊接时间不宜过长,焊接时要小心谨慎。将小车主板的元器件焊接完成之后,尽量不要再用手触碰背面焊点。汗水会使焊点之间短路,影响小车的正常调试。

2) 因为传感器的感应距离和小车的制动原因,小车前进中转向会改变转角

的角度,不适合控制。所以在转弯前首先给小车一个短暂的停止时间,之后再进行转向,转向将会比较稳定,更易于控制。

3) 因为后期外壳的制作以及每一次电量的消耗,都会是使行车轨迹发生变

化,所以必须得调整程序才能使小车较好地实现功能。应避免无休止的调试代码,可以调试几个适用于不同硬件环境的代码,在不同的硬件环境下使用。

4) 在最后的验收时,小车前几次没能完全走出迷宫,这是因为刚刚改变了

小车外壳的质量,加上完全封装后,没能给充电电池充电,所以转弯角

度发生了很大变化,在修正了相应程序后,小车顺利的走出了迷宫。

十三、心得与收获

作为一名信通院的工科生,这次实习让我学会了电子院、计算机院、数媒院同学的一些技能。从焊接电路,到编程调试,到实现走迷宫,到外观制作,和队友一起,一步一步完成这个项目,这段历程值得自己骄傲与开心,这两个礼拜所学到得也值得自己回味。历时两周,从学习最基本的焊接工艺到设计算法,再到编程解决问题,再到调试时讨论存在的问题和解决方案,最后设计小车外观封装,这满满的回忆一一在眼前回顾。

我在整个的制作过程中,除了学习到焊接工艺、keil编程语言,手工工艺,更多的是学会了如何分析问题,如何解决问题。在接触到这个项目,如何去设计,如何去做到我们想要的功能,这其中的思考值得我们去品味。

两个礼拜的实习就这样过去了,看着凝聚着自己汗水与爱的小车,内心好多感触。感谢这次小学期让自己在学习和生活上学到的东西,感谢老师给我们这次的实习项目,感谢队友一起的努力与向上。最后,感谢自己,希望自己所学到的东西用到以后的学习与生活中去。

十四、参考文献

十五、*摸墙算法,百度百科:

附小车代码:

#include

#include?

#define?uchar?unsigned?char

#define?uint?unsigned?int

#define?t?1

uchar?code?seg_data[?]?=?{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};/ /0~9的段码表,0x00为熄灭符

uchar?data?disp_buf[7]?=?{0x00,0x00,0x00,0x00,0x00,0x00,0x00};//显示缓冲区

sbit?IN1?=?P1^3;

sbit?IN2?=?P1^5;

sbit?IN3?=?P1^2;

sbit?IN4?=?P1^0;

sbit?LED1?=?P2^6;

sbit?LED2?=?P2^7;

sbit?LEFT?=?P3^6;

sbit?RIGHT?=?P3^4;

sbit?FRONT?=?P3^2;

sbit?S1?=?P1^6;

unsigned?int?count=0; ??

?

void?Delay_ms(uint?xms)?????? //延时程序,xms是形式参数

{?? ????????????

uint?i,?j;

for(i=xms;i>0;i--)?????????? ?//?i=xms,即延时xms,?xms由实际参数传入一个值for(j=115;j>0;j--); ?????//此处分号不可少

}

display()

{

???P0=seg_data[0];?? //显示毫秒十位

???P2=0xfe; ????????????//开个位显示(开第1只数码管)

???Delay_ms(t); //延时10ms

???P0=seg_data[1];?? //显示毫秒百位

???P2=0xfd; //开十位显示(开第2只数码管)

???Delay_ms(t); //延时10ms

???P0=seg_data[2];?? //显示秒个位

???P2=0xfb; ????????????//开百位显示(开第3只数码管)

???Delay_ms(t); //延时10ms

???P0=seg_data[3];?? //显示秒十位

???P2=0xf7; //开个位显示(开第4只数码管)

???Delay_ms(t); //延时10ms

???P0=seg_data[4];?? //显示分个位

???P2=0xef; ????????????//开十位显示(开第5只数码管)

???Delay_ms(t); //延时10ms

???P0=seg_data[5];?? //显示分十位

???P2=0xdf; //开个位显示(开第6只数码管)

???Delay_ms(t); //延时10ms

???P2=0xff;

}

stop()

{

IN1=0;?

IN2=0;

IN3=0;

IN4=0;

}

qianjin()

{

IN1=1;

IN2=0;

IN3=0;

IN4=1;

}

{

IN1=0;?

IN2=1;

IN3=1;

IN4=0;

}

leftro()

{

LED2=1;

LED1=0;

IN1=1;

IN2=0;

IN3=1;

IN4=0;

}

rightro()

{

LED1=1;

LED2=0;

IN1=0;

IN2=1;

IN3=0;

IN4=1;

}

?????

//****************主程序******************//

void?main()

{?? P0=0xff;

???P2=0xff;

???P1=0xff;

???P3=0xff;

???TMOD=0x01;? ????//定时器T0方式1

???TH0=0xfe;?TL0=0x0c;??????//1ms定时初值

???EA=1;?ET0=1;?TR0=1; //开总中断,开定时器T0中断,启动定时器T0 ???while(1)

???{

???????display();

???while((LEFT==0)&&(FRONT==1))

????{

??? ???display();

???????qianjin();

}

}

while?((LEFT==0)&&(FRONT==0)) {

while(count<15)

{

display();

qianjin();

count++;??

}

while(count<25)

{

display();

stop();

count++;???

}

while(count<55)

{

display();

rightro();

count++;

}

count=0;

// ??判断第二次是否需要右转

if((LEFT==0)&&(FRONT==0)) {

while(count<30)

{

display();

rightro();

count++;

}

}

else

{

while(count<10)

{

display();

stop();

count++;???

}

while(count<35)

{

display();

count++;}

}

}

???

count=0;

while??((LEFT==1)) {

???while(count<25) ???{

display();

qianjin();

count++;

???}

while(count<35) ???{

display();

stop();

count++;

???}

while(count<73) {

display();

leftro();

count++;

}

while(count<88) {

display();

qianjin();

count++;}

}

}

}

智能小车控制程序1

/*实现前进与后退功能*/ /*控制智能车向前行驶10秒,然后停3秒,再向后行驶6秒,停止*/ /********************************************************/ #include #define uint unsigned int /*进行端口声明时,应与具体硬件连接相对应,如不相互对应,将影响程序功能的正常实现*/ sbit S1=P1^3; //对电机端口声明 sbit S2=P1^4; sbit S3=P1^5; sbit S4=P1^6; /*功能函数定义*/ void delay(uint del) //延时函数,延时del毫秒 { uint i,j; for(i=0; i

{ go(); //前进 delay(10000); //前进10秒 stop(); //停止 delay(3000); //停3秒 back(); //后退 delay(6000); //后退6秒 stop(); //停止 }

智能循迹小车程序

#include #define uchar unsigned char #define uint unsigned int //D0-D7:f,b,a,e,d,h,c,g 共阴依次编码 //74LS04反相器驱动数码管 uchar code table[10] = {0x5F,0x42,0x9E,0xD6,0xC3,0xD5,0xDD,0x46,0xDF,0xD7}; uchar i = 0; //用于0-3数码管轮流显示 uint j = 0; //计时的次数 uint time=0; //计时 uint pwm=16; //占空比 uint speed; //调制PWM波的当前的值 sbit R=P3^2; //右边传感器P3^2 sbit L=P3^3; //左边传感器P3^3 //电机驱动口定义 sbit E NB=P1^0; //前轮电机停止控制使能 sbit E NA=P1^1; //后轮控制调速控制端口 sbit I N1=P1^2; //前轮 sbit I N2=P1^3; //前轮 sbit I N3=P1^4; //后轮 sbit I N4=P1^5; //后轮 void Init() { TMOD = 0x12; //定时器0用方式2,定时器1用方式1 TH0=(256-200)/256; //pwm TL0=(256-200)/256; TH1 = 0x0F8; //定时2ms TL1 = 0x30; EA = 1; ET0 = 1; ET1 = 1; TR0 = 1; TR1 = 1; } void tim0(void) interrupt 1 //产生PWM { speed ++; if(speed <= pwm) //pwm 就相当于占100的比例 { ENA = 1; } else if(speed < 100) { ENA = 0; }

智能超声波避障小车地设计与制作

江阴职业技术学院项目设计报告 项目:超声波避障小车的设计与制作 专业 学生姓名 班级 学号 指导教师 完成日期

摘要 智能小车是一种能够通过编程手段完成特定任务的小型化机器人,它具有制作成本低廉,电路结构简单,程序调试方便等优点。由于具有很强的趣味性,智能小车深受广大机器人爱好者以及高校学生的喜爱。 本论文介绍的是具有自动避障功能的智能小车的设计与制作(以下简称智能小车),论文对智能小车的方案选择,设计思路,以及软硬件的功能和工作原理进行了详细的分析和论述。经实践验收测试,该智能小车的电路结构简单,调试方便,系统反映快速、灵活,设计方案正确、可行,各项指标稳定、可靠。

Abstract Smart cars can be programmed to perform a specific task means the miniaturization of robot, it has to make cost is low, circuit simple structure, convenient program test. Because of it has strong interest, intelligent robot car favored by the majority of the university students' enthusiasts and love. This paper introduces the is a automatic obstacle avoidance function of intelligent car design and production (hereinafter referred to as the smart car), the thesis to the intelligence of the car scheme selection, design idea, and the implementation of hardware and software function and working principle of a detailed analysis and discusses. After practice acceptance test, this intelligent car circuit structure is simple, convenient debug, fast, flexible system reflect, correct and feasible design scheme, each index is steady and reliable.

基于 单片机设计智能避障小车

单片机设计智能避障小车 摘要 利用红外对管检测黑线与障碍物,并以STC89C51单片机为控制芯片控制电动小汽车的速度及转向,从而实现自动循迹避障的功能。其中小车驱动由L298N 驱动电路完成,速度由单片机输出的PWM波控制。本文首先介绍了智能车的发展前景,接着介绍了该课题设计构想,各模块电路的选择及其电路工作原理,最后对该课题的设计过程进行了总结与展望并附带各个模块的电路原理图,和本设计实物图,及完整的C语言程序。 关键词:智能小车;51单片机;L298N;红外避障;寻迹行驶 abstract Using infrared detection black and obstacles to the line and STC89C51 microcontroller as the control chip to control the speed of the electric car and steering, so as to realize the function of automatic tracking and obstacle avoidance. Which the car driven by the L298N driver circuit is completed, the speed of the microcontroller output PWM wave control. This article first introduces the development of the intelligent car prospect, then introduces the design idea, the subject selection of each module circuit and working principle of the circuit, the design process of the subject is summarized and prospect with each module circuit principle diagram, and the real figure design, and complete C language program. Key words: smart car; 51 MCU; L298N; infrared obstacle avoidance; track driving

PWM调速+循迹__智能小车程序

//T0产生双路PWM信号,L298N为直流电机调速,接L298N时相应的管脚上最好接上10K 的上拉电阻。 /* 晶振采用12M,产生的PWM的频率约为100Hz */ #include #include #define uchar unsigned char #define uint unsigned int sbit en1=P3^4; /* L298的Enable A */ sbit en2=P3^5; /* L298的Enable B */ sbit s1=P1^0; /* L298的Input 1 */ sbit s2=P1^1; /* L298的Input 2 */ sbit s3=P1^3; /* L298的Input 3 */ sbit s4=P1^2; /* L298的Input 4 */ sbit R=P2^0; sbit C=P2^1; sbit L=P2^2; sbit key=P1^4; uchar t=0; /* 中断计数器*/ uchar m1=0; /* 电机1速度值*/ uchar m2=0; /* 电机2速度值*/ uchar tmp1,tmp2; /* 电机当前速度值*/ /* 电机控制函数index-电机号(1,2); speed-电机速度(0-100) */ void motor(uchar index, char speed) { if(speed<=100) { if(index==1) /* 电机1的处理*/ { m1=abs(speed); /* 取速度的绝对值*/ s1=1; s2=0; } if(index==2) /* 电机2的处理*/ { m2=abs(speed); /* 电机2的速度控制*/ s3=1; s4=0; } } } void Back(void) {

智能避障小车设计--毕业设计完整版-附程序编程

毕业设计设计题目:智能避障小车设计 系别:机电工程系 班级:测控技术与仪器 姓名:XXX 指导教师: XXX

智能小车设计 摘要 随着近年来机器人的智能水平不断提高,其中机器人的感觉传感器种类越来越多,而视觉传感器成为自动行走和驾驶的重要部件。智能小车可应用于无人工厂,仓库,服务机器人等领域解决一些高危环境下的难题。同时单片机技术的迅速发展使得机器人的智能控制更加智能化,人性化。 该设计是利用光电传感器以一定的频率发射红外线来检测障碍物,然后将检测信号发送到STC89C52单片机,并以STC89C52单片机为控制芯片进而电动小汽车的速度及转向,以此实现自动避障的功能。其中小车驱动由L298N驱动电路完成,速度由单片机输出的PWM波调速控制。本设计结构简单,较容易实现,与实际相结合,现实意义很强,但具有高度的智能化、人性化,一定程度体现了智能。 关键词:智能小车; STC89C52单片机; L298N; PWM波

Design Of Smart Car Abstract Along with the robot's intelligent level rises ceaselessly, the types of robot sensory sensor are more and more, and the vision sensor have become the important part in the automatic walking and driving .Smart car can be applied to unmanned factory, warehouse, service robot and etc. to solve some high risk environment problems,At the same time,The rapid development of MCS technology makes the intelligent control of robot more intelligent ang humane. This design uses a photoelectric sensor sending a certain frequency transmitting infrared to detect obstacles, and then sends a detection signal to a STC89C52 MCS. While the car is drived by the L298N circuit, its speed is controlled by the output PWM signal from the STC89C52 MCS.This design is practical ,easy realization and simple in the structure, but highly intelligent, humane, Intelligent in some degree. Key words:Smart Car; STC89C52 MCS; L298N; PWM Signa

智能循迹小车程序

智能循迹小车程序 Document number:BGCG-0857-BTDO-0089-2022

#include<> #define uchar unsigned char #define uint unsigned int //D0-D7:f,b,a,e,d,h,c,g 共阴依次编码 //74LS04反相器驱动数码管 uchar code table[10] = {0x5F,0x42,0x9E,0xD6,0xC3,0xD5,0xDD,0x46,0xDF,0xD7}; uchar i = 0; //用于0-3数码管轮流显示uint j = 0; //计时的次数 uint time=0; //计时 uint pwm=16; //占空比 uint speed; //调制PWM波的当前的值 sbit R=P3^2; //右边传感器 P3^2 sbit L=P3^3; //左边传感器 P3^3 //电机驱动口定义 sbit ENB=P1^0; //前轮电机停止控制使能 sbit ENA=P1^1; //后轮控制调速控制端口 sbit IN1=P1^2; //前轮 sbit IN2=P1^3; //前轮 sbit IN3=P1^4; //后轮

sbit IN4=P1^5; //后轮 void Init() { TMOD = 0x12; //定时器0用方式2,定时器1用方式1 TH0=(256-200)/256; //pwm TL0=(256-200)/256; TH1 = 0x0F8; //定时2ms TL1 = 0x30; EA = 1; ET0 = 1; ET1 = 1; TR0 = 1; TR1 = 1; } void tim0(void) interrupt 1 //产生PWM { speed ++; if(speed <= pwm) //pwm 就相当于占100的比例{ ENA = 1; }

智能循迹小车总体设计方案

智能循迹小车总体设计方案 1.1 整体设计方案 本系统采用简单明了的设计方案。通过高发射功率红外光电二极管和高灵敏度光电晶体管组成的传感器循迹模块黑线路经,然后由AT89S52通过IO口控制L298N驱动模块改变两个直流电机的工作状态,最后实现小车循迹。 1.2系统设计步骤 (1)根据设计要求,确定控制方案; (2)将各个模块进行组装并进行简单调试; (3)画出程序流程图,使用C语言进行编程; (4)将程序烧录到单片机内; (5)进行调试以实现控制功能。 1.2.1系统基本组成 智能循迹小车主要由AT89S52单片机电路、循迹模块、L298N驱动模块、直流电机、小车底板、电源模块等组成。 (1)单片机电路:采用AT89S52芯片作为控制单元。AT89S52单片机具有低成本、高性能、抗干扰能力强、超低功耗、低电磁干扰,并且与传统的8051单片机程序兼容,无需改变硬件,支持在系统编程技术。使用ISP可不用编程器直接在PCB板上烧录程序,修改、调速都方便。 (2)循迹模块:采用脉冲调制反射红外发射接收器作为循迹传感器,调制信号带有交流分量,可减少外界的大量干扰。信号采集部分就相

当于智能循迹小车的眼睛,有它完成黑线识别并产生高、低平信号传送到控制单元,然后单片机生成指令来控制驱动模块来控制两个直流电机的工作状态,来完成自动循迹。 (3)L298N驱动模块:采用L298N作为点击驱动芯片。L298N具有高电压、大电流、响应频率高的全桥驱动芯片,一片L298N可以分别控制两个直流电机,并且带有控制使能端。该电机驱动芯片驱动能力强、操作方便、稳定性好,性能优良。L298N的使能端可以外接电平控制,也可以利用单片机进行软件控制,满足各种复杂电路的需要。另外,L298N的驱动功率较大,能够根据输入电压的大小输出不同的电压和功率,解决了负载能力不够的问题。

智能寻迹避障小车寻迹系统设计说明

第二章智能寻迹避障小车寻迹系统设计 1.任务 任务一:产生智能寻迹避障小车沿黑线转圈的控制程序; 任务二:产生智能寻迹避障小车带状态显示沿黑线转圈的控制程序; 2.要求 (1)能控制智能寻迹避障小车沿黑线实现转圈功能; (2)行走过程中小车一直压着黑线走,不得冲出黑线圆圈之外或之; (3)智能寻迹避障小车可以从小于90度的任意方向寻找到黑线圆圈; 2.1 项目描述 该项目的主要容是:在智能寻迹避障小车电机控制系统之上扩展寻迹电路,然后运用C 语言对系统进行编程,使智能寻迹避障小车实现沿黑线转圆圈的功能,并且在行走过程中小车一直压着黑线走,不得冲出黑线圆圈之外或之;当人为将小车拿开,再从小于90度的任意方向放置小车,小车应能重新找回轨道,并沿黑线继续转圈。通过该项目的学习与实践,可以让读者获得如下知识和技能: 继续掌握单片机I/O端口的应用; 掌握红外线收、发对管的工作原理与控制方法; 掌握数码管的工作原理与控制方法; 掌握单片机C语言的编程方法与技巧; 能够编写出智能寻迹避障小车沿黑线实现转圈功能的控制函数; 2.1 必备知识 2.1.1 关于红外线传感器 红外线定义:在光谱中波长自0.76至400微米的一段称为红外线,红外线是不可见光线。所有高于绝对零度(-273.15℃)的物质都可以产生红外线。现代物理学称之为热射线。医用红外线可分为两类:近红外线与远红外线。 红外线发射器:红外线发射管在LED封装行业中主要有三个常用的波段,如下850NM、875NM、940NM。根据波长的特性运用的产品也有很大的差异,850NM波长的主要用于红外线监控设备,875NM主要用于医疗设备,940NM波段的主要用于红外线控制设备。如:红外线遥控器、光电开关、光电计数设备等。 红外线对管应用:本项目中,小车的寻迹功能采用红外线收、发对管实现。具体工作过程如下:两对红外线收、发对管安装在智能寻迹避障小车底盘正前方,红外发射管一直发射信号,接收管时刻准备接收信号。两对对着地的红外管发射红外信号,信号在白色的地面上反射回接收管,通过接收管把信号送回单片机进行处理,完成相应的动作。假如在黑色的地面上,信号被地面吸收,就无信号返回,单片机检测到无信号,根据程序也会做出相应的动作。如图2.1所示为红外线收、发对管外型示意图。

毕业设计智能循迹避障小车设计

毕业设计智能循迹避障 小车设计 Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

单片机系统课程设计 轮式移动机器人的设计 学院:通信与电子工程学院 班级:电子131 姓名:初清晨 学号: 13 同组成员:孟庆阳张轩 指导老师:王艳春 日期:2015年12月24日

组员分工 1、组长:张轩,实物焊接,报告整理,程序设计 2、组员:孟庆阳,实物焊接,仿真测试,报告整理 3、组员:初清晨,实物焊接,报告整理,仿真测试

目录

摘要 随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快,智能度越来越高,应用范围也得到了极大的扩展。智能作为现代的新发明,是以后的发展方向,它可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等用途。智能电动小车就是其中的一个体现。设计者可以通过软件编程实现它的行进、循迹、停止的精确控制以及检测数据的存储、显示,无需人工干预。因此,智能电动小车具有再编程的特性,是机器人的一种。 本设计采用AT89S52单片机加电机驱动电路和红外遥控及循迹模块还有红外接收一体化传感器设计而成,采用模块化的设计方案,运用红外遥控器控制小车的前进、后退、左转、右转、启动和停止。 关键词:智能小车;STC89C52单片机;L9110;红外对管 Intelligent tracking and obstacle-avoid car Abstract:Based infrared detection of black lines and the road obstacles, and use a STC89C52 MCU as the controlling core for the speed and direction, A electronic drived, which can automatic track and avoid the obstacle, was designed and fabricated. In which, the car is drived by the L298N circuit, its speed is controlled by the output PWM signal from the STC89C52. Keywords: Smart Car; STC89C52 MCU; L298N; Infrared Emitting Diode 第一章绪论 智能小车的意义和作用 自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。 随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。视觉传感器的核心器件是摄像管或CCD,目前的CCD已能做到自动聚焦。但CCD传

Arduino智能避障小车避障程序

Arduino智能避障小车避障程序 首先建立一个名为modulecar.ino的主程序。 // modulecar.ino,玩转智能小车主程序 #include //导入舵机库 #include //导入NwePing库 // 对照系统配线方案依次指定各I/O const int ENA = 3 ; //左电机PWM const int IN1 = 4 ; //左电机正 const int IN2 = 5 ; //左电机负 const int ENB = 6 ; //右电机PWM const int IN3 = 7 ; //右电机正 const int IN4 = 8 ; //右电机负 const int trigger = 9 ; //定义超声波传感器发射脚为D9 const int echo = 10 ; //定义传感器接收脚为D10 const int max_read = 300; //设定传感器最大探测距离。 int no_good = 35; //*设定35cm警戒距离。 int read_ahead; //实际距离读数。 Servo sensorStation; //设定传感器平台。 NewPing sensor(trigger, echo, max_read); //设定传感器引脚和最大读数//系统初始化 void setup() { Serial.begin(9600); //启用串行监视器可以给调试带来极大便利 sensorStation.attach(11); //把D11分配给舵机

pinMode(ENA, OUTPUT); //依次设定各I/O属性 pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(ENB, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); pinMode(trigger, OUTPUT); pinMode(echo, INPUT); sensorStation.write(90); //舵机复位至90? delay(6000); //上电等待6s后进入主循环 } //主程序 void loop() { read_ahead = readDistance(); //调用readDistance()函数读出前方距离Serial.println("AHEAD:"); Serial.println(read_ahead); //串行监视器显示机器人前方距离 if (read_ahead < no_good) //如果前方距离小于警戒值 { fastStop(); //就令机器人紧急刹车 waTch(); //然后左右查看,分析得出最佳路线 goForward(); //*此处调用看似多余,但可以确保机器人高速运转下动作的连贯性 }

4智能避障小车系统的设计与实现

智能避障小车系统的设计与实现 电子信息工程 200709837 王小龙 罗维薇 摘要 本设计以单片机STC89C52为控制核心,设计实现具有避障和里程显示功能的智能小车。其主要由三部分组成:液晶显示模块、避障模块和电机驱动模块。 智能避障小车分别运用直接反射式红外传感器TCRT5000和霍尔传感器3144来进行路径检测和里程计算,并将实时数据传送到液晶显示模块和单片机分别进行显示和数据处理。并用L298N电机驱动芯片控制小车的运行状态。 Abstract This design based on the single chip computer STC89C52 as control core, design a car with obstacle avoidance and mileage display function. It mainly consists of three parts: the liquid crystal display module, obstacle avoidance module and motor driver module. Intelligence obstacle avoidance car detecting external environment by direct reflex respectively infrared sensor TCRT5000 and hall sensor 3144, transfer the real-time data to LCD module and single chip microcomputer to display respectively and data processing. And use L298N motor drive chip to control the operation status of the car. 一、绪论 1.课题背景介绍 随着单片机技术的迅速发展,其控制能力越来越强大。人们利用单片机强大的控制功能设计出各种各样的系统,全国电子设计大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。本设计就是在这样的背景下提出的,设计的智能小车能够通过光电开关完成避障功能,并且可以计算和显示出小车的行驶距离。 2.设计的主要内容 (1)采用STC89C52单片机作为控制小车的核心器件,用收发一体的红外传感器光电TCRT5000来检测和感应外界环境。 (2)用L298N驱动芯片控制电动小车的运行。 (3)用霍尔传感器计算小车行驶的距离并用1602液晶显示器显示。 这种方案能实现对智能小车的运动状态进行实时控制,控制灵活、可靠,可满足对系统的各项要求。 二、系统的总体设计 1.硬件总体设计 以AT89C51单片机为核心的控制电路,采用模块化的设计方案,运用红外光电传感器、霍尔传感器,实现小车在行驶中自动躲避障碍物、测量里程等问题。并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动小车的智能化控制。 在本系统中,反射式红外光电传感器检测障碍物,然后将信号传送到单片机系统进行处理,使小车沿轨道自主行走;通过霍尔元件测量小车行驶里程;采用L298N芯片控制电机的转向,实现电动小车的正反向行驶、快慢速行驶及转弯;采用1602液晶显示器显示小车行驶的路程。此系统采用软件方法来解决复杂的硬件电路部分,使系统硬件简洁化,各类功能易于实现,能满足系统的要求,其原理图如图1所示。

智能寻迹小车以及程序

寻迹小车 在历届全国大学生电子设计竞赛中多次出现了集光、机、电于一体的简易智能小车题目。笔者通过论证、比较、实验之后,制作出了简易小车的寻迹电路系统。整个系统基于普通玩具小车的机械结构,并利用了小车的底盘、前后轮电机及其自动复原装置,能够平稳跟踪路面黑色轨迹运行。 总体方案 整个电路系统分为检测、控制、驱动三个模块。首先利用光电对管对路面信号进行检测,经过比较器处理之后,送给软件控制模块进行实时控制,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。系统方案方框图如图1所示。 图1 智能小车寻迹系统框图 传感检测单元 小车循迹原理 该智能小车在画有黑线的白纸“路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”—黑线。笔者在该模块中利用了简单、应用也比较普遍的检测方法——红外探测法。 红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号。 传感器的选择 市场上用于红外探测法的器件较多,可以利用反射式传感器外接简单电路自制探头,也可以使用结构简单、工作性能可靠的集成式红外探头。ST系列集成红外探头价格便宜、体积小、使用方便、性能可靠、用途广泛,所以该系统中最终选择了ST168反射传感器作为红外光的发射和接收器件,其内部结构和外接电路均较为简单,如图2所示:

图2 ST168检测电路 ST168采用高发射功率红外光、电二极管和高灵敏光电晶体管组成,采用非接触式检测方式。ST168的检测距离很小,一般为8~15毫米,因为8毫米以下是它的检测盲区,而大于15毫米则很容易受干扰。笔者经过多次测试、比较,发现把传感器安装在距离检测物表面10毫米时,检测效果最好。 R1限制发射二极管的电流,发射管的电流和发射功率成正比,但受其极限输入正向电流50mA的影响,用R1=150的电阻作为限流电阻,Vcc=5V作为电源电压,测试发现发射功率完全能满足检测需要;可变电阻R2可限制接收电路的电流,一方面保护接收红外管;另一方面可调节检测电路的灵敏度。因为传感器输出端得到的是模拟电压信号,所以在输出端增加了比较器,先将ST168输出电压与2.5V进行比较,再送给单片机处理和控制。 传感器的安装 正确选择检测方法和传感器件是决定循迹效果的重要因素,而且正确的器件安装方法也是循迹电路好坏的一个重要因素。从简单、方便、可靠等角度出发,同时在底盘装设4个红外探测头,进行两级方向纠正控制,将大大提高其循迹的可靠性,具体位置分布如图3所示。

智能循迹避障小车方案设计书

封面

作者:PanHongliang 仅供个人学习 目录 摘要………………………………………………………………………………………2 ABSTRACT………………………………………………………………………………

…2 第一章绪论 (3) 1.1智能小车的意义和作用 (3) 1.2智能小车的现状 (3) 第二章方案设计与论证 (4) 2.1 主控系统 (4) 2.2 电机驱动模块 (4) 2.3 循迹模块 (6) 2.4 避障模块 (7) 2.5 机械系统 (7) 2.6电源模块 (8) 第三章硬件设计 (8) 3.1总体设计 (8) 3.2驱动电路 (9) 3.3信号检测模块 (10) 3.4主控电路 (11) 第四章软件设计 (12) 4.1主程序模块 (12) 4.2电机驱动程序 (12) 4.3循迹模

块 (13) 4.4避障模块 (15) 第五章制作安装与调试 (18) 结束语 (18) 致谢……………………………………………………………………………………… 19 参考文献 (19) 智能循迹避障小车 摘要:利用红外对管检测黑线与障碍物,并以STC89C52单片机为控制芯片控制电动小汽车的速度及转向,从而实现自动循迹避障的功能。其中小车驱动由 L298N驱动电路完成,速度由单片机输出的PWM波控制。 关键词:智能小车;STC89C52单片机; L298N;红外对管 Intelligent tracking and obstacle-avoid car Abstract:Based infrared detection of black lines and theroad obstacles, and use a STC89C52 MCU as the controlling core for the speed and direction, A electronic drived, which can automatic track and avoid the obstacle, was designed and fabricated. In which, the car is drived by the L298N circuit, its speed is controlled by the output PWM signal from the STC89C52. Keywords: Smart Car。STC89C52 MCU。L298N。Infrared Emitting Diode 第一章绪论 1.1智能小车的意义和作用 自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。 随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。视

智能循迹小车详细制作过程

(穿山乙工作室) 三天三十元做出智能车 0.准备所需基本元器件 1).基本二驱车体一台。(本课以穿山乙推出的基本车体为例讲解) 2).5x7cm 洞洞板、单片机卡槽、51单片机、石英晶体、红色LED 、1K 电阻、10K 排阻各一个;2个瓷片电容、排针40个。 3).5x7cm 洞洞板、7805稳压芯片、红色LED 、1K 电阻各一个;双孔接线柱三个、10u 电解电容2个、排针12个、9110驱动芯片2个。 4).5x7cm 洞洞板、LM324比较器芯片各一个;红外对管三对、4.7K 电阻3个、330电阻三个、红色3mmLED 三个。 一、组装车体 基本设计思路: 1.基本车架(两个电机一体轮子+一个万向轮) 2.单片机主控模块 3.电机驱动模块(内置5V 电源输出) 4.黑白线循迹模块

(图中显示的很清晰吧,照着上螺丝就行了) 二、制作单片机控制模块 材料:5x7cm洞洞板、单片机卡槽、51单片机、石英晶体、红色LED、1K电阻、10K排阻各一个;2个瓷片电容、排针40个。 电路图如下,主要目的是把单片机的各个引脚用排针引出来,便于使用。我们也有焊接好的实物图供你参考。(如果你选用的是STC98系列的单片机在这里可以省掉复位电路不焊,仍能正常工作。我实物图中就没焊复位)

三、制作电机驱动模块 材料:5x7cm洞洞板、7805稳压芯片、红色LED、1K电阻各一个;双孔接线柱三个、10u电解电容2个、排针12个、9110驱动芯片2个。 电路图如下,这里我们把电源模块与驱动模块含在了同一个电路板上。因为电机驱动模块所需的电压是+9V左右(6—15V 均可),而单片机主控和循迹模块所需电压均为+5V。 这里用了一个7805稳压芯片将+9V电压稳出+5V电压。 +9V

智能循迹小车设计

智能循迹/避障小车研究 工作报告 一、智能循迹小车程序结构框图 二、Proteus仿真图 三、软件程序设计

一、智能循迹小车程序结构框图 经过几天在网上的查找,对智能循迹/避障小车有了大致的了 解, 一般有三个模块: 1、最基本的小车驱动模块,使用两个二相四线步进电机对小车的两个后轮分别进行驱动,前轮最好用万向轮,能使小车更好地转弯; 2、小车循迹模块,在小车底部有三个并排安装的红外对管,对黑色与白色的反射信号不同,经单片机处理后对小车进行相应处理; 3、避障模块,我写的程序中对于避障模块是用中断来处理的(即安装在小车车头的红外对管检测到有障碍物后,就会向单片机的P3_2口输出一个高电平或是低电平,这时中断程序将对小车进行预先设定好的避障处理),但是在程序结构框图中,我不太会表示中断处理方式,所以就用查询的方式画了。

N Y N Y 二、Proteus 仿真图 我用Proteus 大概地仿真了小车的运行状态。图中的两个二相四线步进电机就代表小车的左右轮(假定步进电机顺时针转动方向为小车前进方向),网上有很多种驱动芯片,在仿真时我只使用L298N 芯

片来驱动步进电机。用三个单刀双制开关模拟用于小车循迹的三个红外对管的输出信号,经一个与门与三极管开关连接到P3_3口,中断程序对P1_0, P1_1, P1_2三个口进行检测,并做出相应处理。同时因为避障模块的优先级高于循迹模块,所以将外部中断0用于避障,外部中断1用于循迹。P1_3口则用于检测小车是否到达终点。 1、小车驱动模块: 使用一片298芯片驱动一个二相四线步进电机,电机的电压为12V。

智能循迹避障小车_论文设计

目录 摘要 (2) ABSTRACT (2) 第一章绪论 (3) 1.1智能小车的意义和作用 (3) 1.2智能小车的现状 (3) 第二章方案设计与论证 (4) 2.1 主控系统 (4) 2.2 电机驱动模块 (4) 2.3 循迹模块 (6) 2.4 避障模块 (7) 2.5 机械系统 (7) 2.6电源模块 (8) 第三章硬件设计 (8) 3.1总体设计 (8) 3.2驱动电路 (9) 3.3信号检测模块 (10) 3.4主控电路 (11) 第四章软件设计 (12) 4.1主程序模块 (12) 4.2电机驱动程序 (12) 4.3循迹模块 (13) 4.4避障模块 (15) 第五章制作安装与调试 (18) 结束语 (18) 致谢 (19) 参考文献 (19)

智能循迹避障小车 肖维 物理与电子信息学院电子信息工程专业 2006级9班指导教师:刘汉奎 摘要:利用红外对管检测黑线与障碍物,并以STC89C52单片机为控制芯片控制电动小汽车的速度及转向,从而实现自动循迹避障的功能。其中小车驱动由L298N驱动电路完成,速度由单片机输出的PWM波控制。 关键词:智能小车;STC89C52单片机; L298N;红外对管 Intelligent tracking and obstacle-avoid car Xiao Wei School of Physics and Electronic Information,Grade 2006 Class 9 ,Instructor:Liu Hankui Abstract:Based infrared detection of black lines and the road obstacles, and use a STC89C52 MCU as the controlling core for the speed and direction, A electronic drived, which can automatic track and avoid the obstacle, was designed and fabricated. In which, the car is drived by the L298N circuit, its speed is controlled by the output PWM signal from the STC89C52. Keywords: Smart Car; STC89C52 MCU; L298N; Infrared Emitting Diode

智能小车速度控制程序

/************************************************************************** ** 简单寻迹程序:接法 EN1 EN2 PWM输入端,本程序不输入PWM,直接使插上跳线帽,使能输出,这样就能全速运行 接上测速模块 测速模块电源+5V GND 取自于单片机板靠近液晶调节对比度的电源输出接口 把测速模块输出OUT1 OUT2 接入单片机P3。2 P3。3 P1_0 P1_1 接IN1 IN2 当P1_0=1,P1_1=0; 时左上电机正转左上电机接驱动板子输出端(蓝色端子OUT1 OUT2) P1_0 P1_1 接IN1 IN2 当P1_0=0,P1_1=1; 时左上电机反转 P1_0 P1_1 接IN1 IN2 当P1_0=0,P1_1=0; 时左上电机停转 P1_2 P1_3 接IN3 IN4 当P1_2=1,P1_3=0; 时左下电机正转左下电机接驱动板子输出端(蓝色端子OUT3 OUT4) P1_2 P1_3 接IN3 IN4 当P1_2=0,P1_3=1; 时左下电机反转 P1_2 P1_3 接IN3 IN4 当P1_2=0,P1_3=0; 时左下电机停转 P1_4 P1_5 接IN5 IN6 当P1_4=1,P1_5=0; 时右上电机正转右上电机接驱动板子输出端(蓝色端子OUT5 OUT6) P1_4 P1_5 接IN5 IN6 当P1_4=0,P1_5=1; 时右上电机反转

P1_4 P1_5 接IN5 IN6 当P1_4=0,P1_5=0; 时右上电机停转 P1_6 P1_7 接IN7 IN8 当P1_6=1,P1_7=0; 时右下电机正转右下电机接驱动板子输出端(蓝色端子OUT7 OUT8) P1_6 P1_7 接IN7 IN8 当P1_6=0,P1_7=1; 时右下电机反转 P1_6 P1_7 接IN7 IN8 当P1_6=0,P1_7=0; 时右下电机停转 P3_2接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1 P3_3接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2 P3_4接四路寻迹模块接口第三路输出信号即中控板上面标记为OUT3 P3_5接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4 四路寻迹传感器有信号(白线)为0 没有信号(黑线)为1 四路寻迹传感器电源+5V GND 取自于单片机板靠近液晶调节对比度的电源输出接口 关于单片机电源:本店驱动模块内带LDO稳压芯片,当电池输入6V时时候可以输出稳定的5V 分别在针脚标+5 与GND 。这个输出电源可以作为单片机系统的供电电源。 ****************************************************************************/ #include

相关文档
最新文档