arduino智能避障小车避障程序

arduino智能避障小车避障程序

ID:956862

大小:498.50 KB

页数:14页

时间:2017-10-19

arduino智能避障小车避障程序_第1页
arduino智能避障小车避障程序_第2页
arduino智能避障小车避障程序_第3页
arduino智能避障小车避障程序_第4页
arduino智能避障小车避障程序_第5页
资源描述:

《arduino智能避障小车避障程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、首先建立一个名为modulecar.ino的主程序。//modulecar.ino,玩转智能小车主程序#include//导入舵机库#include//导入NwePing库//对照系统配线方案依次指定各I/OconstintENA=3;//左电机PWMconstintIN1=4;//左电机正constintIN2=5;//左电机负constintENB=6;//右电机PWMconstintIN3=7;//右电机正constintIN4=8;//右电机负const

2、inttrigger=9;//定义超声波传感器发射脚为D9constintecho=10;//定义传感器接收脚为D10constintmax_read=300;//设定传感器最大探测距离。intno_good=35;//*设定35cm警戒距离。intread_ahead;//实际距离读数。ServosensorStation;//设定传感器平台。NewPingsensor(trigger,echo,max_read);//设定传感器引脚和最大读数//系统初始化voidsetup(){Serial.be

3、gin(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);sensorStati

4、on.write(90);//舵机复位至90°delay(6000);//上电等待6s后进入主循环}//主程序voidloop(){read_ahead=readDistance();//调用readDistance()函数读出前方距离Serial.println("AHEAD:");Serial.println(read_ahead);//串行监视器显示机器人前方距离if(read_ahead

5、/然后左右查看,分析得出最佳路线goForward();//*此处调用看似多余,但可以确保机器人高速运转下动作的连贯性}elsegoForward();//否则就一直向前行驶}主程序用到了两个库,Servo库是IDE自带的,NwePing库是第三方库,需要下载安装。接下来建立一个名为move.ino的标签。//move.ino,机动模块。//刹车voidfastStop(){Serial.println("STOP");//串行监视器显示机器人状态为STOP(停止)//左电机急停(注:L298N和L2

6、93D均带有刹车功能,在使能成立的条件下,同时向两相写入高电平可令电机急停,详见芯片手册)digitalWrite(ENA,HIGH);digitalWrite(IN1,HIGH);digitalWrite(IN2,HIGH);//右电机急停digitalWrite(ENB,HIGH);digitalWrite(IN3,HIGH);digitalWrite(IN4,HIGH);}//前进voidgoForward(){Serial.println("FORWARD");//串行监视器显示机器人状态为F

7、ORWARD(前进)//左电机逆时针旋转analogWrite(ENA,106);//左电机PWM,可微调这个数值使小车左右两侧车轮转速相等,右电机同理digitalWrite(IN1,LOW);digitalWrite(IN2,HIGH);//右电机顺时针旋转analogWrite(ENB,118);digitalWrite(IN3,HIGH);digitalWrite(IN4,LOW);}//原地左转voidturnLeft(){Serial.println("LEFT");//串行监视器显示机器

8、人状态为LEFT(向左转)//左电机正转analogWrite(ENA,106);digitalWrite(IN1,HIGH);digitalWrite(IN2,LOW);//右电机正转analogWrite(ENB,59);//*微调这个数值,使转弯时内侧车轮起主导作用。相当于让小车向后打一把轮再拐弯。右转同理digitalWrite(IN3,HIGH);digitalWrite(IN4,LOW);delay(205);//*延迟,数值以毫秒为单位,调

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。