Arduino 自动避障智能小车制作教程

材料:

Arduino UNO r3

L298N电机驱动模块

小车底盘一个,万向轮一个

2个电机及匹配的车轮

9V电池盒及6个1.5V电池

超声波测距模块及其支架

9G舵机一个及其支架

杜邦线若干

小车图片:

连线说明:

Arduino UNO

2 ---> Trlg

3 ---> Echo

右轮

4 ---> IN4

5 ---> IN3

左轮

6 ---> IN2

7 ---> IN1

9 ---> 舵机橙线(数字端口)

VIN ---> L298N模块5V供电口

5V ---> 舵机红线、超声波VCC

GNG ---> 超声波GND、公共端COM、舵机棕线(接地)

L298N模块

12V供电 ---> 电源正极

COM公共端 ---> GND、电源负极

5V供电 ---> VIN

输出A ---> 左侧电机

输出B ---> 右侧电机

小车代码:

#include

#define Trig 2 //引脚控制超声波发出声波

#define Echo 3 //引脚反应接收到返回声波

#define LIN1 7 //左侧轮子

#define LIN2 6

#define RIN1 5 //右侧轮子

#define RIN2 4

//#define Steeringpin 9 //舵机控制端口

int S = 0; //初始化距离

Servo Steering; //转向舵机

void setup() {

// put your setup code here, to run once:

Serial.begin(9600); //设置比特率

pinMode(Trig, OUTPUT);

pinMode(Echo, INPUT);

pinMode(LIN1, OUTPUT);

pinMode(LIN2, OUTPUT);

pinMode(RIN1, OUTPUT);

pinMode(RIN2, OUTPUT);

// pinMode(Steeringpin, OUTPUT);

Steering.attach(9); //定义舵机所用引脚

Steering.write(90); //初始化舵机角度

delay(2000); //开机延时

}

void loop() {

// put your main code here, to run repeatedly:

Steering.write(90);

Range(); //测距函数

if(S <= 5) //距离太近不足以转弯

{

Back(); //执行后退函数

delay(300); //后退持续时间

}

else if(S >= 5 && S <= 15) //距离中等可以转弯

{

Turn(); //执行转弯判断函数

}

else //距离充足

{

Line(); //执行直行函数

}

}

void Range() //测距函数

{

digitalWrite(Trig,LOW); //测距

delay(2); //延时2微秒

digitalWrite(Trig,HIGH);

delay(10);

digitalWrite(Trig,LOW);

float distance = pulseIn(Echo,HIGH); //读取高电平时间

S = float( distance * 17 )/1000; //把值赋给S

Serial.println(S); //向串口发送S的值,可以在显示器上显示距离

}

// float distance = pulseIn(Echo,HIGH);

// S = float( distance * 17 )/1000;

// 将回波时间换算成cm

// 读取一个引脚的脉冲(HIGH或LOW)。例如,如果value是HIGH,pulseIn()会等待引脚变为HIGH,开始计时,再等待引脚变为LOW并停止计时。

// 返回脉冲的长度,单位微秒。如果在指定的时间内无脉冲函数返回。

// 此函数的计时功能由经验决定,长时间的脉冲计时可能会出错。计时范围从10微秒至3分钟。(1秒=1000毫秒=1000000微秒)

// 接收到的高电平的时间(us)* 340m/s / 2 = 接收到高电平的时间(us) * 17000 cm / 1000000 us = 接收到高电平的时间 * 17 / 1000 (cm)

void Turn() //转向函数

{

Lull(); //停止

Steering.write(170); //使舵机转到170度(左侧)

delay(1000); //留时间给舵机转向

Range(); //测距

Steering.write(90); //使舵机回复原位

delay(1000);

if(S >= 15) //距离充足

{

turnLeft(); //左转弯后退

}

else //距离不足

{

Steering.write(10); //使舵机转到10度(右侧)

delay(1000);

Range();

Steering.write(90); //使舵机回复原位

delay(1000);

if(S >= 15) //距离充足

{

turnRight(); //右转弯后退

}

else

{

Back(); //后退

int x = random(1); //产生一个随机数使小车随机转向

if(x == 0)

turnLeft();

else

turnRight();

}

}

}

void Back() //后退函数(使电机反转)

{

digitalWrite(LIN1, LOW);

digitalWrite(LIN2, HIGH);

digitalWrite(RIN1, HIGH);

digitalWrite(RIN2, LOW);

}

void Line() //直线行驶函数(使电机正转)

{

digitalWrite(LIN1, HIGH);

digitalWrite(LIN2, LOW);

digitalWrite(RIN1, LOW);

digitalWrite(RIN2, HIGH);

}

void turnLeft() //小车左转后退

{

digitalWrite(LIN1, LOW);

digitalWrite(LIN2, HIGH);

digitalWrite(RIN1, LOW);

digitalWrite(RIN2, LOW);

delay(1000);

}

void turnRight() //小车右转后退

{

digitalWrite(LIN1, LOW);

digitalWrite(LIN2, LOW);

digitalWrite(RIN1, HIGH);

digitalWrite(RIN2, LOW);

delay(1000);

}

void Lull() //停止

{

digitalWrite(LIN1, LOW);

digitalWrite(LIN2, LOW);

digitalWrite(RIN1, LOW);

digitalWrite(RIN2, LOW);

}

制作心得:

自己本身也是个小白,出于好玩尝试做了一个,翻了很多教程都看得似懂非懂自己写了一篇希望能对大家有所帮助,也方便我以后查阅

arduino 智能车组装步骤_Arduino 自动避障智能小车制作教程相关推荐

  1. arduino麦轮转弯程序_Arduino 自动避障智能小车制作教程

    Arduino 自动避障智能小车制作教程 材料: Arduino UNO r3 L298N电机驱动模块 小车底盘一个,万向轮一个 2个电机及匹配的车轮 9V电池盒及6个1.5V电池 超声波测距模块及其 ...

  2. spider pi 智能视觉六足机器人自动避障 0604

    开启自动避障 利用超声波进行探测 修改超声波的域值 资源 a5cc00e193ee42899b6ed8d5aaaa17fa

  3. arduino 智能车组装步骤_【本周福利】arduino从入门、进阶到精通学习资料包(免费滴)...

    本周福利来了 21ic网友arduinoxyz在论坛无私分享自己做项目时积累的宝贵资料,转发在此,以帮助更多需要的人. arduinoxyz: 入坑3年有余,积累了一些arduino的资料教程.部分是 ...

  4. 51单片机:自动避障红外小车代码

    #include"reg51.h" #include<intrins.h> #define uchar unsigned char #define uint unsig ...

  5. arduino 智能车组装步骤_用Arduino组装智能小车

    用Arduino组装智能小车 2014-12-12 17:26:22 阅读:0次 0x01科普: 玩过树莓派的同学可能接触过Arduino,(Arduino:开源的单板机控制器,采用了基于开放源代码的 ...

  6. 【arduino】KitteBlock自动避障小车

    原文链接:http://www.arduino.cn/thread-45399-1-1.html [KitteBlock]自动避障小车 (超级简单, 推荐新手) avirufus  注册会员  201 ...

  7. arduino超声波自动避障小车制作过程

    超声波自动避障小车 #include <Servo.h> #define Trig 2 //引脚控制超声波发出声波 #define Echo 3 //引脚反应接收到返回声波 #define ...

  8. 将循迹小车改为蓝牙控制自动避障小车#arduino

    演示视频:https://www.bilibili.com/video/BV1CM41187oh/?share_source=copy_web&vd_source=d43eaf7cae2ed3 ...

  9. 树莓派+二自由度云台制作智能小车(三)——小车运动+简单的自动避障

    配合传感器实现小车运动+自动避障 小车与避障原理 一.小车运动模块 二.避障原理 三.实现 (1)将传感器整合. (2)小车的运动代码 小车与避障原理 一.小车运动模块 小车主要是分为动力模块和控制模 ...

  10. 山东省高校机器人大赛-智能避障避险小车经验分享

    山东省高校机器人大赛-智能避障避险小车经验分享 概述 竞赛题目 详细设计过程 车体设计 现在开车 过⑧号障碍物 如何跑完全程 概述 今天是2020年2月9日,因为新冠肺炎的原因,学校依然没有要开学的意 ...

最新文章

  1. 斯坦福:「目标检测」深度学习全面指南
  2. 人工智能时代,怎样高效关注行业趋势、了解AI技术与落地?
  3. python代码有时候在命令行下和Python Shell中执行的结果不一样?
  4. 《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---32
  5. 【招聘(广州)】-年薪30W起-自助打印领域业内第一
  6. 关于android的零碎问题的整理
  7. AngularJS track by $index引起的思考
  8. 使用spring session+redis技术,解决负载均衡下的session共享问题
  9. AxureRP7.0基础教程系列 部件详解Text Area 文本段落
  10. js多个定时器 id按顺序么_定时器和时间轮系列(一): 初识
  11. 有些软件,听着听着就没了...
  12. c语言eval函数,百行代码轻便实现C#中的Eval函数
  13. 图灵学院Java架构师课程,基于java
  14. 小游戏--三子棋——N子棋(实现)
  15. 2018年度最优秀mac软件及游戏推荐,个个万里挑一
  16. 自定义控件从入门到轻生之---来个结晶
  17. 我的世界服务器权限组权限修改器,permissionsEX v1.19.5 —— 超级权限插件
  18. 回首系列01: 假如我的人生就像是在炒股
  19. (收藏必备)git clone命令下载github资源速度慢解决方法
  20. 无限长单位冲激响应(IIR)数字滤波器设计方法

热门文章

  1. 泰克吉时利Keithley数据采集器自动计量校准软件NSAT-3070
  2. Protel99SE推荐使用英文版
  3. HttpSession基础
  4. dosbox编译c语言,DOSBOX的简单使用
  5. Java画十字_用Java绘制对角线
  6. Acer4745G笔记本蓝牙驱动安装
  7. Stereoscopic Player播放器的控制
  8. java hsqldb_java – 运行脚本以使用HSQLDB创建表
  9. Python编程之二维码生成
  10. python 执行cmd命令 改变目录_Python 改变当前工作目录