Sensor de temperatura con Arduino

En esta entrada voy a explicar como medir la temperatura con un sensor electrónico con Arduino y representarla gráficamente, en tiempo real, con Python.

Desde hace bastante tiempo vengo dándole vueltas a la idea de tener una estación meteorológica  en la (hipotética) clase para que los (hipotéticos) niños se familiaricen con los aparatos de medida y comiencen a trabajar con representaciones gráficas de datos, errores de medida, relaciones entre variables… además de con cuestiones básicas sobre meteorología. Aunque en el mercado hay estaciones meteorológicas no demasiado caras, fabricarla uno mismo tiene la ventaja, no sólo del bajo precio, sino de ser una forma de introducir cuestiones básicas de electrónica e informática. Por ahora comenzaremos midiendo la temperatura.

Nos va a hacer falta:

  • Un sensor de temperatura, que es un dispositivos que transforman los cambios de temperatura en cambios de señal eléctrica para ser finalmente procesada por un dispositivo  electrónico. En este caso, usaremos el TMP36. Este sensor es bastante preciso y muy sencillo de usar. Funciona con un rango de voltaje de 2.7V a 5.5V y viene calibrado directamente en grados centígrados (ºC). Cuesta 1.5 euros, aproximadamente.

Hay que tener en cuenta que con cada grado centrígrado el voltaje cambia 10 mV y que a la temperatura 0 le corresponde un valor de 500 mV.  Es decir:

Temperatura (grados) = (Temperatura (voltios) – 500/1000) / (10/1000)

o lo que es lo mismo:

Temperatura (grados) = (Temperatura (voltios) – 0.5) *100

Así, a un volaje de 700 mv (0.7 V) le corresponde una temperatura de 20 ºC.

  • Una placa de pruebas o protoboard. En realidad no es necesaria pero la usaremos porque es más fácil montar los componentes con ella.
  • Una placa Arduino Uno. Cuesta unos 20 euros pero la podemos usar para otra cosa cuando dejemos de utilizar la estación meteorológica.
  • Cables.
  • Un ordenador (da igual que tenga Linux, Mac OS o windows) en el que debemos instalar algunos programas. Se trata de software libre que se puede bajar gratuitamente de internet:
    • El software de Arduino.
    • El lenguaje de programación Python.
    • La librería numpy, para hacer cálculos científicos con Python.
    • La librería matplotlib, que nos permite hacer gráficas 2D con Python.
    • La librería pySerial, para acceder a los puertos serie de Arduino.

El montaje con Arduino es realmente sencillo. Sigue este esquema:

Esquema del montaje del sensor TMP36

Esquema del montaje del sensor TMP36 (la figura está hecha con fritzing)

Que en la placa se vería así:

Montaje con Arduino del sensor TMP36 (figura hecha con fritzing).

Montaje con Arduino del sensor TMP36 (figura hecha con fritzing).

La salida del sensor va a uno de los puertos analógicos del arduino. Para leerlo se escribe un  programa indicando el puerto con la salida y el factor de conversión de voltios a temperatura. Yo lo  he bajado de la página de Arduino así que no lo voy a copiar aquí. Con este programa, los datos de la temperatura irán aparaciendo en una ventana que se abre al pinchar sobre el botón de la derecha arriba de la interfaz de Arduino (el que tiene como una lupa, como se muestra en la figura):

interfaz_arduino

Finalmente, para hacer que los datos se vayan representando automáticamente en una gráfica a tiempo real, he creado el siguiente programa en Python:

Programa para medir la temperatura con Python (se puede bajar pinchado sobre la imagen).

Programa para medir la temperatura con Python

Para ejecutarlo, simplemente hay que escribir en el terminal:

>python temperatura.py

El resultado se puede ver en el siguiente vídeo. He hecho que la temperatura suba tocando el sensor y que baje acercando un cubo de hielo.

Anuncios

Robotizando un astronauta

En la entrada anterior contaba cómo hacer un muñeco – el “astronauta” – que se movía con un motorcito alimentado con una pila o con un pequeño panel solar. Ahora voy a usar una placa Arduino para controlarlo a través del ordenador, es decir, lo voy a robotizar. Ya no voy a necesitar ni la pila ni el panel solar porque el motor tomará la energía del propio ordenador. En un programa voy a escribir una serie de instrucciones para controlar el motor. Este caso es muy sencillo porque al haber sólo un motor lo único que va a poder hacer el robot es avanzar en un sentido. Desde el ordenador le puedo ordenar que camine o que se pare (¡por eso se llama ordenador!). Parece complicado pero realmente no lo es. Sobre el porqué de hacer proyectos de electrónica en primaria ya escribí también aquí.

Lo primero que hay que hacer es montar el circuito de la izquierda (aunque en mi caso he usado una resistencia de 33o ohmios en lugar de la de 2200 que se ve en el dibujo). Nos va a hacer falta, además de la placa Arduino, una resistencia, un transistor y un diodo. El transistor es un gran invento y gracias a él funcionan la mayoría de los dispositivos eléctrónicos que usamos a diario. En este caso va a amplificar la corriente para poder mover el motor. El diodo, por su parte, es un dispositivo que permite que la corriente pase sólo en un sentido. Esta función hace que actúe como interruptor y nos va a permitir encender y apagar el motor. Todo se conecta a un pin de la placa (en este caso el número 9 pero podría haber sido otro), a tierra y a la salida de 5 voltios de nuestro Arduino. El montaje se hace sobre una protoboard. En realidad se podría hacer sobre cualquier superficie pero la protoboard es muy cómoda porque al estar perforada nos permite hacer las conexiones con facilidad y usarla una y otra vez. Los prototipos de todos los aparatos electrónicos que usamos se montan inicialmente sobre una protoboard y sólo cuando se comprueba que todo funciona bien se construyen en serie. Por último la placa Arduino se conecta al ordenador con un cable USB. En el siguiente vídeo(*) se muestra cómo se montó el circuito:

El software del Arduino se baja de su web y se instala muy fácilmente. Después hay que escribir un programa de control. En la red hay también multitud de ejemplos y de ayudas para programar. Yo he hecho este programa sencillo (se puede ver más grande pinchando sobre la imagen):

Al final conecté el motor del astronauta a las salidas que había dejado en la placa. Simplemente le he puesto un cable más largo y le he cortado las conexiones que iban a la batería, al interruptor y a la placa solar. La pila en principio no hace falta pero se la he dejado para contrapesar y que nuestro robot no caiga hacia delante.

En este ejemplo, el motor funcionará con ciclos de 2 segundos y pausas de 0.1 segundos. O sea, se moverá así:

Si le cambio los valores del tiempo (“time_on” y “time_off“) por 2 segundos en ambos casos, nuestro astronauta andará 2 segundos y se parará otros dos. O sea, se moverá así:

Y ya está. Si quisiéramos que andase hacia atrás tendríamos que cambiar la polaridad del motor lo que se consigue simplemente intercambiando sus conexiones. Sin embargo, con el circuito que he montado no podríamos seleccionar un sentido u otro desde el ordenador. Para eso nos haría falta introducir lo que los electrónicos llaman Puente H. Pero vamos a dejarlo para otro día.

(*)La canción del vídeo es “In our talons” de The Bowerbirs.

Astronauta con panel solar

He montado este “astronauta” que se mueve con un motorcito alimentado con una pila o con un pequeño panel solar. Lo he encontrado en el catálogo de Cebekit, una empresa de kits educativos, especializados en la formación tecnológica. Este modelo en concreto costó unos 16 euros y fue un regalo para uno de mis sobrinos. Se pueden seguir las instrucciones (como he hecho yo) como ejercicio para desarrollar la visión espacial y la habilidad manual. Aunque, quizás, más interesante y económico sería, copiando inspirándonos en este modelo, comprar distintos componentes en una ferretería, fabricar la estructura con madera de balsa y plantear el reto de hacer un robot que pueda desplazarse. Seguro que los niños nos sorprenderían.

El siguiente vídeo(*) resume el proceso de montaje y muestra cómo funciona el dispositivo:

(*)La música es la del inicio de la canción “If I Could” de Sophie Zelmani.

A %d blogueros les gusta esto: