【学习分享】初探Mbed BLE Sensors Tag开发-GPIO测试
Linknode 测评非常个高兴拿到了电子技术应用提供的LINK node V11开发板.首先我们来了解一下,LINK NODE是何方神圣.1简介:LinkNode 是由LinkSprite出品的明星产品,同时LinkSprite也是一家非常棒的高科技公司,具备PCDUINO/开源硬件和神目视觉图像识别两大产品主线.基于LinkSprite的智能产品,我们可以快速实现自己的物联网应用,加快产品的上市.LinkNode 就是其出品的诸多智能硬件产品中的一员;LinkNode实际上也是一个产品系列,包含5大产品:
图0: LinkNode家族目前正在测评的实际上是其中的基于蓝牙BLE4.0的 Mbed BLE Sensors Tag, 为了简化,下文中,还是以LinkNode来表示.但是大家要明白其实LinkNode不止这一款;LinkNode 是一款可穿戴设备原型开发板,支持BLE4.0,完全兼容mBed编程。板上集成了功能强大的器件,如nRF51822低功耗蓝牙SoC、LIS3DH超低功耗三轴线性加速度传感器、BMP180气压/温度传感器等等。同时,嵌入了一个兼容mBed下载的编程器,使得应用的开发和下载变得非常方便。LinkNode由两个模块组成。一个是BLE4.0 的Sensors Tag模块,该模块兼容mbed,大大简化了基于ARM微控制器开发蓝牙可穿戴设备的过程和部署。在线的Mbed编译器提供了丰富的例程和函数,可加速BLE应用的部署。常见的如GPIO,定时器,adc,串口都有例程支持,上手非常快.
图1 : 传感器部分( BLE TAG 部分)大家要问,在mbed在线平台中,有没有Link Node 的平台选项,可以告诉大家,没有,但是.Linnk node 是兼容mbed 的,那么我们应该选择哪个platform呢. 因为主控mcu是一个Nordic出品的Soc, 大家懂得.在mbed在线平台中,可以看到Link node所兼容的对象,他们拥有同样的主控,nRF51822,此外,外设也是类似的.两个用户按键,双色led,甚至是另外一部分下载器也是一样,所有的功能引脚,都是兼容的.
图1-2 nRF51822-mKIT另一个模块是一个编程器,可替代Jlink下载器的功能,兼容ARM的mBed下载,大大简化了下载流程。用户只需将编译生成的bin文件放到系统可识别的磁盘中即可完成程序下载。相信玩过mbed平台的同学都会非常熟悉.编程器会自动将该程序下载到Sensors TAG中,无须其他操作。
图2: 编程器(mbed兼容 )编程器模块的主控制器是ATSAM3U2C,这个是Atmel公司推出的 M3核的微控制器,拥有128KB的Flash,最高主频96MHz。编程器模块的拥有一个micro-USB(兼容最新的android手机数据线)口用于从电脑下载程序,一系列的GPIO口用于独立使用这个编程器,还有一个开关,一个复位按钮,由此构成了一个ATSAM3U2C的最小单片机系统。2板上资源的使用下面我们逐一测试板载资源,板上资源总揽:· NRF51822: 蓝牙低功耗&2.4GHz 无线SoC· LIS3DH:超低功耗三轴加速度传感器· BMP180:温度气压传感器· mbed编程器:采用ATSAM3U2CA-AU ARM-based flash MCU· 8 x GPIO pins· 1 x UART port· 1 x 双色 LED· 2 x 用户按键· 1 x 蜂鸣器2-1 GPIO使用第一个例程,从最基础的讲起,也让同学们感受一下mbed的魅力,个人觉得,mbed从语法上已经具备了arduino的简易性,易学性,但是其开发环境,也就是ide,却有是简单的不能在简单,切实的验证了未来的一种开发方式的发展方向,任何人,随时随地,可以上网,就可以编译,编程器,可能就是简化为一条USB线了.
图3: 板载硬件资源的引脚图
图4: 主芯片的原理图下面我们进行编程,mbed的基础知识就不再多说,说白了就是提供一个整套的软件库,类似于st的固件库,以MDK开发为例,只要把相应的库(支持包的文件夹),拷贝到自己的工程,然后就可以按照mbed的语法标准来编程了.mbed 具备了很多c++的面向对象的特性,但是用户编程,还是以c为主的 ,不会c++的根本不需要担心,大家可以下载我的例程来体会, 核心代码在main.cpp如下:/* 包含 mbed支持包,头文件形式 */#include "mbed.h"/* 定义led所在的引脚 : 注意与引脚影射图对应 .*/DigitalOut LED_RED (P0_20);DigitalOut LED_BLUE(P0_19);/* 主函数,实现双色led的交替点亮 */int main(){while(1){LED_RED = 0;LED_BLUE = 1;wait(0.2);//mbed提供的延时函数LED_RED = 1;LED_BLUE = 0;wait(0.2);}}大家奇怪了.怎么才能获得mbed支持包呢, 可以直接访问mbed.com,注册开发者账号,然后选择对应平台,再打开云端的开发环境,通过一系列图片来展示1,选择平台
图5: 选择platform,并且准备打开编译器2 打开编译器,也就是编译环境,一切都在浏览器中哦,从linknode插上电脑后,形成的U盘中,也有专门的网页文件可以跳转到
图6:编译器,编辑环境3 新建一个程序 ,
图7 点击 New
图8 跳出窗口,进行相关设置,4 代码编辑
5 ,如果需要离线开发,可以导出工程,网站会把我们的 工程打包成MDK,IAR,等其他ide格式,然后形成压缩包, 供我们下载到本地,也就是形成本文最后的工程文件.
我们可以把这个当作模版,进行离线版,开发,也就是类似于其他arm的开发过程了. Linknode的编程器除了形成哪个用于下载的U盘 ,还有一个标准的Jlink 和一个usb串口那么本地开发的时,我们就可以利用这个jlink来调试下载 .
利用这个板载的jlink功能下载还是非常给力的,6 补充一点, 如果是在线编译,可以点击compile,按钮和mdk里的图标一致,编译成功后,会生成xxx.hex 可以在浏览中下载到本地,然后拖进link node的U盘就可以了.
图10 : 点击编译
图11: 编译中,请稍后
1<br>图12 编译完成后,选择下载,