- 本板卡实现功能
- 软硬件介绍
本次软件主要使用ST公司的AlgoBuilder(图形界面设计应用软件),该软件工具可以快速描述STM32微控制器和MEMS传感器的应用原型,它提出零行代码快速开发原型的方法,可直观的提取并导出许多参数和传感器数据,减少编写固件代码所花费的时间和精力,用户可通过AlgoBuilder捆绑安装的Unicleo软件进行可视化显示并分析结果。
图一
本次使用的板卡是SensorTile.box主要包含多个高精度传感器如数字温度传感器(STTS751)、六轴惯性测量单元(LSM6DSOX)、三轴加速度计(LIS2DW12和LIS3DHH)、三轴磁力计(LIS2MDL)、高度计/压力传感器(LPS22HH)、麦克风/音频传感器(MP23ABS1)、温湿度传感器(HTS221)以及蓝牙模块组成。具有多种使用模式,可满足初学者和开发者的使用和开发。同时SensorTile.box还包含一个固件编程和调试接口,允许专业开发人员使用STM32开放式开发环境(STM32 ODE)进行更复杂的固件代码开发,该环境包括带有神经网络库的感应AI功能包。
图二
- 功能介绍
本次完成的是任务一:使用SensorTile.box立方体较大的四个面,实现四个不同的功能,如:
面一,测量桌面倾斜程度;
面二,测量温度;
面三测量湿度;
面四,测量气压;
数据结果通过串口进行可视化显示。
图三
- 各功能对应的主要的代码片段及解释
- 设计思路
首先要进行四个面的判断,通过对algobuilder例程的分析,最终决定使用的重力加速度xyz轴三个方向上的数字变换进行比较判断从而确定面。通过判断条件确定面后选择使用的传感器,进而达到任务要求在规定面对应传感器输出并显示数据。
- 具体设计
图四、完整流程图设计
立方体面的判断条件,通过对重力加速度的传感器的分析可知:面一时,Z轴加速度分量接近1且xy轴分量接近于0;面二时,y轴加速度分量接近-1且xz轴分量接近于0;面三时,Z轴加速度分量接近-1且xy轴分量接近于0;面四时,y轴加速度分量接近1且xz轴分量接近于0;由于在翻转时加速度波动较大并不是稳定与0、1、-1,所以采用大于特定值和小于特定值来判断,选用大于0.7/-0.7、小于0.4/-0.4。
图五
红色为重力加速度传感器,通过Demux进行拆分,分出xyz三个单独的分量进行下一步的判断。BarGraph将xyz分量的值通过柱状图表示,可以更加直观的观察出其变化量。And起到逻辑与的作用,xyz分量值进行比较判断后逻辑相与输出为真时对应传感器开始工作。
图六
- 主要功能
图七 图八
图七中Sensor Hub为传感器集成器,是设计中不可缺少的部分。通过四元数利用茶壶模型可视化看出板卡目前所处的状态,如图八。
图九
图九使用Tile Sensing传感器直接输出三个方向的姿态角,图十再次使用重力加速度对XYZ分量进行数学运算得到theta、psi、phi方向上的角度。
图十
图十一
图十一是面二、三、四对应的温度、湿度、压强传感器,当达到触发条件时开始工作并通过缓冲数组来进行数据输出。
- 功能演示及结果说明
图十二
使用algobuilder时要对其进行配置,这里配置使用keil的编译器(程序见附件)
图十三
上图,我们设置茶壶盖子朝上时定义为面一,此时可测量角度变化情况。
图十四
此时茶壶侧边朝上为面二,图右测窗口显示出温度的变化情况。
图十五
此时茶壶盖子朝下为面三,图右测窗口为湿度变化情况。
图十六
此时茶壶侧边朝上为面四,图右测窗口为气压变化情况。
- 心得体会
非常感谢电子森林、硬禾学堂和Digikey举办的这次活动。本次活动虽然是比较基础的开发,但是通过这次活动,使我收获很多,也从中发现了自己的很多不足,此次设计在稳定性上还需要进一步优化和提升。这次活动也是使我接触到了进一步了解STM32的传感器的MEMS,体会到了ST公司的强大。希望以后可以有更有意思的板卡。