El objetivo ahora es controlar el robot con el acelerómetro del dispositivo móvil. Esto es en realidad más
sencillo de lo que parece, ya que debemos de usar las mediciones del acelerómetro para discriminar el
movimiento deseado.
Si ponéis el móvil en horizontal apaisado, los ejes X e Y del acelerómetro están como se muestra en la
figura:
y
x
Esto quiere decir que cuando inclinemos el móvil en una de las direcciones X o Y indicadas, se medirá una
aceleración positiva correspondiente a una proporción de la gravedad. Cuando más inclinado esté el
móvil, mayor será esta proporción.
Observa las regiones en las que hemos divido la imagen anterior. La zona circular de en medio
corresponde a la zona de parada, en la que si la magnitud de la gravedad en X e Y no supera una cierta
cantidad, entonces quiere decir que el dispositivo móvil está prácticamente horizontal. Cuando lo
inclinamos hacia adelante, aparece una componente X negativa fuerte, mientras que si lo inclinamos
hacia detrás la componente X es claramente positiva. De forma similar valdría para las regiones de los
lados, pero con la componente Y de la gravedad. El siguiente código discrimina estas regiones, complétalo
para enviar el comando Bluetooth correspondiente (los códigos son los mismos que cuando apretábamos
los botones):
La variable 'global_imu' es una variable global que inicializaremos a false. La variable valdrá true cada vez
que pulsemos sobre el botón imu_but. Cuando se pulse el botón stop, entonces volveremos el valor de
esta variable a false.
https://roboticafacil.es