调戏悟空排解压力装置

2015-12-107.2万
AI 快速预览详细 收起
调戏悟空排解压力装置是一款基于手势传感器和0.5寸OLED屏幕的互动玩具。主要硬件包括红外手势传感器、0.5寸OLED显示屏和Beetle控制器。通过手势识别和图形显示,用户可以进行互动操作,从而达到解压的效果。适合家长和孩子一起动手制作,培养孩子的动手能力和创造力。
                 调戏悟空排解压力装置



                                                                                          
         时间嗖一下就过去了,2015年的尾声已经临近。羊年即将过去,猴年就要到来。

          日子过得虽快,心态总归要放好的。

         手里正好有DFrobot推出的两款新品神器。0.5寸OLED液晶屏幕和手势传感器,准备制作一款猴年的解压互动装置,放松心态,迎接新年。



先上一个不带外壳的效果



一,零件清单:

   SEN0187  红外手势传感器(带RGB/环境光检测)   X1

     0.5英寸OLED显示屏                                X1

    DFR0282 Beetle控制器(兼容Arduino Leonardo)    X1

     LR44纽扣电池盒 3颗装                            X1

备注:以上配件均可以在DFRobot商城购买。

二,电路连线图

调戏悟空排解压力装置图1





三,工作原理图


调戏悟空排解压力装置图2



四,3D外壳模型



          调戏悟空排解压力装置图3      

正面外壳

      调戏悟空排解压力装置图4

        背面外壳     


     调戏悟空排解压力装置图5

底部外壳


五,程序与硬件回顾:


1,手势传感器

   调戏悟空排解压力装置图6



硬件信息提示:

集手势,光源强度、颜色识别为一体,尺寸却只有指甲盖那么大。
RGB手势传感器采用的是I2C通讯,同时在监测到有手势的动作时,INT输出一个低电平,用于触发中断。
因此将传感器的I2C Pin脚(SDA、SDL)与控制器的Pin脚连接即可,本例中断Pin脚选择(D0)。

安利下leonardo类控制板的中断引脚为(D0,D1,D2,D3),其中I2C对应的引脚为(D2,D3).
因为这款手势传感器同时使用了I2C 和中断,为了避免冲突。所以只能选择D0和D1作为中断的引脚。

相关代码:

函数:attachInterrupt(interrupt, function, mode)
功能:对中断引脚进行初始化配置
参数:
interrupt,中断编号,注意,这里的中断编号并不是引脚编号。
function, 中断函数名,当中断被触发后即会运行此函数名称所代表的中断函数
mode, 中断模式。

可用的中断触发模式




调戏悟空排解压力装置图8

常见Arduino控制器的中断编号

调戏悟空排解压力装置图9


函数:apds.readGesture()
功能:读取手势的信息
参数:无
返回值: UP          向上挥手
                 DOWN    向下挥手
                 LEFT     向左挥手
                 RIGHT    向右挥手
                 FAR     手势由近到远
                  NONE    无法识别的手势


2. 0.5寸OLED屏幕
 
调戏悟空排解压力装置图7
硬件提示

  这是一款非常小巧的OLED显示屏,只有0.5英寸左右,像素为60*32,只相当于你的指甲盖一般大小.
  每个像素都可以由控制芯片单独控制,可以组合任意的图形,显示任意的图像和文字。并且自发光OLED显示屏,并不需要背光,极大地减少了屏幕运行时所需的电量。

  本款OLED显示屏采用模拟SPI通信,需要占用5个控制器引脚。

如何用OLED 屏幕显示任意图形

a,打开InkScape 软件。 选择 文件>>文档属性。

     在自定义尺寸一栏,选择宽度为56,长度为32.单位选为PX

    调戏悟空排解压力装置图10

b,绘制所需图形,并保存为PNG格式


  调戏悟空排解压力装置图11

c,用画图软件打开,并另存为BMP格式。


  调戏悟空排解压力装置图12

d,得到图片对应的数据代码
                    
                    在取模软件(字模提取V2.2)中打开所保存的BMP格式文件。设置取模方式设置为:“横向取模,字节倒序”, 单击选择“C51格式”
      图片下方即会出现该图片对应的数据代码。
     调戏悟空排解压力装置图13
e,编写代码 

                    在Arduino程序中新建一个供显示专用的数组bitmap[]用于保存这些数据,数据的定义方式如下:
                    static unsigned char bitmap[] u8g_PROGMEN={
                     //通过取模得到的位图数据。
                      }

                   要显示该位图数组,会用到drawXBMP() 函数
                   函数:drawXBMP(x,y,width,height, bitmap)
      功能:显示位图数组
                   参数: x,y为所绘制图形的左上角的位置。
                              width,height为所绘制图形的宽度和长度。
                              bitmap为数组名






3. Beetle控制器
                                                                                   调戏悟空排解压力装置图14


Beetle是Arduino Leonardo的极简版本,具备和Leonardo类似的强大应用能力,特别适于一次性的DIY项目制作和可穿戴电子应用。

考虑到本次应用需要使用较多的引脚,所以我们需要挖掘下Beetle的潜力。

   调戏悟空排解压力装置图15

查询Beetle版的电路原理图,我们可以在Beetle的ICSP接口处发现小惊喜,ICSP的MISO引脚对应控制器的D14SCK对应D15 MOSI对应D16。











为补充后续细节,帖子还在编辑中。。。。。。。先占个坑。


            
  







创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(35)
JOVI
JOVI
学习学习
派大星ym
派大星ym
,,,,
派大星ym
派大星ym
脑洞无敌
20060606
20060606
手势传感器能传感哪些手势
小马1
小马1
啊啊啊啊 做的真不错 我非常喜欢 啊啊啊啊
春风化雨
春风化雨
哇塞......
iooops
iooops
啊悟空
svw
svw
取模软件第一次听说, LZ V5, 学到知识了, 拜读
hnyzcj
hnyzcj
求取模案例,请楼主详细介绍下。
qq913622228180
qq913622228180
路过…………
qing1987
qing1987
哈哈哈 创意无极限~
swanglei
swanglei
还没有编辑完?这个设计真的很不错。。
luna
luna
@boris,你做好了吗?参加这个活动吧~https://mc.dfrobot.com.cn/thread-12096-1-1.html
Boris_Liu
Boris_Liu
作者
回复luna

外壳设计不太行,可能要延后了。
free
free
感觉棒棒的,那个取模很萌:)
free
free
挺萌的:)
tyjjr
tyjjr
厉害厉害
iooops
iooops
啊好萌啊:D
微笑的rockets
微笑的rockets
我很看好这个项目成为新年第一个项目啊。
Boris_Liu
Boris_Liu
作者
回复微笑的rockets
再考虑修改外壳
swanglei
swanglei
羊年差不多结束了,可以开始准备猴年的模型了。。。
Boris_Liu
Boris_Liu
作者
回复swanglei
在考虑换一个壳的方案、
hnyzcj
hnyzcj
不行,我得去弄个OLED屏来玩
hnyzcj
hnyzcj回复孙毅
什么时候去上海,你说去深圳,没有说去上海
孙毅
孙毅回复hnyzcj
这个可以有,我这几天在Edison上enable一个oled。
哎,Edison相关的资料还是有点少啊。。。
这个一块玩起来。让你来上海,你不来!来我房间。。。
共4条回复,已加载2条,点击查看更多共4条回复,已加载全部