Detectando impactos

En esta parte, vamos a programar a Thymio de modo que produzca un sonido cuando detecte un impacto.

Los acelerómetros

¿Cómo se puede detectar un impacto? ¿Cuál sensor podemos usar?

La detección de impactos es algo muy común y muy útil. Estas son algunas aplicaciones:

  • en un automovil, el impacto producido por una colisión se usa para activar el airbag.
  • varios teléfonos móviles son capaces de detectar los golpes dados dados con los dedos.
  • los computadores portátiles, detectan impáctos para proteger los discos duros.

Este tipo de evento se detecta usando acelerómetros. Como su nombre lo indica, un acelerómetro sirve para medir aceleraciones, como por ejemplo la gravedad. Por eso, además de poder detectar impactos, lo podemos utilizar para detectar la caída libre.

Seguir la actividad de los acelerómetros

Aseba Studio permite graficar los valores que toma una variable. Para eso, debemos crear nuestro propio evento. Si queremos segir el comportamiento de los tres acelerómetros (la aceleración se mide en tres dimensiones), necesitamos crear un evento con tres argumentos: primero presiona el + para adicionar un evento, luego asígnale un nombre (por ejemplo my_accelerations) y especifica el número de argumentos (3).

creer_event

Ahora, en el código, podemos enviar el valor de aceleración (la variable acc en la ventana variables, que contiene 3 elementos), desde el evento acc hasta nuestro evento my_accelerations, con los 3 argumentos:

onevent acc
    emit my_accelerations acc

Después, en la ventana Events, podemos seleccionar my_accelerations y presionar el botón de gráfica.

plot.png

La gráfica de los tres acelerómetros aparece en una nueva ventana emergente. Puedes explorar el comportamiento de los acelerómetros si giras el robot en todas las direcciones o si lo sometes a impacto.

plotacc.png

En la imagen se aprecian las aceleraciones en tres colores diferentes. Cuando el robot está apoyado sobres sus ruedas, la gravedad es detectada por el acelerómetro z (azul). Si el robot se apoya sobre uno de sus costados, la gravedad es detectada por otro acelerómetro (rojo). Los picos en las gráficas corresponden a impáctos.

Como utilizar los acelerómetros

Los acelerómetros se pueden usar de diferentes maneras. La variable acc contiene los valores de los tres acelerómetros (en las 3 dimensiones), y el evento acc se produce cada vez que se el robot lee los valores de aceleración.

Además existe el evento tap que ocurre cada vez que el Thymio detecta un impacto.

onevent tap
    call sound.system(4) # esta función reproduce un sonido del sistema.

página anterior | página siguiente

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License