Funpack第九期_SensorTile.box_任务一:四合一功能展示
使用SensorTile.box其中四个较大的面,每个面实现一个功能:温度测量、湿度测量、压强测量、角度测量,当对应面朝上时,对应功能触发,输出测量结果,否则输出默认值(0)
标签
嵌入式系统
vic
更新2021-06-22
679

任务说明:

本次完成的任务是任务一:使用SensorTile.box立方体中较大的四个面始实现不同的功能。

  • 面一用于测量桌面倾斜程度,使用的传感器是加速度计;
  • 面二用于温度测量,使用的是温度计;
  • 面三用于湿度测量,使用的湿度计;
  • 面四用于压强测量,使用的是气压计;
  • 使用加速度计测量各个轴上的重力计算度,来判断哪个面朝上

 

代码简介:

代码整体上分为一下几个部分:

  1. 通过获取传感器计算得到四元数,通过一个茶壶视图的方式展示盒子当前姿态;
  2. 通过温度传感器,测量当前环境温度;
  3. 通过湿度传感器,测量当前环境湿度;
  4. 通过气压传感器,测量当前环境压强;
  5. 通过加速度传感器,计算欧拉角,来获取盒子的倾斜角度;
  6. 通过加速度传感器,依据重力加速度大小,判断当前盒子那个面朝上。

如下图,为完整的流图:

Fpp_La7cv4VgwRrJopcTH7b0H9Vx

 

 

如下图,该部分的操作是获取四元数,然后可视化显示出来(通过一个茶壶的姿态来展示盒子的当前姿态)

Ft0x6dqrhpKg9677pVVUgdPQwwN3

 

如下图,主要是温度、湿度、气压、角度量的获取,最终以文本的方式进行展示。这里需要注意的是,传感器数据不能直接输出,需要指定的面朝上时,才能进行输出,否则输出默认值(0)。这里实现选择的的就是Switch控件。

Foja6WG79JslXt-wxG_c0-duV4wQ

如下图,就是通过获取加速度传感器在三个轴上的重力加速度值,然后与阈值进行判断,以此获取当前是哪个面朝上,输出的结果连接到Switch的控制脚上,来实现不同面进行不同数据测量的效果。

FqIIpEGpldva-U-gtQRZ4jXgoBA-

功能展示:

如下图所示,左边展示的是盒子的当前状态,右边展示的是输出结果,当前是第一个面朝上,触发的操作是角度测量,从输出结果可以看到,除了角度值,其余值都是禁止输出(0),证明触发的是角度测量功能。

Fnznj2YxUht2rSSwOijzc6W-B45-

如下图所示,此时为第二个面朝上,触发的是温度测量功能。从右侧的结果输出页面中可以看到,除了温度数值持续在更新,其余输出禁止输出(0)。

FnzC-YKqYIsCARNQcvgDetrA24wn

如下图所示,此时为底面,也就是第三个面朝上,触发的是湿度测量功能。从右侧的结果输出页面中可以看到,除了湿度数值持续在更新,其余输出禁止输出(0)。

FrIL0nKhDh8pRzuswJFQyXXJ66FZ

如下图所示,此时是第四个面朝上,触发的是压强测量。从右侧的结果输出页面中可以看到,除了压强数值持续在更新,其余输出禁止输出(0)。

Fh3LkLLEuaFMmfI_Tcs5fIMwjqHb

心得体会:

SensorTile.box这个小设备,基本上包含了一个产品常见的传感器外设,可以很方便的进行功能验证,以及作为参考设计。同时,通过APP、AlgoBuiler进行拖拽式编程,完全不需要了解底层代码逻辑以及编写方式就可以完成功能实现,很方便。

其实就ST这些年推出的产品来看,越来越倾向用户只需要实现上层业务逻辑即可,底层都由通用代码加配置工具进行实现,大幅度降低开发中的重复工作量,相信以后单片机的开发会越来越快。

 

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