微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > 物联网开发板对对碰系列之四——Hexiwear 开发Mbed

物联网开发板对对碰系列之四——Hexiwear 开发Mbed

时间:10-02 整理:3721RD 点击:
1. Hexiwear出厂时内置一个firmware,可以采集各个传感器的数据并上传,并可以开启蓝牙状态,包括加速度,角度,运动的步数,心率,温湿度,光照度等,已经非常全面。
2. 虽然推出时间很短,但是已经在mbed上开发了足够的库以支持硬件开发。在NXP的Kinetics Studio仍然支持的情况下,使用OpenSDA的mbed开发就更具有吸引力和便捷性。
3. 以计步器的算法上传到配套的官版Hexiwear 手机APP上。使用的硬件只有Hexiwear,软件就是Mbed OS。内置 K64 150MHz ARM-M4 core, OLED, Battery packs, BLE connection, Hexiwear mobile APP。
具体方法是,采集运动传感器的数据求加权有效值rms,超过一定限度就是计算1次,如果长时间没有变化,自动清零。
这个过程中需要导入KW40z和 FXOS8700驱动库,以及显示屏Hexi_OLED_SSD1351库
先clone范例程序,




然后用import命令导入KW40z和 FXOS8700驱动库





然后设置启动阈值,

#define MAG_THREHOLD 0.5
#define ACCEL_THREHOLD 0.5
Timeout swimit_reset;
static uint16_t swimit_count;

// ......

void swimit_reseter(void);

//.....
void swimit_reseter() {
swimit_count=0;
}

计算rms值并判断是否可以计数,

/*acquire accel_data and mag_data, running Sensor Tag mode*/
accel.acquire_accel_data_g(accel_data);
accel_rms = sqrt(((accel_data[0]*accel_data[0])+(accel_data[1]*accel_data[1])+(accel_data[2]*accel_data[2]))/3);
Thread::wait(0.01);
mag.acquire_mag_data_uT(mag_data);
mag_rms = sqrt(((mag_data[0]*mag_data[0])+(mag_data[1]*mag_data[1])+(mag_data[2]*mag_data[2]))/3);
Thread::wait(0.01);
//rm Strok counting by change of MAG and ACCEL at the same time,
if (accel_rms>ACCEL_THREHOLD ||mag_rms>MAG_THREHOLD) swimit_count++;
steps = swimit_count;
accel_rms_ave=accel_rms;

通过kw40z驱动库中的发送功能,直接发送数据。这个是启动了BLE的GATT服务发送的,在库函数里已经定义了,这里是引用了mbed的BLE_API库,这样是更简洁的。

kw40z_device.SendAccel(accel_data[0],accel_data[1],accel_data[2]);

kw40z_device.SendSteps(steps);


Hexi_KW40Z.h定义如下

packetType_steps = 14, /**< health service */

4、项目开发完毕,还可以发布供大家参考。用publish功能。







这样的组合是便于上手,快速部署。对于懒人来说,是在是太好用了。Hexiwear评测完了,应该是TI 的SensorTAG。不过BBC的microbit快到了,下一篇改评测这个新东东。

汇总贴在此:物联网开发板对对碰——by fyaocn

图为什么好小啊!

我们让技术查查是什么原因

恩呢

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top