小钢炮大世界——JUMA Cannon评测
扫描二维码
随时随地手机看文章
一.开篇介绍
今年4月底,参加了ST在深圳举行的ST峰会,期间了解到电子消费市场上的许多有名产品原来都使用了ST的芯片,比如像大疆的四轴飞行器、华为的智能手表、小米的平衡车、三星的Gear VR等等。其中,在一个人群密集的展台上,看到了“小钢炮”这霸气的名字,凑上去了解一下,原来是一块集合了九轴传感器的STM32主控板,而且还可以免费申领,果断填写了报名手续,领一块回家好好评测。
那么小钢炮开发板究竟为何物呢?请大家跟笔者一起探索。
二.开发板介绍
小钢炮,英文名为Cannon,是一个物联网开发平台,特色是板载的蓝牙与各种传感器结合。板载资源有微控制处理器STM32F401、蓝牙芯片BlueNRG、陀螺仪LSM6DS3、磁力计LSM303AGR、温湿度计HTS221、气压计LPS25HB等。全部芯片均由意法半导体(ST)提供。
小钢炮开发板不仅在拥有丰富的传感器资源,还提供了基于STM32和Android的开发SDK,降低了用户的开发门槛,用户可以快速的打造一款可穿戴设备或者智能家居设备。
图1 小钢炮开发板外形
第一眼看到小钢炮开发板时,挺吃惊的,这设计看起来不仅别扭,而且有点丑,那突出来的电源连接端子打破了应有的美感。但在后来的开发使用过程中改变了这想法,开发板主要以帮助开发者开发为主,审美是次要,这电源的设计在实际使用过程中非常方便。
图2 小钢炮开发板外形2
三.硬件介绍
图3 板上资源介绍
产品特性:
l 主控为32bit Cortex-M4 微控制处理器STM32F401,512KB FLASH,96KB RAM
l BlueNRG-MS,低功耗蓝牙,板载陶瓷天线
l 六轴LSM6DS3
l 磁力计LSM303AGR
l 气压计 LPS25HB
l 温湿度HTS221
l 板载的SD卡座和Micro USB接口
l 预留丰富的GPIO,包括UART、I2C、SPI等常用通讯接口
l 带有SWD烧录接口和Boot选择座
借助STM32CubeMX,可以查看这个主控芯片所支持外设,像小钢炮开发板所选用的这颗STM32F401RET6支持的外设如下图左侧所示,有:ADC、I2C、SPI、TIM定时器、IWDG看门狗、RCC时钟、RTC实时时钟、SDIO、USART、还有全速的USB接口。
虽然同属于F4系列,但并没有包括DCMI(摄像头接口)和FSMC接口,但基本涵盖了大多数的外设接口,对于小钢炮的开发使用已经足够。
图4 主控芯片介绍
下图是板载的BlueNRG蓝牙芯片和陶瓷天线。BlueNRG是ST公司的一款蓝牙控制芯片,不仅功耗低,发射功率可以达到+8dB,它内部实现蓝牙协议栈。小钢炮开发板选择STM32F401与之搭配,STM32F401负责Profile和应用层的处理,BlueNRG负责完成蓝牙通信任务。
图 BlueNRG-MS芯片[!--empirenews.page--]
通过查看原理图,可以看到BlueNRG是通过SPI与STM32F401进行数据通信。BlueNRG的电路并不负责,但蓝牙天线的阻抗匹配却非常讲究,电容选择不对的话,直接会影响到通信的稳定性。
图5 BlueNRG-MS电路
六轴传感器模块为ST公司的LSM6DS3,通过I2C接口可分别采集六个轴的线加速度(XYZ)和角加速度(XYZ),线加速度计的有4个可选量程,分别为:±2/±4/±8/±16g。角加速度计的量程分别为±125/±245/±500/±2000dps,并内嵌有温度传感器。
传感器内部带有一个8Kbyte的FIFO,可用于缓存原始数据。采集模式分为普通模式和高性能模式,功耗分别为0.9mA和1.25mA。非常不错的一颗传感器。
图6 六轴传感器LSM6DS3
磁力计为ST公司的LSM303AGR,可采集3个磁场通道和3个加速度通道,磁力范围为±50高斯磁,加速度量程为:±2/±4/±8/±16g。
图7 磁力计LSM303AGR
气压计为ST公司的LPS25HB,绝对气压范围为260到1260hPa,24bit的压力数据输出,ODR范围为1Hz-25Hz,内嵌温度补偿。两种低功耗模式,低分辨率模式下为4uA,高分辨率下为4.5uA。
图8 气压计LPS25HB
温湿度传感器为ST公司的HTS221,能检测到0到100%相对温度范围,低功耗达2uA@1Hz ODR,16bit的温度和湿度数据输出。
图9 温湿度HTS221
四.软件开发准备
小钢炮开发板是ARM的开发环境,所以用户可以选择IAR或是Keil作为开发工具,笔者选择自己熟悉的Keil。需要操作以下步骤:
1. 从MDK官网下载最新的Keil版本和STM32F4XX的pack。
2. 到ST官网下载STLINK驱动。
图10 小钢炮和STLINK烧录器
准备好Keil和STLink后,从github下载小钢炮官方提供的SDK便可以进行软件开发。
图11 github源码下载[!--empirenews.page--]
下载好源码后,我们进入applications/juma路径,可以看到小钢炮官网提供了相应传感器的例程。开发者们可以参考这些源码,快速移植到自己的工程,创造自己的个人产品。
图12 工程源码
小钢炮的的代码架构如下图所示,总共分为4层结构,分别为:应用层、中间层、HAL层、MCU物理层。
小钢炮官方把ST公司提供的HAL库进行了封装,加入了中间层,整体作为一个SDK提供给用户使用。用户在开发自己的应用层时,只需要了解SDK提供的接口便可,无需要了解SDK内部细节。
图 代码架构
源码文件夹作用如下:
/product/applicaton: 应用层示例,比如echo(蓝牙数据回复)、remote_Control(蓝牙遥控)、hum_temp_monitor(温湿度检测)等。
/system/bsp: 板级支持包。
/system/cmsis: MCU硬件抽象层。
/system/drivers: 各类外设驱动。
/system/middlewares: 各类中间件,如蓝牙协议栈、算法、文件系统等。
/tools: 一些能够配合Cannon使用的辅助工具,如BLE调试助手。
五.例程试跑
将STLine连接到小钢炮开发板,打开Kei,连接前面下载的源码的SensorTag例程,点击下载按键,将程序下载到小钢炮开发板FLASH,按RESET键重启。
图 Keil工程
打开手机的蓝牙开关,便可以搜索到名为Cannon STag的蓝牙设备,我们选择连接。
图 手机蓝牙连接
笔者使用的Android手机,所以到应用商场下载小钢炮官方提供的手机调试APP“ST Sensor”的APP。
打开APP,选择Select Device,在弹出的设备选择中,选择小钢炮蓝牙设备。如下图所示。
图 ST Sensor软件
成功连接到小钢炮蓝牙后,可以看到下图界面,通过蓝牙,小钢炮将传感器采集到的数据传送到手机APP,进度条的长度代表不同的数值,分别有:温度、湿度、压力和九轴的传感器数据(三轴的磁力计、三轴的线加速度计、三轴的陀螺仪数据)。
图 APP接收数据
小钢炮开发板除了能学习传感器应用,还能通过自带的蓝牙例程来学习蓝牙开发,通过蓝牙来控制板上的LED灯闪烁。
图 蓝牙控制LED灯[!--empirenews.page--]
六.总结
笔者玩过许多和小钢炮类似的开发板,比如之前评测的Arduino 101和D2000,他们三者非常相似,都是物联网开发板,都提供了低功耗蓝牙通讯。但是小钢炮将更多传感器集合在一块小板上,结合ST的STM32F401,性能比前两者更加强大,可扩展性和可玩性更加高。
小钢炮开发板不仅仅在硬件上选择了很好的搭配,在软件上,小钢炮官方提供了方便开发的SDK,而且有专门的论坛版块,玩家可以在上面疑问解答,交流心得。
为了帮助开发者更好的调试该开发板,提供了两个设备平台的调试APP,有IOS和Android两个版本。同时他们也将这些APK开源,帮助开发家编写自己的APK。玩家不仅可以学习嵌入式开发,还能学习Andoird和IOS的APP开发,太给力了!
总而言之,小钢炮是笔者目前收集的几十块开发板中,最喜欢的一块了。对了这种免费的开源平台,笔者希望它能越来越成功,参与其中的用户起来越多,打造一个更庞大的开源平台。
七.资料下载地址
本文系21ic原创,未经许可禁止转载