Ya hemos visto en la entrada anterior que medir la gravedad es algo que cualquiera puede hacer en su casa.

Ahora nos planteamos utilizar algún sensor y nuestra placa de arduino (o compatible) para ver si podemos medir el período con arduino. Es decir, hacer que el proceso de conteo de oscilaciones y el cálculo de la gravedad sea automático y más preciso. Vamos allá.

Materiales necesarios

De acuerdo a la solución que hemos seleccionado, este ha sido el material que nos ha hecho falta:

  • 1 placa compatible con arduino
  • 1 sensor de infrarrojos
  • Un peso (bola, caja), hilo, metro para medir la longitud. Un marco de puerta o similar para colgar el péndulo. Un soporte para situar el sensor en el suelo.
  • Opcional: echar un vistazo a nuestra anterior entrada
  • Para programar la placa: IDE de arduino, visualino, mblock o similar

Como se ve, solo es necesario asegurarse de tener los dos primeros puntos, el resto, creo que todo el mundo cuenta con ello (el último punto está constituido por programas gratuitos descargables de Internet en los enlaces que he puesto).

El trabajo manual

La industrialización, primero y la revolución de la informática, después, facilitaron nuestras vidas al automatizar trabajos de manera que no precisaran de nuestra intervención.

Para «automatizar el cálculo de la gravedad«, aprovechando que no vivimos en el siglo XIX, primero identificamos el trabajo manual que hacemos: tomamos datos de tiempo de oscilación con el cronómetro de nuestro móvil.

La precisión será nuestra capacidad de reacción al ver el peso oscilante regresar a su posición de partida, para apretar el botón «detener» del cronómetro del móvil. Se pueden comprobar las medidas de tiempo que tomé en la tabla de la entrada anterior. Existe muy poca variación a nivel de centésimas (100 milisegundos).

En resumen, con mayor o menor precisión, el trabajo manual que hacemos es medir tiempo y contar oscilaciones.

El trabajo automático. Robótica educativa

En el mundo de la robótica educativa basada en arduino, corresponde a los sensores tomar datos. Por otra parte, el propio sistema interno de arduino le permite la medición de tiempos.

El cronómetro, por lo tanto, lo tenemos disponible en nuestro microcontrolador y para contar las oscilaciones deberemos buscar un sensor que lo permita.

¿Qué sensores utilizar?

Tratamos de conocer el período de oscilación de un péndulo. En nuestra experiencia manual, hemos visto que basta contar números de 1 en 1 , una «experiencia claramente digital», para obtener un valor decimal.

Es posible, por lo tanto, que sea suficiente un sensor digital. Pero, ¿qué sensor y cómo situarlo?.

Solución seleccionada (hardware)

Para medir el período con arduino, hemos pensado en un detector de obstáculos, situado en un lugar «especial» que permita obtener el período.

Situaremos un detector de infrarrojos (IR) enfrente de nuestro objeto y contaremos cuántas veces se acerca al sensor. El sitio ideal es el punto más bajo del péndulo.

medir el período con arduino
EL sensor de IR que utilizamos para contar las oscilaciones del péndulo

Cada vez que la bola pase por su punto más bajo, activará el sensor IR. El conteo lo hará la placa de arduino, que también medirá el tiempo. De ahí obtendremos una aproximación al valor de la aceleración de la gravedad. Después podemos hacer pruebas desplazando el péndulo distintos ángulos.

En el vídeo se puede ver cómo se activa el detector cada vez que la bola pasa por su punto más bajo:

El péndulo simple y un sensor para la medida del período con arduino

Medir el período con arduino: la programación

Como se puede ver, el montaje no es complicado; una vez realizado debemos idear el algoritmo adecuado que nos permita obtener el período con arduino y calcular la gravedad.

El primer problema que se plantea es dónde empezar a contar el tiempo. Comenzaremos cuando la bola pase por primera vez por encima del sensor. Será necesario que cuente dos activaciones antes de poder decir que ha pasado un período.

Por lo tanto, si queremos que haga 10 oscilaciones, pediremos que pase 20 veces por encima del sensor.

Cuando el contador establecido sobrepase 20, dejará de contar y grabará el tiempo que ha pasado. Este tiempo se descuenta del tiempo en que se tomó la primera medida para obtener el tiempo total. Dividimos entre 20 y tenemos el período.

Como sabemos la longitud del péndulo, podemos calcular la aceleración según la fórmula de la entrada anterior.

El algoritmo que hemos seguido:

medir el período con arduino

El programa se muestra en la siguiente figura, utilizando programación por bloques con visualino y en una primera versión sin optimizar (se muestran por separado las instrucciones de inicialización y de impresión por puerto serie, que van situadas donde están las flechas rojas):

Las instrucciones de inicialización de variables:

Las instrucciones de impresión por puerto serie:

Los resultados del programa realizado, impresos en el monitor del sistema, se pueden ver en el siguiente vídeo:

Hay muchas formas de resolver este tipo de problemas. Os invito a probar otras maneras de plantear el experimento y a optimizar el código.

(Acceso a la primera parte)