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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

& _% T. L- x  a, A% Y: N& ]/ G3 P, U1 \0 U  q/ H! v5 _* c( H# ]
4 ~1 S2 m& T- f" [( L. j' `
  ) f' @1 h8 t6 `( |
    图1
: ]$ Q3 o+ {* s; S6 x7 }! f, d. B* H- v( t0 Z! @- k: k

' {4 w6 }! \- W! z    一、SPL06 简介+ X& T0 W' m  z# i8 N- y( i$ a9 ~
    SPL06 是歌尔公司最新推出新款气压传感器,最新推出新款气压传感器SPL06-001,歌尔是全球领先的 MEMS 厂家,SPL06 利用歌尔多年积累的 MEMS 开发技术,通过搭载高精度的检测用 MEMS(MicroElectroMechanicalSystems)即微机电系统和低功耗的集成电路,实现了业界最高级别别的精度±5cm,SPL06 是一种具有高精度和低电流消耗的小型化的数字式气压传感器,兼具压力和温度测量两种特点。压力传感器元件基于电容传感器原理,保证温度变化过程中的高精度测量。小型封装结构适合移动应用和可穿戴设备等。SPL06 的内部信号处理器将压力和温度传感器元件的输出转换为 24 位数据。每个压力传感器已被单独校准并包含校准系数。在应用中使用系数将测量结果转换成真实的压力和温度值。
6 k3 @4 R& m2 R& {: F) r    SPL06 的实物图如下所示。
& J$ `# w7 Z; q  b. I* Q- _5 P  T- V) F) y
   
4 Q5 S& }0 `# C' b8 A$ m    图2. g: K: u6 L- f) d
    二、气压计数据获取实验: U$ A* Y# @) D$ q" n
    气压计数据获取实验使用 STM32 的硬件 SPI 与气压计 SPL06 相连接,串口1 即 UART1,通过 USB 转串口模块连接电脑,把 SPI 获取到的 SPL06 的原始压力值以及原始温度值数据通过串口 1 传输到电脑端的串口调试助手显示出来。做该实验的时候需要把视觉模组暂时取下,并且把 USB 转串口的线接到视觉模组接口处。气压计 SPL06 在无人机顶部的白色 RGB 彩灯盒里,通过软排把 SPI 及供电口接出,如下图所示。
2 D# P' t) I; C- U' b7 n# Y) B2 V$ l2 }9 O/ P
    0 d/ m  U4 P2 R& O( B
    图3
/ i( k. _6 n6 ]$ D: Q) H    根据原理图,可以看到 SPL06 的的 SPI 接口分别是:PB15、PA5、PA6、PA7, 如下图所示。! U/ K, w- w* C( A' Y+ P- q. @; e

; n$ E  K$ J' D5 l( R   
/ P* Y% m) p4 D( _! h  d    图4- D" E( V4 ?# X  @' X
    串口 1 的配置可以参考《串口(基础收发),配置代码(通过调用官方库)。获取 SPL06 的数据代码编写的思路如下:; \7 d: S  x& ?

% k0 U! H, B! c' K% |8 n( V     9 F, g5 e: A/ M8 c# y+ W) Z& ~
    表1
& M4 e2 H9 R: s2 j    SPI 初始化代码如下:3 g7 q7 h7 P& ?
6 h/ b; z3 \  z5 G
   
7 `$ j' D1 W  v: \" x0 [  W: Y+ x    图5( ]. H* }1 q) ?0 i4 H6 `; y
    SPI 的读写代码如下。
7 v5 R+ P' u7 ^- b. l: W3 o) }$ j, U! Z6 c4 B( B
    0 K9 S. i/ l% J, d' u1 F9 X/ R
    图6
6 z! @- J* }2 M( J4 \6 A    SPL06 的初始化代码如下。
  M# K2 G9 D$ \- R: |# G9 D
; }* m2 |0 V+ a    
& _1 N7 ~0 ~* Z# ^    图7
. V2 G$ y$ N( G9 ~& ?: {7 y    SPL06 的读写代码如下。
( W: @6 I+ h$ }2 d. W1 b  h$ ^5 f; h! y  k  X3 Z# J. `3 ]
    8 Z- r7 t2 x+ I' F3 @
    图8
2 f* t+ s0 W5 @6 u. V* z" \    查看手册发现压力、温度的 24 位原始值在地址 0x00~0x05 上。" Y- T, s) G6 K# L! m+ Z
: |2 f7 I1 H$ y/ Y; o. X7 f
    . q* l* a1 `" p- O& [
    图99 v' Z: E+ x' Z  G, r
    读取该寄存器数据,并发送到串口上。代码如下所示。( ^5 ]5 u6 Q' h! y
& b& q# }/ D( I" s/ M# j
    % n( t2 i' y$ ]* V2 c% q4 p. y
    图10
% |/ K1 n" e7 i$ d' }& t5 @& w    这里注意要把串口的发送也配置好,这样才能把数据发送到电脑。串口 1 通过 USB 转串口模块接到电脑,保存、编译、下载代码,可以看到 USB 转串口模块在不断地打印 SPL06 的 3 个字节原始压力值数据以及 3 个字节的原始温度数据,数据如下图所示:5 M# x) @2 @5 y+ ~7 i* ?

9 B2 N/ f; ]: U+ b    6 f, a' I% W$ W/ d+ s
    图11  {5 k/ r  ^2 M( ~
4 Y+ o' R: G' }  k4 D9 n7 V
! o* F, N+ k! h* L( \: y  @
更多完整学习资料和对应开源套件,请登陆官网:”疯壳“   - M+ L! g- }" q- {; ?! `
如需定制开发,请通过官网”疯壳“网页底部的”联系我们“进行联系5 t+ h: @* x! u& F* j7 W( N6 v

9 E5 b- ]3 b6 E* C  L$ L. C    文件下载请点击: 【7】SPI(气压计数据获取).pdf (1.04 MB, 下载次数: 2) 1 N- [1 u; Z( X$ r- X- R

7 X' ?  O: ?5 l! i
- m! i9 H1 H0 u' Y+ u; P$ K  P5 k0 W' ~& Y0 u; v3 a) k
# p( v, j& f# Y/ \1 a  y; v
4 Y( L5 k& ?( \4 {0 s

$ @) S, a9 k8 [% `# K2 z5 D
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-29 04:40 , Processed in 0.171875 second(s), 27 queries , Gzip On.

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

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

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