domingo, 16 de agosto de 2015

Componentes (2): Transceptor inalámbrico nRF24L01+

En el artículo de hoy vamos a conocer otro componente muy útil para nuestros montajes: el transceptor inalámbrico nRF24L01+.

Se trata de un transceptor inalámbrico, esto es, un dispositivo capaz de funcionar como transmisor y como receptor por medio de radiofrecuencia. La banda de radiofrecuencia utilizada es la ISM (Industrial, Scientifical and Medical), una banda reservada para su uso no comercial por parte de particulares, y concretamente el rango de frecuencias desde 2,400 a 2,500 Ghz que todos conocemos por ser el utilizado por microondas, WIFI, Bluetooth, teclados y ratones inalámbricos, y multitud de otros aparatos.

Este dispositivo, fabricado por Nordic Semiconductor,  nos permitirá comunicar un dispositivo (arduino o de cualquier otro tipo) con otro, pudiendo funcionar como emisor o receptor en cada momento. Hay multitud de artículos en los que se puede encontrar información sobre él, de manera que paso a destacar sus características principales.

Primero lo que no es:

  • El nRF24L01+ no es un dispositivo WIFI, aunque utilice la misma frecuencia.
  • Tampoco se trata de un dispositivo Bluetooth, aunque hay personas, como Dmitry Grinberg, que han conseguido empaquetar parte del protocolo Bluetooth LE mediante el dispositivo y comunicarse de una manera algo rudimentaria con otros dispositivos Bluetooth.

 Lo que sí es:

  • Se trata de un dispositivo inalámbrico de ultra-baja potencia. Su pico de consumo cuando está recibiendo o emitiendo es de 14 mA, cuando está en modo de reposo 26 μA, y cuando está en modo "apagado" es de 900 nA. El tiempo de activación cuando está en uno de estos modos es rapidísimo, lo que facilita su utilización en entornos con necesidades de muy bajo consumo.
  • Utiliza la banda de 2,4 Ghz a 2,525 Ghz para la comunicación, y puede hacerlo a una velocidad de 250kbps, 1 Mbps o 2 Mbps. Su alcance máximo (en abierto y sin obstáculos) puede llegar a los 200 metros, lo cual no está nada mal.
  • Puede utilizar cualquiera de los 126 canales disponibles en su rango de frecuencias.
  • Puede mandar secuencias de datos hasta 32 bytes seguidos en modo "ShockBurst" (ráfagas).
  • 6 canales de datos simultáneos para comunicación en estrella con otros dispositivos iguales. Cada uno de estos canales debe tener una dirección, que debe ser igual en el receptor que en el emisor. Estas direcciones son un número de entre 3 y 5 bytes. Se recomienda para evitar errores que los bits de la dirección cambien de nivel (de 0 a 1 o de 1 a 0) varias veces.
  • En las especificaciones del fabricante indica que puede funcionar con una alimentación de entre 1,9V a 3,6V, aunque según lo que yo he leído parece ser muy quisquilloso y deberíamos alimentarlo siempre a 3,3V. Ya veremos cómo se comporta con un par de pilas AA, que es como quiero probarlo...
  • Su coste es muy bajo, tirando a ridículo. En la foto de arriba podéis ver el que yo he comprado en Aliexpress por un precio de 0,60€, con los gastos de envío incluídos desde China y puesto en casa. Es verdad que yo he pedido 10 y así salen más baratos, pero aún así el precio es ridículo. Os pongo el enlace del mío por si le interesa a alguien:

    http://www.aliexpress.com/item/Free-Shipping-10PCS-NRF24L01-wireless-data-transmission-module-2-4G-the-NRF24L01-upgrade-version-We-are/1680738017.html
  • En cuanto a la comunicación inalámbrica, utiliza un protocolo propio que asegura la integridad de los paquetes, reenviando paquetes que se pierdan de forma transparente y devolviendo un "ACK" que asegura al emisor que el mensaje ha llegado al receptor.
  • En cuanto a la comunicación con controladores como el arduino, utiliza el protocolo SPI (Serial Peripheral Interface), un estándar utilizado en los equipos electrónicos para transmitir información de un integrado a otro. Las señales estandar de dicho protocolo están disponibles en sus patillas según el siguiente esquema:

    Conexionado nRF24L01+
    Y este es el significado de cada una de ellas:
    1. GND: Tierra o masa común.
    2. VCC: Conector de alimentación. En las especificaciones se indica que debe estar comprendida entre 1,9V y 3,6V. OJO: nunca alimentar a 5V o adiós transceptor.
      Por internet hay multitud de comentarios acerca de que la alimentación debe ser exclusivamente de 3,3V y muchos incorporan un pequeño condensador entre las patillas 1 y 2 para estabilizar la alimentación. En mis pruebas voy a intentar alimentarlo a 3V a partir de pilas, a ver qué tal va.
    3. CE (Chip Enable): Hay que ponerlo a 1 cuando queramos recibir o enviar datos.
    4. CSN (Chip Select Not): Hay que ponerlo a 0 cuando queramos mandar un comando SPI al dispositivo desde el controlador.
    5. SCK (SPI Clock): Señal de reloj para el protocolo SPI.
    6. MOSI (Master Output Slave Input): Esta línea sirve para enviar datos desde el controlador (denominado maestro) al dispositivo inalámbrico (denominado esclavo).
    7. MISO (Master Input Slave Output): Esta línea hace lo contrario, enviar datos desde el dispositivo inalámbrico (slave out) al controlador (master in).
    8. IRQ: Esta línea de interrupción se activa en determinadas circunstancias alertando al controlador. Se puede programar para que se ponga a 1 cuando se reciba un paquete de datos, o cuando se termine la transmisión, etc.
  • El funcionamiento del protocolo SPI en este dispositivo se sale del ámbito que quiero darle a este artículo; se trata de una serie de comandos a bajo nivel que se asemejan mucho a la programación en código máquina, escribiendo valores en registros concretos del dispositivo. No obstante, si alguien quiere hacerse su propia librería para programarlo, puede encontrar todo muy bien documentado en el este artículo de gizmosnack.

Y eso es todo por ahora. Sólo decir que para utilizar el dispositivo desde Arduino hay numerosas librerías, como ésta, ésta, ésta, ésta, ésta, ésta, ésta, ésta o muchas otras. Cuando haga más pruebas os diré la que yo voy a usar.

domingo, 9 de agosto de 2015

Componentes (1): Sensor de corriente SCT013

Con la entrada de hoy comienzo una serie de entradas en las que voy a describir algunos de los componentes eléctricos/electrónicos que voy a usar en mis montajes. Yo no es que sea un genio en el campo de la electrónica ni de la electricidad: lo poco que estudié fue ya hace muchos años, pero conozco los fundamentos porque siempre me ha gustado. Como curiosidad, todavía en casa de mis padres conservo un par de cajas de Electro-L como el de la imagen:


(No, el de la foto no soy yo, aunque lo parezca...)

Lo que quiero decir con esto es que voy a intentar explicar los fundamentos como para tontos, y así nos enteramos todos, incluido yo.

El transformador

Para entender el funcionamiento de nuestro sensor de corriente eléctrica, tenemos que hablar antes del transformador (enlace a Wikipedia)

Un transformador es uno de los componentes fundamentales de la distribución de la electricidad tal y como la conocemos hoy. Su fundamento es la inducción electromagnética: ese famoso fenómeno que he tenido que volver a aprender este año al preguntarle a mi hija de 12 años un tema de Conocimiento del Medio que dice que al mover con rapidez un campo magnético en las cercanías de un conductor eléctrico enrollado a modo de espiral sobre un núcleo de hierro, en dicho conductor se produce una corriente eléctrica que es proporcional a la velocidad con la que muevas el campo magnético, y viceversa; que al recorrer una corriente eléctrica pulsante por dicho conductor se induce un campo magnético proporcional...

El transformador hace uso de los dos efectos al mismo tiempo. Básicamente son dos bobinas enrolladas sobre un núcleo común (normalmente un núcleo de hierro o ferrita en forma circular o cuadrangular). Al circular una corriente alterna sobre la bobina número 1 (el primario), esto genera un campo magnético que se propaga por el núcleo común, induciendo una nueva corriente en la bobina número 2 (el secundario).

Una de las características más interesantes de este componente es que en él confluyen dos circuitos eléctricos independientes, cada uno con unas características, pero la potencia se conserva (idealmente, aunque siempre puede haber alguna pérdida) en ambos circuitos. Otra de las características interesantes es que la intensidad de la corriente inducida en el secundario es inversamente proporcional al número de vueltas de su bobina, y directamente proporcional al número de vueltas de la bobina principal. De este modo, obtenemos las siguientes fórmulas:

Vp * Ip = Vs * Is (potencia invariable)

Np/Ns = Is/Ip (proporcionalidad de las intensidades)

Siendo Vp el voltaje del circuito primario, Vs el del secundario, Np el número de vueltas de la bobina del primario, Ns el número de vueltas del secundario, Ip la intensidad de la corriente que circula por el circuito primario e Is la que circula por el secundario.

Pongamos un ejemplo para comprender todo esto. Si tenéis una cierta edad, supongo que habréis conocido esos transformadores que había en nuestras casas cuando teníamos la corriente a 125V y las televisiones y otros electrodomésticos funcionaban a 220V. Estos transformadores tenían por tanto un primario cuyo Vp = 125V y un secundario cuyo Vs = 220V. Si nuestra tele tenía un consumo digamos de unos 100W, podemos calcular las intensidades de ambos circuitos porque sabemos que la potencia es (aproximadamente) la misma a ambos lados del transformador:

P = V * I,  100W = 125V * Ip = 220V * Is
Despejando, Ip = 100W / 125V = 0,8A
Igualmente, Is = 100W / 220V = 0,45A

Vemos por tanto que la intensidad de la corriente que pasa por este secundario es inferior a la del primario mientras que el voltaje es superior, manteniéndose siempre el producto de ambos, que es la potencia, invariable.

Podríamos también calcular el número de vueltas de cada bobina según la proporción que hemos visto antes. Supongamos que el primario tenía un devanado de 1000 vueltas. ¿Cuantas vueltas tendría el secundario?

Is/Ip = 0,45A / 0,8A = 1000/Ns
Ns = 0,8A * 1000 / 0,45A = 1760 vueltas

Vemos por tanto que, si el número de vueltas del secundario es superior al del primario, aumenta proporcionalmente el voltaje y disminuye inversamente la intensidad. De hecho, si tuviéramos el mismo número de vueltas en ambos lados, ambos circuitos,tendrían las mismas características, con la diferencia de que serían dos circuitos aislados.

El sensor de corriente

Bueno, pues ya está bien de teoría. El componente que nos traemos entre manos, el sensor de corriente (también llamada pinza amperimétrica en algunos sitios) es un tipo específico de transformador, con ciertas características particulares:
  • El núcleo del transformador se puede abrir y cerrar, para poder situarlo alrededor de un conductor sin tener que desconectarlo.
  • El devanado primario lo constituye el conductor a medir al pasar por dentro del núcleo, y tiene por tanto una sola vuelta.
El resto de las características (y las fórmulas matemáticas empleadas) son exactamente iguales que en el resto de los transformadores.

En la imagen pongo el que yo he comprado:


Se trata de un sensor SCT013 de la marca yhdc (chino) que se puede comprar en muchas partes. Yo el mío lo compré en Aliexpress y me costó unos 5€ puesto en casa. El enlace al producto en cuestión es el siguiente:


Este sensor admite una intensidad máxima de 100A en el primario, transformándola en una intensidad máxima de 50mA en el secundario. Como hemos dicho, el primario tendrá una única vuelta, por lo que aplicando la fórmula de proporcionalidad obtenemos que el secundario esta formado por una bobina con 2000 vueltas en su devanado.

100A / 0,05A = 2000 / 1

El sensor viene con un cable de aproximadamente un metro y con un conector de tipo minijack en su extremo, con tres contactos (minijack audio stereo) de los cuales el intermedio no tiene conexión. El secundario por tanto se accede por medio de los otros dos contactos.

El sensor es pasivo (no requiere alimentación) y su funcionamiento es lógicamente muy sencillo si sabemos cómo funciona un transformador: en el primario (el conductor a medir) se aplica una corriente alterna con un consumo determinado y como resultado tenemos la intensidad a medir. Dicha corriente genera otra corriente inducida en el secundario que tiene una intensidad 2000 veces menor. Lógicamente, lo que nos interesa no es obtener una intensidad proporcional, sino un voltaje proporcional que podamos medir más fácilmente, pero eso es otra historia y ya la veremos cuando conectemos el sensor al arduino.

Por otra parte, una vez calculada la intensidad en el primario, calcular la potencia o consumo eléctrico es tan fácil como multiplicarla por el voltaje de entrada (normalmente 230V).

Como ya digo, este artículo es tan sólo una introducción al funcionamiento de este componente. Su utilización practica la veremos más adelante, mediante un montaje con arduino.


miércoles, 5 de agosto de 2015

Servers Ultimate Pro gratis hoy en Amazon

Si te parece muy complicado instalarte un servidor en tu móvil, hay aplicaciones que te permiten tener uno o varios servicios directamente desde Android: FTP, servidor web, repositorios, etc.

Entrando hoy por casualidad en la tienda de Amazon, he visto que la aplicación gratuita del día es Servers Ultimate Pro:

http://www.amazon.es/Ice-Cold-Apps-Servers-Ultimate/dp/B00E00C70C

Yo me la he bajado, para un futuro, merece la pena.