从智能垃圾桶模型引发的思考?

栏目: IT技术 · 发布时间: 5年前

背景:

随着人们的生活水平不断提高,家居生活现代化是个必然的趋势。智能垃圾桶很好的解决了无需接触垃圾桶就可投放垃圾,防止交叉感染等问题。减少生活当中各种病菌交叉感染的几率;无异味溢出。但其存在需要经常更换电池,电池寿命问题。

目的

第一:通过这篇文章,大致能了解目前市面上智能垃圾桶的工作原理。

第二:当使用电池供电,可能对于此产品来讲,功耗会偏大。采用外部供电方式,是否能满足需求。

第三:设计一个产品模型可能不需要考虑很多因素,但设计一款产品考虑因素还有哪些,讨论一下。

实验材料

Arduino控制板      9G舵机     超声波模块

什么是Arduino控制板

它是一款便捷灵活、方便上手的开源型平台。对于初学者是一款极易上手的硬件。

超声波模块的工作原理

通过Trig引脚发一个 10US 以上的高电平,就可以在Echo接收口等待高电平输出;一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,就可以达到你移动测量的值了。

可能您对此还有疑惑,我们将其换成程序流程:

a.单片机引脚触发Trig测距,给至少 10us 的高电平信号;

b.模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;

c.有信号返回,通过 IO 输出一高电平,并单片机定时器计算高电平持续的时间;

d.超声波从发射到返回的时间.

计算公式:测试距离=(高电平时间*声速(340M/S))/2;

接下来,我们来上系统连接图

舵机连接图如下:

橙色:信号线 D9   红色:5V    灰色:GND

从智能垃圾桶模型引发的思考?

超声波模块连接如下:

GND——GND

Echo——数字信号 D2

Trig——数字信号  D3

GND——GND

从智能垃圾桶模型引发的思考?

连接好以后,就要编写程序了

#include   //调用库函数

Servo servo;      //定义舵机变量名

int servoPin = 9;   //定义舵机接口9,只有9或者10可用

int trigPin =2;    // // trig接2端口

int echoPin = 3;   // echo接3端口

long duration, distance;   //定义变量,用于存取数据

long aver[3];   //定义数组,用于存取数据

void setup() {     

servo.attach(servoPin);   //设定舵机的接口,9或者10接口可利用

pinMode(trigPin, OUTPUT);   //设置为输出模式 触发

pinMode(echoPin, INPUT);   //设置其为输入模式  回声

servo.write(0);    //用于设定舵机旋转角度的语句,可设定的角度 范围 是0°到180°。

delay(1000);     //延时1S;

servo.detach();  //使舵机与其接口分离,该接口9可继续被用作PWM接口。

}

//超声波测距,子程序

void measure() {  

digitalWrite(trigPin, LOW);//给一个低电平

delayMicroseconds(5);//时间为5毫秒

digitalWrite(trigPin, HIGH);//给一个高电平

delayMicroseconds(15);//时间为15毫秒

digitalWrite(trigPin, LOW);//再给一个低电平

duration = pulseIn(echoPin, HIGH);//接收高电平时间

distance = duration *0.034 / 2;//计算距离

}

void loop() {

//将测量数值记录在数组里面

for (int i=0;i<=2;i++) {   

measure();               

aver[i]=distance;     

delay(50);           

}

//算三次的平均值

distance=(aver[0]+aver[1]+aver[2])/3;

Serial.println(distance);   //打印

//如果距离小于40,转动舵机70°

if (distance<40) {

servo.attach(servoPin); //设定舵机的接口,9接口可利用  

delay(1);

servo.write(70);  //转动舵机70°

delay(5000);  //延时5秒

servo.write(0);    //转回0°

delay(1000);//延时1秒

servo.detach();      //使舵机与其接口分离,该接口9可继续被用作PWM接口。

}

}

以上写有程序及注释,可根据自己需求修改参数(主要是修改舵机角度以及延时时间—servo.write(70);  //转动舵机70°       delay(5000);  //延时5秒)

根据上述描述过程,我们就可以实现自动感应扔垃圾的需求。当然,我们可以将超声波检测模块更换成热释红外模块、触摸模块。

感想

通过制作智能垃圾桶模型,我们知道了智能垃圾桶的实现原理,在垃圾桶上安装一个传感器模块,用来检测外部环境的变化,当外部环境发生变化时,做出反应,以达到智能的效果。

在制作模型时,选用模块安装固定还相对容易,但用在现实生活中就相对比较困难,首先,普通垃圾桶没有盖子,有盖子的垃圾桶舵机安装有问题等,还有就是供电问题,Arduino可采用9V或12V充电器进行外部供电,但会受地方限制;如采用电池供电,由于模块耗电量大而容易经常更换电池。

思考

智能的真正目的是使人们的生活更加方便,而采用Arduino控制板,能否将产品做出来,解决我们生活当中的痛点,以方便我们的生活吗?


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Zen of CSS Design

The Zen of CSS Design

Dave Shea、Molly E. Holzschlag / Peachpit Press / 2005-2-27 / USD 44.99

Proving once and for all that standards-compliant design does not equal dull design, this inspiring tome uses examples from the landmark CSS Zen Garden site as the foundation for discussions on how to......一起来看看 《The Zen of CSS Design》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换