基于单片机的智能垃圾桶的设计.docx
《基于单片机的智能垃圾桶的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能垃圾桶的设计.docx(18页珍藏版)》请在冰豆网上搜索。
基于单片机的智能垃圾桶的设计
石家庄经济学院信息工程学院
电子信息工程专业
专业课程设计报告
题目基于Arduino的智能垃圾桶的设计
姓名王彤
学号410109060209
班级4101090102
指导教师李明亮
2014年1月8日
要求:
1.指导教师按照课程设计大纲要求完成学生课程设计指导工作。
2.课程设计任务书由指导教师照大纲要求填写,内容要全面。
3.课程设计报告由参加本学生填写。
课程设计结束时交指导教师。
4.指导教师要根据每一位学生课程设计任务完成情况,认真审核设计报告,并在课程设计结束时,给出客观、准确的评语和成绩。
5.课程设计任务书和报告要语言流畅,图表正确规范。
6.本表要用钢笔、圆柱笔填写或打印,字迹工整。
课程设计任务书
班级4101090102姓名王彤学号410109060209
课程设计题目基于Arduino的智能垃圾桶的设计
课程设计起止日期2013.12.23至2014.1.10
实习地点实验楼106
课程设计内容与要求
设计任务:
基于Arduino的智能垃圾桶
要求:
1.可以用遥控器控制垃圾桶的行走,并由人们实时随意控制;
2.垃圾桶在行进过程中可以躲避障碍物;
3.有人伸手扔垃圾时,垃圾桶盖自动打开,之后自动关闭;
4.圾桶内垃圾到达一定程度时,垃圾桶能自动发出提醒声;
指导教师:
李明亮
2013年12月23日
注:
此表可加附页
一、设计原理与技术方法
(包括:
电路工作原理分析与原理图、元器件选择、电路调试方法与结果说明;
软件设计说明书与流程图、软件源程序代码、软件调试方法与运行结果说明。
)
1.智能垃圾桶的功能分析
为实现所有功能,需要一个控制中心,即主控单元,实时接收各方面信息并处理,然后发出指令,从而实现功能。
要实现无线遥控功能,需要一个外置的遥控器,垃圾桶主体还要设置一个信号接收的模块接受遥控的指令并把信号转换为电信号传输给主控单元,再由主控单元处理并发送指令,驱动发动机转动和控制轮子以改变方向。
而对于自动避障功能,需要设置一个避障模块和电机驱动模块,能够检测前方是否有障碍。
若有,则发送电信号至主控单元,再由主控单元发送指令至发动机,从而停止行进。
需要检测环境的功能还有自动开盖功能和自动提醒垃圾已满功能。
自动开盖功能需要一个感应模块和一个轴承控制模块。
如果有人体靠近,感应模块就发送信号到主控单元,通过主控单元控制轴承控制模块,打开垃圾桶盖。
自动提醒垃圾已满功能需要一个测试模块和语音控制模块。
桶内垃圾达到一定高度时测试模块就发送信号给主控单元,从而使语音控制模块发出提醒声。
以上三个功能都需要传感器来检测外界环境从而判断是否发出信号给主控单元,实现其相应的功能。
1.1设计方案的选择
以Arduino板作为控制中心的主控单元,为实现垃圾桶的智能化,还需要加入其他功能模块,分别与主控单元相连接,接收主控单元的命令从而实现其特有功能。
需要的功能模块如下:
用于为各个模块供电的电源模块,其电源输出端分别连接上述各个模块的电源端;
用于接收遥控命令的无线信号接收模块;
用于避免障碍物的红外避障模块,用于测试垃圾高度的红外测试模块,用于自动感应人体靠近的红外感应模块;
用于驱动电机工作的电机驱动模块;
用于当垃圾桶内物品到达指定高度时,自动发出提醒声的语音控制模块。
用于当人体靠近时自动开盖的轴承控制模块。
1.2设计方案的各模块关系框图及说明
课程设计报告
图1各模块关系框图
各模块关系图如图1所示,电源模块A用于为各个模块供电的,其电源输出端分别连接所用到的各个模块的电源端。
当使用时,首先通过遥控器B1发送命令,此命令通过无线信号传输给无线电模块B2,无线模块B2将信号处理后传送至Arduino主控单元G,由主控单元G发送命令至电机驱动模块D,垃圾桶按照命令,在电机驱动模块D的驱动下实现前进、后退、左移、右移功能。
在行驶过程中,距离障碍物20cm处,垃圾桶可通过红外避障模块C1感应前方障碍物,此模块发送命令至主控单元G,再发送给电机驱动模块指令,此时垃圾桶会向左或向右转弯,控制者可根据自己的方位对垃圾桶进行实时控制以使垃圾桶到达控制者附近,控制者向垃圾桶内扔垃圾,当手靠近垃圾桶时,垃圾桶可通过红外控制模块C3发送命令到主控单元G,再由主控单元G发送命令到轴承控制模块F,使垃圾桶自动开盖,5秒后自动关盖。
如果垃圾桶内物品装满时,可通过红外测试模块C2感应到垃圾桶内物品高度,如果桶内物品高度到达距桶盖5厘米处,红外测试模块C3可向主控单元G发送命令,主控单元G向语音控制模块E传输命令,使得语音控制模块E自动发出提醒声。
2.智能垃圾桶设计器材的选择
由于时间及材料有限,我们仅利用红外避障模块和红外感应模块及Arduino板模拟了躲避障碍物,自动感应周围的人来自动开盖关盖的功能。
所需材料如表一所示:
表一设计所需器材说明表
元件名称
参考规格
数量
实物参考图
Arduino开发板
UnoR3
一块
9V电池
----
一块
红外避障模块
----
三个
红外测距模块
夏普GP2Y0D805Z0
一个
无线遥控模块
OPENJUMPER蓝牙模块v2.0
两个
红外感应模块
HC-SR501
一块
车体
Openjumper小车车体套件
一个
扩展板
UNO配套的传感器扩展板
一个
电机驱动
openjumperL298电机驱动板
一个
面包板
840孔无焊板
一个
蜂鸣器
----
一个
面包板专用线
----
若干
指示灯
LED灯
若干
2.1芯片说明
2.1.1ArduinoUNO芯片
图2ArduinoUNO芯片实物图
ArduinoUNO芯片,如图2ArduinoUNO是ArduinoUSB接口系列的最新版本,作为Arduino平台的参考标准模板。
UNO的处理器核心是ATmega328,同时具有14路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,一个16MHz晶体振荡器,一个USB口,一个电源插座,一个ICSPheader和一个复位按钮。
与51单片机相比,ArduinoUNO具有很多优势,例如功耗小、每个人模块是打包好的可以直接用,操作简单等等。
所以在这里我们选用ArduinoUNO芯片。
参考数据
(1)处理器ATmega328
(2)工作电压5V
(3)输入电压(推荐)7-12V
(4)输入电压(范围)6-20V
(5)数字IO脚14(其中6路作为PWM输出)
(6)模拟输入脚6
(7)IO脚直流电流40mA
(8)3.3V脚直流电流50mA
(9)FlashMemory32KB(ATmega328,其中0.5KB用于bootloader)
(10)SRAM2KB(ATmega328)
(11)EEPROM1KB(ATmega328)
(12)工作时钟16MHz
2.1.2HC-SR501芯片
图3HC-SR501实物图
红外感应模块可采用HC-SR501普通型人体红外感应模块热释电红外传感器。
如图3
其技术参数如下:
(1)工作电压:
DC5V至20V
(2)静态功耗:
65微安
(3)电平输出:
高3.3V,低0V
(4)延时时间:
可调(0.3秒~18秒)
(5)封锁时间:
0.2秒
(6)触发方式:
L不可重复,H可重复,默认值为H
(7)感应范围:
小于120度锥角,7米以内
(8)工作温度:
-15~+70度
(9)PCB外形尺寸:
32*24mm,螺丝孔距28mm,螺丝孔径2mm,感应透镜尺寸:
(直径):
23mm(默认)
其功能特点如下:
(1)全自动感应:
当有人进入其感应范围则输出高电平,人离开感应范围则自动延时关闭高电平。
输出低电平。
(2)两种触发方式:
L不可重复,H可重复。
可跳线选择,默认为H。
A.不可重复触发方式:
即感应输出高电平后,延时时间一结束,输出将自动从高电平变为低电平。
B.可重复触发方式:
即感应输出高电平后,在延时时间段内,如果有人体在其感应范围内活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。
(3)具有感应封锁时间(默认设置:
0.2秒):
感应模块在每一次感应输出后(高电平变为低电平),可以紧跟着设置一个封锁时间,在此时间段内感应器不接收任何感应信号。
此功能可以实现(感应输出时间和封锁时间)两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。
(4)工作电压范围宽:
默认工作电压DC5V至20V
(5)微功耗:
静态电流65微安,特别适合干电池供电的电器产品。
7.输出高电平信号:
可方便与各类电路实现对接。
把人体红外感应模块放在垃圾桶盖上,放在桶盖中心位置,一个即可。
若有条件,可放4个甚至跟多,均匀的放在桶盖边上,并联即可。
2.1.3红外避障模块原理
图4红外障传感器实物图
如图4红外避障模块采用普通的红外障传感器,该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接口输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,有效距离范围2~80cm,工作电压为3.3V-5V。
该传感器的探测距离可以通过电位器调节、具有干扰小、便于装配、使用方便等特点,可以广泛应用于机器人避障、避障小车、流水线计数及黑白线循迹等众多场合。
其主要参数说明如下:
(1)当模块检测到前方障碍物信号时,电路板上绿色指示灯点亮电平,同时OUT端口持续输出低电平信号,该模块检测距离2~80cm,检测角度35°,检测距离可以通过电位器进行调节,顺时针调电位器,检测距离增加;逆时针调电位器,检测距离减少。
(2)传感器主动红外线反射探测,因此目标的反射率和形状是探测距离的关键。
其中黑色探测距离最小,白色最大;小面积物体距离小,大面积距离大。
(3)传感器模块输出端口OUT可直接与单片机IO口连接即可,也可以直接驱动一个5V继电器;连接方式:
VCC-VCC;GND-GND;OUT-IO
(4)比较器采用LM393,工作稳定;
(5)可采用3-5V直流电源对模块进行供电。
当电源接通时,红色电源指示灯点亮;
(6)具有3mm的螺丝孔,便于固定、安装;
(7)电路板尺寸:
3.1CM*1.5CM
(8)每个模块在发货已经将阈值比较电压通过电位器调节好,非特殊情况,请勿随意调节电位器。
模块接口说明(3线制)如下:
(1)VCC外接3.3V-5V电压(可以直接与5v单片机和3.3v单片机相连)
(2)GND外接GND
(3)OUT小板数字量输出接口(0和1)
这个模块的主体是三个红外传感器。
只需要把三个红外传感器均匀的安装在小车上。
2.1.4电源
ArduinoUNO可以通过3种方式供电,而且能自动选择供电方式
(1)外部直流电源通过电源插座供电。
(