我正在开发一个使用 MPU 6050 和 GPS 一起嵌入在树莓派设备中的项目。但是,如果我尝试单独运行 gps 代码或单独运行 MPU 6050(加速度计/陀螺仪)的代码,它就可以工作。
但问题是当我尝试在一个程序中同时运行 GPS 和 MPU 6050 的代码时。它只运行 mpu 6050 的代码并忽略 gps 的许多代码和输出。
我认为问题与 gps 和 mpu 6050 的接口有关。
所以,我希望我能得到任何帮助......提前谢谢..
import gyro_acc
#import speed
import sys, time, requests, jsonify
import serial
import pynmea2
# defining the api-endpoint
# API_ENDPOINT = "https://gp-anamoly-api.herokuapp.com/create/anomaly"
# initialize MPU
gyro_acc.MPU_Init()
print(" ::: Start Reading ::: ")
# tracker for the number of potholes/cracks
i = 0
port="/dev/ttyS0"
ser = serial.Serial(port, baudrate=9600, timeout=0.2)
dataout = pynmea2.NMEAStreamReader()
while True:
# read data
Gx, Gy, Gz, Ax, Ay, Az = gyro_acc.mpu_read()
# print("Gx={:.2f} deg/s | Gy={:.2f} deg/s | Gz={:.2f} deg/s".format(Gx, Gy, Gz)) + "|| Ax={:.2f} m/s^2 | Ay={:.2f} m/s^2 | Az={:.2f} m/s^2".format(Ax, Ay, Az))
print("Gx={:.2f} deg/s | Gy={:.2f} deg/s | Gz={:.2f} deg/s".format(Gx, Gy, Gz))
print("Ax={:.2f} m/s^2 | Ay={:.2f} m/s^2 | Az={:.2f} m/s^2".format(Ax, Ay, Az))
# get the location and speed from gps data
newdata=ser.readline()
if newdata[0:6] == "$GPRMC":
newmsg=pynmea2.parse(newdata)
lat=newmsg.latitude
lng=newmsg.longitude
gps = "Latitude=" + str(lat) + " and Longitude=" + str(lng)
print(gps)
if newdata[0:6] == "$GPVTG":
newmsg=pynmea2.parse(newdata)
speed = newmsg.spd_over_grnd_kmph
speed_output = "Speed= {}KM/H".format(speed)
print(speed_output)
# separator
print("===========================")
# print data dynamically
# sys.stdout.write("\rGx={:.2f} deg/s | Gy={:.2f} deg/s | Gz={:.2f} deg/s".format(Gx, Gy, Gz) \
# + " || Ax={:.2f} m/s^2 | Ay={:.2f} m/s^2 | Az={:.2f} m/s^2".format(Ax, Ay, Az) + "\n"
# + "Speed: {:.1f} KM/H".format(vehicle_speed))
# sys.stdout.flush()
# print speed dynamically
# sys.stdout.write("\rSpeed: {:.1f} KM/H".format(vehicle_speed))
# sys.stdout.flush()
# check if it detect pothole/crack and save to database
if Az > 13.25:
# print pothole detected
# sys.stdout.write("\n")
print("---------------------------")
print("Pothole/Crack Detected (No.{})".format(i))
print("---------------------------")
i += 1
# sleep for one second
time.sleep(1)
gyro_acc 库是我在项目中的另一个库。