毕业设计 单片机智能避障扫地机器人 -物联网 嵌入式

269 篇文章 9 订阅
269 篇文章 42 订阅


0 前言

🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是

🚩 基于单片机的智能避障扫地机器人

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:4分
  • 工作量:4分
  • 创新点:3分

1 简介

本项目制作一个基于Arduino开发板的真空吸尘器、地板清洁机器人,它不仅制作简单,而且与市场上的商业产品相比成本也低得多。最重要的是,该机器人将配备超声波传感器和红外接近传感器。超声波传感器使得机器人能够避开障碍物,以便它可以自由移动,而接近传感器将帮助它避免从楼梯上掉下来。

2 主要器件

  • Arduino Pro Mini开发板
  • HC-SR04超声波模块
  • L293D电机驱动器
  • 5伏N20 电机和安装支架
  • N20电机轮
  • 开关
  • LM7805 稳压器
  • 7.4V锂离子电池
  • 红外传感器模块
  • 万能板
  • 通用便携式吸尘器

3 实现效果

在这里插入图片描述

4 硬件设计

HC-SR04超声波传感器模块

为了检测障碍物,我们使用了常见的HC-SR04超声波距离传感器,或者可以称之为避障传感器。工作原理非常简单,首先,发射器模块发送一个超声波,它在空气中传播,碰到障碍物,然后反弹回来,接收器接收该波。通过使用Arduino计算时间,我们可以确定距离。在之前关于基于Arduino的超声波距离传感器的文章中,我们非常深入地讨论了该传感器的工作原理。

模块参数

(1)模块主要电气参数

  • 使用电压:DC—5V
  • 静态电流:小于2mA
  • 电平输出:高5V
  • 电平输出:底0V
  • 感应角度:不大于15度
  • 探测距离:2cm-450cm
  • 高精度 可达0.2cm

(2)模块引脚
超声波模块有4个引脚,分别为Vcc、 Trig(控制端)、 Echo(接收端)、 GND;其中VCC、GND接上5V电源, Trig(控制端)控制发出的超声波信号,Echo(接收端)接收反射回来的超声波信号。模块如图
在这里插入图片描述

用于楼梯检测的红外传感器

为了机器人可以检测楼梯并防止自己坠落,我们使用了红外传感器。我们将IR传感器连接到Arduino开发板。红外接近传感器的工作非常简单,它有一个红外LED和一个光电二极管,红外LED发出红外光,如果有障碍物出现在这个发射光的前面,它就会被反射,反射光会被光电二极管检测到。但是反射产生的电压会非常低。为了增加它,我们可以使用运算放大器比较器,我们可以放大并获得输出。 IR 模块具有三个引脚 - Vcc、接地和输出。通常,当传感器前面有障碍物时,输出会变低。所以,我们可以用它来检测地板。如果在某一瞬间,我们从传感器检测到高电平,我们可以停止机器人,将其转回来来防止它从楼梯上掉下来。
在这里插入图片描述

原理图

我们使用三个超声波传感器来检测障碍物。因此,我们需要将超声波传感器的所有地连接起来,并将它们连接到公共地。此外,连接传感器的所有三个VCC并将其连接到公共VCC引脚。接下来,将Trig和Echo引脚连接到Arduino的PWM引脚。我们还将红外模块的VCC连接到5V,GND接到Arduino的接地引脚,红外传感器模块的输出引脚连接到Arduino的数字引脚 D2。对于电机驱动器,我们将两个使能引脚连接到5v,并将驱动器电压引脚连接到5V,因为我们使用的是5V电机。Arduino、超声波模块、电机驱动器和电机都工作在5V电压,更高的电压会损坏它,我们使用7.4伏电池,使用LM7805稳压器将其转换为5伏。
在这里插入图片描述

5 软件说明

该Arduino代码类似于基于Arduino的超声波距离传感器代码,唯一的变化是多了地板检测。
定义连接到Arduino开发板的Trig引脚和Echo引脚。在本文中,我们有三个Trig引脚和三个Echo引脚。请注意,1表示左传感器,2表示前传感器,3表示右传感器。

const  int trigPin1 = 3;
const int echoPin1 = 5; 
const int trigPin2 = 6;
const int echoPin2 =9; 
const int trigPin3 = 10;
const int echoPin3 = 11;

然后,我们定义了距离相关的所有变量,它们都是(int)类型变量,对于持续时间,我们选择使用(long)。同样,我们每个都有三个。

long duration1;
 long duration2;
 long duration3;
int distanceleft;
int distancefront;
int distanceright;

接下来,在setup()函数中,我们需要使用pinModes()函数将所有相关引脚作为输入或输出。要从模块发送超声波,我们需要将Trig引脚设为高电平,所有Trig引脚都应定义为OUTPUT。为了接收回声,我们需要读取Echo引脚的状态,所有Echo引脚都应定义为INPUT。另外,我们启用串口监视器进行故障排除

pinMode(trigPin1, OUTPUT);
pinMode(trigPin2, OUTPUT);
pinMode(trigPin3, OUTPUT);
pinMode(echoPin1, INPUT); 
pinMode(echoPin2, INPUT);
pinMode(echoPin3, INPUT);
Serial.begin(9600);

以下这些数字引脚被定义为电机驱动器的输出。

pinMode(4, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(12, OUTPUT);

与每个传感器保持距离后,我们可以借助if语句控制电机,从而控制机器人的运动。这非常简单,首先,我们给出的障碍物距离值为15厘米(根据需要更改此值)。然后我们根据该值给出条件。例如,当障碍物进入左传感器的前方(即左传感器的距离应小于或等于15 cm)并且其他两个距离都很高(这意味着该传感器的前方无障碍物)时,然后使用digital write函数,我们可以将电机向右驱动。

if ((distanceleft <= 15 && distancefront <= 15 && distanceright > 15) || (distanceleft <= 15 && distancefront > 15 && distanceright > 15))

以下代码的用于向右移动机器人:

 digitalWrite(4, HIGH);
 digitalWrite(7, LOW);
 digitalWrite(8, HIGH);
 digitalWrite(12, LOW);

如果机器人检测未遇到楼梯,则该值更改为 1,机器人将向左移动。左转后,‘a’ 的值从 1 变为 0。

 if ((a==1) &&(s==LOW) ||(s==LOW) && (distanceleft <= 15 && distancefront <= 15 && distanceright > 15) || (s== LOW) && (distanceleft <= 15 && distancefront <= 15 && distanceright > 15) || (s==LOW) && (distanceleft <= 15 && distancefront > 15 && distanceright > 15) || (distanceleft <= 15 && distancefront > 15 && distanceright > 15))
  {
    digitalWrite(4, HIGH);
    digitalWrite(7, LOW);
    digitalWrite(8, LOW);
    digitalWrite(12, HIGH);
    delay(100);
    a=0;
  }

以下代码用于向左移动机器人:

 if ((s==LOW)&&(distanceleft > 15 && distancefront <= 15 && distanceright <= 15) ||(s==LOW)&& (distanceleft > 15 && distancefront > 15 && distanceright <= 15) ||(s==LOW)&& (distanceleft > 15 && distancefront <= 15 && distanceright > 15) )
    {
    digitalWrite(4, LOW);
    digitalWrite(7, HIGH);
    digitalWrite(8, HIGH);
    digitalWrite(12, LOW);
  }

6 最后

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
新能源科学与工程 扫地机的智能控制系统设计 组员 扫地智能控制系统设计全文共27页,当前为第1页。 01 02 03 04 CON TENTS 智能扫地机控制系统简介 采用单片微控器 智能扫地机各系统分析 扫地机系统设计 扫地智能控制系统设计全文共27页,当前为第2页。 01 智能扫地机控制系统简介 Part One 扫地智能控制系统设计全文共27页,当前为第3页。 智能扫地机控制系统简介 目前,各各样的服务机器人越来越多应用于人们的生活中,从事着与人们生活息息相关的服务工作,极大地提高和改善了人们的生活质量。室内智能扫地机器人就是在这种背景下诞生的一种家庭服务机器人。室内智能扫地机器人的路径规划采用区域充满的规划方法,目标是在设定区域内寻找一条从始点到终点且经过所有可达点的连续路径。根据建立的扫地机器人平台,提出清扫机器人随机运动路径规划算法。机器人利用其上安装的红外传感器和摄像头来识别和感知房间环境,机器人开始以螺旋运动方覆盖房间的空白区域,当遇到碍物时,启动碍物应对策略,通过计算机软件仿真和在房间环境中进行实验验证了该算法的有效性。 扫地智能控制系统设计全文共27页,当前为第4页。 02 采用单片微机控制器 Part Two 扫地智能控制系统设计全文共27页,当前为第5页。 单片微控器 本设计以AT89C51单片机作为检测和控制核心。是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机。兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元。 扫地智能控制系统设计全文共27页,当前为第6页。 AT89C51 主要性能参数 1.与MCS-51产品指令系统完全兼容 2.有4K字节可重擦写Flash闪速存储器 3.有1000次的擦写周期 4.全静态操作:0Hz~24MHz 5.有128×8字节的内部RAM 6.有32个可编程I/O 口 7.有2个16位定时/计数器 8.有6个中断源 9.低功率空闲和掉电模 扫地智能控制系统设计全文共27页,当前为第7页。 AT89C51 引脚 VCC:电源电压 GND:接地 P0口:P0口是一组8位漏极开路型双向I/O,也即地址/数据总线复用口。 P1口:P1口是一个携带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。 P2口:P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。 P3口:P3口是一组带有内部上拉电阻的8位双向I/O口,P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。 扫地智能控制系统设计全文共27页,当前为第8页。 AT89C51 引脚 表2.1 端口引脚第二功能表 端 口 引 脚 第 二 功 能 P3.0 RXD (串行输入口) P3.1 TXD (串行输出口) P3.2 (外中断0) P3,3 (外中断1) P3.4 T0 (定时/计数器0) P3.5 T1 (定时/计数器1) P3.6 (外部数据存储器写选通) P3.7 (外部数据存储器读选通) 扫地智能控制系统设计全文共27页,当前为第9页。 03 智能扫地机各系统分析 Part Three 扫地智能控制系统设计全文共27页,当前为第10页。 3 智能扫地机各系统分析 该智能系统采用红外传感器、光电传感器、接触传感器完成自动。用光电编码器检测电机的转速。利用PWM技术来动态控制电动机的转动方向和转速。通过软件编程实现清扫机行进、执行清扫任务、绕、停止的精确控制以及检测数据的存储、显示。通过对电路的优化组合最大限度地利用AT89C51单片机的全部资源。P0口用于数码管显示,P1口用于电动机的PWM驱动控制,P2、P3口用于传感器的数据采集与中断控制。这样做的优点是:充分利用了单片机的内部资源, 降低了总体设计的成本。总系统框图下图所示。 扫地智能控制系统设计全文共27页,当前为第11页。 扫地机各系统 传感器系统 驱动系统 红外遥控系统 浮动开关电路 看门狗电路 液晶显示电路 红外遥控是目前使用最广泛的一种通信和遥控手段。主要用来来控制智能扫地机的清扫方及开机与关机。 浮动开关是一个安装在轮子内侧的机械开关,轮子上有弹簧装置,当轮子浮起时,开关断开扫地机停止前进,实现了防跌落功能。 采用2行16个字的DM-162液晶模块,通过与单片机连接,编程,完成显示时间及清扫机行进速度的功能。 3 智能扫地机各系统分析 扫地智能控制系统设计全文共27页,当前为第12页。 3.1 传感器系统 内传感器系统 主要用于采集系统自身状态的信息,比如速度、加速度、轨迹、位置等。这类传感器主要有测速发电机、加速度计、编码器、陀螺仪、电子罗盘等。 外

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值