1.实现功能介绍
本次活动,使用SensorTile.box上的数个传感器,实现了基于开发板方向选择不同传感器的功能。使用SensorTile.box立方体较大的四个面,当不同的面朝上时,显示不同的传感器数据。
面1朝上,测量桌面倾斜程度;面2朝上,测量温度;面3朝上,测量湿度;面4朝上测量气压。
并可以通过串口实时观察数据显示,通过使用Uinco GUI 得到了更丰富的可视化方法,使数据更加直观以及清晰。
2.各功能片段介绍
本次使用了AlgoBuilder图形化开发环境,依托STM32CubeIDE作为构建工具,在STM32CubeIDE中安装STM32L4*的固件包。在AlgoBuilder中拖动图标以及路径实现算法的设计,并通过此自动生成C语言代码,编译构建以后,使用MFU Mode模式下载入开发板中。
首先使用Sensor Hub定义好所有传感器的采样时间以及频率。基于此使用到5个传感器模块,每个传感器模块在库中都有模型,直接拖动即可使用:
(1)加速度模块:开发板静止放置时只有重力加速度,并且垂直向下,而加速度传感器有三轴输出(x,y,z)。依据此三轴输出,就可以判断开发板放置的姿态,即得知各个面的方位。并以此写出针对面朝向的逻辑判断。
面1-向上:z轴趋近于 1g,其他趋近于0g
面2-向上:y轴趋近于 -1g,其他趋近于0g
面3-向上:z轴趋近于 -1g,其他趋近于0g
面4-向上:y轴趋近于 1g,其他趋近于0g
由于面1朝上时,还需要测量一定的角度,所以我们设置阈值为0.8(主方向轴)和0.2(次方向轴),可以按照实际需要设置。
(2)倾斜传感器:此传感器依据倾斜角输出三轴信息,使用Mux组件将当前3个输出分别与数值0组合成大小为2的数组,使用Buffer Out组件依据(1)中逻辑计算的结果当被选中输出使,输出对应输出位,否则输出0(未被选中)。
(3)温度传感器:此传感器测量环境的温度,输出一个浮点数值(单位为摄氏度),同上方法,实现输出数据的选择。
(4)湿度传感器:此传感器测量环境的湿度,输出一个浮点数值(单位为百分比),同上方法,实现输出数据的选择。
(5)压强传感器:此传感器测量环境的气压,输出一个浮点数值(单位为hPa),同上方法,实现输出数据的选择。
最后将所有数据都汇集到一个数组中,通过一个窗口统一输出。
最后点击按钮,先生成C语言代码,然后构建生成二进制文件,以DFU Mode方式烧写进开发板。
3.功能演示
左图判断摆放方向,右图判断传感器输出。
Z轴上有1g的加速度大小,说明面1朝上,此时测量桌面倾斜角度,如右图中X Y Z所示。
由左图中变化得知,y轴上有-1g的加速度,所以面2朝上,右侧显示温度。
由面2变为面3朝上后,右侧显示湿度。
面4朝上后,只显示气压值。
4.心得体会
这一次活动一发布,就马上下单买了,因为觉得SensorTile.box的可玩性太高了,优良的芯片,丰富的外设资源,并且是一款物联网开发板。支持当下最热门的蓝牙,在手机上下载官方的蓝牙调试APP就可以玩起来了,并且有很多模式,满足不同的开发需求。而这一次任务我是选用AlgoBuilder作为开发工具,它以图形化方法设计算法的方式使得上手更加快,可以快速充分使用这块板卡,并且使用其他套件可以有丰富的数据可视化方式。完成此次任务只是利用此板卡的冰山一角,以后可以花更多的时间去了解和使用这款板卡。也感谢Funpack举办此次活动,让我们有这样的机会接触到更好的板卡,感谢工作人员的付出,使得我们有如此好的活动参与体验。希望Funpack能够继续举办这样的活动,对行业有更大的影响力。