×
嵌入式 > 技术百科 > 详情

轻松DIY属于自己的智能可穿戴设备

发布时间:2020-06-10 发布时间:
|

可穿戴市场火了,低功耗蓝牙自然功不可没! 

蓝牙最初由爱立信公司创制,是一种无线通信技术,后来由蓝牙技术联盟制定技术标准。2010年,蓝牙4.0发布,同时Bluetooth SIG(Special Interest Group,负责推动蓝牙技术标准的开发和将其授权给制造商的非营利组织)将BLUETOOTH更名为Bluetooth Smart或Bluetooth Smart Ready。关于BLUETOOTH的新标准,Bluetooth SIG首席营销官Suke Jawanda曾这样评论:“过去当我们谈到蓝牙技术和数据传输,主要考虑的是类似Spotify这种在一个较长的时间段里输送数据的需求,现在像Fitbit Flex是先收集数据,再断续的在某些时刻里将数据传送到用户的手机上。” 

蓝牙最初在手机上比较常用,现在蓝牙已广泛应用于以智能手表为代表的可穿戴设备及各类便携式医疗设备上。 

Mbed BLE Sensors tag是LINKSPRITE(联思普瑞)推出的一款低功耗蓝牙开发板,供研发人员、创客、爱好者评估及学习之用。从名字可以看出,这是一款MBED支持的开发板,主控使用的是NORDIC NRF51822,开发板上集成了LIS3DH,BMP180,BUZZER,LED灯等外设,除此之外,开发板上还集成了一个MBED兼容的编程器。

开箱

拆开快递包装,映入眼帘的是一个小巧的盒子,这就是MBED BLE SENSORS TAG开发板了,这是LINKSPRITE公司最新的低功耗蓝牙开发板,也许大家对LINKSPRITE并不是太熟悉,但如果提到PCDUINO,没错,就是那个兼容ARDUINO但比它更强大的PCDUINO,你也许会恍然大悟。 

包装盒正面,印有LINKSPRITE的LOGO及标识,识别条码及二维码。

套件全家福

开发板非常小巧,PCB使用白色油墨,开发板分为两部分,左边是BLE SENSORS TAG,集成了LIS3DH等传感器,圆形的PCB,是不是可以切下来,配个LCD屏,做块手表来玩玩?

右边是JLINK-OB编程器,用于给开发板下载程序及调式。在开发板集成下载/调试器已成为一种趋势。从ST的NUCLEO系列,GD32的系列开发板,均集成了相应的调试/下载器,这样用户拿到开发板后,可以迅速上手,无需再准备JLINK或ULINK等专用的下载/调试器,这样不仅仅为用户节省了一笔开支,同时也方便了下载/调试的过程。

在开发板背面,CR2032电池座默认没有焊接。 

传感器开发板推荐:

ARDUINO微视模块  第一个芯片大小的Arduino兼容的模块,可以让你随心所欲的使用一个内置Arduino的OLED显示器。

BoosterPack MKII 多功能传感器评估板 一款提供了模拟手柄、环境和运动传感器、RGB LED、麦克风、蜂鸣器、彩色 LCD 显示屏的开发板。

PSoC-4 驱动套件  一款基于传感器的低功耗物联网应用设计,可用于物联网、智能家居、医疗设备、运动健身监控以及其他可穿戴智能设备中。

MBED入门

BLE SENSORS TAG支持MBED云端开发,也就是说该设备是MBED ENABLED。

什么是MBED?

mbed是一个面向ARM处理器的原型开发平台,它具体包括免费的软件库(SDK),硬件参考设计(HDK)和在线工具(Web)三部分内容,各个部分的具体介绍如下:

  • SDK:mbed设计了一个硬件抽象层,从而屏蔽了不同mcu厂商提供了微处理之间的差异,对于用户来说,他只需要和这个硬件抽象层打交道即可,也就是说,用户基于mbed开发的应用可以很方便地更换使用不同厂商的arm微处理器,从而留给用户更多的选择。
  • HDK:HDK是mbed提供的硬件参考设计,它是面向用户开发设计的,所以HDK提供了统一了程序上载接口,单步调试接口,串口调试接口,用户无需购买其它硬件就可以开始软件开发工作。
  • WEB:为了省去用户开发环境安装的麻烦,mbed提供了一个完备的基于浏览器的微处理器软件开发环境,包括代码编写,程序编译,版本控制等功能,用户只要上网就可以开发,编译结果只要下载保存到mbed开发板上即可工作,非常方便。

关于MBED云端开发的模式,各方说法褒贬不一。一方面,MBED是ARM公司极力推荐的一种开发方式,完善的硬件平台支持,丰富的组件库,使得在MBED平台下进行软件开发非常方便,基于WEB模式的工程及代码组织,使得移动开发成为可能,只要能上网,就能进行代码编写及下载,不需要安装庞大的IDE工具链,还有就是代码共享及导入变得更加方便了。然而这种云端开发方式不方便的地方在于:编写的代码存储在云端,下载到本地的只是一个HEX文件,调试变得几乎不可能。好在MBED提供了代码导出到本地的功能,这在一定程度上缓和了这种矛盾。另外MBED的组件库对硬件平台底层细节进行了深层次的封装和抽象,在DEBUG时需要更深层次的挖掘代码库。

所谓的MBED ENABLED设备,就是MBED能直接支持的开发设备。除了专门为相应的设备编写的组件库,mbed 板可运行 mbed 操作系统 - 这是能够以简单、一致的方式控制硬件并与云进行交互的内部操作系统。该操作系统还与其他工具实现了内部集成。mbed 操作系统上还有你的代码,其唯一的限制是由硬件的处理和存储能力强制执行的代码。

Mbed BLE Sensors tag就是MBED支持的一款开发板。接下来我们将开始体验如何进入MBED,并为Mbed BLE Sensors tag准备好开发环境。

打开浏览器,在地址栏内输入MBED网站,如果用户还没有注册MBED的开发账号,需要先行注册一个并登陆。登陆后的界面如下

MBED支持丰富的硬件平台,各硬件平台都有相应的组件库及底层代码支持。点击上图红色箭头标注处选择NORDIC NRF51822硬件平台,如下图如示

具体的开发板型号千差万别,BLE SENSORS TAG使用的是NRF51822作为它的主控,这里我们直接选择NORDIC NRF51822作为平台即可。注意上图中是已经选择好NRF51822的界面,如果是第一次进入,先要点击ADD PLATFORM按钮,然后选择对应的平台设备。

为了演示MBED基本的开发流程,接下来点个灯。

在MBED的开发界面下,单击“NEW/NEW PROGRAM”菜单,弹出如下的对话框

传感器开发板推荐:

ARDUINO微视模块  第一个芯片大小的Arduino兼容的模块,可以让你随心所欲的使用一个内置Arduino的OLED显示器。

BoosterPack MKII 多功能传感器评估板 一款提供了模拟手柄、环境和运动传感器、RGB LED、麦克风、蜂鸣器、彩色 LCD 显示屏的开发板。

PSoC-4 驱动套件  一款基于传感器的低功耗物联网应用设计,可用于物联网、智能家居、医疗设备、运动健身监控以及其他可穿戴智能设备中。

注意,不要选错了PLATFORM,否则底层的硬件库就不正确了;还有要注意的是TEMPLATE的选择,这是网络上其它用户已经设计好了的,我们只要选择它,就可以在它的基础上添加或直接使用它的功能。单击OK,MBED就为我们创建好了一个工程。

左边是工程管理器,右边是具体的文件或组件等。可以看到,MBED已自动为我们加入了MBED的基础组件支持,生成的工程文件里包含一个MAIN.CPP文件,MBED基于C++。

双击MAIN.CPP,文件内容如下

注意,毕竟我们选择的NORDIC NRF51822板并不是MBED BLE SENSORS TAG开发板,所以一些板载资源略有不同,主要是GPIO的配置,UART等外设利用的端口等。所以需要进行简单的修改,修改后的源代码如下,高亮部分为修改后的代码。

绿色LED灯对应的GPIO为P19,所以这里要修改,否则灯就不会亮了。

接下来就是编译和下载HEX代码文件啦,点击菜单栏的COMPILE,MBED就会为我们编译工程文件并下载相应的代码

编译成功后会将生成的HEX文件下载到本地电脑端。

现在将MBED BLE SENSORS TAG使用MICRO USB连接到PC,这会在PC上映射一个新的移动磁盘,在笔者的电脑上盘符如下

下面我们只要将生成的HEX文件复制到这个移动磁盘,就可以实现代码的下载/编程。

通过复制实现下载/编程功能

如果你是第一次使用MBED,这个过程会略显复杂,一旦用熟了,就会觉得用MBED开发的方便。

万事俱备,只欠东风。认识了MBED,下面就是真正体验BLE SENSORS TAG的时候了!

传感器开发板推荐:

ARDUINO微视模块  第一个芯片大小的Arduino兼容的模块,可以让你随心所欲的使用一个内置Arduino的OLED显示器。

BoosterPack MKII 多功能传感器评估板 一款提供了模拟手柄、环境和运动传感器、RGB LED、麦克风、蜂鸣器、彩色 LCD 显示屏的开发板。

PSoC-4 驱动套件  一款基于传感器的低功耗物联网应用设计,可用于物联网、智能家居、医疗设备、运动健身监控以及其他可穿戴智能设备中。

硬件体验

BLE SENSORS TAG开发板很精致,很小巧,但就是在这么小的空间内,硬是塞进了许多的外设。单独一个蓝牙芯片,只能让你收发信息,但如果加进了外设并与外部进行真实的通信,对于产品原型的体验,效果显然不同。

下面是板载资源列表

  • NRF51822 2.4GHz低功耗蓝牙无线SOC
  • LIS3DH低功耗3轴加速度计
  • BMP180 温度/气压传感器
  • 1 x mbed programmer powered by ATSAM3U2CA-AU ARM-based flash MCU
  • 8 x GPIO pins
  • 1 x UART port
  • 1 x Dual-color LED
  • 2 x User buttons
  • 1 x Buzzer

NRF51822

先简单认识下NRF51822。

NRF51822基于ARM CORTEX-M0,16MHZ主频,最高256KB/32KB(FLASH/RAM)存储组合。多协议 2.4GHz 射频收发器拥有高性能、超低功耗以及灵活性等好处。它的主要功能包括:在蓝牙低功耗模式下灵敏度为-92.5dB RX,高达 +4dBm 的输出功率;与 Nordic 上一代射频收发器相比,链接预算增强高达 9.5dBm; 低于10mA 的峰值电流适合3V 纽扣电池;符合蓝牙低功耗(蓝牙 4.0)标准;与 Nordic 现有的 nRF24L 系列 IC 空中完全兼容; 支持包括蓝牙低功耗、ANT 和专有 2.4GHz 等协议的非并行和并行操作。来张特写

呃,芯片上的焊膏没有洗干净?

BMP180传感器实验

BMP180是BOSCH设计生产的一款气压传感器,气压测量范围是300-1100百帕,使用I2C总线与MCU通信,同时还附带温度传感器的功能。

BMP180与MCU的连接关系如下

在MBED的菜单栏上点击IMPORT命令,从程序库里搜索BMP180_EXAMPLE,然后在工程里导入到MBED中。根据BMP180与MCU的连接关系,修改后的源文件代码如下

准备一条USB TTL调试线,拿出终端中的瑞士军刀PUTTY,用USB TTL线将BLE SENSORS TAG与PC相连,在PUTTY中设置通信参数如下

按上面介绍的方法,将HEX文件下载到BLE SENSORS TAG板,会在PUTTY上看到如下的结果。

前面显示的是气压数据,后面显示的是温度数据。不过这么多小数部分,温度有这么精确么?

LIS3DH实验

意法半导体公司的LIS3DH加速计芯片内置一个温度传感器和三路模数转换器,可简单地整合陀螺仪等伴随芯片。LIS3DH还可实现多种功能,包括鼠标单击/双击识别、4D/6D方向检测以及省电睡眠到唤醒模式。在睡眠模式下,检测链路保持活动状态,当一个事件发生时,传感器将从睡眠模式唤醒,自动提高输出数据速率。

LIS3DH与MCU通过SPI接口通信,原理图如下

新建一个工程MBED_LIS3DH,方法是直接从组件库里搜索BLE_BASIC,然后导入到MBED环境中,完整的代码如下

编译,将下载到本地的HEX文件复制到JLINK虚拟盘中,然后在PUTTY中就会看到三轴的数字,移动开发板,三轴计数值会发生明显的变化。

LIS3DH可以用来做计步器,跌到检测等。大名鼎鼎的PEBBLE智能手表内置的就是LIS3DH传感器。

传感器开发板推荐:

ARDUINO微视模块  第一个芯片大小的Arduino兼容的模块,可以让你随心所欲的使用一个内置Arduino的OLED显示器。

BoosterPack MKII 多功能传感器评估板 一款提供了模拟手柄、环境和运动传感器、RGB LED、麦克风、蜂鸣器、彩色 LCD 显示屏的开发板。

PSoC-4 驱动套件  一款基于传感器的低功耗物联网应用设计,可用于物联网、智能家居、医疗设备、运动健身监控以及其他可穿戴智能设备中。

蓝牙通信实验

前面两个例程都使用的是板载外设并通过UART与PC机实现通信,接下来真正体验下蓝牙通信。

本实验模拟心跳检测,并将检测结果通过蓝牙发送到手机端,在手机端显示接收到的心跳数据。

首先要在手机端安装NORDIC官方的NRF TOOLBOX应用,这是NORDIC官方的工具箱,内置丰富的测试功能。

按照前面介绍的方法,在程序库里搜索BLE_HeartRate程序并将它导入到MBED中,下面是完整的工程代码文件

编译并下载到开发板,打开手机端APP,启动后画面如下

选择HRM功能后,会出现HRM的检测界面,点击CONNECT,APP会扫描周围的蓝牙设备,我们的BLE SENSORS TAG会出现在AVAILABLE DEVICES列表中,如图

此处的HRM1就是开发板的蓝牙标识,点击它就会连接到开发板。

手机APP与开发板连接成功后,开发板中的心跳计数器变量就会定期发送到手机端。代码中通过KEY1和KEY2来增加或减少心跳次数,模拟实际的数据采集。上面的图显示的一段时间内的信息收集的结果。

三个非常实用的实验,也是很多蓝牙手表中已采用的技术。

在这里,你看不到一般MCU开发中碰到的一些技术细节:没有时钟树,没有GPIO的一堆寄存器,按键、UART等外设都抽象化了,在对象的实例初始化给定最常用的参数,外设就初始化好了!又有回到ARDUINO编程的那种感觉,没错,MBED就是要封装、隐藏这些细节,给你最高层、最抽象的API。生活原来如此美好,编程也是如此简单!

有没有冲动要做块蓝牙手表出来!有木有?

结论

MBED BLE SENSORS TAG使用目前比较常用的NRF51822作为主控,提供了蓝牙通信功能,还在开发板上集成了比较实用的传感器如BMP180,LIS3DH及蜂鸣器等,非常适合用来评估可穿戴设备。圆形的PCB设计,让人联想到智能手表,事实上,板载的传感器,甚至就是专为智能手表提供的。MBED支持功能,抽象了MCU开发的细节,高层API的支持,可以完全无视底层硬件的细节,象玩ARDUINO一样体验高科技带来的便利。

总体而言,MBED BLE SENSORS TAG,让我们体验了到了智能手表开发的部分原理与细节,虽然这不是一个完整意义上的智能手表,然面纱已经揭开,神秘已不再。

不过开发板上并没有引出IDD检测的接口,不能直接近距离感受低功耗的真实,很怀念STM32开发板上的IDD接口的方便啊。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
实时控制.安全.如何加速实现未来工厂落地?