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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
COCOFLY教程
——疯壳无人机·系列
SPI(气压计数据获取)

0 r, f) x4 Q3 K; J  K6 x5 i- d7 f$ |6 @4 f) V4 K/ O4 }6 v& p
, E  i4 e7 Z- L7 L5 |) }
  
( D( x# ~# V+ K0 b    图1
; ?7 n: [2 z( g8 P& V3 b) f( z: @" L$ ]0 S3 R
0 _2 @1 k& s3 Z# J, k0 N
    一、SPL06 简介* c7 S1 g+ k; y6 l. R0 y
    SPL06 是歌尔公司最新推出新款气压传感器,最新推出新款气压传感器SPL06-001,歌尔是全球领先的 MEMS 厂家,SPL06 利用歌尔多年积累的 MEMS 开发技术,通过搭载高精度的检测用 MEMS(MicroElectroMechanicalSystems)即微机电系统和低功耗的集成电路,实现了业界最高级别别的精度±5cm,SPL06 是一种具有高精度和低电流消耗的小型化的数字式气压传感器,兼具压力和温度测量两种特点。压力传感器元件基于电容传感器原理,保证温度变化过程中的高精度测量。小型封装结构适合移动应用和可穿戴设备等。SPL06 的内部信号处理器将压力和温度传感器元件的输出转换为 24 位数据。每个压力传感器已被单独校准并包含校准系数。在应用中使用系数将测量结果转换成真实的压力和温度值。# d' s$ _3 h' s( H/ F
    SPL06 的实物图如下所示。" [, @5 {* U0 v; A" n% F' r& m2 m
  h, M+ c# Y) J# F3 o
   
5 K+ T! t( s- G* |2 K    图2: u, h( T- A$ X, w- V2 d6 R+ l8 B6 [
    二、气压计数据获取实验
2 B# o4 N( L. G; m! ?0 o( [" b# O4 N. Z    气压计数据获取实验使用 STM32 的硬件 SPI 与气压计 SPL06 相连接,串口1 即 UART1,通过 USB 转串口模块连接电脑,把 SPI 获取到的 SPL06 的原始压力值以及原始温度值数据通过串口 1 传输到电脑端的串口调试助手显示出来。做该实验的时候需要把视觉模组暂时取下,并且把 USB 转串口的线接到视觉模组接口处。气压计 SPL06 在无人机顶部的白色 RGB 彩灯盒里,通过软排把 SPI 及供电口接出,如下图所示。
# u0 k( G9 u( `' C: e% e
8 b+ K9 w0 u0 @+ R* g# R$ u    
- c; R+ [' }4 b, V( {    图3
) n# e9 X  D' g: N6 F    根据原理图,可以看到 SPL06 的的 SPI 接口分别是:PB15、PA5、PA6、PA7, 如下图所示。
- e  E5 p7 P0 m8 Q" K7 |0 J7 y. b& ]+ s- J& h, ~( ~( j
  
  p- f) k- V1 s9 P    图4
; [8 {; S) G0 R1 |3 }8 H    串口 1 的配置可以参考《串口(基础收发),配置代码(通过调用官方库)。获取 SPL06 的数据代码编写的思路如下:
% U+ S" J0 E3 F0 N7 L. Z: Z" x1 m6 E$ I. h2 A# ]& v. a
    $ P! f! r/ B: v$ f5 Y# K
    表1! m- {8 y0 ?% x/ l. J9 c% I
    SPI 初始化代码如下:
3 B# K9 N0 U, {' N  l3 }/ b/ i# V1 r9 Q. P) z$ @
   2 l, Q( h, x* o4 X( \8 B2 `
    图5
& n7 n& @. m! @1 H' ^6 `    SPI 的读写代码如下。
9 A. S) ?: P4 t! Q5 f# e5 @6 a- }# E7 {  V5 y  j9 `3 q
    - d. V+ {8 W: y. W
    图6
+ A7 O5 X) w1 ^: d    SPL06 的初始化代码如下。
  e- K4 b0 g$ e; l0 o% m
* O* V' [5 m  ]3 h: u0 _    1 X' J# o8 z% J: ?! H7 T
    图7$ s2 }5 d  x! N# T, e- |
    SPL06 的读写代码如下。
4 i9 y& q3 R6 |: T; C6 ~
1 A: ^  r* F  S: f% T. ]     $ j& Z3 }7 V5 X! g4 n* q3 D
    图8
+ L/ e% L4 L/ C4 B, y6 F    查看手册发现压力、温度的 24 位原始值在地址 0x00~0x05 上。1 l- ?2 j& r2 @$ K, j
  ~9 Y! B- E7 K& q( Y
   
: A+ U. Q" P$ L9 p5 R, D* V    图9
0 d: M$ m7 ?( V# l) p5 N    读取该寄存器数据,并发送到串口上。代码如下所示。
0 _: z2 L! Y0 G5 r' g1 X6 Q
5 [) h6 |+ ^/ L& V1 p7 q5 c     * A1 p$ k/ W7 j2 G
    图102 \2 ]- m3 D# r( J7 m
    这里注意要把串口的发送也配置好,这样才能把数据发送到电脑。串口 1 通过 USB 转串口模块接到电脑,保存、编译、下载代码,可以看到 USB 转串口模块在不断地打印 SPL06 的 3 个字节原始压力值数据以及 3 个字节的原始温度数据,数据如下图所示:
, }" N# n, U( o& W
! m) K) N7 F" E6 p2 N; X$ E1 }    
' U$ h& [, s/ z/ ?0 \6 |4 Y' d# G    图11: B  N9 E' V5 h: `

4 K; F5 G( g) S( I8 G5 Z0 L9 g, w! D9 F4 g$ @3 X$ G! s& h
更多完整学习资料和对应开源套件,请登陆官网:”疯壳“   / `7 h5 Y0 D3 f
如需定制开发,请通过官网”疯壳“网页底部的”联系我们“进行联系
* i6 z1 p- y. f3 f( R7 U1 n2 q* {' K
5 R! B+ ~& X$ x* l* W4 [    文件下载请点击: 【7】SPI(气压计数据获取).pdf (1.04 MB, 下载次数: 2)
, s4 z6 l/ B$ |- o: w) T8 z9 v2 F( `4 c4 q+ I. {
7 u+ E: {: Y3 R( n3 ?" |

: c/ e+ v/ g$ n8 g; ], j( N) O7 y5 t1 p5 o3 N
5 {8 c( W' g; D2 \9 g5 j

/ i9 @2 F  W" i2 e
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-13 06:59 , Processed in 0.156250 second(s), 27 queries , Gzip On.

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

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

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