lunes, 22 de diciembre de 2014

Arduino Beetle


Una vez que ya hemos presentado cómo de pequeña puede quedarse nuestra placa Arduino si nos decidimos a montar la versión Arduino Nano, ahora vamos a intentar partir la placa en dos. De hecho vamos a intentar dejarla tan pequeña como básicamente lo permita el hacer uso de un micro ATmega32U4 y un puerto microUSB. Esta placa se llama Arduino Beetle y en la siguiente figura podremos ver la relación de tamaño que guardan entre ellas.

En la figura podemos ver de izquierda a derecha, las placas Leonardo, Nano, Nova y Beetle.




Aún siendo así de pequeña usa el mismo micro de 8 bits y 16 MHz que la versión Leonardo de Arduino, el ATmega32U4,


aunque como podemos ver en la figura y por su tamaño 20mmx22mm, la placa está diseñada para manejar menor número de entradas,  3 digitales ( D9, D10, y D11) que pueden funcionar como PWM, y tres analógicas (A0, A1 y A2)




Está pensada para que se pueda programar de forma amigable a través del puerto micro USB


y del IDE del Arduino (en donde a la hora de seleccionar el tipo de placa que tenemos deberemos especificar Leonardo).

El propósito de esta placa es resolver problemas de forma sencilla para proyectos que no requieran microcontroladores caros, por ejemplo todo tipo de proyecto Do It Yourself (DIY, háztelo tú mismo), weareables, educativos, etc.

Por ejemplo, el famoso robot InsectBot de DFRobots, usa al Arduino Beetle como controlador de un sensor de proximidad de infrarrojos y un par de servomotores que hacen las veces de solución motriz. En una entrada especialmente dedicada veremos como podemos montarlo.

Al ser tan pequeño, si no queremos soldar la electrónica directamente a los terminales, necesitará de su propia tarjeta de expansión, algo que aunque incrementa enormemente la facilidad de montaje y desmontaje de sensores y actuadores, incrementará un poco (no mucho) el tamaño de nuestro proyecto.  La placa de expansión es llama Beetle Shield,

y cuando se montan ambas juntas queda de la siguiente forma


Algo que nos permitirá montar nuestra electrónica sin la necesidad de protoboard







domingo, 21 de diciembre de 2014

Arduino Nano




En esta ocasión vamos a presentaros una de las muchas versiones de reducido tamaño que se han diseñado para dar solución a aquellos proyectos que exigen reducir el tamaño de toda la electrónica asociada, el Arduino Nano.

Así que comencemos con una de sus virtudes, sus dimensiones: 43,18mm x 15,24mm


Desde la versión 3, incorpora el micro ATmega328 igual que su hermano mayor el Arduino UNO R3, por lo que tendremos sus mismas prestaciones.

El espaciado de los pines es el estándar de 2,54mm para que podamos insertarlo directamente en la protoboard.


Como se puede observar en la foto, tiene un LED azul en la base para indicar el encendido.

Así mismo para transmisión (TX) y recepción (RX)  usa LEDs de color verde y rojo respectivamente.

Además podemos apreciar en la imagen, que también le han cambiado el USB grandote clásico a la version mini B, y no la versión microUSB porque esta versión fue diseñada en el 2008-2009.


Al igual que Arduino UNO R3, tiene RESET automático al cargar programas, no necesitando apretar físicamente el botón antes de grabarle uno nuevo, y al igual que Arduino UNO R3 tiene el bootloader integrado que nos permite programarlo con el entorno de desarrollo de Arduino y sin necesidad de un programador externo. Aunque si eso es lo que se desea, incorpora un conector ICSP que nos permitirá programarlo con un programador externo.

La placa monta la regulación de tensión a 5V así como el chip de comunicación en la segunda cara, permitiéndole un mayor nivel de integración de la electrónica que monta Arduino UNO R3.


El chip FTDI FT232RL solo se activará si la placa está alimentada a través del puerto mini USB. Como consecuencia de ello, cuando el Arduino Nano está alimentado con una fuente externa, y no a través del puerto mini USB, la salida de 3.3V (que es suministrada por el chip FTDI) no estará disponible.


sábado, 20 de diciembre de 2014

Funduino UNO




Esta placa tiene unas cuantas ventajas y algún pequeño inconveniente.

Veamos qué podemos decir de ella.

Tamaño: 68x53mm, el mismo que la Arduino UNO
Frecuencia de reloj: 16 MHz, el mismo que la Arduino UNO
Microprocesador: ATmega328P, el mismo que la Arduino UNO
Voltaje de funcionamiento: 3.3V / 5V,  Arduino UNO solo da 5V.
Voltaje de entrada: 7-12V (aunque al igual que Arduino UNO,  podría llegar a 6-20V)
Interfaz de E/S digitales: 14 (4PWM, de difícil identificación)

Las ventajas inmediatas que le vemos a esta placa son las siguientes:

1.- El precio es de solo 13,99$
2.- Permite conectar sensores o actuadores directamente a los pines sin necesidad de empalmes ni protoboard gracias a los conectores de 3 pines que incorporan en cada I/O.
3.-  Mientras que Arduino UNO no puede suministrar más de 100mA de corriente máxima, Funduino es capaz de suministrar hasta un máximo de 500mA, y llegando a ser capaz de suministrar hasta 5V 2A, cuando está conectado a una fuente externa. Posiblemente gracias al uso del regulador MP2307.
4.- Permite gracias a un interruptor, que las tensiones de funcionamiento sean 5V o 3,3V, permitiendo así trabajar con módulos de bajo voltaje, algo que con Arduino UNO tenemos que hacerlo con algo más de electrónica.
5.- El famoso botón de reinicio que se ha ido moviendo de una versión a otra, está aquí colocado en una posición a la que se puede acceder incluso cuando le coloquemos una tarjeta de expansión (Shield)
6.- Aunque Arduino UNO funciona con tensiones de entrada de 7-12 (con un máximo de 20V), Funduino puede a llegar a soportar tensiones de hasta 23V. Posiblemente gracias al uso del regulador MP2307.


Las desventajas inmediatas que le vemos a esta placa son las siguientes:

1.- Que no se encuentra documentación en internet sobre ella, al menos con facilidad.
2.- Que dado que mantiene el mismo tamaño de placa que Arduino UNO, las regletas de pines auxiliares impiden la identificación cómoda de los pines, haciendo el acceso intuitivo a algunos de ellos, por ejemplo los PWM, imposible.
3.- Que aparentemente la versión que estamos usando usa el chip de ATmega8U2 para la comunicación USB/Serie, que es la que montaba Arduino UNO hasta la revisión R2, sin embargo actualmente montan la ATmega32U2, por lo que me imagino que algún problemilla de comunicación podría llegar a dar. Aunque lo hemos probado contra la versión del IDE 1.0.6, y no hemos encontrado nada anómalo.
4.- Que posiblemente por ser una versión un poco más antigua, aunque renuncia a implementar el conector USB de impresoras, no salta al microUSB, sino que lo sustituye por un microUSB esto hace pensar que es posible que en la siguiente versión incluya estas dos evoluciones.

Así que, llegados a este punto, lo mejor será ir probándola y reportaros los problemas que vayamos localizando.

Si encontráis más temas que consideréis que marcan la diferencia, así como documentación sobre la misma,  agradeceríamos que nos lo mandaseis, seguro que más de uno os lo va a agradecer.




Tabla comparativa de Arduinos


Aunque a lo largo de las próximas entradas iremos presentando algunas de las placas con las que vamos a trabajar en nuestros proyectos, a continuación se recoge las versiones más ortodoxas y las diferencias más relevantes entre ellas.

Característica de Arduino
UNO
Mega 2560
Leonardo
DUE
Tipo de microcontrolador
Atmega 328
Atmega 2560
Atmega 32U4
AT91SAM3X8E
Velocidad de reloj
16 MHz
16 MHz
16 MHz
84 MHz
Pines digitales de E/S
14
54
20
54
Entradas analógicas
6
16
12
12
Salidas analógicas
0
0
0
2 (DAC)
Memoria de programa (Flash)
32 Kb
256 Kb
32 Kb
512 Kb
Memoria de datos (SRAM)
2 Kb
8 Kb
2.5 Kb
96 Kb
Memoria auxiliar (EEPROM)
1 Kb
4 Kb
1 Kb
0 Kb

A partir de aquí, tendremos versiones compatibles de mayor o menor tamaño, con regulación de tensión o sin ella, con tensiones de trabajo de 5V y/o de 3,3V, etc.

La  placa Arduino con microcontroladores de 8 bits Atmel es actualmente la más popular. Entre otras, incluye las placas UNO, MEGA 2560 y Leonardo, aunque tendremos ocasión de presentar alguna otra versión que se sale de esta regla.

Arduino Leonardo se diferencia de sus predecesoras en que utiliza un chip ATmega32U4 que contiene el controlador USB, eliminando la necesidad de ningún otro procesador secundario.

Las salidas analógicas presentes en la Arduino DUE, de 32 bits, proporcionan una resolución (4096 niveles) que podrían emplearse para crear una salida de audio.




miércoles, 3 de diciembre de 2014

¿Para qué sirven los pines en la placa Arduino?






Con objeto de poder identificar mejor las partes de una placa Arduino UNO, en esta entrada, vamos a recorrer cada uno de los pines que tiene nuestra placa y os vamos a contar para qué sirven.

En algunos casos, sobre todo si todavía no la habéis usado mucho, algunos términos os resultarán extraños, pero no os preocupéis por ello porque en posteriores entradas iremos explicando cada uno de ellos.

La placa que debéis tener en la mano, debe parecerse a la de figura inicial, y aunque hay muchas placas compatibles con Arduino UNO, la mayoría de ellas respeta la disposición de los regleteras negras de pines. Ver un ejemplo en la imagen siguiente, donde en rojo hemos remarcado dos de las versiones de microcontrolador que puede encontrarse dentro de la familia Arduino UNO, y en amarillo, la ubicación idéntica de las regleteras de pines que presentaremos a continuación:



Es por ello, y para que solo nos concentremos en las similitudes y no en las diferencias, por lo que a continuación hemos preparado un esquema simplificado de la placa, que nos permitirá recorrer los pines sin perdernos.




Así que si empezamos con el pin naranja AREF  (situado en la zona superior central del dibujo) y recorremos la tarjeta en sentido horario, nos vamos a encontrar con los siguientes tipos diferentes de pines
  • Pin analógico de Referencia pin (naranja)
  • Tierra digital (verde claro)
  • Pines digitales 2-13 (verde)
  • Pines digitales 0-1 para comunicación serie In/Out - TX/RX (verde oscuro) - Estos pines no pueden ser usados (digitalRead y/o digitalWrite) como Entrada/Salida digitales si se está usando la comunicación serie (Serial.begin).
  • Botón de Reset - S1 (En el dibujo no sale, pero es un pequeño botón que cambia su posición depende de la placa)
  • Conector de programación ICSP (In-circuit Serial Programmer) (turquesa)
  • Pines analógicos 0-5 (celeste)
  • Pines de Alimentación y Tierra (Alimentación (POWER): naranja, Tierra (GND): naranja claro)
  • Conector jack 21mm para alimentación externa (9-12VDC) - X1 (rosa)
  • Conector USB (que usaremos parar subir los programas que hayamos escrito en nuestro ordenador) (amarillo)

En las próximas entradas explicaremos uno a uno para qué sirve cada uno.


martes, 2 de diciembre de 2014

Regulación de Tensión - Explicación



Si le echamos un vistazo al esquema de la placa de Arduino UNO o Mega 2560, parece que existen dos circuitos reguladores donde en diseños antiguos parece que solo aparecía uno
esta es una técnica para crear múltiples opciones a la hora de construir la PCB, por si una versión concreta del chip no estuviera disponible en el momento de la fabricación, poder sustituirlo por su equivalente (en el esquema que mostramos al principio vemos que era para cubrir dos posibles versiones del empaquetado del regulador lineal de tensión MC33269 de On Semiconductor).

Pero realmente cuando se va a fabricar la placa, se escoge la versión que se va a implementar, bien con el IC1 o bien con el IC2. Además podemos ver que antes y después del regulador que se haya escogido, la señal se filtra con un par de condensadores gordotes el PC1 y el PC2, de 47uF, que suelen situarse físicamente detrás del jack de alimentación.

Esta es la parte del circuito que regula una salida a 5V desde el jack de alimentación.


donde además podemos ver un pequeño fusible resetable que no identificamos en el esquema pero sí en la placa cuya resistencia interna crece pasado un límite y consiguiendo de este modo reducir los efectos destructivos de una corriente alta. Una vez que baja la corriente el fusible se enfría y todo se normaliza.  En una entrada anterior presentamos brevemente cómo funcionan los Fusibles con Reset.


Este proceso pude repetirse algunas veces aunque no demasiadas, dado que el stress térmico irá degradando al componente hasta que finalmente lo haga romper.

Adicionalmente la placa lleva otra circuitería paralela para gestionar tanto las tensiones de 3.3V como el caso en el que simultáneamente la placa esté alimentada vía jack y vía USB.


Sucede lo siguiente:

Cuando una persona enchufa la placa solo al cable USB, el micro y todo lo demás es alimentado por los 5V que suministra el conector USB.

Si una persona conecta una alimentación en el rango de 7-12V al jack, el micro y todo lo demás es alimentado por el circuito de regulación que hemos presentado al principio gracias al IC1.

Pero cuando una persona conecta la placa tanto vía USB como vía jack al mismo tiempo, la placa usa un transistor T1, para dar preferencia a la fuente de tensión regulada por el jack, anulando la suministrada vía USB.

Este transistor es el que permite a la placa vigilar, en caso de que estando el Arduino alimentado de dos formas distintas,  qué sistema se ha desconectado, y cambiar de uno a otro si que notemos ninguna interrupción.

Además como podría pasar que la alimentación a través del jack tuviera la polaridad cambiada (recordemos que para alimentar correctamente la placa el jack debe tener la tensión positiva en el centro), el sistema actúa como si la placa no estuviera conectada, protegiendo así al Arduino.

Regulador de Voltaje en la placa Arduino




Si le echamos un vistazo a nuestra placa, podemos observar que la regulación viene dada por un circuito que se sitúa al lado del jack de alimentación externo, el AMS1117,


o su equivalente de NXP que lleva un confuso marcado del tipo W36 7CE50Z.

Estando situado, en el caso de la placa Leonardo, un poco más abajo


que por el logo "ON" nos indica que es NCP1117 de ON Semiconductor.

Sea cual sea el componente que monten, normalmente nos suministra una tensión de trabajo que está en el rango de los 5V más menos algunos centésimas de voltio



Y es por lo que se aconseja siempre que se use este sistema de alimentación y no cualquier otro externo, a menos que sepamos que realmente nuestra fuente de alimentación es igual o mejor que la que regula la propia placa.

Pero ojo, que aunque las prestaciones de la regulación del AMS1117, puede hacernos pensar que es capaz de suministrar corrientes de 1A para ello la placa debería ser capaz de gestionar mejor el calor con disipadores. Así que si no queremos achicharrar el regulador, mejor será que nos limitemos a respetar las recomendaciones de la placa, en caso contrario nos podremos encontrar con algo como esto