当前位置: 首页 > news >正文

BLEMotion-Kit 支蓝牙运动传感评估套件

文章目录

    • 1. 说在最前面
    • 2. BLEMotion-Kit 的颜值
      • 2.1 [**开发板购买链接**](https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-12236672109.17.81875d44LJ6kzB&id=682514576792)
      • 2.2 引脚分配
      • 2.3 CH573
    • 3. 开发环境
      • 3.1 `firmware` 例程
      • 3.2 开发资源
    • 4. 视频展示
      • 4.1 静止状态下1分钟零偏测试
      • 4.2 加速度计输出重力加速度&陀螺仪输出角速率
      • 4.3 3D 欧拉角输出

1. 说在最前面

接触了惯性导航相关产品的开发之后,我感觉要利用业余时间做些什么,思考了很久也没发现自己能有什么好的想法,做一个不一样的东西。但是一直停留在思考的阶段挺痛苦的,于是我决定不如先行动,先动起来在调整。最终利用业余时间设计了一款基于BLE+6轴传感器的评估套件。 在做例程规划的时候,我突然发现,我可以做一些垂直于行业的方案评估,支持蓝牙的环境和运动传感解决方案。于是就有了这套基于 RISC-V BLE(CH573) 的嵌入式开发板,我给它取名为:BLEMotion-Kit

2. BLEMotion-Kit 的颜值

在这里插入图片描述
板子BLE模块
在这里插入图片描述

2.1 开发板购买链接

2.2 引脚分配

端口功能引脚名功能备注
按键S1PB23RESET
按键S2PB22BOOT下载程序前,先按下boot再上电LED
LED1PB15IIC,JP7短接有效
扩展PIN20PB15MISOSPI,JP8短接有效
SDA1PB14OLDE数据线IIC,JP5短接有效
扩展PIN18PB14MOSISPI,JP6短接有效
SCL1PB13OLDE时钟线IIC,JP3短接有效
扩展PIN16PB13SCLKSPI,JP4短接有效
扩展PIN4PB12NSSSPI
TXDPA9UART_TXJP15短接有效
扩展PIN2PA9JP16短接有效
RXDPA8UART_RXJP13短接有效
扩展PIN1PA8JP14短接有效
SDA0PB7MEMS传感器数据线JP11短接有效
扩展PIN14PB7JP12短接有效
SCL0PB4MEMS传感器时钟线JP9短接有效
扩展PIN12PB4JP10短接有效
INT0PA4MEMS传感器中断线JP1短接有效
扩展PIN3PA4JP2短接有效
扩展PIN6PA5
扩展PIN5PA15AIN5
扩展PIN7PA14AIN4
扩展PIN9PA13AIN3
USBPA11USB1_D-
PA12USB1_D+

2.3 CH573

在这里插入图片描述

  • 32位RISC处理器
  • 支持RV32 IMAC指令集,支持单周期乘法和硬件除法
  • 内置18K SRAM,512K Flash ROM,支持ICP、ISP和IAP,支持OTA无线升级
  • 集成2.4GHz RF收发器和基带及链路控制,提高优化的协议栈和应用层API,支持组网
  • 支持3.3V和2.5V电源,内置DC/DC转换,0dBm发送功率时电流为6mA
  • 多种低功耗模式:Idle,Halt, Sleep, Shutdown, 内置电池电压低压监控,最低睡眠电流0.3uA
  • 内置USB控制器和USB收发器,支持USB2.0全速和低速主机或设备
  • 内置实时时钟RTC,支持定时和触发两种模式
  • 提供8通道12位ADC模数转换器,支持8通道触摸按键
  • 提供4组26位定时器,支持捕捉/采样,支持4路26位PWM输出,支持6路8位PWM输出
  • 提供4组独立UART,兼容16C550,最高通讯波特率可达6Mbps
  • 提供1组SPI,内置FIFO,支持Master和Slave模式
  • 内置温度传感器
  • 提供20个GPIO,其中4个支持5V信号输入,所有GPIO支持中断和唤醒功能
  • 内置AES-128加解密单元,芯片唯一ID
  • 封装:QFN28_4X4

3. 开发环境

支持 MounRiver Studio (MRS)。
MRS 的介绍和软件资源在:MRS 官网

3.1 firmware 例程

文件目录
  |
  |-- CH573: 低功耗蓝牙 - 32位RISC-V内核微控制器
  |      |
  |      |-- EVT: CH573相关例程
  |      |      |-- EXAM: 
  |      |      |      |-- SRC  
  |      |      |      |      |-- Ld:link文件
  |      |      |      |      |-- RVMSIS:内核系统头文件
  |      |      |      |      |-- Startup:CH57x系列启动文件
  |      |      |      |      |-- StdPeriphDriver:基本外设驱动源文件及头文件
  |      |      |      |-- ADC:adc采样例程,包括温度检测、单通道检测、差分通道检测、TouchKey检测、中断方式采样
  |      |      |      |-- FLASH:片上flash例程:包括Code区,DataFlash区的擦//|      |      |      |-- IAP
  |      |      |      |      |-- APP:和IAP配套使用的APP程序例程
  |      |      |      |      |-- USB_IAP:通过USB更新片上程序的例程
  |      |      |      |      |-- UART_IAP:通过串口更新片上程序的例程
  |      |      |      |      |-- WCHMcuIAP_WinAPP:IAP上位机工具及源码
  |      |      |      |-- PM:系统睡眠模式并唤醒例程:GPIOA_5作为唤醒源,共4种功耗等级
  |      |      |      |-- PWMX:PWM4-11输出功能例程
  |      |      |      |-- SPI0:SPI0例程,Master/Slave 模式数据收发 
  |      |      |      |-- TMR:定时器功能例程  
  |      |      |      |-- UART1:串口1收发例程
  |      |      |      |-- USB
  |      |      |      |      |-- Device
  |      |      |      |      |      |-- COM:USB模拟CDC设备例程
  |      |      |      |      |      |-- VendorDefinedDev:模拟自定义USB设备(CH372设备)例程,提供8个非0通道(上传+下传),实现数据先下传,然后数据内容取反上传
  |      |      |      |      |      |-- CompoundDev:USB模拟键鼠例程,支持增加数据上传;USB唤醒功能,USB HID类命令。 
  |      |      |      |      |      |-- HID_CompliantDev:USB模拟HID兼容设备例程
  |      |      |      |      |-- Host
  |      |      |      |      |      |-- HostEnum:USB常见设备hid键鼠,hub的枚举数据上下传演示等
  |      |      |      |      |      |-- HostAOA:USB主机应用例子,支持连接安卓设备与APP进行通讯。
  |      |      |      |      |      |-- U_DISK:U盘文件系统示例
  |      |      |      |      |      |      |-- EXAM1.C:C示例源程序,以字节为单位读写文件,包括文件创建、删除、修改文件属性,修改文件名  
  |      |      |      |      |      |      |-- EXAM10.C:C示例源程序,包括文件创建、删除、修改文件属性,修改文件名  
  |      |      |      |      |      |      |-- EXAM11.C:C示例源程序,枚举根目录或者指定目下的文件  
  |      |      |      |      |      |      |-- EXAM13.C:C示例源程序,创建长文件名文件  
  |      |      |      |      |      |-- USB_LIB:U盘文件系统库文件
  |      |      |      |-- BLE
  |      |      |      |      |-- Broadcaster:广播者角色例程,处于广播态一直广播
  |      |      |      |      |-- CyclingSensor:骑行传感器例程,连接主机后定时上传速度和踏频
  |      |      |      |      |-- CentPeri:主从一体例程,整合了主机例程和从机例程的功能同时运行
  |      |      |      |      |-- Central:主机例程,主动扫描周围设备,连接至给定的从机设备地址,寻找自定义服务及特征,执行读写命令,需与从机例程配合使用,并将从机设备地址修改为该例程目标地址,默认为(84:C2:E4:03:02:02)
  |      |      |      |      |-- HeartRate:心率计例程,连接主机后定时上传心率
  |      |      |      |      |-- Peripheral:外设从机角色例程,自定义包含五种不同属性的服务,包含可读、可写、通知、可读可写、安全可读
  |      |      |      |      |-- RunningSensor:跑步传感器例程,连接主机后定时上传速度
  |      |      |      |      |-- HID_Keyboard:蓝牙键盘例程,模拟键盘设备,连接主机后定时上传键值
  |      |      |      |      |-- HID_Mouse:蓝牙鼠标例程,模拟鼠标设备,连接主机后定时上传键值
  |      |      |      |      |-- HID_Consumer:蓝牙拍照器例程,模拟用户控制设备,连接主机后定时上传音量键下键
  |      |      |      |      |-- HID_Touch:蓝牙触摸例程,模拟触摸笔设备,连接主机后定时上传触摸值
  |      |      |      |      |-- MultiCentPeri:多主机多从机例程,支持同时连接三个主机三个从机
  |      |      |      |      |-- MultiCentral:主机多连接例程,主动扫描周围设备,连接至给定的三个从机设备地址,寻找自定义服务及特征,执行读写命令,需与从机例程配合使用,并将从机设备地址修改为该例程目标地址,三个从机设备地址默认为 (84:C2:E4:03:02:02)(84:C2:E4:03:02:03)(84:C2:E4:03:02:04)
  |      |      |      |      |-- Observer:观察者角色例程,定时扫描,如果扫描结果不为空,则打印扫描到的广播地址
  |      |      |      |      |-- Direct_Test_Mode:DTM测试例程序,结合RF测试工具使用
  |      |      |      |      |-- RF_PHY:非标准无线收发例程
  |      |      |      |      |-- RF_PHY_Hop:非标准无线跳频收发例程
  |      |      |      |      |-- MESH
  |      |      |      |      |      |-- adv_ali_light:天猫精灵灯例程,可通过天猫精灵找队友配网设备,控制开关状态。默认只有开关属性,如需添加其余属性(亮度,电量,温度等),需要自行根据阿里云产品配置的属性描述添加对应处理函数以及状态上报函数。
  |      |      |      |      |      |-- adv_ali_light_add_lightness:MESH通用属性添加例程。天猫精灵灯例程的基础上,添加了亮度属性,用于对照原天猫精灵灯例程,快速熟悉添加其他MESH通用属性的方法。
  |      |      |      |      |      |-- adv_ali_light_add_windspeed:天猫定义属性添加例程。天猫精灵灯例程的基础上,添加了风速属性,用于对照原天猫精灵灯例程,快速熟悉添加其他天猫定义属性的方法。
  |      |      |      |      |      |-- adv_ali_light_multi_element:多元素天猫精灵风扇灯例程。同时包含风扇开关摇头和灯开关颜色控制。用于对照原天猫精灵灯例程,快速熟悉添加多个属性的方法。
  |      |      |      |      |      |-- adv_ali_light_with_peripheral:天猫精灵灯例程的基础上,添加亮度和色温控制,并支持手机BLE调试助手连接控制。
  |      |      |      |      |      |-- adv_proxy:代理节点例程,可通过PB_GATT层(BLE连接)进行配网。
  |      |      |      |      |      |-- adv_vendor:厂商自定义模型例程,配合self_provisioner_vendor使用,支持有应答传输和无应答透传两种通信属性,自行拟定通信协议。
  |      |      |      |      |      |-- adv_vendor_friend:厂商自定义模型例程的基础上,支持朋友节点功能
  |      |      |      |      |      |-- adv_vendor_low_power:厂商自定义模型例程的基础上,支持低功耗节点功能,需与朋友节点配合使用
  |      |      |      |      |      |-- adv_vendor_self_provision:厂商自定义模型例程的基础上,支持本地自配网,适配无配网者或简化配网流程等特殊应用场景
  |      |      |      |      |      |-- adv_vendor_self_provision_with_peripheral:厂商自定义模型例程的基础上,支持手机BLE调试助手连接控制,通过BLE接收配网信息并将自身配网,适用于终端控制组网应用,可自行拟定通信协议实现手机控制mesh网络中所有设备。
  |      |      |      |      |      |-- self_provisioner_vendor:厂商自定义模型自配网发起者例程,配合adv_vendor使用,自动配网周围未配网设备,并将其加入自身mesh网络,默认支持配网6个设备。默认配置设备绑定1个APPKEY,用于有应答传输和无应答透传,配置设备绑定1个订阅地址,用于群发无应答消息
  |      |      |      |      |      |-- self_provisioner_vendor_with_peripheral:厂商自定义模型自配网发起者例程的基础上,支持手机BLE调试助手连接控制,中转手机与mesh网络的通信,可自行拟定通信协议实现手机控制mesh网络中所有设备。
  |      |      |      |      |      |-- MESH_LIB:MESH协议栈库文件及其头文件
  |      |      |      |      |      |-- 沁恒低功耗蓝牙MESH软件开发参考手册.pdf
  |      |      |      |      |-- LWNS:LWNS无线组网例程,包含broadcast、unicast、netflood、mesh等功能。
  |      |      |      |      |-- BackupUpgrade_IAP:备份无线升级IAP例程,检测当前代码标志,判断是否搬运备份区代码到用户区并运行用户区代码
  |      |      |      |      |-- BackupUpgrade_JumpIAP:备份无线升级跳转IAP例程,放在代码起始地址,负责跳转到IAP程序
  |      |      |      |      |-- BackupUpgrade_OTA:备份无线升级用户例程,外设从机例程基础上添加OTA功能,可将升级固件保存到备份区后跳转IAP程序进行升级
  |      |      |      |      |-- OnlyUpdateApp_IAP:固定库无线升级IAP例程,具备OTA功能,接收升级固件后对用户区代码进行升级
  |      |      |      |      |-- OnlyUpdateApp_JumpIAP:固定库无线升级跳转IAP例程,放在代码起始地址,负责跳转到IAP程序
  |      |      |      |      |-- OnlyUpdateApp_Peripheral:固定库无线升级用户例程,外设从机例程基础上添加跳转IAP程序进行后续升级的功能
  |      |      |      |      |-- BLE_UART:蓝牙串口透传例程,详细说明参考根目录<说明.txt>文档
  |      |      |      |      |-- BLE_USB:蓝牙与USB合用例程,USB模拟340设备转发蓝牙数据
  |      |      |      |      |-- SpeedTest_Central:蓝牙测速主机例程
  |      |      |      |      |-- SpeedTest_Periphera:蓝牙测速从机例程
  |      |      |      |      |-- HAL:例程共用的硬件相关文件
  |      |      |      |      |-- LIB:BLE协议栈库文件及其头文件
  |      |      |      |      |-- 沁恒低功耗蓝牙软件开发参考手册.pdf
  |      |      |      |      |-- WCH蓝牙空中升级(BLE OTA).PDF
  |      |      |      |      |-- BLE认证证书:产品:WCH CH57x  QDID:135567
  |      |      |      |      : 运动传感解决方案
  |      |      |      |      |-- ICM40607_AttitudeAngle:输出原始数据/四元数/欧拉角, 在上位机上展示
  |      |      |      |      |-- ICM40607_WakeonMotion: (基于硬件寄存器)运动唤醒功能
  |      |      |      |      |-- ICM40607_PedometerFeature:计步器功能  【正在开发中...|      |      |      |      |-- ICM40607_RaisetowakeFeature:抬起唤醒功能   【正在开发中...|      |      |      |      |-- ICM40607_TiltFeature:倾斜功能    【正在开发中...|      |      |      |      |-- ICM40607_Freefall:自由跌落功能   【正在开发中...|      |      |      |      |-- ICM40607_TapFeature:敲击功能    【正在开发中...|      |      |      |      |-- QMI8658_AttitudeAngle:输出原始数据/四元数/欧拉角, 在上位机上展示    【正在开发中...|      |      |      |      : 更多应用方案
  |      |      |      |      |-- 
  |      |      |      |      |-- PocketMultimeter:袖珍万用表    【正在开发中...|      |      |      |      |-- wristband:手表                   【正在开发中...|      |      |      |      |-- OLED_Demo:OLED 图形库显示动态效果   

3.2 开发资源

  • CH573 介绍页面 (WCH)
  • CH573 沁恒官方例程
  • CH573 芯片手册 (WCH)

4. 视频展示

4.1 静止状态下1分钟零偏测试

静止1分钟零偏测试

4.2 加速度计输出重力加速度&陀螺仪输出角速率

3轴重力加速度-3陀螺仪角速度输出

4.3 3D 欧拉角输出

最优角度

相关文章:

  • 网课查题公众号平台及平台系统如何使用
  • 标准中文电码查询易语言代码
  • 影视新闻查询易语言代码
  • 开发环境搭建-windows系统使用nvm安装配置node本地环境
  • nacos配置中心的使用规则
  • 计算机毕业设计springboot+vue基本微信小程序的学生健康管理小程序
  • 董宇辉:读书让你更加深刻|程序员必读的一本书
  • Spring注解驱动之InitializingBean和DisposableBean
  • 微信输入法来了,如何下载?
  • Metacat实现原理解析
  • MTK Camera Senor Bring up 复盘总结
  • map有关的运算符重载
  • Java项目硅谷课堂学习笔记-P9-整合网关与实现订单和营销管理模块
  • 我的周刊(第055期)
  • 【GraphSAGE实践】YelpChi评论图数据集上的反欺诈检测
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • Angular 2 DI - IoC DI - 1
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Java精华积累:初学者都应该搞懂的问题
  • JSDuck 与 AngularJS 融合技巧
  • js中的正则表达式入门
  • MobX
  • PHP的类修饰符与访问修饰符
  • php面试题 汇集2
  • Python打包系统简单入门
  • rabbitmq延迟消息示例
  • Sublime text 3 3103 注册码
  • Zepto.js源码学习之二
  • 闭包--闭包作用之保存(一)
  • 基于游标的分页接口实现
  • 来,膜拜下android roadmap,强大的执行力
  • 排序(1):冒泡排序
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 区块链分支循环
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 软件开发学习的5大技巧,你知道吗?
  • 2017年360最后一道编程题
  • ionic异常记录
  • 阿里云ACE认证学习知识点梳理
  • ​secrets --- 生成管理密码的安全随机数​
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • (2)nginx 安装、启停
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)Mysql的优化设置
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)我也是一只IT小小鸟
  • **PHP二维数组遍历时同时赋值