Hello everyone. I am new to coding and I am working on a personal project at home. I have built an led matrix and I am using a Raspberry pi 3 with an MPU6050 gyro/accelerometer. My goal is to light up individual leds based on readings from both the gyro/accel. I have worked out the accelerometer part of this, however the gyro returns to zero everyone it takes a reading since it only measures angular velocity. Is there a way to add the new values it takes to each preceding value and use that sum for my ranges to activate gpio pins? Or if anyone has any other ideas I would really appreciate it. Here is my code:
# Import the MPU6050 class from the MPU6050.py file from MPU6050 import MPU6050 from time import sleep import RPi.GPIO as gpio import math # Create a new instance of the MPU6050 class sensor = MPU6050(0x68) #Prepare gpio pin use gpio.setwarnings(False) gpio.setmode(gpio.BOARD) #Setup gpio pin outputs for accelerometer gpio.setup(16, gpio.OUT) gpio.setup(18, gpio.OUT) gpio.setup(22, gpio.OUT) gpio.setup(24, gpio.OUT) gpio.setup(26, gpio.OUT) gpio.setup(32, gpio.OUT) gpio.setup(36, gpio.OUT) gpio.setup(38, gpio.OUT) gpio.setup(40, gpio.OUT) #Setup gpio pin outputs for gyro gpio.setup(15, gpio.OUT) gpio.setup(19, gpio.OUT) gpio.setup(21, gpio.OUT) gpio.setup(23, gpio.OUT) gpio.setup(29, gpio.OUT) gpio.setup(31, gpio.OUT) gpio.setup(33, gpio.OUT) gpio.setup(35, gpio.OUT) gpio.setup(37, gpio.OUT) #Set accelerometer range values A = range(0, 1) B = range(2, 3) C = range(4, 5) D = range(6, 7) E = range(8, 9) F = range(10, 11) G = range(12, 13) H = range(14, 15) I = range(16, 17) #Set gyro range values J = range(176, 225) K = range(126, 175) L = range(76, 125) M = range(26, 75) N = range(-25, 25) P = range(-75, -26) R = range(-125, -76) S = range(-175, -126) T = range(-225, -176) while True: accel_data = sensor.get_accel_data() gyro_data = sensor.get_gyro_data() y = gyro_data['y'] x = accel_data['x'] print( "gyro" ) print("y: " + str(int(gyro_data['y']))) print( "------------------------- ") print( "accelerometer" ) print("x: " + str(int(accel_data['x']))) print( "---------------------------------------------------------------" ) if x in A: gpio.output(16, True) gpio.output(18, False) gpio.output(22, False) gpio.output(24, False) gpio.output(26, False) gpio.output(32, False) gpio.output(36, False) gpio.output(38, False) gpio.output(40, False) if x in B: gpio.output(18, True) gpio.output(16, False) gpio.output(22, False) gpio.output(24, False) gpio.output(26, False) gpio.output(32, False) gpio.output(36, False) gpio.output(38, False) gpio.output(40, False) if x in C: gpio.output(22, True) gpio.output(18, False) gpio.output(16, False) gpio.output(24, False) gpio.output(26, False) gpio.output(32, False) gpio.output(36, False) gpio.output(38, False) gpio.output(40, False) if x in D: gpio.output(24, True) gpio.output(18, False) gpio.output(22, False) gpio.output(16, False) gpio.output(26, False) gpio.output(32, False) gpio.output(36, False) gpio.output(38, False) gpio.output(40, False) if x in E: gpio.output(26, True) gpio.output(18, False) gpio.output(22, False) gpio.output(24, False) gpio.output(16, False) gpio.output(32, False) gpio.output(36, False) gpio.output(38, False) gpio.output(40, False) if x in F: gpio.output(32, True) gpio.output(18, False) gpio.output(22, False) gpio.output(24, False) gpio.output(26, False) gpio.output(16, False) gpio.output(36, False) gpio.output(38, False) gpio.output(40, False) if x in G: gpio.output(36, True) gpio.output(18, False) gpio.output(22, False) gpio.output(24, False) gpio.output(26, False) gpio.output(32, False) gpio.output(16, False) gpio.output(38, False) gpio.output(40, False) if x in H: gpio.output(38, True) gpio.output(18, False) gpio.output(22, False) gpio.output(24, False) gpio.output(26, False) gpio.output(32, False) gpio.output(36, False) gpio.output(16, False) gpio.output(40, False) if x in I: gpio.output(40, True) gpio.output(18, False) gpio.output(22, False) gpio.output(24, False) gpio.output(26, False) gpio.output(32, False) gpio.output(36, False) gpio.output(38, False) gpio.output(16, False) if y in J: gpio.output(15, True) gpio.output(19, False) gpio.output(21, False) gpio.output(23, False) gpio.output(29, False) gpio.output(31, False) gpio.output(33, False) gpio.output(35, False) gpio.output(37, False) if y in K: gpio.output(19, True) gpio.output(15, False) gpio.output(21, False) gpio.output(23, False) gpio.output(29, False) gpio.output(31, False) gpio.output(33, False) gpio.output(35, False) gpio.output(37, False) if y in L: gpio.output(21, True) gpio.output(19, False) gpio.output(15, False) gpio.output(23, False) gpio.output(29, False) gpio.output(31, False) gpio.output(33, False) gpio.output(35, False) gpio.output(37, False) if y in M: gpio.output(23, True) gpio.output(19, False) gpio.output(21, False) gpio.output(15, False) gpio.output(29, False) gpio.output(31, False) gpio.output(33, False) gpio.output(35, False) gpio.output(37, False) if y in N: gpio.output(29, True) gpio.output(19, False) gpio.output(21, False) gpio.output(23, False) gpio.output(15, False) gpio.output(31, False) gpio.output(33, False) gpio.output(35, False) gpio.output(37, False) if y in P: gpio.output(31, True) gpio.output(19, False) gpio.output(21, False) gpio.output(23, False) gpio.output(29, False) gpio.output(15, False) gpio.output(33, False) gpio.output(35, False) gpio.output(37, False) if y in R: gpio.output(33, True) gpio.output(19, False) gpio.output(21, False) gpio.output(23, False) gpio.output(29, False) gpio.output(31, False) gpio.output(15, False) gpio.output(35, False) gpio.output(37, False) if y in S: gpio.output(35, True) gpio.output(19, False) gpio.output(21, False) gpio.output(23, False) gpio.output(29, False) gpio.output(31, False) gpio.output(33, False) gpio.output(15, False) gpio.output(37, False) if y in T: gpio.output(37, True) gpio.output(19, False) gpio.output(21, False) gpio.output(23, False) gpio.output(29, False) gpio.output(31, False) gpio.output(33, False) gpio.output(35, False) gpio.output(15, False) gpio.cleanup() sleep(.5)
Moderator nilamo: Please use code tags in the future, it makes reading code much easier.