妖姬

妖姬 – 让你的生活有点“色”

(本项目代码托管在github:https://github.com/automaticdai/YAOJI

51da29afaf6e7

一、项目介绍

● 什么是妖姬

妖姬是互联网时代的宠儿,是一种兼容办公室与居家生活的桌面电子植物。她不仅仅是一展能变换万千色彩的LED灯,她也像真实的植物一样具有情感与生命,她是夜色下妩媚的女神,是你调节生活压力的小玩物,也是你居家生活不可缺少的助手。

在”极客行动“编程大赛现场对于妖姬设计思路的解说:

● 自由调光

妖姬基于开源硬件Arduino,五片全彩LED是她的霓裳,可以通过iPhone或Android手机控制她的颜色,什么颜色由你定!

● 情景模式

孤枕难眠:可化作一朵白色雪莲,做你的书童陪你挑灯夜战,做小夜灯帮你吸引蚊子。
激情四射:多种颜色变换,炫舞效果,不同的颜色,按照设定好的节奏闪动。
静如流水:她在夜晚尽展其温柔一面,通过柔和的灯光变换,让你感受从未有过的宁静。
舞动音乐:妖姬随着音乐的旋律,变为月夜下的舞娘。

● 呵护妖姬

妖姬具有独特的生命系统,要像呵护女朋友一样呵护她,您的悉心呵护才能让她茁壮成长,她能通过自身的颜色变化呈现目前的生命状态。开心时心花怒放,不开心时候怒火冲天。当你看到她显示红色的时候,说明她生气了,在发火呢。赶紧去哄哄她。如果看上去情况不妙,那就该打开app给她浇水了!

● 妖姬天气

妖姬不止是一个风华绝代的玩物,她还是您的私人气象站。妖姬具有多种环境传感器,只要打开手机APP,就能看见家中温度、湿度、照度情况,真是太赞了!

● 妖姬助理

妖姬可以通过闪烁的方式提醒手机的新来电或短消息。通过设定定时事件的时间,可以在时间到达后及时提醒你!

 

二、系统设计

妖姬通过wifi网络与其他设备进行通信,在wifi网络中,其自身作为无线通信热点(AP)。

数据通信的内容包括:链接的维持,RGB调光值等数据的下行,控制命令的下行,温湿光等传感器数据的上行。

妖姬与外部设备通信需遵循“妖姬 – 无线网络通信数据接口”规范: Github地址

System Architecture
Figure 2.1  妖姬系统结构图

 

三、硬件设计

3.1  硬件整体设计

妖姬基于开源硬件Arduino,考虑到体积和成本的因素,所使用的控制器型号为Arduino Nano,其整体硬件结构图如下:

Hardware Architecture V1_3
Figure 3.1  妖姬硬件结构图

妖姬所使用的主要元器件有:

控制器:Arduino Nano
通信模块:RM04,uart转wifi模组
LED:5050贴片RGB灯珠
调光器:TM1809,9通道LED PMW调光器
温湿度传感器:DHT11
光照强度传感器:BH1750
声音传感器:麦克风

3.2  RGB花瓣

Yaoji_Top_V1_0
Figure 3.2  RGB花瓣原理图

3.3  Wifi控制器R2Cloud

控制器的底板在设计时,不仅考虑了本项目的需求,还考虑了日后的扩展性和可升级性。

考虑到日后可能不再使用wifi模块,我预留了一组额外的UART,可以接蓝牙或者RF模块。为了解决wifi模块电平(3v3)与MCU电平(5v)不一致的问题,我简单的使用了分压电阻进行分压,实测可行。

电源供电上,R2Cloud即支持直接使用Nano的USB口进行供电,也支持通过外接5v电压进行供电。因为wifi模块功耗较大,供电电流至少在300mA以上。

R2Cloud_V1_0
Figure 3.3.1  wifi控制器R2Cloud原理图

整版在设计时,充分借鉴了市场上现有的Arduino模块,在接口上做到完全兼容。R2Cloud共有以下接口:
1、8路Digit接口
2、6路Analog接口
3、3路PWM接口
4、3个iic接口
5、1个UART接口

DSC03963
Figure 3.3.2 R2Cloud实物图

 

四、Arduino软件设计

top
                                      Figure 4.1. 程序运行状态图

 

五、手机客户端设计

5.1  任意调节led颜色

程序提供了一个全彩色盘,用户在色盘上滑动选择相应的颜色,妖姬led灯就呈现出同样的颜色。tiaose

5.2  选择预置模式调节

App中预置了两种模式,分别是静如流水、动如脱兔。其中选择静如流水则妖姬呈现出一种静态柔和的模式。选择动如脱兔则呈现动态绚烂的模式。

mode

5.3  摇一摇给妖姬换衣服

打开App晃动手机,手机检测到此动作改变App中妖姬人物的衣服颜色,同时传递给妖姬(硬件),(妖姬)硬件改变灯的颜色。

5.4  手机与妖姬(硬件)互动

妖姬内置了光线,温度、湿度传感器,以及加速度传感器。光线传感器对应到妖姬App上的生命值,启动App妖姬的生命值为100,随着时间的增长,在光线不够的情况下,生命值不断下降,这时,给予光照,生命值不断回升。温湿度直接体现于App界面上,会显示当前妖姬周边的温湿度。加速度传感器则为互动的核心,晃动妖姬,传感器检测到震动,通过socket传递到App中App显示花瓣落下的场景。
main

5.5  App视频演示

 

贡献者清单

Project Contributor

| YunFei   | 系统设计,Arduino软件设计,项目追踪

| Barry     | 系统设计,ios手机客户端设计

| Zhong    | 硬件方案设计,PCB设计

| 光线      | 光效果设计,机械加工

| leepood | Android手机客户端设计

| Sun       | 妖姬助理的Ideas

 

项目进度

Project Trace

2013/07/14  进行了项目文档的整理与更新

2013/07/06  参加GeekOn极客大赛,完成了初步的软硬件和手机App设计,公开亮相视频:http://www.yfworld.com/?p=1765

2013/07/02  完成了音频分析调光功能,效果不如想象的好,继续调试。

2013/06/30  手机调光演示(使用普通LED光罩):http://www.yfworld.com/?p=1756

2013/06/29  初步完成了与手机App的数据对接,设计了控制板PCB图。

2013/06/27  完成了RGB花瓣PCB的焊接和调试。

2013/06/26  讨论了手机UI,设计了底部控制板原理图。

2013/06/24  更新了系统硬件结构图,确定了UDP通信协议。

2013/06/23  完成了RGB花瓣部分的PCB设计。github中更新了一些参考资料。

2013/06/20  确定了RGB花瓣的设计方案,http://www.yfworld.com/?p=1706

2013/06/17  调试了TM1809驱动3路RGB LED。

2013/06/15  完成了元器件的选型与采购,绘制了系统结构图。测试了温湿度传感与wifi模块。

2013/06/11  项目代码托管在github:https://github.com/automaticdai/YAOJI

2013/06/10  项目正式在GeekOn立项:http://geekon.geekstack.org/projects/51b5fc6ba29a55724e00000f

Leave a Reply

3 Comments on "妖姬"

Leave a Reply

Sort by:   newest | oldest | most voted
ZC
Guest

项目代码怎么是空的啊

leepood
Guest

写得不错

wpDiscuz