from machine import Pin, I2C, sleep
from machine import Pin
from utime import sleep
import mpu6050
import time
from machine import Pin, PWM
import time
ledRojo = Pin(23, Pin.OUT)
I2C = I2C(scl=Pin(22), sda=Pin(21))
mpu = mpu6050.accel(I2C)
Zumbador = PWM(Pin(5), freq =440, duty =512)
mpu_address = 0x68
GyX = 0.0
GyY = 0.0
GyZ = 0.0
x_origin = 64
y_origin = 32
view_distance = 150.0
def sonido (freq,sleep):
Zumbador.freq(freq)
Zumbador.duty(512)
time.sleep(sleep)
def Funcion_acelerometro():
accel_values = mpu.get_values()
accX = accel_values["AcX"]
accY = accel_values["AcY"]
accZ = accel_values["AcZ"]
# Imprime los valores de aceleración
print("AcX:", accX)
print("AcY:", accY)
print("AcZ:", accZ)
time.sleep(3)
# Detecta movimiento normal (ajusta los valores)
if accX == 8500 and accY == 6553 and accZ == 8500:
print("Movimiento normal", "AcX:", accX, "AcY:", accY, "AcZ:", accZ)
utime.sleep(1)
# Detecta movimiento errático
elif accX >= 100 or accY >= 12288 or accZ >= 100:
print("Movimiento errático", "AcY:", accY)
time.sleep(1)
ledRojo.value(1)
sleep(2)
Zumbador.duty(1)
sleep(2)
print("on")
else:
ledRojo.value(0)
Zumbador.duty(0)
print("off")
#-----------------------------------------------------------------------------------------------------
def Funcion_giroscopio():
temps = mpu.get_values()
#temX = temps["GyX"]
temY = temps["GyY"]
#temZ = temps["GyZ"]
print("GyY:", temY,)
time.sleep(3)
giro = GyY
conversion = round (giro * 180/12000,2)
print("GyY", conversion)
time.sleep(2)
if temY == 85:
print("Movimiento normal", "GyY:", temY)
utime.sleep(1)
elif temY >= 50:
print("Movimiento errático", "GyY:", temY * 180/12000,2)
alarma = PWM(Pin(2), freq=440, duty=512)
sonido (400,0.6)
sonido (800,0.6)
sonido (100000,0.6)
time.sleep(1)
print("on")
else:
ledRojo.value(0)
Zumbador.duty(0)
print("off")
#------------------------------------------------------------------------------------------------------------
while True:
Funcion_giroscopio()
Funcion_acelerometro()
sonido(440, 0.6)
sonido(900, 0.6)