怎样使用MPU-6000和Raspberry Pi进行运动跟踪

电子说

1.2w人已加入

描述

步骤1:硬件必需:

实现目标所需的材料包括以下硬件组件:

1。 MPU-6000

2。 Raspberry Pi

3。 I2C电缆

4。树莓派的I2C盾

5。以太网电缆

步骤2:硬件连接:

MPU-6000

“硬件连接”部分基本上说明了布线连接传感器和覆盆子pi之间需要。在任何系统上为所需的输出工作时,确保正确的连接是基本必要。因此,必需的连接如下:

MPU-6000将在I2C上运行。这是示例接线图,演示了如何连接传感器的每个接口。

开箱即用,该板配置为使用I2C接口,因此,如果您不确定,我们建议使用此连接。

您只需要四根电线! Vcc,Gnd,SCL和SDA引脚仅需要四个连接,它们通过I2C电缆连接。

这些连接如上图所示。

步骤3:运动跟踪代码:

MPU-6000

使用树莓派pi的优势在于,它为您提供了一种灵活的编程语言,您可以使用该语言对电路板进行编程,以便将传感器与其连接。利用此开发板的这一优势,我们在这里演示其在python中的编程。 Python是语法最简单的最简单的编程语言之一。可以从我们的GitHub社区Dcube Store下载MPU-6000的python代码

为方便用户,我们还在这里解释代码:

作为编码的第一步,如果是python,则需要下载SMBus库,因为该库支持代码中使用的功能。因此,要下载该库,您可以访问以下链接:

https://pypi.python.org/pypi/smbus-cffi/0.5.1

您可以复制这里的工作代码也是如此:

import smbus

import time

# Get I2C busbus = smbus.SMBus(1)

# MPU-6000 address, 0x68(104)

# Select gyroscope configuration register, 0x1B(27)

# 0x18(24) Full scale range = 2000 dps

bus.write_byte_data(0x68, 0x1B, 0x18)

# MPU-6000 address, 0x68(104)

# Select accelerometer configuration register, 0x1C(28)

# 0x18(24) Full scale range = +/-16g

bus.write_byte_data(0x68, 0x1C, 0x18)

# MPU-6000 address, 0x68(104)

# Select power management register1, 0x6B(107)

# 0x01(01) PLL with xGyro reference

bus.write_byte_data(0x68, 0x6B, 0x01)

time.sleep(0.8)

# MPU-6000 address, 0x68(104)

# Read data back from 0x3B(59), 6 bytes

# Accelerometer X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

data = bus.read_i2c_block_data(0x68, 0x3B, 6)

# Convert the data

xAccl = data[0] * 256 + data[1]

if xAccl 》 32767 :

xAccl -= 65536

yAccl = data[2] * 256 + data[3]

if yAccl 》 32767 :

yAccl -= 65536

zAccl = data[4] * 256 + data[5]

if zAccl 》 32767 :

zAccl -= 65536

# MPU-6000 address, 0x68(104)

# Read data back from 0x43(67), 6 bytes

# Gyrometer X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

data = bus.read_i2c_block_data(0x68, 0x43, 6)

# Convert the data

xGyro = data[0] * 256 + data[1]

if xGyro 》 32767 :

xGyro -= 65536

yGyro = data[2] * 256 + data[3]

if yGyro 》 32767 :

yGyro -= 65536

zGyro = data[4] * 256 + data[5]

if zGyro 》 32767 :

zGyro -= 65536

# Output data to screen

print “Acceleration in X-Axis : %d” %xAccl

print “Acceleration in Y-Axis : %d” %yAccl

print “Acceleration in Z-Axis : %d” %zAccl

print “X-Axis of Rotation : %d” %xGyro

print “Y-Axis of Rotation : %d” %yGyro

print “Z-Axis of Rotation : %d” %zGyro

该代码是使用以下命令执行的:

$》 python MPU-6000.py gt; python MPU-6000.py

传感器的输出如上图所示,供用户参考。

步骤4:应用程序:

MPU-6000是一种运动跟踪传感器,可在智能手机和平板电脑的运动界面中找到其应用。在智能手机中,这些传感器可用于应用程序中,例如用于应用程序和电话控制的手势命令,增强型游戏,增强现实,全景照片捕获和查看以及行人和车辆导航。 MotionTracking技术可将手机和平板电脑转换为功能强大的3D智能设备,可用于从健康和健身监控到基于位置的服务等应用。
       责任编辑:wv

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分