本帖最后由 沧海笑1122 于 2017-4-17 13:44 编辑
DF穿戴评测报告之计步器手表
【评测项目概览】 感谢DFrobot和arduino.cn社区提供的穿戴评测机会。这次评测申请是三个精良的模块: 当我第一眼看到评测邀约时,脑海里面直接映出一个计步器手表来。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:复位信号输入引脚---D4 SDA:IIC数据输入引脚 SCL:IIC时钟输入引脚 DC:SAO设置引脚---GND
可以使用Adafruit_SSD1306库。亲测可用。 【硬件清单】 (红色字体为本次评价的主角,绿色字体为其他模块或材料)
【软件清单】 1、Arduino IDE 1.8.0 2、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的一段美好尝试) 下列库均打包,供下载
【代码】 [kenrobot_code]/**************************************************************
* 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:
* [url=https://www.dfrobot.com/wiki/index.php/Bluno_SKU FR0267]https://www.dfrobot.com/wiki/index.php/Bluno_SKU FR0267[/url]
*
* 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[4];
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();
}
[/kenrobot_code]
(整个灰色绘图区部分为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接5V 3、接线: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的信尾。
libraries_Pedometer.rar
(479.77 KB, 下载次数: 34)
U8glib.rar
(910.22 KB, 下载次数: 16)
|