Micropython

您所在的位置:网站首页 cage植骨融合术材料 Micropython

Micropython

2023-12-12 00:08| 来源: 网络整理| 查看: 265

想做用PYB做ROS机器人的主控,陀螺仪和加速度计怎么能少呢?

文章目录​​MPU6050模块​​​​硬件连接​​​​代码​​​​MPU6050库文件​​​​主程序​​​​参数解析​​​​三轴加速度计​​​​三轴陀螺仪​​​​数据处理与实现​​​​校准​​​​卡尔曼滤波​​MPU6050模块

MPU6050是一种非常流行的空间运动传感器芯片,可以获取器件当前的三个加速度分量和三个旋转角速度。由于其体积小巧,功能强大,精度较高,不仅被广泛应用于工业,同时也是航模爱好者的神器,被安装在各类飞行器上驰骋蓝天。 MPU6050芯片内自带了一个数据处理子模块DMP,已经内置了滤波算法,在许多应用中使用DMP输出的数据已经能够很好的满足要求。在使用时只需要将偏移量减去即可使用,如果对精度有更高的要求可以使用上位机或这里使用卡尔曼滤波再次对数据进行优化。

Micropython——六轴MPU6050模块的使用_数据

大家在购买的时候,如果只需要陀螺仪和加速度计的话,就买和上图或者下图一样的六轴的GY-521六轴MPU6050模块即可,某宝上只需要4块钱左右即可买到还包邮,挺便宜的,一定不要买错型号,否则你在使用的时候一定会让你欲哭无泪。这里的库你可能不能直接用了。

硬件连接

接线和MPU数据的方向示意如图所示:

Micropython——六轴MPU6050模块的使用_偏移量_02

PYB

MPU6050

VCC

VCC

GND

GND

SCL(X9, IIC1)

SCL

SDL(X10, IIC1)

SDL

代码MPU6050库文件

mpu6050.py

import machine

class accel(): def __init__(self, i2c, addr=0x68): self.iic = i2c self.addr = addr self.iic.start() self.iic.writeto(self.addr, bytearray([107, 0])) self.iic.stop()

def get_raw_values(self): self.iic.start() a = self.iic.readfrom_mem(self.addr, 0x3B, 14) self.iic.stop() return a

def get_ints(self): b = self.get_raw_values() c = [] for i in b: c.append(i) return c

def bytes_toint(self, firstbyte, secondbyte): if not firstbyte & 0x80: return firstbyte



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3