16794浏览
查看: 16794|回复: 16

用BMI160 6轴惯性运动传感器做一个简易计步手带

[复制链接]
        题外:哲学上老三问之一的“我是谁?”,大家可能都有听过,是不是也和我一样,起初听着,觉得这问题挺傻的。我不就是某某某吗。也许换一个形式提问,可能就会感受到这问题的趣味性了——我是什么?

       手里有一块DF出的BMI160 6轴惯性运动传感器,因为平时有在小区散步、跑步的习惯,所以就准备自己动手做一个简易的计步的手带,界面就只有一个步数与秒表计时功能。以下为制作过程,献丑了(相机坏了,垃圾手机拍摄,有些许辣眼睛【笑哭】):


用BMI160 6轴惯性运动传感器做一个简易计步手带图14
(我把图调小点,就不会太辣【阴险】)



需要用到的材料:
BMI160 6轴惯性运动传感器  链接
Beetle控制器(我的最爱) 链接
OLED-2864 显示屏 链接
微型3.7v锂电池
2个小按钮
1个拨动开关
表带一套(9块包邮)

用BMI160 6轴惯性运动传感器做一个简易计步手带图1


        这便是BIM160,很小很精致,疯狂打call。BIM160有一个16位的3轴加速计和一个超低功耗的3轴陀螺仪,据说全负荷下,也只有900多uA,确实很省电
用BMI160 6轴惯性运动传感器做一个简易计步手带图13
(乔布斯临死前,曾语重心长跟我讲:“明啊,做大很容易,做小做精致很难”)

         


         开始制作:
         先打印外壳,外壳的设计来自于一直佩戴且是我最喜欢的这块表,模仿了一下。唠叨一下这表,显示的部分简单直接,时分秒部分占据大面积,举手便看——干脆。40g的重量,轻若无物。100块的价格,友好亲民。着实喜欢,哈哈。

用BMI160 6轴惯性运动传感器做一个简易计步手带图4
打印完成后,在黑色打印件表面喷少许黑色油漆
使得一些打印有色差的地方色彩均匀,横纹的表现更细腻

       平时有收集、摩挲材料的癖好,翻箱倒柜,居然被我找到了一块颜色与oled极相似的亚克力,于是决定裁切了,用来当做面板。

用BMI160 6轴惯性运动传感器做一个简易计步手带图5


         电路连接:oled与BMI160都是i2c接口,一起焊接在beetle的i2c对应的端口上即可。很简单。

         烧录程序:我是直接修改了BMI160资料库里的那个计步器的程序。通过加入millis()函数,将系统运行时间转化为秒表计时。加入了u8g字库的显示代码,经过对u8g.h头文件里的字体逐一尝试,发现freedoomr这个字体效果还算可以。


         下面为转化为秒表计时的代码:

         unsigned int ss=1000;
         unsigned int mi=ss*60;
         long minute=t0/mi;
         long second=(t0-minute*mi)/ss;
         long milliSecond=sysTime-minute*mi-second*ss;
         strTime[0]=(minute%60)/10+'0';
         strTime[1]=minute%60%10+'0';
         strTime[3]=(second%60)/10+'0';
         strTime[4]=second%60%10+'0';
         strTime[6]=milliSecond/100+'0';
         strTime[7]=(milliSecond%100)/10+'0';


         烧录完成后,就是焊接与装配。我其实最怕这种空间利用率很高的安装,但还是经常这样设计(没办法,乔布斯的话还历历在目,只好折磨自己了)。经常就是,抠完布局抠空间,小心翼翼地安装很久,装完后,一打开开关……我的脸上布满黑线。应该是哪里的某根线在我蹂躏的过程中,断开了。然后我就会气急败坏地把桌子上的东西全部fu到桌子下面,过一会儿再慢慢捡到桌子上摆好:

用BMI160 6轴惯性运动传感器做一个简易计步手带图6

15mm高的外壳,都被塞成了满满的胶原蛋白


       用电磨在壳子两端打1mm小孔,表带穿表耳,扣上去,就完成了。

用BMI160 6轴惯性运动传感器做一个简易计步手带图2



用BMI160 6轴惯性运动传感器做一个简易计步手带图7


用BMI160 6轴惯性运动传感器做一个简易计步手带图3

晃动起来,好像那个让汪淼感到绝望的倒计时



       有小伙伴可能发现了,手带左侧有两个按钮,下面那个是秒表计时功能,那上面那个呢?
       为了夜跑!

       上边的按钮控制4颗5mm的白色led灯珠的开关(笑哭,我又去买了一些uv胶来用,调色后,填满开孔与led灯珠圆头之间的缝隙空间,使得手带的一体性提高):

用BMI160 6轴惯性运动传感器做一个简易计步手带图8


         4颗灯珠位置,符合跑动时手臂的大致挥舞角度,使得不管手臂如何运动,地面始终被照亮:

用BMI160 6轴惯性运动传感器做一个简易计步手带图10


用BMI160 6轴惯性运动传感器做一个简易计步手带图9



放下手机,一起去夜跑吧!


         题外:之前我一直以为“我”便是个体的记忆,失掉了记忆,“我”便不复存在。“我是记忆”这句话便不断地在我脑袋里回响,后来觉得这个答案有缺陷。假设上帝搞促销活动,可以让人获得永生,你就是那个中奖的幸运儿,他要求你只能选择一样东西送往永生,譬如你的身体、你的意识、你的记忆等等(就是不能把你整个人送去永生),你会选择什么?







hnyzcj  版主

发表于 2018-9-15 12:16:05

小明很叼事
回复

使用道具 举报

屌丝王小明  中级技匠
 楼主|

发表于 2018-9-15 12:19:55


哈哈,期望攀附哲学,摆脱屌丝之名
回复

使用道具 举报

gada888  版主

发表于 2018-9-30 11:49:03

小明爱发明
回复

使用道具 举报

屌丝王小明  中级技匠
 楼主|

发表于 2018-9-30 13:09:18


嘻嘻,挺享受做东西的过程
回复

使用道具 举报

digi_cow  高级技匠

发表于 2018-10-2 18:07:57

满满的工匠情怀
回复

使用道具 举报

俗人  初级技师

发表于 2018-10-3 11:06:19

真的很帅很酷啊
回复

使用道具 举报

rzegkly  版主

发表于 2018-10-7 20:21:23

自己动手,丰衣足食
回复

使用道具 举报

gada888  版主

发表于 2018-10-14 12:42:15

这是手表的逆袭吗
回复

使用道具 举报

M_J  初级技师

发表于 2018-10-18 22:51:07

小明快出代码
回复

使用道具 举报

王界平  中级技师

发表于 2018-10-22 15:20:48

你好,我在UNO上使用BMI160的时候无法获取地址信息,想请教一下你的连线方式中INT1和SDO是这么连接的
回复

使用道具 举报

屌丝王小明  中级技匠
 楼主|

发表于 2018-10-23 09:22:02

王界平 发表于 2018-10-22 15:20
你好,我在UNO上使用BMI160的时候无法获取地址信息,想请教一下你的连线方式中INT1和SDO是这么连接的 ...

我没有连那个int1,直接烧第二个例程程序,就可以上位机显示出来读数
回复

使用道具 举报

沈沈大人  学徒

发表于 2018-12-27 10:30:34

小按钮尺寸是多大的?
回复

使用道具 举报

屌丝王小明  中级技匠
 楼主|

发表于 2018-12-27 17:43:27

沈沈大人 发表于 2018-12-27 10:30
小按钮尺寸是多大的?

6mm*6mm的
回复

使用道具 举报

DFH19A76y0S  学徒

发表于 2019-12-13 13:10:38

请问一下是怎么连接控制器、LED、传感器的哦
回复

使用道具 举报

DFH19A76y0S  学徒

发表于 2019-12-13 13:11:18

有木有图纸
回复

使用道具 举报

屌丝王小明  中级技匠
 楼主|

发表于 2019-12-17 10:36:54


帖子末尾有solidworks模型
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail