from machine import Pin, I2C, sleep, PWM
import mpu6050
import time
import oled
from buzzer import Buzzer
from a4988 import Stepper
i2c = I2C(scl = Pin(22), sda = Pin(21))
mpu = mpu6050.accel(i2c)
my_oled = oled.I2C(128, 64, i2c)
buzz = Buzzer(27)
step = Stepper(26)
while True:
values = (mpu.get_values())
# gyz = values["GyZ"] / 131
# gyy = values["GyY"] / 131
# gyx = values["GyX"] / 131
# acz = values["AcZ"] / 16384
acy = values["AcY"] / 16384
acx = values["AcX"] / 16384
print(acx, acy)
my_oled.clear()
step_no_buzz_yes = True
if acx > 0.75:
my_oled.text("Tilted to right.", 10, 2)
elif acx < -0.75:
my_oled.text("Tilted to left.", 10, 2)
else:
my_oled.text("X-axis stable.", 10, 2)
if acy > 0.75:
my_oled.text("Rolled forward.", 10, 3)
elif acy < -0.75:
my_oled.text("Rolled backwards.", 10, 3)
else:
my_oled.text("Y-axis stable.", 10, 3)
step_no_buzz_yes = False
my_oled.show()
if step_no_buzz_yes == True:
buzz.beep_once()
elif step_no_buzz_yes == False:
step.move_one_step()
# print("Gyro Z-Axis : ", gyz)
# print("Gyro Y-Axis : ", gyy)
# print("Gyro X-Axis : ", gyx)
# print("Accel Z-Axis: ", acz)
# print("Accel Y-Axis: ", acy)
# print("Accel X-Axis: ", acx)
# print("-----------------------")
time.sleep(0.5)