Tutorial micro:bit #3: ¿cómo utilizar el acelerómetro?

Anuncio
RaspberryPi

¿Cómo sabe el micro:bit que lo estoy agitando? ¿o la orientación de la pantalla en un celular? Sucede que los celulares, igual que el micro:bit, poseen un dispositivo llamado acelerómetro, que les indica hacia que lado están. ¿Que qué es eso? bueno, empecemos por el principio.

La velocidad es una medida de cuánta distancia recorre un objeto en un tiempo dado, la aceleración es una medida de cómo cambia la velocidad. La puedes sentir cuando avanzas en un automóvil o en el metro, pasas de estar detenido a avanzar, o al revés, cuando frenas. Sientes una fuerza empujandote. Incluso, la gravedad es un fenómeno típico en donde se presenta aceleración, y puedes sentir cómo algo te atrae al piso en el que estás parado.

Todo esto puede relacionarse con la primera Ley de Newton, que en pocas palabras dice que un cuerpo en reposo, permanecerá en reposo hasta que una fuerza lo haga moverse, y al contrario, se mantendrá en movimiento hasta que una fuerza lo detenga. De manera similar podemos pensar en la antena de un auto, cuando acelera podemos ver como se dobla hacia atrás, y al detenerse se desplaza hacia adelante.

Reuniendo todas estás ideas, podemos construir un aparato que mida la aceleración de un objeto, que cuando éste se desplace mida ese movimiento. Pero ¿cómo podriamos medirlo mientras se desplaza? incluso, ¿cómo hacerlo de modo que sea microscópico? pues podemos armar un capacitor (un capacitor es un elemento electrónico que almacena energía, la cantidad de energía almacenada depende de su geometría y de la distancia entre sus placas), con las placas de nuestro aparato, de modo que se traduzca esa separación en algo medible, y con esto, saber que aceleración tiene.

Anuncio
RaspberryPi
Los elementos verdes son las placas del capacitor, mientras que el elemento naranja se desplaza con la aceleración.

Esto es lo que pasa a grandes rasgos en el micro:bit, pero en 3 direcciones distintas y de forma microscópica, se mide una señal que depende de la distancia de las placas, a modo de que, dependiendo de como lo agites, lo pueda interpretar. La gravedad también influye en la separación de las placas, por lo que el micro:bit puede determinar su orientación. Muchos dispositivos utilizan este principio, como consolas de videojuego o celulares, o en aplicaciones científicas, pues permite hacer experimentos interesantes.

Desarrollo del programa

Ahora vamos a aplicar lo que aprendimos con el micro:bit. Para ello vamos a cargar un programa de dado electrónico, cuando agites la tarjeta aparecerá un número del 1 al 6 de forma aleatoria, como si fuera un dado de la vida real.

Para este programa utilizaremos la sección de “Entradas”, contiene algunos bloques que responden cuando se utilizan botones o gestos. En este caso utilizaremos el gesto de agitar el micro:bit, que se llama “si agitado” y haremos que muestre un número al azar. Para esto abre la sección de “Básico” y arrastra el bloque “mostrar número” dentro de él, esto mostrará el número, y luego en la sección “Matemática” busca y arrastra el bloque “escoger al azar” y cambia los límites a 1 y 6.

Si observaste un poco los bloques, podrás notar que “si agitado” no tiene las muescas que tienen otros bloques, esto es así por que solo accionas esa porción de código cuando ocurre un evento, como agitar el microbit y no necesita estar dentro de los dos bloques principales “al iniciar” o “para siempre” para funcionar. También puedes experimentar que pasa si cambias el gesto, por ejemplo a “logotipo hacia arriba” y “logotipo hacia abajo”.

Si nos vamos a la sección de JavaScript podremos observar que la función “input.OnGesture” está fuera de la función basic.forever, como pasó en el diagrama a bloques. Dentro de esta función tenemos a “basic.showNumber()” que sirve para mostrar un número y dentro de la misma Math.randomRange(). Si has notado a lo largo de los ejemplos, cada función tiene antes de ella la sección a la que pertenece, como basic, input o Math, esto permite aprender a que función pertenece cada cosa sin tener que memorizarlas.

En el editor si escribimos basic, por ejemplo, y ponemos un punto después, podremos encontrar que nos autocompleta el código y nos muestra las funciones que están dentro de la sección básic. En este lenguaje a las secciones de este tipo las llamamos “namespace” o espacio de nombres y esto permite organizar de forma lógica y estructurada el código, igual que las secciones de colores.

Esperamos que hayas encontrado este ejemplo divertido, no olvides experimentar con lo que has aprendido y sigue investigando.

Dado_electrónico: https://makecode.microbit.org/_6f5YsTWoLPsM

Comentarios