简 介: 利用ESP32 MicroPython对于来自于龙邱的MPU9250进行初步测试。

关键词MPU9250I2CESP32软件I2C

#mermaid-svg-fMBqdJ8sCAuLpvVi .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi .label text{fill:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi .node rect,#mermaid-svg-fMBqdJ8sCAuLpvVi .node circle,#mermaid-svg-fMBqdJ8sCAuLpvVi .node ellipse,#mermaid-svg-fMBqdJ8sCAuLpvVi .node polygon,#mermaid-svg-fMBqdJ8sCAuLpvVi .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-fMBqdJ8sCAuLpvVi .node .label{text-align:center;fill:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi .node.clickable{cursor:pointer}#mermaid-svg-fMBqdJ8sCAuLpvVi .arrowheadPath{fill:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-fMBqdJ8sCAuLpvVi .flowchart-link{stroke:#333;fill:none}#mermaid-svg-fMBqdJ8sCAuLpvVi .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-fMBqdJ8sCAuLpvVi .edgeLabel rect{opacity:0.9}#mermaid-svg-fMBqdJ8sCAuLpvVi .edgeLabel span{color:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-fMBqdJ8sCAuLpvVi .cluster text{fill:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-fMBqdJ8sCAuLpvVi .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-fMBqdJ8sCAuLpvVi text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-fMBqdJ8sCAuLpvVi .actor-line{stroke:grey}#mermaid-svg-fMBqdJ8sCAuLpvVi .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi .sequenceNumber{fill:#fff}#mermaid-svg-fMBqdJ8sCAuLpvVi #sequencenumber{fill:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi #crosshead path{fill:#333;stroke:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi .messageText{fill:#333;stroke:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-fMBqdJ8sCAuLpvVi .labelText,#mermaid-svg-fMBqdJ8sCAuLpvVi .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-fMBqdJ8sCAuLpvVi .loopText,#mermaid-svg-fMBqdJ8sCAuLpvVi .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-fMBqdJ8sCAuLpvVi .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-fMBqdJ8sCAuLpvVi .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-fMBqdJ8sCAuLpvVi .noteText,#mermaid-svg-fMBqdJ8sCAuLpvVi .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-fMBqdJ8sCAuLpvVi .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-fMBqdJ8sCAuLpvVi .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-fMBqdJ8sCAuLpvVi .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-fMBqdJ8sCAuLpvVi .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fMBqdJ8sCAuLpvVi .section{stroke:none;opacity:0.2}#mermaid-svg-fMBqdJ8sCAuLpvVi .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-fMBqdJ8sCAuLpvVi .section2{fill:#fff400}#mermaid-svg-fMBqdJ8sCAuLpvVi .section1,#mermaid-svg-fMBqdJ8sCAuLpvVi .section3{fill:#fff;opacity:0.2}#mermaid-svg-fMBqdJ8sCAuLpvVi .sectionTitle0{fill:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi .sectionTitle1{fill:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi .sectionTitle2{fill:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi .sectionTitle3{fill:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fMBqdJ8sCAuLpvVi .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-fMBqdJ8sCAuLpvVi .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fMBqdJ8sCAuLpvVi .grid path{stroke-width:0}#mermaid-svg-fMBqdJ8sCAuLpvVi .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-fMBqdJ8sCAuLpvVi .task{stroke-width:2}#mermaid-svg-fMBqdJ8sCAuLpvVi .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fMBqdJ8sCAuLpvVi .taskText:not([font-size]){font-size:11px}#mermaid-svg-fMBqdJ8sCAuLpvVi .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fMBqdJ8sCAuLpvVi .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-fMBqdJ8sCAuLpvVi .task.clickable{cursor:pointer}#mermaid-svg-fMBqdJ8sCAuLpvVi .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-fMBqdJ8sCAuLpvVi .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-fMBqdJ8sCAuLpvVi .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-fMBqdJ8sCAuLpvVi .taskText0,#mermaid-svg-fMBqdJ8sCAuLpvVi .taskText1,#mermaid-svg-fMBqdJ8sCAuLpvVi .taskText2,#mermaid-svg-fMBqdJ8sCAuLpvVi .taskText3{fill:#fff}#mermaid-svg-fMBqdJ8sCAuLpvVi .task0,#mermaid-svg-fMBqdJ8sCAuLpvVi .task1,#mermaid-svg-fMBqdJ8sCAuLpvVi .task2,#mermaid-svg-fMBqdJ8sCAuLpvVi .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-fMBqdJ8sCAuLpvVi .taskTextOutside0,#mermaid-svg-fMBqdJ8sCAuLpvVi .taskTextOutside2{fill:#000}#mermaid-svg-fMBqdJ8sCAuLpvVi .taskTextOutside1,#mermaid-svg-fMBqdJ8sCAuLpvVi .taskTextOutside3{fill:#000}#mermaid-svg-fMBqdJ8sCAuLpvVi .active0,#mermaid-svg-fMBqdJ8sCAuLpvVi .active1,#mermaid-svg-fMBqdJ8sCAuLpvVi .active2,#mermaid-svg-fMBqdJ8sCAuLpvVi .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-fMBqdJ8sCAuLpvVi .activeText0,#mermaid-svg-fMBqdJ8sCAuLpvVi .activeText1,#mermaid-svg-fMBqdJ8sCAuLpvVi .activeText2,#mermaid-svg-fMBqdJ8sCAuLpvVi .activeText3{fill:#000 !important}#mermaid-svg-fMBqdJ8sCAuLpvVi .done0,#mermaid-svg-fMBqdJ8sCAuLpvVi .done1,#mermaid-svg-fMBqdJ8sCAuLpvVi .done2,#mermaid-svg-fMBqdJ8sCAuLpvVi .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-fMBqdJ8sCAuLpvVi .doneText0,#mermaid-svg-fMBqdJ8sCAuLpvVi .doneText1,#mermaid-svg-fMBqdJ8sCAuLpvVi .doneText2,#mermaid-svg-fMBqdJ8sCAuLpvVi .doneText3{fill:#000 !important}#mermaid-svg-fMBqdJ8sCAuLpvVi .crit0,#mermaid-svg-fMBqdJ8sCAuLpvVi .crit1,#mermaid-svg-fMBqdJ8sCAuLpvVi .crit2,#mermaid-svg-fMBqdJ8sCAuLpvVi .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-fMBqdJ8sCAuLpvVi .activeCrit0,#mermaid-svg-fMBqdJ8sCAuLpvVi .activeCrit1,#mermaid-svg-fMBqdJ8sCAuLpvVi .activeCrit2,#mermaid-svg-fMBqdJ8sCAuLpvVi .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-fMBqdJ8sCAuLpvVi .doneCrit0,#mermaid-svg-fMBqdJ8sCAuLpvVi .doneCrit1,#mermaid-svg-fMBqdJ8sCAuLpvVi .doneCrit2,#mermaid-svg-fMBqdJ8sCAuLpvVi .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-fMBqdJ8sCAuLpvVi .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-fMBqdJ8sCAuLpvVi .milestoneText{font-style:italic}#mermaid-svg-fMBqdJ8sCAuLpvVi .doneCritText0,#mermaid-svg-fMBqdJ8sCAuLpvVi .doneCritText1,#mermaid-svg-fMBqdJ8sCAuLpvVi .doneCritText2,#mermaid-svg-fMBqdJ8sCAuLpvVi .doneCritText3{fill:#000 !important}#mermaid-svg-fMBqdJ8sCAuLpvVi .activeCritText0,#mermaid-svg-fMBqdJ8sCAuLpvVi .activeCritText1,#mermaid-svg-fMBqdJ8sCAuLpvVi .activeCritText2,#mermaid-svg-fMBqdJ8sCAuLpvVi .activeCritText3{fill:#000 !important}#mermaid-svg-fMBqdJ8sCAuLpvVi .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fMBqdJ8sCAuLpvVi g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-fMBqdJ8sCAuLpvVi g.classGroup text .title{font-weight:bolder}#mermaid-svg-fMBqdJ8sCAuLpvVi g.clickable{cursor:pointer}#mermaid-svg-fMBqdJ8sCAuLpvVi g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-fMBqdJ8sCAuLpvVi g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-fMBqdJ8sCAuLpvVi .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-fMBqdJ8sCAuLpvVi .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-fMBqdJ8sCAuLpvVi .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-fMBqdJ8sCAuLpvVi .dashed-line{stroke-dasharray:3}#mermaid-svg-fMBqdJ8sCAuLpvVi #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-fMBqdJ8sCAuLpvVi #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-fMBqdJ8sCAuLpvVi #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-fMBqdJ8sCAuLpvVi #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-fMBqdJ8sCAuLpvVi #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-fMBqdJ8sCAuLpvVi #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-fMBqdJ8sCAuLpvVi #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-fMBqdJ8sCAuLpvVi #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-fMBqdJ8sCAuLpvVi .commit-id,#mermaid-svg-fMBqdJ8sCAuLpvVi .commit-msg,#mermaid-svg-fMBqdJ8sCAuLpvVi .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fMBqdJ8sCAuLpvVi .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fMBqdJ8sCAuLpvVi .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fMBqdJ8sCAuLpvVi g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fMBqdJ8sCAuLpvVi g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-fMBqdJ8sCAuLpvVi g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-fMBqdJ8sCAuLpvVi g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-fMBqdJ8sCAuLpvVi g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-fMBqdJ8sCAuLpvVi .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-fMBqdJ8sCAuLpvVi .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-fMBqdJ8sCAuLpvVi .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-fMBqdJ8sCAuLpvVi .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-fMBqdJ8sCAuLpvVi .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-fMBqdJ8sCAuLpvVi .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-fMBqdJ8sCAuLpvVi .edgeLabel text{fill:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fMBqdJ8sCAuLpvVi .node circle.state-start{fill:black;stroke:black}#mermaid-svg-fMBqdJ8sCAuLpvVi .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-fMBqdJ8sCAuLpvVi #statediagram-barbEnd{fill:#9370db}#mermaid-svg-fMBqdJ8sCAuLpvVi .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-fMBqdJ8sCAuLpvVi .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-fMBqdJ8sCAuLpvVi .statediagram-state .divider{stroke:#9370db}#mermaid-svg-fMBqdJ8sCAuLpvVi .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-fMBqdJ8sCAuLpvVi .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-fMBqdJ8sCAuLpvVi .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-fMBqdJ8sCAuLpvVi .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-fMBqdJ8sCAuLpvVi .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-fMBqdJ8sCAuLpvVi .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-fMBqdJ8sCAuLpvVi .note-edge{stroke-dasharray:5}#mermaid-svg-fMBqdJ8sCAuLpvVi .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-fMBqdJ8sCAuLpvVi .error-icon{fill:#522}#mermaid-svg-fMBqdJ8sCAuLpvVi .error-text{fill:#522;stroke:#522}#mermaid-svg-fMBqdJ8sCAuLpvVi .edge-thickness-normal{stroke-width:2px}#mermaid-svg-fMBqdJ8sCAuLpvVi .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-fMBqdJ8sCAuLpvVi .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-fMBqdJ8sCAuLpvVi .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-fMBqdJ8sCAuLpvVi .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-fMBqdJ8sCAuLpvVi .marker{fill:#333}#mermaid-svg-fMBqdJ8sCAuLpvVi .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-fMBqdJ8sCAuLpvVi {color: rgba(0, 0, 0, 0.75);font: ;}

MPU9250
文章目录
基本信息
上电测试
ESP32测试
基本测试
读取数据
测试结论

§01 MPU9250


  手边存在几个上学期来自于 龙邱的MPU9250传感器 ,为了利用其今后做实验,使用ESP32 MicroPython实验板对其初步进行测试。

▲ 图1.1.0 MPU9250 模块

一、基本信息

  根据 MPU9250 TB网页上 的介绍这个模块是一款九轴IMU。在芯片的丝印上显示 “MP92”字样。

1、芯片信息

  MPU9250 九轴产品中文说明书 : https://max.book118.com/html/2017/0906/132114737.shtm 可以知道该模块的基本信息:

  • 工作电压: 3.3V;
  • 编程接口: SPI, I2C

2、模块接口

▲ 图1.1.1 模块接口

【表1-1-1 模块接口】
序号 名称 功能
PIN1 GND 电源地
PIN2 3V3 3.3V电源
PIN3 SCL/SCK I2C/SPI 时钟信号
PIN4 SDA/SDI I2C数据信号;SPI数据输入
PIN5 AD0/SDO I2C地址选择(1101001);SPI数据输出
PIN6 CS 片选信号
PIN7 INT1 终端数字输出信号
PIN8 FSYNC 数字同步输入帧,若不同接地

(1) I2C接口

I2C地址:
AD0=0:1101000
AD0=1:1101001

(2) SPI接口

▲ 图1.1.2 SPI 接口时序特性

  下面是选择芯片不同的接口形式:

  • nCS 接高电平: I2C总线;
  • nCS接低电平:SPI 总线;

▲ 图1.1.3 两种不同接口的配置

▲ 图1.1.4 I2C总线使用模式

二、上电测试

1、接口上拉电阻

  使用万用表测量模块的 CLKSDK3.3V之间之间的电阻,为10kΩ,这说明在模块中内部使用了R4,R510kΩ)使用了上拉电阻对于 SDKCLK进行了偏置。

2、端口配置

MP9255模块端口:
A0: GND
CS: 3.3V
FSYNC:GND
INT:NULL

▲ 图1.2.1 配置模块端口

§02 ESP32测试


一、基本测试

1、管脚配置

  根据 MicroPython ESP32手册 中关于 软件I2C配置,可以使用ESP32任意管脚作为I2C管脚。

  根据 ESP32-S模块转接板设计与实现 对于ESP32转接模块描述,使用PIO的最右边两个管脚分别作为I2C关节。

ESP32I2C管脚:
SCL:IO2
SDA:IO15

▲ 图2.1.1 I2C管脚配置

  ◎ 注: 使用RXD2,TXD2作为I2C的 SCL,SDA会出现输出低电平的情况,原因不详。

▲ 图2.1.2 连接I2C引脚

2、扫描设备

  扫描I2C设备,可以获得: 【104】: 0b1101000

from machine                import Pin,Timer,SoftI2C
import time
import mathled0 = Pin(5, Pin.OUT)
led1 = Pin(18, Pin.OUT)i2c = SoftI2C(scl=Pin(16), sda=Pin(17), freq=100000)
scan = i2c.scan()print(scan)
print('Begin ...')while True:led0.on()led1.off()time.sleep_ms(200)led0.off()led1.on()time.sleep_ms(200)

二、读取数据

  在 MPU9250的详细功能 给出了MPU9250 界面读写的详细过程。 MPU9250 数据手册 下载链接。

  • MPU9250寄存器手册,英文原版
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2021-09-20
#
# Note:
#============================================================
from machine                import Pin,Timer,SoftI2C
import time
import math
led0 = Pin(5, Pin.OUT)
led1 = Pin(17, Pin.OUT)
i2c = SoftI2C(scl=Pin(2), sda=Pin(15), freq=100000)
#------------------------------------------------------------
MPU9250_ADDRESS            = 0x68
MAG_ADDRESS                = 0x0c
GYRO_FULL_SCALE_250_DPS    = 0x00
GYRO_FULL_SCALE_500_DPS    = 0x08
GYRO_FULL_SCALE_1000_DPS   = 0x10
GYRO_FULL_SCALE_2000_DPS   = 0x18
ACC_FULL_SCALE_2_G        = 0x00
ACC_FULL_SCALE_4_G        = 0x08
ACC_FULL_SCALE_8_G        = 0x10
ACC_FULL_SCALE_16_G       = 0x18
#------------------------------------------------------------
def MPU9250Setup():i2c.writeto_mem(MPU9250_ADDRESS, 27, bytearray(GYRO_FULL_SCALE_2000_DPS))# Configure gyroscope rangei2c.writeto_mem(MPU9250_ADDRESS, 28, bytearray(ACC_FULL_SCALE_16_G))# Configure accelerometer rangei2c.writeto_mem(MPU9250_ADDRESS, 0x37, bytearray(0x2))# Set by pass mode for magnetometer
#    time.sleep_ms(10)
#    i2c.writeto_mem(MAG_ADDRESS, 0x0a, bytearray(0x16))# Request first magnetometer single measurement
#------------------------------------------------------------
def bytes2short(b):a = int.from_bytes(b, 'big', True)if a > 0x7fff:return -(0x10000 - a)else:  return a
def MPU9250read():buf = bytearray(14)buf = i2c.readfrom_mem(MPU9250_ADDRESS, 0x3b, 14)ax = bytes2short(buf[0:2])ay = bytes2short(buf[2:4])az = bytes2short(buf[4:6])gx = bytes2short(buf[8:10])gy = bytes2short(buf[10:12])gz = bytes2short(buf[12:14])temp = bytes2short(buf[6:8])return (ax,ay,az),(gx,gy,gz), temp
#------------------------------------------------------------
MPU9250Setup()
print(MPU9250read())
#------------------------------------------------------------
while True:led0.on()led1.off()time.sleep_ms(200)led0.off()led1.on()time.sleep_ms(200)print(MPU9250read())
#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

※ 测试结论 ※


  测试了ESP32的 软件 I2C总线功能。并利用ESP32读取MPU9250 的加速度以及陀螺仪的数据。

  遗留问题: 在读取磁力计数据的时候遇到了问题。无法正确访问磁力计的数据。


■ 相关文献链接:

  • 龙邱的MPU9250传感器
  • MPU9250 九轴产品中文说明书
  • MicroPython ESP32手册
  • ESP32-S模块转接板设计与实现
  • MPU9250的详细功能
  • MPU9250 数据手册
  • MPU9250寄存器手册,英文原版

● 相关图表链接:

  • 图1.1.0 MPU9250 模块
  • 图1.1.1 模块接口
  • 表1-1-1 模块接口
  • 图1.1.2 SPI 接口时序特性
  • 图1.1.3 两种不同接口的配置
  • 图1.1.4 I2C总线使用模式
  • 图1.2.1 配置模块端口
  • 图2.1.1 I2C管脚配置
  • 图2.1.2 连接I2C引脚

龙邱MPU9250传感器 | 使用ESP32 模块进行测试相关推荐

  1. 龙邱 MPU9250 模块接口 | 基于ESP32模块

    简 介: 制作了MPU9250的转接接口,并利用舵机带动起旋转测量了模块测量角度功能. 关键词: MPU9250,ESP32 #mermaid-svg-dGY7dbxoXuc3EI5H {font-f ...

  2. ESP32模块的MicroPython的基本实验

    文章目录 ▌01 ESP32模块 ▌02 测试实验 1.设置频率 2.关于Flash (1)获得扇区基本信息 (2)扇区读取 (3)扇区写入 (4)扇区擦除 3.关于传感器 4.网络连接 (1)建立网 ...

  3. 外设驱动步骤和K66SDK库与龙邱库TPM模块整合过程

    时钟树 常见配置 时钟用途 总线时钟和图中被大括号标出的时钟都可以作为相应外设的时钟, 但只有在总线进行通讯的时候,总线接口时钟才有作用. 编程模块 The selection and multipl ...

  4. 龙邱树莓派Raspberry Pi 扩展板电路及其相关实验

    ▲ 树莓派与其扩展板 文章目录 ▌01 树莓派车模扩展板 1.车模的整体配置 2.扩展板 3.树莓派IO口管脚功能 (1)树莓派接口定义 (2)扩展板上各功能接口定义 ▌02 扩展板子模块 1.树莓派 ...

  5. 树莓派小车python操作流程--龙邱科技

    ▌第一部分 环境解决 1.1 软件版本 发货前已经配置好软件环境: Linux raspberrypi 5.4.51 Python 3.7 OpenCV-python 3.4.6.27 1.2 TF卡 ...

  6. 基于ESP32模块利用检测线圈检测车模停止时间,室内视觉AI裁判系统

    ▌01 室内视觉AI裁判系统 1.背景介绍 在 ESP32检测调制激光信号程序优化 以及 测试ESP32S基本模块的功能,并验证是否可以应用在AI智能车竞赛检测激光信号中 中测试了 ESP32串口转W ...

  7. 用启明云端基于ESP32模块的开发板来快速了解天猫精灵

    为什么要了解天猫精灵呢? 在物联网时代,单纯的"互联"已经无法满足需求,需要让万物"智联"才能发挥它的应用价值.AI语音的简单.易用特性将成为万物"智 ...

  8. 龙邱STM32单片机用J-LINK下载无法被识别的解决方法

    龙邱STM32单片机用J-LINK下载无法被识别的解决方法 参考文章: (1)龙邱STM32单片机用J-LINK下载无法被识别的解决方法 (2)https://www.cnblogs.com/Arag ...

  9. 龙邱特别款英飞凌miniwiggler拆机鉴赏

    龙邱特别款英飞凌miniwiggler拆机鉴赏 今年暑假准备参加智能车大赛,做基础四轮组.据学长说龙邱的库用了更多的硬件外设资源,我就在全实验室用逐飞套的情况下转投龙邱了... 今天核心板仿真器一堆外 ...

最新文章

  1. css超出一行省略号:text-overflow和white-space超出隐藏显示省略号
  2. GDataXML的一些简单示例。
  3. lombok使用中出现继承关系的对象时,出现的问题及解决办法
  4. 同一个硬盘装多个linux系统,在一个硬盘上安装两个Linux操作系统方法
  5. 修改form_Vue通过阿里云oss的url连接直接下载文件并修改文件名
  6. PTA21、K好数 (10 分)
  7. SqlParameter[] 添加参数
  8. Mac上go环境变量配置
  9. asp.net MVC4, Ninject auto-mating
  10. 番茄时间管理法:一个番茄是如何让你工作更有效率的
  11. JDK11.0.9-windows64下载
  12. ddm模型公式_股利增长模型计算公式
  13. 大专码农和985程序员有什么区别?
  14. 关于在li中使用阿里巴巴icon font导致文字不对齐的问题
  15. 2021最新PHP短网址生成系统/短链接生成系统/URL缩短器系统源码
  16. 计算机学院条幅内容,学院迎新活动标语横幅
  17. vb中Msgbox函数的应用。
  18. 三星“掌门人”李在镕身在看守所 但仍“遥控”三星
  19. 在电影库中查找演员评分最高的5部电影
  20. SAP QM检验批常见问题及解决办法

热门文章

  1. MySQL 配置数据库编码
  2. 【iOS报错】“The operation couldn’t be completed (LaunchServicesError erro
  3. 华为在线题--计算字符个数
  4. JAVA命令行编译及运行
  5. [转载]TFS与Project、Excel同步
  6. intellij (org.jdom.input.JDOMParseException) Error on line 1: 前言中不允许有内容。
  7. 【神回复】看 App 运营高手如何应对六大奇葩用户反馈!
  8. 继承项目第13周-项目1-基类中成员的访问限定符和派生类的继承方式
  9. iptables 限制网速
  10. 【Storage】Ubuntu LVM 安装配置