今天为大家分享一个Arduino自动避障小车的完整制作过程,昨天有朋友咨询想做一个自动施肥的创意,但说实话Arduino这个单片机是比较简单的,做一些简单的应用还可以,涉及到复杂的应用不管是从算力还是接口方面都稍显不足。不过整体而言还是很适合大家入门单片机的。

关于单片机方面,波波本身也没有经过专业的学习,而是因为本身爱好编程和电子业余学习。因此分享的笔记中难免有不足之处。还望大家指正。

首先看下小车安装好的效果图:

image

想做一个Arduino 自动避障智能小车我们至少需要以下几种材料,当然类似螺丝刀这样的工具就不说了。

1、Arduino主板一块(不是必需的,如果大家有Esp8266这样的芯片,也可以用来开发成网络控制的小车)

2、L298N电机驱动模块,作用驱动两个轮子的直流电机。

3、超声波模块,陀机及其支架。

4、小车底盘、万向轮、电池盒、接线。

材料准备好了,我们要按照图片所示安装起来,最后一步是写入程序。程序源码如下:

#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);

}

程序烧录完毕,我们就可以上电测试了。喜欢的朋友们别忘了点个赞哟~~

本文转自“菠菜园”,原文:https://www.zkii.net/tech/arduino/2227.html

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

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

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

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

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

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

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

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

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

  5. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第5章-基于骨干网络的多智能体系统群集运动与避障控制

    第4章 回到目录 第6章 第5章-基于骨干网络的多智能体系统群集运动与避障控制 5.1 研究背景 5.2 预备知识 5.2.1 问题描述 运动方程 (5.1) 5.2.2 流体力学基础 可压缩性 黏性 ...

  6. 基于Wemos D1避障WiFi小车及智能垃圾桶设计

    基于Wemos D1避障WiFi小车及智能垃圾桶设计 一.实验器材 主控芯片 Wemos D1 其他器材 HC-SR04超声波.L9110s电机.ESP82660WiFi模块.蜂鸣器 所需设备 TCP ...

  7. 35、基于51单片机自动灭火避障智能小车 消防灭火小车系统设计

    摘要 智能作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途.智能小车就是其中的一个体现,本次设计的多功能智能灭火避障小车 ...

  8. RVO:实时多智能体导航的交互速度避障

    原文地址:https://www.researchgate.net/publication/221073351_Reciprocal_Velocity_Obstacles_for_Real-Time_ ...

  9. c语言智能车跑道检测程序,基于单片机的智能循迹避障小车(附电路原理图,程序清单)...

    基于单片机的智能循迹避障小车(附电路原理图,程序清单)(论文10000字) 摘要:目前,移动机器人的开发和研究越来越令人瞩目,而智能循迹壁障小车作为移动机器人的一个重要分支,非常值得我们探索和讨论.智 ...

  10. Nooploop AutoRobo-A小车 TOFSense 激光避障 智能小车

    文章目录 1.AutoRobo-A 1.1.产品介绍 1.2.视频演示 1.3.资料获取 2.模式介绍 2.1.跟随避障 2.1.1.LinkTrack AOA跟随 2.1.2.TOFSense避障 ...

最新文章

  1. php中操作mysql的函数库
  2. 一文完全理解定时器实现技术
  3. 最优控制理论 一、变分法和泛函极值问题
  4. 【视频】v-html的使用
  5. [vue] vue组件里的定时器要怎么销毁?
  6. 将本地项目上传到Github的两种方式 1.在线上传 2.使用Git客户端上传
  7. Android仿探探卡片拖拽,[转]仿探探拖拽卡片效果Vue3实现
  8. python 数据类型 之 tuple 元组
  9. maltab利用plot画图后更改线条颜色
  10. 解决CentOS无法解析域名的问题
  11. SQL5 查找所有员工的last_name和first_name以及对应部门编号
  12. 吴伯凡-认知方法论-如何消除认知阑尾
  13. adobe dreamweaver cs6 css,Adobe Dreamweaver CS6
  14. SARS-CoV2_ARTIC_Illumina新冠病毒分型和突变分析
  15. 创建工作生活新范式 开拓经济增长新空间
  16. Linux计算时间间隔
  17. 软件测试中的“汽车车载导航系统项目”讲解
  18. GeoJson Style
  19. ll -h和du -sh的区别
  20. 如何快速提升自己的能力?

热门文章

  1. 数字电路与系统设计(一)
  2. 网络编程-在线英英词典项目
  3. c 语言鼠标钩子,线程钩子(鼠标钩子) | C/C++程序员之家
  4. 软件观念革命:交互设计精髓_“被催债”的设计推荐书单
  5. 《The Django book 2.0中文译本》PDF
  6. ArcGIS符号库下载 | 制图规范、三调、1:1万地形图、土地利用总体规划图.....
  7. 数字化测图是利用计算机自动绘制地形图,《数字测图原理与方法》下学期总复习...
  8. 【虚幻引擎4系列教程】第1章:虚幻引擎4的安装指导
  9. 绿云酒店管理系统 服务器要求,绿云宾馆管理软件系统基础-20210728170313.docx-原创力文档...
  10. 高斯公式积分matlab,数值分析 高斯—勒让德积分公式