设为首页收藏本站
查看: 2376|回复: 0
收起左侧

【入门】 Arduino智能IQ灯工作坊教程

[复制链接]

该用户从未签到

发表于 2015-1-6 16:06:50 | 显示全部楼层 |阅读模式

[入门] Arduino智能IQ灯工作坊教程


智能IQ灯工作坊是一个适合软硬件结合的入门级DIY活动。

  • 在硬件上,它采用智能家居概念,做到人在灯开人走灯灭的效果,并达到节约能源的目的。还可以随你心情的变化,随时通过程序任意切换你想要的色彩。
  • 在软件上,我们将介绍Arduino集成开发环境的入门知识,编程程度不同的小伙伴们可以现场上手这个软件,学会控制灯从单色到多色过度的颜色和明暗变化。组装者可以自行选择颜色和造型,根据一定规律将单片连接成模块最终完成成品,组装出来的造型多达30种。

第一版的IQ球,只具有上电即呈现彩虹色的效果(可见视频)。有人说,如果能融入点互动元素就更好了,所以在第一版的基础上做了修改,加入了红外热释电传感。大致说下智能IQ球的功能,IQ球上装有一个人体红外热释电传感器,能检测到人的运动状态。而用到我们这里实现就是,人来灯开,人走灯灭的效果。





所需元件:
人体热释电红外传感器
Beetle控制器
RGB 全彩灯盘
Micro USB Cable
IQ球

可能需要的工具:
剪刀
烙铁
胶枪(没有也无妨)

第一步:焊接与连线

焊接和连线可以一起完成,表中罗列出了,各个元件引脚是如何一一对应的。这里就不多说了。(表格应该挺清楚的吧)



第三步:Arduino IDE(第一次使用Arduino,需要看)
如果你是第一次使用Arduino的话,需要下载Ardunio IDE并装好驱动。可以看下链接:
http://www.dfrobot.com.cn/community/forum.php?mod=viewthread&tid=1019&extra=


第四步:体验代码的神奇

简单说下原理:
这里,红外热释电就为我们的输入设备,有人进过时,就会输出一个信号,控制器(beetle)对这个信号进行处理,最后通过我们的输出设备,也就是RGB灯盘,表现出来。过程就是这么简单。


一步步慢慢来,分别说下这几样东西怎么使用(代码可下载压缩包):

一、RGB灯盘使用
(1)点亮RGB灯盘 (Example -- show_red)
可直接下载压缩包代码 (Example -- show_red)
代码效果:灯盘显示红色

setup()函数设置RGB的三个引脚,也就是上面连接的D9,D10,D11。那如何实现颜色显示呢?

我们通过analogWrite()来给9,10,11引脚0~255之间的值就和会对应一个颜色。0是最小值,255是最大值。下表中罗列了部分颜色。


(2)实现两种颜色变化(Example -- two color)
代码效果:呈现红色和绿色交替出现
图片中很明显的标出来了,为什么会呈现着两个颜色? 是因为给了0~255不同数值决定的。


(3)随机色变化(Example -- random_color)
可直接下载压缩包代码(Example -- random_color)

(4)渐变色代码(Example  -- HSV_color)
(需要加载库,把整个文件夹放入 Arduino 1.0.5/libraries)



二、红外热释电传感器使用
由于beetle上只有三个数字口,所以我们需要把红外热释电接到模拟口。

(1)串口读数(Example -- AnalogReadSerial)
代码效果:一旦检测到人,串口会输出一个大于0的值,而没有人时,串口输出0。



三、RGB与红外热释电结合

(1)单色(Example --IR_RGB )
代码效果:一旦有人,亮红色,人走了,灯熄灭。
代码中通过一个if语句,如果怎么怎么样,那就怎么怎么样,否则怎么怎么样。如果值大于0,亮红色,否则,熄灭。


(2)多色变化(Example -- IR_HSV_color)
这个就是我们最终效果的代码,实现多色变化。
(同样需要加载库,把整个文件夹放入 Arduino 1.0.5/libraries)


三、拼IQ球
不要小看IQ球,其实还挺难拼的  ^ - ^


拼完之后把RGB灯塞到IQ球里面就可以了。记得把红外热释电露在外面才能方便检测人。


本版积分规则

快速回复 返回顶部 返回列表