文档库 最新最全的文档下载
当前位置:文档库 › 基于Arduino的超声波壁障小车源程序

基于Arduino的超声波壁障小车源程序

基于Arduino的超声波壁障小车源程序
基于Arduino的超声波壁障小车源程序

基于Arduino的超声波壁障小车源程序

河南大学王艺

// L = 左

// R = 右

// F = 前

// B = 後

#include

int pinLF=14; // 定义6脚位左后

int pinLB=15; // 定义9脚位左前

int pinRF=16; // 定义10脚位右前

int pinRB=17; // 定义11脚位右后

int inputPin = 9; // 定义超音波接受脚位

int outputPin =8; // 定义超音波发送脚位

int Fspeedd = 0; // 前速

int Rspeedd = 0; // 右速

int Lspeedd = 0; // 左速

int directionn = 0;

Servo myservo; //myservo

int delay_time = 250; // 舵机的稳定时间

int Fgo = 8; // 前进

int Rgo = 6; // 右转

int Lgo = 4; // 左转

int Bgo = 2; // 倒车

void setup()

{

Serial.begin(9600);

pinMode(pinLB,OUTPUT);

pinMode(pinLF,OUTPUT);

pinMode(pinRB,OUTPUT);

pinMode(pinRF,OUTPUT);

pinMode(inputPin, INPUT);

pinMode(outputPin, OUTPUT);

myservo.attach(10); // 定义舵机第5脚位(PWM)

}

void advance(int a) // 前进

{

digitalWrite(pinRF,HIGH);

digitalWrite(pinRB,LOW);

//analogWrite(pinRF,100);

//analogWrite(pinRB, 0);

digitalWrite(pinLF,HIGH);

digitalWrite(pinLB,LOW);

//analogWrite(pinLF,100);

//analogWrite(pinLB,0);

delay(a * 100);

}

void right(int b)

{

digitalWrite(pinRF,LOW);

digitalWrite(pinRB,LOW);

//analogWrite(pinRF,0);

// analogWrite(pinRB, 0);

digitalWrite(pinLF,HIGH);

digitalWrite(pinLB,LOW);

//analogWrite(pinLF,100);

// analogWrite(pinLB,0);

delay(b * 100);

}

void left(int c)

{

digitalWrite(pinRF,HIGH);

digitalWrite(pinRB,LOW);

//analogWrite(pinRF,100);

//analogWrite(pinRB, 0);

digitalWrite(pinLF,LOW);

digitalWrite(pinLB,LOW);

//analogWrite(pinLF,0);

//analogWrite(pinLB,0);

delay(c * 100);

}

void turnR(int d)

{

digitalWrite(pinRF,LOW);

digitalWrite(pinRB,HIGH);

analogWrite(pinRF,0);

analogWrite(pinRB, 100);

digitalWrite(pinLF,HIGH);

digitalWrite(pinLB,LOW);

analogWrite(pinLF,100);

analogWrite(pinLB,0);

delay(d * 100);

}

void turnL(int e)

{

digitalWrite(pinRF,HIGH);

digitalWrite(pinRB,LOW);

analogWrite(pinRF,100);

analogWrite(pinRB, 0);

digitalWrite(pinLF,LOW);

digitalWrite(pinLB,HIGH);

analogWrite(pinLF,0);

analogWrite(pinLB,100);

delay(e * 100);

}

void stopp(int f) //停止

{

digitalWrite(pinRB,LOW);

digitalWrite(pinRF,LOW);

digitalWrite(pinLB,LOW);

digitalWrite(pinLF,LOW);

delay(f * 100);

}

void back(int g)

{

digitalWrite(pinRF,LOW);

digitalWrite(pinRB,HIGH);

//analogWrite(pinRF,0);

//analogWrite(pinRB, 150);

digitalWrite(pinLF,LOW);

digitalWrite(pinLB,HIGH);

//analogWrite(pinLF,0);

//analogWrite(pinLB,150);

delay(g * 100);

}

void detection() //测量三个角度(0.90.179) {

int delay_time = 250; // 舵机稳定时间

ask_pin_F();

if(Fspeedd < 10)

{

stopp(1);

back(2);

}

if(Fspeedd < 25)

{

stopp(1);

ask_pin_L();

delay(delay_time);

ask_pin_R();

delay(delay_time);

if(Lspeedd > Rspeedd)

{

directionn = Rgo; //向右走

}

if(Lspeedd <= Rspeedd)

{

directionn = Lgo; //向左走

}

if (Lspeedd < 10 && Rspeedd < 10)

{

directionn = Bgo;

}

}

else

{

directionn = Fgo; //向前走

}

}

void ask_pin_F() // 量出前方距离

{

myservo.write(90);

digitalWrite(outputPin, LOW);

delayMicroseconds(2);

digitalWrite(outputPin, HIGH);

delayMicroseconds(10);

digitalWrite(outputPin, LOW);

float Fdistance = pulseIn(inputPin, HIGH);

Fdistance= Fdistance/5.8/10;

Serial.print("F distance:"); //输出距离单位公分

Serial.println(Fdistance);

Fspeedd = Fdistance;

}

void ask_pin_L() //测出左边距离

{

myservo.write(5);

delay(delay_time);

digitalWrite(outputPin, LOW);

delayMicroseconds(2);

digitalWrite(outputPin, HIGH);

delayMicroseconds(10);

digitalWrite(outputPin, LOW);

float Ldistance = pulseIn(inputPin, HIGH);

Ldistance= Ldistance/5.8/10; // 将时间转化为距离

Serial.print("L distance:");

Serial.println(Ldistance);

Lspeedd = Ldistance;

}

void ask_pin_R() // 量出右边距离

{

myservo.write(177);

delay(delay_time);

digitalWrite(outputPin, LOW);

delayMicroseconds(2);

digitalWrite(outputPin, HIGH);

delayMicroseconds(10);

digitalWrite(outputPin, LOW);

float Rdistance = pulseIn(inputPin, HIGH);

Rdistance= Rdistance/5.8/10;

Serial.print("R distance:");

Serial.println(Rdistance);

Rspeedd = Rdistance;

}

void loop()

{

myservo.write(90); //舵机初次位置

detection(); //测量角度,判断往哪边转动if(directionn == 2) //假如directionn(方向) = 2(倒车)

{

back(8); // 倒退

turnL(2); //

Serial.print(" Reverse ");

}

if(directionn == 6) //假如directionn(方向) = 6(右) {

back(1);

turnR(6); // 右

Serial.print(" Right ");

}

if(directionn == 4) //假如directionn(方向) = 4(左) {

back(1);

turnL(6); // 左

Serial.print(" Left ");

}

if(directionn == 8) //假如directionn(方向) = 8(前) {

advance(1); // 正常前

Serial.print(" Advance ");

Serial.print(" ");

}

}

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

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

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

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.

红外避障小车讲解

目的: 本毕业设计是红外蔽障小车的设计,通过设计使学生系统的熟悉和掌握单片机控制系统设计方面的内容体系、开发流程和程序设计,培养学生具有综合运用所学的理论知识去开拓创新及解决实际问题的能力。培养学生掌握设计题的思想和方法,树立严肃认真的工作作风、培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。同时是为了掌握电路设计的方法和技巧。如何将学习到的理论知识运用到实际当中去,怎样能够活学活用,深入的了解电子元器件的使用方法,了解各种元器件的基本用途和方法,能够灵活敏捷的判断电路中出现的故障,学会独立设计电路,积累更多的设计经验,加强焊接能力和技巧,完成基本的要求。并能完美的完成这次实训。 目录 一、任务书...............................P1 二、引言..............................P2 二、要求与发挥...........................P4 三、设计摘要.............................P6 四、模块方案比较.......................P7 1.避障模块 2.驱动模块

3.控制模块 五、程序设计.........................P9 1.程序流程图 2.程序编写 六、工作原理.........................P13 七、结论............................P13 八、参考文献........................P14 九、毕业设计(论文)成绩评定表.....P15 任务: 利用单片机、红外实现避障,要求具有下述功能: 1.小车前进可以避开(前、左、右)20cm的障碍物; 2.实现下车前进时,不碰障碍物; 3.具有声音播报功能。 引言 随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器、并行和串行接口、看门狗、前置放大器、A/D转换器、D/A转换器等多种电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。这种技术促使机器人技术也有了突飞猛进的发展,目前人

超声波避障程序

1./* 程序的开头要描述你的设备 2.再来要说是脽写的日期版本 3.然后碰到问题一次一次都要写清楚 4.马达几个驱动电路都要描述 5. L = 左 6. R = 右 7. F = 前 8. B = 后 9.*/ 10.#include 11.int pinLB=6; // 定义8脚位左后 12.int pinLF=9; // 定义9脚位左前 13. 14.int pinRB=10; // 定义10脚位右后 15.int pinRF=11; // 定义11脚位右前 16. 17.int inputPin = A0; // 定义超音波信号接收脚位 18.int outputPin =A1; // 定义超音波信号发射脚位 19. 20.int Fspeedd = 0; // 前速 21.int Rspeedd = 0; // 右速 22.int Lspeedd = 0; // 左速 23.int directionn = 0; // 前=8 后=2 左=4 右=6 24.Servo myservo; // 设 myservo 25.int delay_time = 250; // 伺服马达转向后的稳定时间 26. 27.int Fgo = 8; // 前进 28.int Rgo = 6; // 右转 29.int Lgo = 4; // 左转 30.int Bgo = 2; // 倒车 31. 32.void setup() 33. { 34. Serial.begin(9600); // 定义马达输出脚位 35. pinMode(pinLB,OUTPUT); // 脚位 8 (PWM) 36. pinMode(pinLF,OUTPUT); // 脚位 9 (PWM) 37. pinMode(pinRB,OUTPUT); // 脚位 10 (PWM) 38. pinMode(pinRF,OUTPUT); // 脚位 11 (PWM) 39. 40. pinMode(inputPin, INPUT); // 定义超音波输入脚位 41. pinMode(outputPin, OUTPUT); // 定义超音波输出脚位 42. 43. myservo.attach(5); // 定义伺服马达输出第5脚位(PWM) 44. }

超声波避障小车开题报告

H a r b i n I n s t i t u t e o f T e c h n o l o g y 课程设计说明书(论文) 设计题目:超声波避障小车 院系:电气学院自动化测试与控制系 班级: 设计者: 学号: 指导教师:周庆东 设计时间:9.2~9.13 哈尔滨工业大学 哈尔滨工业大学课程设计任务书

*注:此任务书由课程设计指导教师填

开题报告 1立项依据 1.1立项目的 (1)设计一辆利用超声波传感器来实现避障功能的小车,使小车对其运动方向受到的阻碍作出各种躲避障碍的动作。 (2)进一步学习单片机原理及其应用,提高程序的编写能力。 (3)掌握单片机系统外扩器件的连接与使用,了解超声波传感器的工作原理。 (4)掌握软件和硬件调试的基本技巧与方法。 1.2立项意义 在当今社会,汽车成为了越来越普遍,人们不可缺少的交通工具。但汽车的不断增加,随之而来就是越来越多的交通事故。交通事故成为了现在越来越严重的安全隐患。所以随着汽车工业的快速发展,我们必须加强对汽车安全性能的考虑。所以,智能汽车概念应运而生,他既是汽车产业的机遇也是汽车产业的挑战。汽车的智能化必将是未来汽车产业发展的趋势,在这样的背景下,我们开展了基于超声波的智能小车的避障研究。 超声波作为智能车避障的一种重要手段,以其避障实现方便,计算简单,易于做到实时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。我国作为一个世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车产业发展必然的,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。 2主要设计内容及方案 2.1总体方案 系统采用51单片机作为核心控制单元用于智能车系统的控制,在超声波检测到障碍物之后,主控芯片根据距离值控制直流电机的转动,在与障碍物距离较大的情况下,快速前进,在与障碍物距离较小但还未到达临界转弯方向值的时候,慢速前进。在与障碍物距离很近需要转向避障时,方案上将尝试进行转向,来进行避障。 2.2设计原理 该智能车系统可分为三个主要模块:单片机主控核心模块,传感器避障模块,电机驱动模块。系统主要原理是:通过超声波避障模块(即感测模块)实时监测路面情况并及时传输给单片机。由单片机主控核心模块根据感测模块给予的信息控制小车两电机转动工作状态。电机驱动模块驱动两电机转动,实现前进或者左、右转。

小车自动避障与路径规划

第3章系统总体结构及工作原理 该系统主要以超声波测距为基本测距原理,并在相应的硬件和软件的支持下,达到机器人避障的效果。 3.1机器人总体硬件设计 3.1.1传感器的分布要求 为了全方位检测障物的分布状况,并及时为机器人系统提供全面的数据,可将所需的八个传感器均匀排列在机器人周围,相邻每对传感器互成45度角。为了避免相互干扰,八个传感器以程序运行周期为周期,进行循环测距。传感器排列示意图如下: 图3.1.1 传感器分布图

图3.1.2 硬件设计总体框架图 上图为支持机器人运行实用程序的硬件部分的总体设计框架图,由负责相关任务的同学提供。在超声波信号输入单片机以后,由存储在单片机中的主程序调用避障子程序,根据输入信号执行避障指令,并使相关数据返回主程序,转而提供给电机和LED显示器的驱动程序使用,最后,由电机执行转向指令,结果则显示在LED显示器上。

图3.1.3 软件总体框架图 由上图可知,本文作者负责的超声波避障程序为软件总体设计中的子程序部分。在主程序运行过程中,若调用超声波避障程序,机器人在自行轨迹规划后,将程序处理所得数据送给电机处理成立程序,控制电机动作。具体的避障程序设计将在第4章进行。 3.2超声波测距原理 测距原理:超声波是指频率高于20KHz的机械波。为了以超声波作为检测

手段,必须产生超生波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。超声波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器是利用压电效应的原理将电能和超声波相互转化即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。[8]超声波测距的原理一般采用渡越时间法TOF(time of flight)。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离,即:[8] D=ct/2 其中D为传感器与障碍物之间的距离,以m计,c为超声波速度,这里以340m/s计,t为超声波从发送到接收的总时间,以s计。据此原理可以用超声波传感器测得的距离为避障程序提供所需的数据。[8] 第4章轨迹规划算法的实现方案 4.1轨迹规划算法的层次化设计 根据上述材料分析,可以将机器人轨迹规划算法设计分为基础控制层、行为控制层和坐标计算层,三个层次进行。 4.1.1基础控制层设计 基础控制层可定义为基本行为层,这层算法的任务是寻找目标点,并确保机器人可以顺利到达指定目标位。在确定目的地位置的情况下,为了达到上述目的,计算机必须对机器人的方位进行时实计算。应用人工势场法原理,可以将目标点设为引力极,牵引机器人运动。对此动作建立相应的模型,可以使用建立平面坐标作为虚拟势场的方法来给机器人定义方位,将机器人关于目标点的时实偏角作为虚拟引力方向,以确定机器人下一步所需转过的角度,并时实检测,是否已到达目的地,若已到达,则可认为虚拟引力此刻为0,并发出信号控制程序终止运行总体程序。 由此,可确定基础控制层所需的各参数: (1)机器人的时实坐标x, y值,由专门的坐标计算层提供,为了提高精 确度,可以采用厘米为单位制。 (2)机器人的速度v,测量后设为定值使用。 (3)周期T,直接设置为定值使用。 (4)偏转角de,可通过机器人与横坐标之间的夹角pe,减去机器人到目 标点连线与横坐标的夹角E得到。

超声波避障小车程序设计

/****************************************************************************** *****************************/ //5路超声波避障实验:51单片机 + HC-SR04超声波 // /****************************************************************************** *****************************/ #include //器件配置文件 #include #define RX1 P3_6 //小车左侧超声波HC-SR04接收端 #define TX1 P1_7 //发送端 #define RX2 P3_3 //左前方超声波 #define TX2 P0_2 #define RX3 P2_4 //正前方超声波 #define TX3 P2_5 #define RX4 P3_5 //右前方超声波 #define TX4 P3_4 #define RX5 P3_7 //右侧超声波 #define TX5 P1_6 #define Left_moto_pwm P1_5 //PWM信号端 #define Right_moto_pwm P1_4 //PWM信号端 //定义小车驱动模块输入IO口 sbit IN1=P1^0; sbit IN2=P1^1; sbit IN3=P1^2; sbit IN4=P1^3; sbit EN1=P1^4; sbit EN2=P1^5; bit Right_moto_stop=1; bit Left_moto_stop =1; #define Left_moto_go {IN1=0,IN2=1,EN1=1;} //左电机向前走 #define Left_moto_back {IN1=1,IN2=0,EN1=1;} //左边电机向后走 #define Left_moto_Stop {EN1=0;} //左边电机停转 #define Right_moto_go {IN3=1,IN4=0,EN2=1;} //右边电机向前走 #define Right_moto_back {IN3=0,IN4=1,EN2=1;} //右边电机向后走 #define Right_moto_Stop {EN2=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 unsigned int time=0; unsigned int timer=0; unsigned long S1=0; unsigned long S2=0; unsigned long S3=0; unsigned long S4=0;

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

单片机设计智能避障小车 摘要 利用红外对管检测黑线与障碍物,并以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

超声波避障小车设计

超声波避障小车设 计

Harbin Institute of Technology 课程设计说明书(论文) 设计题目:超声波避障小车 院系:电气工程及自动化 班级: 1 21 设计者:张佳炜 学号: 11 0316 指导教师:周庆东 设计时间: .09.14- .09.25 哈尔滨工业大学

课程设计考核表 题目:超声波避障小车 学生姓名:张佳炜班级: 1 21 学号: 11 0316 实验部分考核 总结报告评分 总成绩:指导教师签字:

哈尔滨工业大学课程设计任务书

开题报告 1立项依据 1.1立项目的 (1)设计一辆利用超声波传感器来实现避障功能的小车,使小车对其运动方向受到的阻碍作出各种躲避障碍的动作。 (2)深入学习单片机原理及其应用,提高程序的编写能力。 (3)掌握单片机系统外围电路的设计,了解超声波传感器的工作原理。(4)掌握软件和硬件调试的基本技巧与方法。 1.2立项意义 汽车作为人们不可缺少的交通工具,给人类带来了极大的便利,但随着汽车的量越来越多,交通事故也越来越多。交通事故成为了现在越来越严重的安全隐患。我们必须加强对汽车安全性能的考虑。随着电子技术、信息技术、网络技术的发展,智能汽车概念应运而生,将电子信息网络和汽车接合起来实现汽车的智能化,是传统汽车产业的机遇也是的挑战。汽车的智能化必将是未来汽车产业发展的趋势,在这样的背景下,我们开展了基于超声波的智能小车的避障研究。 超声波具有穿透力强、方向性好、操作简单、方便、快速和安全等的特点,在很多 领域有着广泛的应用前景。超声波作为智能车避障的传感信号,以其避障实现方便,计算简单,易于做到实时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。作为一个发展大

基于AT89S51单片机的智能超声波避障小车

基于 AT89S51 单片机的智能 超声波避障小车
姓名: 班级: 学号:
钟洋 08 电子二班 200810330219 张儒
指导老师:

目录
摘要...........................................3 一、总体方案概述.......................................3 二、总体电路原理图....................................3 三、各模块功能介绍.................................4 (一) 、超声波测距模块................................4 (二) 、数码管显示模块................................4 (三) 、步进电机控制模块..............................6 (四) 、语音提示模块..................................7 (五) 、速度自控模块..................................8 (六) 、信号提示模块..................................8 (七) 、单片机控制模块...............................8 四、系统软件设计..................................9 五、元件清单.....................................10 六、应用前景.....................................10 六、参考文献.....................................11
2

超声波避障小车设计

Harbin Institute of Technology 课程设计说明书(论文) 设计题目:超声波避障小车 院系:电气工程及自动化 班级:1201121 设计者:张佳炜 学号:1120110316 指导教师:周庆东 设计时间:2012.09.14-2012.09.25 哈尔滨工业大学

课程设计考核表 题目:超声波避障小车 学生姓名:张佳炜班级:1201121 学号:1120110316 实验部分考核 总结报告评分 总成绩:指导教师签字:

哈尔滨工业大学课程设计任务书

开题报告 1立项依据 1.1立项目的 (1)设计一辆利用超声波传感器来实现避障功能的小车,使小车对其运动方向受到的阻碍作出各种躲避障碍的动作。 (2)深入学习单片机原理及其应用,提高程序的编写能力。 (3)掌握单片机系统外围电路的设计,了解超声波传感器的工作原理。 (4)掌握软件和硬件调试的基本技巧与方法。 1.2立项意义 汽车作为人们不可缺少的交通工具,给人类带来了极大的便利,但随着汽车的量越来越多,交通事故也越来越多。交通事故成为了现在越来越严重的安全隐患。我们必须加强对汽车安全性能的考虑。随着电子技术、信息技术、网络技术的发展,智能汽车概念应运而生,将电子信息网络和汽车接合起来实现汽车的智能化,是传统汽车产业的机遇也是的挑战。汽车的智能化必将是未来汽车产业发展的趋势,在这样的背景下,我们开展了基于超声波的智能小车的避障研究。 超声波具有穿透力强、方向性好、操作简单、方便、快速和安全等的特点,在很多领域有着广泛的应用前景。超声波作为智能车避障的传感信号,以其避障实现方便,计算简单,易于做到实时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。作为一个发展大国,应该把握未来汽车产业发展的方向,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。 2主要设计内容及方案 2.1总体方案 系统采用51单片机作为核心控制单元用于智能车系统的控制,在超声波检测到障碍物之后,主控芯片根据距离值控制直流电机的转动,在与障碍物距离较大的情况下,快速前进,在与障碍物距离较小但还未到达临界转弯方向值的时候,慢速前进。在与障碍物距离很近需要转向避障时,方案上将尝试进行转向,来进行避障。 2.2设计原理 该智能车系统可分为三个主要模块:单片机主控核心模块,传感器避障模块,电机驱动模块。系统主要原理是:通过超声波避障模块(即感测模块)实时监测路面情况并及

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(); //*此处调用看似多余,但可以确保机器人高速运转下动作的连贯性 }

51单片机程序超声波模块避障

#include #define uint unsigned int #define uchar unsigned char sbit TX=P3^2;//Trig sbit RX=P1^0;//Echo unsigned int time=0; unsigned long S=0; bit flag =0; void delay(int x) { int i,j; for(i=0;i

{ TX=1; delay(2); TX=0; } void main() { unsigned char i; unsigned int a; TMOD=0x10; EA=1; TH1=0; TL1=0; ET1=1; while(1) { RX=1; StartModule(); for(a=951;a>0;a--) { if(RX==1) { Timer_Count(); } } } }

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

封面

作者: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智能小车的意义和作用 自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。 随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。视

智能超声波避障小车

智能超声波避障小车 : 班级: 学号:

目录 摘要 (3) 一、总体方案概述 (3) 二、总体电路原理图 (3) 三、各模块功能介绍 (4) (一)、超声波测距模块 (4) (二)、步进电机控制模块 (5) (三)、单片机控制模块 (6) 四、系统软件设计 (6) 五、应用前景 (7) 六、参考文献 (8)

摘要: 现今发达的交通在给人们带来便捷的同时也带来了许多的交通事故。发生交通事故的因素有很多。当然,如果我们的汽车能够更加智能,就是说事先能预测并显示前面障碍物离车的距离,当障碍物距离很近时汽车会自动采取一些措施避开障碍物,这样就能够在很大程度上避免这些事故的发生。在本论文中,我们将会看到能够实现这一功能的智能小车。 关键字:超声波、测量、避障、单片机 一、总体方案概述 本小车使用一台AT89S51单片机作为主控芯片,它通过超声波测距来获取小车距离障碍物的距离,并且用数码管实时的显示出来,在小车与障碍物的距离小于安全距离(用软件设定)时,小车会发出“在距您车前方x(数码显示的实时距离)米的地方有一障碍物,请您注意避让”的语音提示,并且拐弯,以避开障碍物,同时会点亮相应侧边的发光二极管作为提示信号。在避开障碍物后,小车会沿直线前进。 本系统设计的简易智能小车分为几个模块:单片机控制系统、超声波路面检测系统、前进、转弯控制电机以及方向指示灯系统。它们之间的相互关系如下图1所示。 二、总体电路原理图 图1:智能小车简要原理框架图

三、各模块功能介绍 (一)、超声波测距模块 首先利用单片机输出一个40kHz的触发信号,把触发信号通过TRIG管脚输入到超声波测距模块,再由超声波测距模块的发射器向某一方向发射超声波,在发射时刻的同时单片机通过软件开始计时,超声波在空气中传播,途中碰到障碍物返回,超声波测距模块的接收器收到反射波后通过产生一个回应信号并通过ECHO脚反馈给单片机,此时单片机就立即停止计时。时序图如图1所示。由于超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离,即:S=VT/2,通过单片机来算出距离。 图1:超声波模块时序图

超声波避障小车

《单片机课程设计》 设计报告 设计课题:超声波避障小车 专业班级:电子信息工程121班 学生姓名:范东耀 指导教师:蔡岗 设计时间: 2015年7月8日 赣南师范学院科技学院数学与信息科学系

超声波避障小车 一、设计任务与要求 1.设计任务: 1、采用超声波模块实现小车自动避障功能。 2、用LCD1602显示当前的障碍距离。 2.扩展部分: 测出当前小车的行驶速度,并用LCD1602显示当前速度。 二、方案设计与论证 1设计方案 系统采用51单片机作为核心控制单元用于智能车系统的控制,驱动板则以L289N驱动芯片为核心,应用超声波模块及光电传感器和LCD液晶模块,成功的实现了小车的避障、测速和显示功能这三大功能。在超声波检测到障碍物之后,主控芯片根据距离值控制电机的转动,在与障碍物距离较大的情况下,快速前进,在与障碍物距离较小但未到达临界转弯方向值得时候,慢速前进。在与障碍物距离较近时,小车转弯,在与障碍物很近时,小车后退转弯,来进行避障。测速传感器为光电测速传感器,在单位时间内计算脉冲的次数,然后再进行转换和处理即得到所测量的速度。通过软件pwm进行调速。通过LCD1602显示障碍距离及当前的小车行驶速度。 2 原理框图 简要原理框图如图1所示。 图1 系统原理框图

三、电路设计 1 电路设计 (1)超声波测距模块: 超声波测距的原理是首先利用单片机输出一个40kHz的触发信号,把触发信号通过TRIG管脚输入到超声波测距模块,再由超声波测距模块的发射器向某一方向发射超声波,在发射时刻的同时单片机通过软件开始计时,超声波在空气中传播,途中碰到障碍物返回,超声波测距模块的接收器收到反射波后通过产生一个回应信号并通过ECHO脚反馈给单片机,此时单片机就立即停止计时。时序图如图1所示。由于超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离,即:S=VT/2,通过单片机来算出距离。超声波测距原理图如图2所示。 图2 超声波测距原理 (2)显示模块: 系统采用LCD1602显示,它不仅节省了单片机的资源,相比较数码管液晶显示更加直观、节能,同时可以直接显示字母、数字、符号等,具有灵活易操作的特性。故采用LCD显示。

自动避障红外电动小车C51程序

自动避障红外电动小车C51程序 #include"reg51.h" #include #define uchar unsigned char #define uint unsigned int #define left_infrare 0 #define right_infrare 1 #define dj_state1 0X5F //前进 #define dj_state2 0X4F //右转 #define dj_state3 0X1F //左转 #define dj_state4 0X0F //后退 #define dj_state5 0XfF //停车 #define light_off 0x0f //关转向灯 #define left_light 0X5F //左转向灯两个是5f #define right_light 0XaF //右转向灯0xaf,两个是0xbf #define back_light 0XcF //刹车灯即后灯 #define front_light 0x3f //前灯 #define light_on 0xff //开所有灯 #define true 1 #define false 0 #define LCD_Data P0 #define Busy 0x80 //用于检测LCD状态字中的Busy标识sbit c=P1^2; //转向灯使能端 uchar code talk1[]={"backward"}; uchar code talk2[]={"forward"}; uchar code talk3[]={"Turnleft"}; uchar code talk4[]={"Turn right"}; uchar flage =0x00; sbit ledcs=P1^2; //74H573的片选信号 //sbit left_led=P0^2; //左红外发射管 //sbit right_led=P0^3; //右红外发射管 sbit LCD_RS = P1^5; //LCD定义引脚 sbit LCD_RW = P1^6; // sbit LCD_E = P1^7 ; void Delay5Ms(void) { uint TempCyc = 5552; while(TempCyc--); } //400ms延时 void Delay400Ms(void) {uchar TempCycA = 5;

超声波避障技术设计说明

南 京 理 工 大 学 毕业设计说明书(论文) 作 者 : 薛玉洁 号: 6 教 学点 : 工业职业技术学院 专 业 : 电子工程 题 目 : 超声波在小车避障技术的应用设计 指导者: (姓 名) (专业技术职务) 评阅者: (姓 名) (专业技术职务) 倪瑛 副教授 副教授 戴娟

2013 年 5 月 毕业设计说明书(论文)中文摘要

毕业设计说明书(论文)外文摘要

目次 1 引言 (1) 1.1 研究背景与意义 (1) 2 超声波的避障技术 (4) 2.1 小车的避障技术 (4) 2.2 超声波的传播特性 (5) 2.3 超声波测距技术 (5) 2.4 基于单片机的超声波测距系统 (6) 2.5 超声波的衰减 (6) 3 超声波避障系统硬件设计 (8) 3.1 方案概述 (8) 3.2 方案设计 (8) 3.3 元器件介绍 (9) 3.4 超声波发射系统电路 (16) 3.5 超声波接收系统电路 (16) 3.6 相关软件、电路模块和器件清单。 (17) 4 超声波避障系统的软件设计 (19) 4.1 直流电机控制软件设计 (19) 4.2 超声波测距模块软件设计 (19) 4.3 超声波避障技术软件设计 (21) 4.4 软件与硬件的整合软件与硬件的整合 (22) 5 超声波避障系统调试 (23) 5.1 调试过程 (23) 5.2 问题分析 (26) 5.3 误差分析 (26) 致 (29) 参考文献 (30)

1 引言 1.1 研究背景与意义 随着机器人技术的发展,自主移动机器人以其活性和智能性等特点,在人们的生产、生活中的应用来越广泛。自主移动机器人通过各种传感器系统感知外界环境和自身状态, 在复杂的已知或者未知环境中自主移动并完成相应的任务。而在多种探测手段中, 超声波传感器系统由于具有成本低, 安装方便, 不易受电磁、光线、被测对象颜色、烟雾等影响,时间信息直观等特点, 对于被测物处于黑暗、有灰尘、烟雾、电磁干扰、有毒等恶劣的环境下有一定的适应能力, 因此在移动机器人领域有着广泛用。 本设计主要体现多功能小车的智能避障模式,设计中的理论方案、分析方法及特色与创新点等可以为自动运输机器人、采矿勘探机器人、家用自动清洁机器人等自动半自动机器人的设计与普及有一定的参考意义。同时小车可以作为玩具的发展对象,为中国玩具市场技术含量的缺乏进行一定的弥补,实现经济收益,形成商业价值。 智能小车系统最诱人的前景就是可用于未来的智能汽车上了,当驾驶员因疏忽或打瞌睡时这样的智能汽车的设计就能体现出它的作用。如果汽车偏离车道或距障碍物小于安全距离时,汽车就会发出警报,提醒驾驶员注意,如果驾驶员没有及时作出反应,汽车就会自动减速或停靠于路边。 超声波测距与避障系统包括硬件及软件两个部分。硬件开发基STC89S52微控制器,集成了传感器电路、信号处理电路、微控制器外围电路及电源电路等;软件设计主要包括测距算法设计和避障算法设计。其中,避障算法由单传感器避障策略、多传感器精确避障策略以及多传感器模糊避障策略组成。

相关文档