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

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

背景:

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

目的

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

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

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

实验材料

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控制板,能否将产品做出来,解决我们生活当中的痛点,以方便我们的生活吗?


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

查看所有标签

猜你喜欢:

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

高性能网站建设进阶指南

高性能网站建设进阶指南

Steve Souders / 口碑网前端团队 / 电子工业出版社 / 2010年4月 / 49.80元

性能是任何一个网站成功的关键,然而,如今日益丰富的内容和大量使用Ajax的Web应用程序已迫使浏览器达到其处理能力的极限。Steve Souders是Google Web性能布道者和前Yahoo!首席性能工程师,他在本书中提供了宝贵的技术来帮助你优化网站性能。 Souders的上一本畅销书《高性能网站建设指南》(High Performance Web Sites)震惊了Web开发界,它揭示......一起来看看 《高性能网站建设进阶指南》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

URL 编码/解码
URL 编码/解码

URL 编码/解码