Funpack 第九期 SensorTile.box 不同面朝上实现四个不同功能
使用SensorTile.box检测环境参数,并判断当前在上方的面输出对应参数
标签
嵌入式系统
tinysheeep
更新2021-06-22
587

任务:环境监测站

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

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

  • 面2,测量温度;

  • 面3,测量湿度;

  • 面4,测量气压;

使用串口工具对采集到的数据进行可视化显示

设计思路

     拿到SensorTile.box后,我就直接用官方的手机app玩起自定义程序的功能,这种方式编程较为简单,不过功能不够全面。由于官方的手机app不能对加速度计输出的分量分别进行判断或运算,我就选用进阶一点的Algo Builder进行程序开发。

      Algo Builder使用图形化的方式编程,软件界面十分简洁,也很容易上手。参照使用手册一下就可以产生可下载的程序。algo Builder中有许多预设好的功能块可以使用来构建程序,也可以用子模块的层次化方式构建程序。由于这次任务比较简单,所需的功能不多,我就在一个主设计中设计所有的功能了。

      这次任务的设计不难,设计的具体程序如下图所示。首先要是对当前朝上的面进行判断,只需将加速度计的y z分量取出与预设的阈值进行判断即可,输出的逻辑值用于后面数据的选择。为了数据的稳定,我在各个传感器后添加了滑动平均滤波器。温度湿度以及气压数据可以直接输出至value显示模块,要让输出数据和朝上的面相关,在每个传感器数据后添加switch模块即可,使数据对应面不在上时输出0。最后是对倾斜度的测量,为了使用方便,我选择计算出x y两个维度上的倾斜度同时进行显示。计算上取加速度计xz和yz分量的反正切就是所需的倾斜度了。最后的输出模块可以用angle level来显示出一个形象的倾斜度。

FoRQGwgyvCJ7NBM6EzphRjB5AkIt

      程序具体的功能演示如下:

      Fs-booCETCqUyVrNgNwFdyyE9sNSFiavGzHtbGLkHNtAVtraJOrf5oe5

      可以看到当开发板1面在上方时,向两个不同方向倾斜后倾斜度的x部分和y部分分别测量到倾斜度,数值与开发板倾斜的角度相符,与此同时,其他传感器数值为0。

FjzTTWnAQXF0Vw9XIMqI_8NZ5Grf

      当开发板2面在上方时,输出温度数值,与此同时,其他传感器数值为0。

Fkm8LF03gcZckLe-gRq0RAGeFq_y

      当开发板3面在上时,输出温度数值,与此同时,其他传感器数值为0。

FjbL-RgzS8ebfGdCBGHcJaQYm2Gw

      当开发板4面在上时,输出气压数值,与此同时,其他传感器数值为0。

 

心得体会

      第一次尝试用图形化的方式开发应用,体验很特别。开发的速度非常快,但对较大的应用开发还是有点不足。通过本次活动还了解到ST有许多不错的MEMS和传感器,都有着很好的功耗和精度。

团队介绍
不会STM32
团队成员
tinysheeep
居然是一个人
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号