2014-3-12 15:21:14 [显示全部楼层]
15961浏览
查看: 15961|回复: 12

[项目] 夏季的灵感——自制窗帘升降机详解

[复制链接]
原文作者:Dany 原载于:DFRobot

坐在窗边有个好处,就是能够尽情的享受阳光。可是随着夏季的到来,享受变成了煎熬,Barry就是承受煎熬者之一。不过公司有个不成文的规定,下班得把所有的窗帘拉起来,据说是根据飞机起飞降落时需要拉起遮阳板的说法。因此,Barry每次上班的时候都必须要将窗帘拉上。但是,每天都做这种重复的事情很烦恼。而且每次拉窗帘的时候都很费劲,一点都不高效。做为一个机器人工程师的Barry,用现有的资源完全能够做一个窗帘遥控升降的设备。
经过一段时间的努力和实验,Barry终于完成了这个系统。

夏季的灵感——自制窗帘升降机详解图3

图1  窗帘自动遥控升降系统设备终极版

制作的过程首先得需要一个电机,其次还需要一个特制的能让电机带动窗帘升降的齿轮。两个电机很容易找到,但齿轮需要定制。Barry 用3D打印机打印了一个所需齿轮的样品模型,让工厂根据样品制造了一个金属的齿轮。在这个齿轮的中间做出一个圆槽,这样就可以嵌入窗帘拉绳。于是,一个执行机构就完成了。

夏季的灵感——自制窗帘升降机详解图4

图2  Romeo

完成了执行机构并不是最终的目标,还需要控制电机的正反转才能让窗帘顺利的升降运行。Barry搞定了Romeo( Romeo是一块Arduino,不过DFRobot设计的这块Romeo集成了电机驱动,可以直接将电机接入Romeo,不用再去找电机驱动板。)和电机的连接后,通过编程成功的将Romeo上的按键控制了窗帘的上下拉动,不过这样也出现了新的问题。虽然Barry可以用开发板上面的按键来控制电机,但是这样比较麻烦是,每次不得不走近窗口并且按住按键才能控制。想要更便捷的控制窗帘,还需要一套IR Receiver Module红外遥控器(DFR0094)和一个迷你遥控器来实现远程控制。

夏季的灵感——自制窗帘升降机详解图2


本来以为这样就很完美了,但是还是出了问题。一次Barry用遥控器将窗帘关上后去饮水,但是窗帘没有关闭,而是不停的运动,最后整个窗帘差点报废。通过这件事说明,这个系统还不够智能稳定。于是berry在原有设备的基础上增加两个限位开关,让整个系统能够在开关后完全自动,不用再考虑任何问题。此时的窗帘升降系统就能够在任何时候都能安全到达限位后自动停止,防止意外的出现。

夏季的灵感——自制窗帘升降机详解图1


需要的部件
【硬件列表】
4、  电线若干
5、  电机两个
6、12v适配器

【软件代码】
[mw_shl_code=cpp,false]#include <IRremote.h>

const int InfraredSensorPin1 = 7;

const int InfraredSensorPin2 =8;

int RECV_PIN = 11;

int E1 = 5;     //M1 Speed Control

int M1 = 4;    //M1 Direction Control

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()

{

pinMode(InfraredSensorPin1,INPUT);

pinMode(InfraredSensorPin2,INPUT);

pinMode(M1, OUTPUT);

pinMode(E1, OUTPUT);

Serial.begin(9600);

irrecv.enableIRIn(); // Start the receiver

}

void loop() {

if(digitalRead(InfraredSensorPin1) ==LOW&&digitalRead(InfraredSensorPin2) ==LOW)

{

digitalWrite(E1,LOW);

if(results.value==0xFD807F)

{

analogWrite (E1,255);

digitalWrite(M1,LOW);

}

delay(1000);

}

if(digitalRead(InfraredSensorPin1) ==HIGH&&digitalRead(InfraredSensorPin2) == HIGH)

{

digitalWrite(E1,LOW);

if(results.value==0xFD906F)

{

analogWrite (E1,255);

digitalWrite(M1,HIGH);

}

delay(1000);

}

if (irrecv.decode(&results))

{

Serial.println(results.value, HEX);



if(digitalRead(InfraredSensorPin1) ==LOW&&digitalRead(InfraredSensorPin2) ==HIGH)

{

if(results.value==0xFD807F)

{

analogWrite (E1,255);

digitalWrite(M1,LOW);

}

if(results.value==0xFD906F)

{

analogWrite (E1,255);

digitalWrite(M1,HIGH);

}

if(results.value==0xFDA05F)

{

digitalWrite(M1,LOW);

analogWrite (E1,0);

}

}

irrecv.resume(); // Receive the next value

}

}[/mw_shl_code]


tutorials

Holiday  初级技匠

发表于 2014-3-13 10:05:57

楼主这是在偷懒啊,只有步骤一,{:3_54:}
还没效果图{:3_60:}
回复

使用道具 举报

Ash  管理员
 楼主|

发表于 2014-3-13 10:09:02

Holiday 发表于 2014-3-13 10:05
楼主这是在偷懒啊,只有步骤一,
还没效果图

转载。。原文就米有啊。。
回复

使用道具 举报

Holiday  初级技匠

发表于 2014-3-13 10:11:17

Ash 发表于 2014-3-13 10:09
转载。。原文就米有啊。。

坑爹的原文,没法看他是怎么安装的。。。。不然我也做一个
回复

使用道具 举报

Ash  管理员
 楼主|

发表于 2014-3-13 10:20:22

Holiday 发表于 2014-3-13 10:11
坑爹的原文,没法看他是怎么安装的。。。。不然我也做一个

哪有窗帘给你玩啊  [抠鼻屎]
回复

使用道具 举报

Holiday  初级技匠

发表于 2014-3-13 10:27:49

Ash 发表于 2014-3-13 10:20
哪有窗帘给你玩啊  [抠鼻屎]

自己买个啊[抠鼻]。。。。。。。。。。。(你的抠鼻表情没出来,变成文字了)
回复

使用道具 举报

Ash  管理员
 楼主|

发表于 2014-3-13 10:34:55

Holiday 发表于 2014-3-13 10:27
自己买个啊[抠鼻]。。。。。。。。。。。(你的抠鼻表情没出来,变成文字了) ...

故意的 [叹气]
回复

使用道具 举报

Holiday  初级技匠

发表于 2014-3-13 10:35:36


这样啊[抽搐]
回复

使用道具 举报

lauren  高级技师

发表于 2014-3-17 13:59:05

这是个充满想象的概念=。=
回复

使用道具 举报

Youyou  初级技匠

发表于 2014-3-22 00:01:31

用变色玻璃怎么样?
回复

使用道具 举报

Angelo  初级技匠

发表于 2014-3-28 13:44:51

Youyou 发表于 2014-3-22 00:01
用变色玻璃怎么样?

非常有意思的想发,我特地到淘宝上找了一下,还真有电致变色玻璃~
买回来玩玩看~
回复

使用道具 举报

20060606  高级技匠

发表于 2020-8-24 06:11:48

为什么没有安装效果图
回复

使用道具 举报

 初级技匠

发表于 2022-4-16 13:40:08

这个不错
但是最后做出来是怎样的呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail