Funpack第九期:使用SensorTile.box四个面实现四个不同的功能
使用SensorTile.box 立方体较大的四个面,实现四个不同的功能,转一周触发的依次是测量桌面倾角,温度,气压,湿度,触发时才显示数据,未触发默认显示为0。
标签
STM32
SensorTile.box
锅包肉
更新2021-06-10
839

Funpack第九期-使用SensorTile.box四个面实现四个不同的功能

 

介绍用本板卡最终实现了什么功能

使用SensorTile.box 立方体较大的四个面,实现四个不同的功能,如:

· 面1,测量桌面倾斜程度;

· 面2,测量温度;

· 面3,测量气压;

· 面4,测量湿度;

转一周触发的依次是测量桌面倾角,温度,气压,湿度,触发时才显示数据,未触发默认显示为0。

各功能对应的主要代码片段及解释

本次任务采用ST公司的ALgoBuilderSuite软件实现。

在开始之前需要检查FuMwkycr3s7lLXy8xB8IbxoSzI-3中的工具链是否配置齐全,如图所示。我的编译工具选择的是KEIL。

FoiDooxnQ5nPAPIYatvtQjsjNQbO

同时需要在此处选择对应的开发板:

FheyO9Q01d7G71vwhkwFC3A8kCi6FqiwECpUcjbeY1r19f2wNM6le-nh

这样就可以开始实现啦。

本次任务笔者主要用到的功能模块如图所示,均从[Sensor Hub]中接出。

FsvFqxyQXmcNrfIBGuzVhmFKjdZy

其中标红的加速度模块是实现切换功能的核心。

整体的结构框图如图所示:

Fng7wkG4wmDn3VNT45YdoKUQl9Pb

1. 判断

以下判断的数据均来自从Acceleration中Demux出来的三轴数据。

FtbNVdf25psMwtw8nM2kVojz_tIF

面1由于需要测量倾角,条件不能太苛刻,所以Z轴加速度>0.7即可判断生效。

FnuGeJdvNsTQlVYPS36p9wBj8Ac5

面2、3、4的判断设置了两个阈值,即对应轴的加速度<-0.7或者>0.7且其它轴加速度的绝对值都<0.2才判断翻转到对应面。

FpZTld3rNyq2EDRJHqsB24gUt8Q8

2. 输出

用于判断的Acceleration单独输出一个图。

Fjo_2_-at0WvbAi0sWO_oEY9YPC6

面1测量倾角时,输出了四元数的图、Sensor Fusion和Tilt Sensing测量的倾角(俯仰、滚翻、重力倾角),以便直观和精确的给出倾角信息,虽然好像不太准的样子,有漂移。

同时在数据输出时,用Demux、Buffer、Mux逻辑实现了未触发默认输出为0的模块,如图所示。

Fmk9A7-V7ysj3Jivi7iPe6GbFn0Q

测倾角部分的逻辑如下:

Fkg0syoZlxe27ezCU9E_tNPjM-re

与面1类似,面2、3、4也采用相同的逻辑进行实现,同时也用Demux、Buffer、Mux逻辑实现了未触发默认输出为0的模块,如图所示。

FlY-aljrEni2g3-r9aiXraH4yPVe

至此,整个任务一就完成啦。

输出情况

精确数据显示桌面倾斜程度(俯仰、滚翻、重力倾角)+ 可视化Sensor Fusion

FjKD43_sv7mMwSayTxPvMfoVjw_m

采用Sensor Fusion和Tilt Sensing输出,一个直观,一个精确

面2,测量温度;

FiVP9SOso5groxyItAVLhn1vC2el

只输出温度

面3,测量气压;

FrJ1IM6nS2uIL5vSZ-viiXeenH5W

只输出气压

面4,测量湿度;

Fm4E9mLI5szr5G0QmniKH0NZgr9w

只输出湿度

对本活动的心得体会(包括意见或建议)

体验到图形化编程的快感,要是写代码不知道得写到猴年马月踩多少坑,哈哈哈完成任务的过程还是蛮愉快的!

附件下载
MyExample01_Demo.xml
请使用Algobuilder打开
团队介绍
团队成员
锅包肉
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号