linux串口读取mpu9250数据,二、串口接收MPU9250数据并显示

这篇文章介绍了一个Python程序,该程序通过串口与MPU9250传感器通信,获取角度数据。程序首先初始化串口连接,然后设置传感器输出角度数据。接着,它读取数据包,进行校验,计算Roll、Pitch和Yaw角度,并输出这些数值。程序还包含了数据接收时间和校验的详细过程。
摘要由CSDN通过智能技术生成

直接贴代码吧!

两篇文章值得推荐,https://segmentfault.com/a/1190000004619287#articleHeader1

http://www.cnblogs.com/zhangpengshou/archive/2012/03/12/2392068.html

import serial

import time

ser = serial.Serial('/dev/ttyUSB0',baudrate=9600,timeout=1)

#ttyUSB0是插进去的第一个 USBtoTTL 设备,CH340的驱动Ubuntu

print(ser.name)

data = [0,1,2,3,4,5,6,7,8,9]

sum1 = 0

#设置MPU9250仅输出角度,并保存

def set_9250():

ser.write(b'xffxaax02x08x00')

ser.write(b'xffxaax00x00x00')

set_9250()

kk=0

while 1:

kk = kk+1

start1 = time.clock()

while ser.read()[0] != 0x55: #确保数据从0x55开头

pass #空操作

end1 = time.clock()

l = ser.read(10)

end2 = time.clock()

for i in range(0,10):

data[i] = hex(l[i])

#print(type(data[2]))

for i in range(0, 9):

sum1 = sum1 + eval(data[i])

sum1 = sum1 + 0x55

if hex(sum1)[-2:]==eval(data[9]): #校验数据的正确性

break

Roll = ((l[2]<<8)|l[1])/32768*180

Pitch = ((l[4]<<8)|l[3])/32768*180

Yaw = ((l[6]<<8)|l[5])/32768*180

end3 = time.clock()

print('Roll: %.2f'%Roll,

'Pitch: %.2f'%Pitch,

'Yaw: %.2f'%Yaw,

'

'

)

print('1: ',end1-start1,

'2: ',end2-end1,

'3: ',end3-end2,

'Total:',end3-start1,

'count:',kk,

'

')

ser.close()

'''

b = ''

b.encode('utf-8')

print(type(b))

'''

3f288ee285423cc6e29fa526842ca321.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值