找回密码
 注册
关于网站域名变更的通知
查看: 203|回复: 0
打印 上一主题 下一主题

【飞控开发基础教程7】疯壳·开源编队无人机-SPI(气压计数据获取)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-7-12 16:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
COCOFLY教程
——疯壳无人机·系列
SPI(气压计数据获取)
4 D, a- E6 K, y- \: P
7 I: |$ z8 Y; o1 P* |, a
7 P1 t5 [9 J2 y5 _/ L; L7 W+ A
  
7 T- V; ], }2 m    图1
  E+ }4 {. ^; Y( e, p4 m+ N7 K0 Y0 ?$ H/ c( @% i# |
/ G/ R0 a4 E4 G, ^5 }9 G- ~: g  S
    一、SPL06 简介7 T4 j3 a' k/ S& }" D9 }  K- T* K
    SPL06 是歌尔公司最新推出新款气压传感器,最新推出新款气压传感器SPL06-001,歌尔是全球领先的 MEMS 厂家,SPL06 利用歌尔多年积累的 MEMS 开发技术,通过搭载高精度的检测用 MEMS(MicroElectroMechanicalSystems)即微机电系统和低功耗的集成电路,实现了业界最高级别别的精度±5cm,SPL06 是一种具有高精度和低电流消耗的小型化的数字式气压传感器,兼具压力和温度测量两种特点。压力传感器元件基于电容传感器原理,保证温度变化过程中的高精度测量。小型封装结构适合移动应用和可穿戴设备等。SPL06 的内部信号处理器将压力和温度传感器元件的输出转换为 24 位数据。每个压力传感器已被单独校准并包含校准系数。在应用中使用系数将测量结果转换成真实的压力和温度值。+ I' I# E  h; Y$ }. i# B  P( H) ?
    SPL06 的实物图如下所示。& a9 @" Y' |1 M6 d9 N2 m

& z( n0 z8 D, ~  o2 j" J    5 \! m" X8 c* B( _; g
    图2
* x& q% ?( t& V5 Q3 R) A    二、气压计数据获取实验/ ~3 _6 a. C* b' a7 ]. L
    气压计数据获取实验使用 STM32 的硬件 SPI 与气压计 SPL06 相连接,串口1 即 UART1,通过 USB 转串口模块连接电脑,把 SPI 获取到的 SPL06 的原始压力值以及原始温度值数据通过串口 1 传输到电脑端的串口调试助手显示出来。做该实验的时候需要把视觉模组暂时取下,并且把 USB 转串口的线接到视觉模组接口处。气压计 SPL06 在无人机顶部的白色 RGB 彩灯盒里,通过软排把 SPI 及供电口接出,如下图所示。
+ ]) }3 M6 z. Z
  P- e4 V  S* D- |6 W    
" [% i6 F# W" e- y+ a+ U, @    图3
6 |9 s1 o9 H9 I: o" W9 R/ a8 |    根据原理图,可以看到 SPL06 的的 SPI 接口分别是:PB15、PA5、PA6、PA7, 如下图所示。$ ~0 a$ F  c' a8 ?& A& h* r# N
1 W- v, S7 C& X9 a- d; s
  
6 h9 {0 P, v4 N6 {3 ?* f& ^    图4( h$ ^# J6 [( l% i! J% a
    串口 1 的配置可以参考《串口(基础收发),配置代码(通过调用官方库)。获取 SPL06 的数据代码编写的思路如下:: C3 h, ?( W, t" h9 h% L
) }' x8 u! s' O7 t. Y* Z0 O
    / p7 y% P2 q! L( u# X3 k
    表1$ V# f: E/ J2 K1 m
    SPI 初始化代码如下:% |9 L) h! h2 B2 |) T: U5 f1 m
; \7 @4 W9 c! e" \2 E
   ) Y% p4 H: i( p. W& m
    图5$ z( ^) z5 N& T
    SPI 的读写代码如下。" G! e3 o2 y3 _& N7 X

( O+ h  ~# ]1 D. D7 z    
# M3 z" O+ m/ Q, Q) f    图6
& X9 _1 p# n# y9 w+ m2 M    SPL06 的初始化代码如下。: ~. i$ i  C0 f- E$ q6 \
2 v  w0 G, B. E  K, D. U8 _  h
   
! W* ~8 x+ Q% q! K    图7
3 W' `- {9 T: v2 a1 ?* ]4 j    SPL06 的读写代码如下。4 m4 u3 b5 b% ]# e5 x  e% \4 d& c; x5 T
2 [/ |- y9 _1 S% v- v  H
    : W& A9 l- n' J( Y( p; x/ N
    图8
, w/ @$ Z* p' K* s' e    查看手册发现压力、温度的 24 位原始值在地址 0x00~0x05 上。
3 ~. N* t9 m5 {/ t1 G( i6 O6 l
; C8 _7 P" A8 ]% j) q     8 `0 ?5 h2 {) y  T, _' R, [
    图9) V5 t9 i/ m& p( a$ I
    读取该寄存器数据,并发送到串口上。代码如下所示。
, Q" \  A4 P9 Y  C. n4 i0 Z$ T8 g- a2 q
   
& g& I8 ?% I8 R" F    图10
3 D. m- e- D" d$ m, T    这里注意要把串口的发送也配置好,这样才能把数据发送到电脑。串口 1 通过 USB 转串口模块接到电脑,保存、编译、下载代码,可以看到 USB 转串口模块在不断地打印 SPL06 的 3 个字节原始压力值数据以及 3 个字节的原始温度数据,数据如下图所示:
& d3 N3 z: s1 L2 o( H9 F- ~4 V% r+ w8 H1 L# P
   5 }# q3 m1 }  i' U
    图11! U  k9 `1 m! Y/ Y
& i! o' x6 I# `6 Q" W/ y& Z

' u0 U8 j, P- ?" u4 o: U; U* } 更多完整学习资料和对应开源套件,请登陆官网:”疯壳“   
# D% n3 V9 l& S7 N, K如需定制开发,请通过官网”疯壳“网页底部的”联系我们“进行联系6 G3 ?6 l: I! D- o* b

5 o7 o% R# N. t    文件下载请点击: 【7】SPI(气压计数据获取).pdf (1.04 MB, 下载次数: 2)
3 ^" G4 y+ \# a! x( G2 }  V1 I5 a. y5 _, G
/ J8 o) C/ x2 g4 |6 K
" c7 r+ `0 J: s! L5 `

/ n0 C) R1 m2 j1 U; Z) o% x6 u+ L* ~3 y+ [1 ?' ?- J" x
. ]" \. {  a- ^$ j) h
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-20 17:50 , Processed in 0.078125 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表