Refrescando al Pi Solar (I)
Hace calor, mucho calor. Los seres basados en carbono pasamos calor, pero tenemos voluntad propia para refrescarnos de la manera que sea. Los seres basados en silicio dependen de nosotros para eso.
Por ello, después de montar el Portátil Raspberry Pi Solar estaba pensando en ponerle un ventilador. Pero ya que lo hacía, quería hacerlo bien, introduciéndome en el maravilloso mundo del GPIO. No es un pájaro, son las siglas de General-purpose input/output
o Entrada/Salida de propósito general, y son esas dos hileras de pines (40 en el modelo B o superior) que aparecen en la placa.
Es muy interesante romper esa barrera entre el mundo del software y el mundo real, siempre me ha llamado la atención. En este caso, lo que quiero conseguir es que el ventilador se apague o encienda en función de la temperatura, un mecanismo que damos por hecho en cualquier PC. Gracias a la ayuda del amigo http://dontmakeitdouble.blogspot.com.es/ por ponerme en el camino de como se hace esto. Invitadle una cerveza, que os lo agradecerá.
¿Os acordáis, los que hayáis estudiado Ingeniería Informática, aquéllas clases de primero de física que parecía que no servían para nada? Pues algo de utilidad sí que tienen para este mundillo. Allí vi el tema de los diodos y los transistores. De entre las muchas tareas que puede desempeñar un transistor se encuentra la de actuar como interruptor. Hay muchos tipos, marcas y modelos pero uno que se usa ampliamente es el TIP120.
Lo básico en todos los transistores es tener tres patillas: Base, Emisor y Colector. La gracia está en que cuando el transistor entra en la región de saturación, aplicando una corriente determinada sobre la Base, se cierra y el circuito y circula la corriente entre el Colector y el Emisor. Mientras no está en saturación -bien porque no se aplica corriente a la Base o no la suficiente- el circuito estará abierto y por tanto la corriente no circula del Colector al Emisor y el ventilador se apaga. De forma que el circuito básico para usar un transistor como interruptor queda de la siguiente manera:
El emisor va a tierra, el polo negativo del ventilador va al colector y el positivo a la fuente de alimentación. Finalmente, algún pin GPIO se unirá, resistencia mediante, a la base del transistor. Cuando activemos (usando Python y las librerías de interacción con GPIO) ese pin ¡el ventilador se enciende!
Este circuito es muy básico y le queda algo de trabajo, todavía no está para usarse. Tengo que calcular la resistencia entre el pin GPIO y la Base para que cuando active el pin el transistor entre en saturación y se mantenga, pero sin enviar más ni menos corriente de la necesaria. También tengo que calcular cual es esa corriente. Funcionar, me ha funcionado, pero ¡quiero saber lo que estoy haciendo! 😉
Por el momento, he probado con la alimentación que ofrece el pin 2 (+5V) y uno de los pines GND de la propia Pi, de manera que en total he usado tres pines. Pero quizá sea más recomendable alimentar el ventilador de manera independiente y usar solo el pin GPIO de activación/desactivación.
La Pi con Raspbian te pone la temperatura de la CPU en /sys/class/thermal/thermal_zone0/temp
. Mi primera aproximación será definir un cron que lea ese valor y si es demasiado alto, activar el pin elegido de GPIO y encender el ventilador. Cuando la temperatura baje de cierto valor, desactivarlo.
Seguiremos informando.
Perpetrado el 22 de julio de 2015 por una IN (Inteligencia Natural), la mia, con cierto esfuerzo.
Archivado en categoría(s) Electrónica, GNU/Linux, Programación, Raspberry Pi
Deja una respuesta