疯壳AI开源无人机SPI(气压计数据获取)
<div class='showpostmsg'><p>一、SPL06简介</p><p> SPL06是歌尔公司最新推出新款气压传感器,最新推出新款气压传感器SPL06-001,歌尔是全球领先的MEMS厂家,SPL06利用歌尔多年积累的MEMS开发技术,通过搭载高精度的检测用MEMS(MicroElectroMechanicalSystems)即微机电系统和低功耗的集成电路,实现了业界最高级别别的精度±5cm,SPL06是一种具有高精度和低电流消耗的小型化的数字式气压传感器,兼具压力和温度测量两种特点。压力传感器元件基于电容传感器原理,保证温度变化过程中的高精度测量。小型封装结构适合移动应用和可穿戴设备等。SPL06的内部信号处理器将压力和温度传感器元件的输出转换为24位数据。每个压力传感器已被单独校准并包含校准系数。在应用中使用系数将测量结果转换成真实的压力和温度值。</p>
<p>SPL06的实物图如下所示。</p>
<p><img alt="image.png" src="http://uphotos.eepw.com.cn/1497260930/pics/1587887393680326.png" title="1587887393680326.png" /></p>
<p>二、气压计数据获取实验</p>
<p>气压计数据获取实验使用STM32的硬件SPI与气压计SPL06相连接,串口1即UART1,通过USB转串口模块连接电脑,把SPI获取到的SPL06的原始压力值以及原始温度值数据通过串口1传输到电脑端的串口调试助手显示出来。做该实验的时候需要把视觉模组暂时取下,并且把USB转串口的线接到视觉模组接口处。气压计SPL06在无人机顶部的白色RGB彩灯盒里,通过软排把SPI及供电口接出,如下图所示。</p>
<p><img alt="image.png" src="http://uphotos.eepw.com.cn/1497260930/pics/1587887405113931.png" title="1587887405113931.png" /></p>
<p>根据原理图,可以看到SPL06的的SPI接口分别是:PB15、PA5、PA6、PA7,如下图所示。</p>
<p><img alt="image.png" src="http://uphotos.eepw.com.cn/1497260930/pics/1587887418576372.png" title="1587887418576372.png" /><img alt="image.png" src="http://uphotos.eepw.com.cn/1497260930/pics/1587887421925010.png" title="1587887421925010.png" /></p>
<p>串口1的配置可以参考《串口(基础收发),配置代码(通过调用官方库)。</p>
<p>获取SPL06的数据代码编写的思路如下:</p>
<table>
<tbody>
<tr>
<td width="63">
<p>1</p>
</td>
<td width="134">
<p>管脚配置</p>
</td>
<td width="240">
<p>1、定义结构体</p>
<p>2、使能时钟</p>
<p>3、填充结构体</p>
<p>4、装载结构体</p>
</td>
</tr>
<tr>
<td width="63">
<p>2</p>
</td>
<td width="134">
<p>SPI配置</p>
</td>
<td width="240">
<p>1、定义结构体</p>
<p>2、使能时钟</p>
<p>3、填充结构体</p>
<p>4、装载结构体</p>
<p>5、使能SPI</p>
</td>
</tr>
<tr>
<td width="63">
<p>3</p>
</td>
<td width="134">
<p>SPI读写逻辑</p>
</td>
<td width="240">
<p>1、读一个字节</p>
<p>2、写一个字节</p>
</td>
</tr>
<tr>
<td width="63">
<p>4</p>
</td>
<td width="134">
<p>SPL06驱动</p>
</td>
<td width="240">
<p>1、从传感器读</p>
<p>2、从传感器写</p>
<p>3、ICM20602初始化</p>
</td>
</tr>
</tbody>
</table>
<p>SPI初始化代码如下:</p>
<p><img alt="image.png" src="http://uphotos.eepw.com.cn/1497260930/pics/1587887433579533.png" title="1587887433579533.png" /></p>
<p>SPI的读写代码如下。</p>
<p><img alt="image.png" src="http://uphotos.eepw.com.cn/1497260930/pics/1587887446766318.png" title="1587887446766318.png" /></p>
<p>SPL06的初始化代码如下。</p>
<p><img alt="image.png" src="http://uphotos.eepw.com.cn/1497260930/pics/1587887457492303.png" title="1587887457492303.png" /></p>
<p>SPL06的读写代码如下。</p>
<p><img alt="image.png" src="http://uphotos.eepw.com.cn/1497260930/pics/1587887481738838.png" title="1587887481738838.png" /></p>
<p>查看手册发现压力、温度的24位原始值在地址0x00~0x05上。</p>
<p><img alt="image.png" src="http://uphotos.eepw.com.cn/1497260930/pics/1587887494739769.png" title="1587887494739769.png" /></p>
<p>读取该寄存器数据,并发送到串口上。代码如下所示。</p>
<p><img alt="image.png" src="http://uphotos.eepw.com.cn/1497260930/pics/1587887504155015.png" title="1587887504155015.png" /></p>
<p>这里注意要把串口的发送也配置好,这样才能把数据发送到电脑。串口1通过USB转串口模块接到电脑,保存、编译、下载代码,可以看到USB转串口模块在不断地打印SPL06的3个字节原始压力值数据以及3个字节的原始温度数据,数据如下图所示:</p>
<p><img alt="image.png" src="http://uphotos.eepw.com.cn/1497260930/pics/1587887518234856.png" title="1587887518234856.png" /></p>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p>疯壳AI开源无人机 感谢楼主的整个xi整个系列系统性分享 谢谢</p>
页:
[1]