【智能桌面小时钟1】-基于arduino bluno用OLED12864液晶屏制作...
一直想做一款桌面时钟,不需要太复杂的功能,小巧、能够显示时间就可以了。我用的是OLED12864液晶屏作显示,Bluno beetle作主控芯片,加上锂电池和充电模块,LIS2DH加速度计作惯性检测(当我任意改变时钟的放置方向,OLED显示屏的显示也随之改变),先来一发展示视频吧。。。https://player.youku.com/player.php/sid/XMjYzODM5NDAyNA==/v.swf
特点: 小巧、方便 惯性传导,感知钟的摆放状态
是不是很炫酷,很高大上了?这个时钟小巧,可以放在桌面上,也可以贴在墙壁上,甚至可以揣在兜里,随身携带。来看看这个小家伙吧!!!
充电功能
我的时钟还具备充电功能,采用microUSB(随便哪个手机充电器就可以了)进行充电,不必担心它没电(除非你懒的给它充电。。。),下面我将整个制作流程和源码给大家。
你可以参照视频进行制作。。。
https://player.youku.com/player.php/sid/XMjY3Mjc5MjcxMg==/v.swf
制作前准备
硬件部分:
OLED2864显示屏(点击购买) FIT0328
LIS2DH加速度计模块(点击购买)SEN0224
Bluno Beetle主控板(点击购买)DFR0339
锂电池充电模块(点击购买)
3.7V锂电池(点击购买)
外壳(3D打印文件下载)
黑色亚克力透明板(这个是在淘宝上面买的)
软件部分:
Arduino IDE1.8.0
相关库文件(点击下载)
源代码(点击下载)
详细制作步骤
1、拆除电路板上面的PH2.0接口由于我的小时钟体积小,而PH2.0的接口占体积太大了,所以我决定把它拆掉,改用手工焊接连线的方式。如下图所示:
参照图中方式,先用斜口钳强行剪掉PH2.0接口,再用电烙铁取下上面的排针,如下图所示:
以同样的方式,拆除LIS2DH加速度计模块和充电模块上面PH接口,如下图所示:
PS:图中红圈部分都是需要拆除的。
2、修改Bluno Beetle主板的供电方式
查看原理图得知,Bluno Beetle主板上有两个LDO电源芯片(VIN转5V,5V转3.3V),蓝牙芯片就是工作在3.3V,ATMEGA328p芯片工作在5V(其实该芯片的工作电压为1.8V~5V),而我们的锂电池采用的是3.7V的,所以我们直接将锂电池电源供给AEMEGA328p芯片,由原来的5V转3.3V变成3.7V转3.3V(测试可行),拆掉原理图上面的D1二极管,将我们的锂电池输出供电直接接到Bluno Beetle主板的5V引脚上(实际上这时的5V电源线就是3.7V了),如下图所示:
主板上面对应的二极管位置如下图所示:
注意拆卸的时候,先用电烙铁拆掉二极管的一脚,然后再用镊子不停的折叠二极管的另一脚,使其自然断裂即可,如下图所示:
注意:拆卸完这个二极管后,插上USB是不能给主板下载程序的,因为你给它断电了。
3、制作连接线
由于OLED屏和LIS2DH加速度计都是采用I2C接口形式,所以,焊线很简单,只需要接4根线就OK了。线是采用的传感器包装盒里的Gravity线,用斜口钳剪掉,长度大概在5cm左右,如下图所示:
用剥线钳剥去表皮,露出铜线(长度在3mm),然后镀锡。
4、焊接传感器
在焊接传感器前,需要先预估好锂电池、传感器、主板的位置,如下图所示:
接下来就可以开始焊接线了,因为传感器模块小,不好固定,注意焊接时的手法。
左手中指按住PCB板,拇指和食指拿住要焊接的线。
将传感器上面的I2C接口分别用电线与主板的I2C连接(这里就不用我说哪个连那个了吧),其中VCC连接到Bluno Beetle主板的5V上面。焊接好后,如下图所示:
用同样的方法和连线方式,焊接好LIS2DH加速度计传感器,如下图所示:
5、固定锂电池和相关硬件
我们的硬件已经焊接完成,需要将它们固定到锂电池上,我采用的是3MM厚的强力双面胶,这样既固定又能防止PCB后面的阵脚戳穿锂电池,如下图所示:
6、焊接充电模块充电模块放在锂电池的背面,注意将USB充电接口放在外面,如下图所示:
用线将锂电池的“+”极与主板的5V连接,“-”与主板的GND连接,如下图所示:
焊接好后,接下来需要焊接锂电池到充电模块了。用斜口钳剪掉锂电池上面的PH2.0接口,焊接到充电模块上,注意红色接到“+”极,黑色接到“-”极,如果接反了,你懂的,肯定玩儿完,如下图所示:
焊接完成。。。
7、打印始终外壳
在前面的链接中下载3D文件,打印外壳,根据你设置的打印参数不同,打印所需的时间也不同,我打印的时候画了3个小时左右。
外壳打印中,等待。。。等待。。。
8、下载程序到主板
当焊接完成后,实际上主板已经可以正常工作了,因为锂电池在供电。这个时候插上主板上面的USB接口,给主板下载程序,程序源码需要从前面的链接中下载(这里就不需要我啰嗦怎么安装库文件了吧!!!)。如果下载顺利,时钟就会开始工作了,如下图所示:
注意:这里需要在源码中更改当前的时间,如下所示: uint8_t secondCounter = 0; uint8_t minuteCounter = 2; uint8_t hourCounter = 11;
9、安装电路板到外壳首先将充电器模块固定到外壳,注意将充电器模块上面的USB充电口通过外壳底板的小槽露出了,并用USB线测试是否可以正常插拔,如下图所示:
插上USB充电线后,充电模块上面的红色LED灯会亮,表示正常充电,充电完成后,绿灯亮:
确定位置后,用热熔胶固定,如下图所示:
安装好充电模块后,把其他电路板塞到外壳中,这里随便怎么放置都可以,只要你不扯断线就OK了。
10、制作屏幕
将黑色亚克力透明板裁成外壳盖的内径大小(这个很费劲,我大概弄了20分钟),如下图所示:
不好意思,我后面忘了拍照片了,只有剪之前的照片。弄完之后,将外壳盖和亚克力板用热熔胶固定。
11、整机组装
将外壳盖和外壳用胶水固定,旋转时钟,显示效果也随之改变,至此,整个制作就完成了。
r_hh123 发表于 2017-5-24 15:45
不错。
就是万一断电的话,时间就丢失了不准了,还要重新上传代码校准。这是个硬伤。
最好能改进下。 ...
嗯,所以,我做了第二个,连接到网络,直接从网络更新时间,就不怕断电了。 Grey 发表于 2017-3-29 11:29
666666~沙发~
楼主,能开发计步功能吗? 在看LIS2DH和ADXL345,看参数ADXL的精度更高,但成本高。LIS2DH有 ...
可以呀,最好是能带监督的那种,不然都懒得出来运动。 svw 发表于 2017-4-6 08:06
焊接和拆线手法很牛啊!值得我这小白学习。
不过外壳设计,为何不用圆角(fillet),看着不舒服啊。
3d图是我自己画的,还没来得及学会圆角了:lol。 自己抢个沙发:lol 666666~沙发~
楼主,能开发计步功能吗? 在看LIS2DH和ADXL345,看参数ADXL的精度更高,但成本高。LIS2DH有什么优点吗? 不错,加个外壳瞬间高大上。 啊我的库函数有缺失好不爽 Chocho2017 发表于 2017-3-29 11:34
可以呀,最好是能带监督的那种,不然都懒得出来运动。
不然主控可以选择更小的Beetle,蓝牙有点浪费 楼主牛逼 hnyzcj 发表于 2017-3-29 14:43
楼主牛逼
呵呵,只是分享了一个小东西而已。
Understand 发表于 2017-3-29 13:29
啊我的库函数有缺失好不爽
怎么缺失了? 好漂亮 大牛,膜拜中 DF_ZCL 发表于 2017-3-29 15:20
呵呵,只是分享了一个小东西而已。
发个贴,刷任务的,哈哈 消灭0回复 改造的挺好,不占地方 面包板 发表于 2017-3-29 22:29
改造的挺好,不占地方
主要是可以搁置的地方很多,使用起来很方便的嘛。 面包板 发表于 2017-3-29 22:29
改造的挺好,不占地方
谢谢,我会持续改进的。 gray6666 发表于 2017-3-29 17:34
大牛,膜拜中
谢谢。我不是什么大牛,只是爱捣鼓一些小玩意儿。 使用、学习、拆解、改造、重制,这大概就是创客的奥义。
给你101分,多一分,我为你骄傲! 收藏了,电路部分以后会用得上:D Rockets 发表于 2017-3-30 10:42
使用、学习、拆解、改造、重制,这大概就是创客的奥义。
给你101分,多一分,我为你骄傲! ...
谢谢。我会持续改进的。