2016年度大奖的专业户,可穿戴物联网开发板的终结者-HEXIWEAR
发布时间:2016-11-30
分享到:
2016年度大奖的专业户,可穿戴物联网开发板的终结者-HEXIWEAR
发布时间:2016-11-30
分享到:

HEXIWEAR是2016年新推出的,定位于可穿戴物联网技术的紧凑型开发板,板载集成ARM Cortex-M4内核的NXP K64系列MCU,低功耗蓝牙芯片,多种传感器,带触控功能的OLED显示屏和内置可充电电池,提供多种软件开发工具,手机APP和云连接的接口。同时,提供了一个可以扩张多达200多种Click板的扩展Docker,让更具想象力的开发同样不会缺位。

引言

在物联网开发板不断推陈出新的时候,想出风头不是很容易的事情。即使这样,我们还是不得不说HEXIWEAR确实是到目前为止,采用可穿戴物联网开发板的终结者。至少到目前为止,确实是2016年度最没有对手的新晋高手,当之无愧的获奖专业户。

用一个比较网络化的评价来说,HEXIWEAR开发板是一个明明可以拼爹,非要自己拼命的的典型。因为,最早出现在大众视野的是在这个众筹网站,要通过大众的支持来实现项目的落实。

其实细心的网友应该可以注意到,发起人是MikroElektronika,这个可是专业的开发板提供者,已经有一大把的热门板子在手了。而且,这个众筹项目虽然看似草根,但是可是得到了NXP的绝对支持,这个可是豪门搞众筹啊,当然是毫无悬念的成功,而且在2016年初按期供货,并在NXP网站上迅速亮相。

文档完善和资源丰富,绝对是有备而来,可以看出来,这个开发板是亲生的。即使这么有“后台”,这个开发板仍然开通了一个独立的网站作为一个单独的品牌开发和拓展。

那么这么火的板子我们就来扒一扒到底好在哪里。

简介

HEXIWEAR最大的特征就是高度集成,板载的多种传感器都已经是各条产品线上的明星了,都集中在5.08cm x 5.08cm这么小的开发板上,那真是明星灿烂。

HEXIWEAR的核心的主频为120MHz,基于ARM Cortex-M4内核的Kinetis K64F MCU。开发板同时板载支持蓝牙(BLE) v4.1 (default) 和可扩展802.15.4的Kinetis MKW40Z160VHT4 芯片,以及8 个传感器,如下:

  • 6-轴加速度/磁力传感器(FXOS8700CQ)
  • 3-轴角度传感器 (FXAS21002CQ)
  • 可以监测海拔高度的高精度压力传感器(MPL3115A2)
  • 温湿度传感器(HTU21D)
  • 环境光感应传感器(TSL2561)
  • 光学心率计传感器 (Maxim MAX30101)

HEXIWEAR开发板同时还板载W25Q64FVSSIG - 8MB/64Mbit Flash内存,6个用户自定义电容触摸电极,1个RGB LED灯,1个振动反馈电机。板载外设还包括一个一个1.1” OLED彩色显示屏和一个190mAh 2C充电锂电池, 通过一个可以内置USB调试和编程的扩展Docker,即使是高度集成的HEXIWEAR也可以轻松访问到每个pin和端口。

值得一提的是NXP的K64系列芯片,已经是一个成熟应用的长生命周期芯片,围绕K64开发的项目非常丰富,可以非常容易地把以前的开发项目移植过来,实现更迅速的开发和产品上市。板载的MCU型号是121BGA 封装的Kinetis MK64FN1M0VDC12,32位ARM® Cortex®-M4内核,支持DSP和浮点计算(FPU),主频120 MHz,具有1024KB Flash, 256KB RAM;包括16-bit ADCs, DAC, Timers;支持USB, UART, SPI, I2C, I2S, SD-card.

通讯接口包括:

  • 1x 10/100 Mbit/s 以太网 MAC控制器,
  • 1x USB 2.0 Device/Host/OTG 控制器,
  • 1x CAN模块单元,Controller Area Network (CAN) module
  • 3x SPI modules
  • 3x I2C modules. 最大1 Mbit/s
  • 6x UART modules
  • 1x I2S module
  • 支持DES, 3DES, AES, MD5, SHA-1 and SHA-256算法的硬件加密等功能

HEXIWEAR开发板的供电有三种方式:内置 190 mAh 2C Li-Po 电池,USB接口的Docker扩展板, HEXIWEAR USB插头。

软件调试和程序下载有多种方式:

通过Dock扩展板的调试支持OpenSDA USB Debug and Programming adapter,标准(PEmicro, CMSIS-DAP, JLink)调试接口,非标准的工业调试接口,拖拽式优盘复制式下载程序,虚拟USB串口。支持OTA无线软件升级功能。

软件软件工具丰富,包括基于mbed-Enabled(TM) (HDK, SDK, online development tools, community)的web在线编程,易用的C/C++ SDK工具,丰富的开源库和程序范例,离线的NXP Kinetis Design Studio IDE以及各种如KEIL,IAR等第三方开发工具。

相关可穿戴开发板推荐:

外观

即使是集成了如此多的功能,仍然贴心地设计成一个表的形状。并配套了塑胶的表带。其实,就是告诉大家,我很内秀,如果你是开发者,你可以做得很精致,而且还可以做得更小做得更好。因为,HEXIWEAR的电路设计和PCB设计都是开源的,开发者可以参照范例设计完成更定制化和更专业的设计。

HEXIWEAR外形图

对应着开发板的硬件原理图如下:

其中的各种传感器接口如下:

Docker扩展板

原理图

因为开发板上的F64K MCU和KW40都是可以单独编程和调试的,所以需要设置好跳线选择开关,如下图

快速上手的mbed在线开发

相比于大家熟悉的如KDS,Keil,IAR等开发工具,mbed编程显得有些不大一样,不再需要进行驱动程序安装,也不用接触调试的过程,程序语言也非常简单。但是,即使简单如此,mbed仍然能够完成复杂的任务和丰富的功能,这些都是在不断更新的mbed库支持下完成的。这里就以mbed实现对LED的控制blink为例,说明HEXIWEAR如何实现这些功能。

首先登陆develper.mbed.org,然后选择适合的开发板,可以发现HEXIWEAR已经出现在支持的板卡系列中。然后选择新建功能,可以看到blink的程序如下,

代码如下:

#include "mbed.h"

DigitalOut led1(LED1);

// main() runs in its own thread in the OS

// (note the calls to Thread::wait below for delays)

int main() {

while (true) {

led1 = !led1;

Thread::wait(500);

}

}

可以注意到,这里由最新的mbed OS来支持,其中对于thread线程的支持是缺省的设置,针对实时控制RTOS方式进行了非常明显的优化,具体是用main的thread:wait()来控制亮灯间隔,而不是简单的wait()命令。

把HEXIWEAR开发板插在Docker的固定位置,然后用USB线连接Docker,这时会自动安装驱动程序,在资源管理器下出现一个独立盘符的优盘。

在mbed的开发页面,选择compile选项就会生成bin文件并自动下载,把这个文件拖入优盘,就可以实现程序下载到开发板。重新上电,及可以看到LED在间隔闪烁。

相关可穿戴开发板推荐:

项目开发进阶

虽然看起来blink程序很简单,但是因为其他开发工具下,blink范例也复杂不到哪里去,那么下面用采用运动传感器和蓝牙通讯的复杂一些的开发为例说明,即使复杂的开发,过程仍然很简单。

下面的开发程序实现的功能是简单计步功能,当运动传感器的振动幅度,超过限值时就计数一次。

这个过程中需要导入KW40z和 FXOS8700驱动库,以及显示屏Hexi_OLED_SSD1351库。

用import命令导入KW40z和 FXOS8700驱动库,生成可以编辑文件main.c。如下,

在程序里,设置启动阈值,

#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 */

项目开发完毕,使用用publish功能还能分享开发项目。

更丰富的云连接,更多样的开发手段

在HEXIWEAR开发板的众多工具中,对于云的支持是其中的重点,可以支持的有这个还有原生支持的若干朵云。若wolksense,yodiwo等,在HEXIWEAR开发板连接HEXIWEAR提供的APP后,可以直接在云端访问板载传感器的数据,并且具有分析功能。这样极大地扩展了HEXIWEAR开发板的应用空间,降低了开发的难度。

对于不满足于非开源的玩家,HEXIWEAR还提供了一个更具挑战性的选择,可以在zephyr开源实时操作系统中自定义定制firmware,参考网址

如下图,就是用zehpyr开发的程雪在手机APP上显示出传感器的数据的范例,

为了测试各种部件的功能,出厂时HEXIWEAR内置一个演示程序,像一个手表一样,能显示时间,还能显示出传感器的各种读数,以及各种设定功能,不再一一描述,用下面的小视频可以体验一下效果。

总结

HEXIWEAR开发板功能强大,开发环境丰富。不仅适合希望快速上手开发创客,也适合高级开发者的深度开发。因为借鉴了很多开发板的优点,所以是在2016年成为可穿戴物联网开发板的真正终结者。

当然,如果想直接把这个当做智能手表用,订购一个原厂的塑胶表带,一样很炫。

原创申明:本文为爱板网原创,谢绝转载!

相关可穿戴开发板推荐:

加入微信技术交流群

技术交流,职业进阶

关注电路设计技能公众号

了解最新技术方案

加入电路城 QQ 交流群

与技术大牛交朋友

讨论 (1)

讨论区
qq910438219 ·  2017-09-09