Dfrobot智能穿戴评测之手表式计步器(库已上传)
本帖最后由 沧海笑1122 于 2017-4-17 13:44 编辑DF穿戴评测报告之计步器手表
【评测项目概览】 感谢DFrobot和arduino.cn社区提供的穿戴评测机会。这次评测申请是三个精良的模块:1、Beetle BLE 控制器2、10自由度惯性导航模块3、OLED 2864 显示模块当我第一眼看到评测邀约时,脑海里面直接映出一个计步器手表来。Beetle BLE做主控(328核心)、10dof姿态模块采集并且解算姿态、OLED作为终端显示。4月5日到货后,经过十几天的折腾。现在的手表是这样的: 嘿嘿,很眼熟吧,用的就是上一季心率表的外壳,PCB也是心率表打板时多出的,经过了适当的改造(下文会详述),OLED用的是0.49寸的IIC接口,本次评测的DF产品,做工精良,但OLED尺寸大了些,请示luna后只好割爱。好了,下面一起进入这块计步器手表(穿戴)的评测之旅吧。【评测清单】
主角1:Beetle BLE是非常有特点的一块主控,尺寸很小。下面是她的主要参数:蓝牙芯片:TI CC2540(蓝牙低功耗,V4.0)微控制器:ATmega328(16 MHz)数字口数量:4个(如果你使用df的oled模块,需要占用一个D4)模拟输入口数量:4个(复用A4,A5,IIC1组)尺寸: 28.8mm X 33.1mm(体积非常袖珍)重量:10g电源方面:支持小于8V大于等于5V的vin输入,提供一组5V--GND的电源输出。这次测试用的10DOF和OLED都是3V3-5V的,因此可用。焊盘是镀金的,PIN之间的距离不是标准的2.54,说明这是一款基于穿戴的主控,鼓励玩家将其“缝制”在作品上,或者用线仔进行灵活连接,而不是固定在PCB上。
AT指令进入调试界面后,设置蓝牙为从机方式,固件为最新的1.97(玩家不必再折腾刷固件了),设备名称默认BLUNO,密码默认:dfrobot,AT退出,波特率默认115200.这些看看就好,建议没有折腾的必要。主角2:10dof模块(全称:10自由度惯性导航模块)主要参数:集成10自由度传感器ADXL345 加速度计ITG3205 陀螺仪HMC5883L 磁罗盘BMP085 气压传感器和温度传感器尺寸:26x18mm(集成度非常高,布局紧凑,带LED电源指示)
主角3:OLED 0.96寸主要参数:IIC接口,主流的SSD1306芯片RST:复位信号输入引脚---D4SDA:IIC数据输入引脚 SCL:IIC时钟输入引脚DC:SAO设置引脚---GND
可以使用Adafruit_SSD1306库。亲测可用。【硬件清单】(红色字体为本次评价的主角,绿色字体为其他模块或材料)
【软件清单】1、Arduino IDE 1.8.02、ADXL345加速度传感器(作者Frankie Chu for seeed studio)、Pedometer(作者lawliet zou seeed)计步器库3、U8glib库(oled显示,来自https://bintray.com/olikraus/u8glib/Arduino)4、blynk库(http://www.blynk.cc,下一篇用于介绍BeetleBLE与blynk的一段美好尝试)下列库均打包,供下载
【代码】/**************************************************************
* Blynk is a platform with iOS and Android apps to control
* Arduino, Raspberry Pi and the likes over the Internet.
* You can easily build graphic interfaces for all your
* projects by simply dragging and dropping widgets.
*
* Downloads, docs, tutorials: http://www.blynk.cc
* Ske tch generator: http://examples.blynk.cc
* Blynk community: http://community.blynk.cc
* Social networks: http://www.fb.com/blynkapp
* http://twitter.com/blynk_app
*
* Blynk library is licensed under MIT license
* This example code is in public domain.
*2017-04-15 不与blynk server 连接,本地显示OLED
**************************************************************
*
* This example shows how to use DFRobot Bluno or BLE Link module
* to connect your project to Blynk.
*
* Please be sure to update your DFRobot firmware to at least V1.97:
* https://github.com/DFRobot/BLE_firmware_V1.9
*
* For Bluno, read instructions here:
* https://www.dfrobot.com/wiki/index.php/Bluno_SKU:DFR0267
*
* For BLE-Link, read instructions here:
* https://www.dfrobot.com/wiki/index.php/BLE-Link_(SKU:TEL0073)
*
* NOTE: BLE support is in beta!
*2017-4-13 计步器数据本地显示,不需要通过blynk上送APP
*计步器以及ADXL345库来自seeed
*
**************************************************************/
#include "U8glib.h"
//#include <BlynkSimpleSerialBLE.h>
#include <Wire.h>
#include <ADXL345.h>
#include "pedometer.h"
Pedometer pedometer;
int oldstep=0;
int newstep=0;
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0);// I2C / TWI
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "41********(your auth code)***********687"; //project2
void sendSensor()
{
pedometer.stepCalc();//计算步伐
newstep=pedometer.stepCount;//获取步数
if (newstep>oldstep)//如果获取新的步数----避免频繁显示、上送
{
//--- Blynk.virtualWrite(V2,newstep);//上送blynk server
char newstep_str;
itoa(newstep,newstep_str, 10);
// Serial.println(newstep);//调试语句,实际可注释
//------开始写oled
u8g.firstPage();
do {
u8g.setFont(u8g_font_ncenB18);
u8g.drawStr(39,57,newstep_str);//oled显示,我用的是64*32,所以座标如此
}while( u8g.nextPage() );
//--------oled显示循环
oldstep=newstep;
delay(30);
}
}
void setup()
{
Serial.begin(115200);
//---Blynk.begin(Serial, auth);//BLE连接 server
pedometer.init();//计步器初始化
}
void loop()
{
//--- Blynk.run();
sendSensor();
}
(整个灰色绘图区部分为128*64,也就是传统的led 0.96寸的绘图区,用0.49寸,直接调用ssd1306的u8glib就在图中绿色框内作图即可)【外壳及组装】1、改装PCB,主要是两个问题:一是10dof的IIC线序和我的PCB不一致,需要改接。二是OLED的IIC线序和我的PCB不一致,需要改接。用了四根线仔解决。2、电源:使用美科的BM(锂电池充电及电源管理模块,提供稳定的3V3以及5V输出),所以不再从beetle BLE上取电。将OLED以及10dof均接3V3,将beetle BLE的 VIN接5V3、接线:OLED SCL\SDA 10dof SCL\SDA与beetle BLE的 SCL\SDA对应接线即可。4、组装:锂电池在底部、上面依次是beetleBLE----美科BM模块----PCB---OLED&10dof
BM的管理面板引出,可以充电,拨动开关控制电源关断【计步器使用情况】 上手试验后,计步器可用,上电后需要静置10~20秒,然后OLED开始显示输出。正常行走姿态,摆臂时相应计步器开始计数。OLED显示数据累进。目前为了显示需要,字体选择14号,所以只能显示三位数,可以设置小字体已获取更大适应性。
【评测点评】1、Dfrobot出品做工精良。尤其为beetleBLE以及10dof点赞。像艺术品。 beetleBLE融328主控以及BLE 4.0于一身。电源设计宽容度较高(5--8伏),数字口和电源口的输出焊盘做工很棒,可以焊接也可以绑。尤其是电源接口设计成(+-镂空,可谓匠心独具)2、10dof这次玩得还不深,只是利用seeed的库测试了计步器功能。后续会陆续琢磨其他玩法。3、建议:(1)oled这次有点遗憾,由于受体积的限制只好割爱,我看到DF出品了一款0.5寸oled,简直是为穿戴而生,希望有机会可以研究。(2)关于beetle BLE,建议选配一组架子线(一头小鳄鱼夹,一头杜邦线),可以再不焊接的情况下,将PIN引出,便于调试。否则在调试中,易短路,此建议供参考。
【下一步提升】1、通过blynk server,将beetle BLE采集的数据,上送至blynkserver 进而显示在手机APP上。是不是很期待,随后跟帖更新。此功能已经OK啦2、打印外壳,这次偷懒了,借用了上一季的外壳,还是那么大,那么方(luna会心一笑)。希望可以重新为他们设计一件好衣服。另外,这次没有重新画PCB,整个10dof以及oled都悬在外壳上,实在是辜负。抱歉啊。
【鸣谢】 感谢孝肃兄、luna妹纸的优秀工作,感谢Dfrobot以及arduino.cn给我参与评测的机会,Dfrobot是自2012年初我开始玩arduino后,知道的第一个国产品牌。自己开始做的第一个评测,也是来自DF的语音识别模块以及mp3播放模块,帖子还保存在极客工坊里,偶尔想起也会打开看看。五年时光不长,感谢这样优秀的极客团队带给我们不断惊喜。
感谢hunter等评测群师兄弟的支持。沧海抱拳!春天来了,极客之路也会一路春光、无尽颜色吧。。。 Remember that Hope is a good thing, Red,maybe the best of things, and no good thing ever dies.----摘自《肖申克救赎》,Andy致Red的信尾。
本帖最后由 沧海笑1122 于 2017-4-17 01:01 编辑
占楼为视频。:lol
http://player.youku.com/player.php/sid/XMjcxMjE3NjkxNg==/v.swf
裸表其实挺帅的! 沧海发的都是高质量贴啊跟前辈学习学习 O_oYYQ 发表于 2017-4-17 13:20
沧海发的都是高质量贴啊跟前辈学习学习
感谢指导,算法部分我也是拿来主义。:handshake 沧海笑1122 发表于 2017-4-17 13:40
感谢指导,算法部分我也是拿来主义。
我之前打算用Genuino 101自带的6轴陀螺仪做个计步器的但测试了好久发现计步算法精确度不高后来就放弃了现在看了你发的这个 打算参考着去试试 O_oYYQ 发表于 2017-4-17 13:47
我之前打算用Genuino 101自带的6轴陀螺仪做个计步器的但测试了好久发现计步算法精确度不高后来就放弃 ...
101那个我也试过,感觉挺好的啊 hunter1217 发表于 2017-4-17 13:52
101那个我也试过,感觉挺好的啊
我的精度不够可能是我能力不够 程序问题吧哈哈 O_oYYQ 发表于 2017-4-17 14:01
我的精度不够可能是我能力不够 程序问题吧哈哈
是我想的太少吧,给你分享个论文,关于计步的,你可以看看,,以满足你的要求
页:
[1]