Archivos para septiembre, 2013

En publicaciones anteriores construimos diferentes proyectos basados en la plataforma Arduino (ver Arduino UNO Sniffer Telefónico, Arduino UNO Sniffer Telefónico v2, Construyendo nuestro propio RTC para Arduino o PIC) basándonos en el desarrollo del módulo en cuestión, siendo la placa Arduino un componente más del proyecto.

En muchas ocasiones la adquisición de esta placa puede no ser tan sencilla como pensamos y/o creemos. Intervienen diferentes factores, el factor económico en primer lugar, como así también el lugar de residencia ya que a veces los costos de envío llegan a duplicar el valor de la placa. Con lo expuesto anteriormente, en esta publicación veremos cómo construir nuestra propia placa Arduino “desde antes de cero“, ya sea por los factores mencionados anteriormente o simplemente para extender nuestros proyectos.

Podemos dividir la construcción del proyecto en 3 (tres) grandes bloques:
1) Programador por Puerto Paralelo (para cargar el bootloader de Arduino al microcontrolador Atmel ATMEGA 328P-PU).
2) Interfaz RS-232 (para comunicar la placa Arduino con la PC).
3) La placa Arduino “Nanino”

Programador por Puerto Paralelo
Como sabemos, uno de los principales componentes de la plataforma Arduino es el bootloader, el cual se encuentra cargado en el microcontrolador Atmel ATMEGA328P-PU, ocupando una porción de memoria (alrededor de 2KB).
Podemos realizar la carga del bootloader en un microcontrolador nuevo (sin bootloader) utilizando una placa Arduino, pero todavía no disponemos de una!. Por este motivo, vamos a construir un programador por puerto paralelo (sí, el antiguo y querido puerto LPT1 de la impresora 🙂 ).

Lista de Componentes
2 Resistencias 470Ω 0.25W
1 Resistencia 220Ω 0.25W
1 Conector DB-25 Macho (para prolongación)

En la siguiente imagen se observa el circuito del programador, como podemos observar es muy sencillo y requiere de unos pocos componentes.

 
El programador terminado se observa en la siguiente imagen:

Ver Programador por Puerto Paralelo

Los cables no deben superar los 15cm de longitud.

La carga del bootloader la haremos posteriormente (paciencia…paciencia).

IMPORTANTE: Si bien podemos emplear un adaptador USB – IEEE 1284, no todos permiten el control directo de sus pines ( el llamado modo “bitbang” ). Si disponemos de un adaptador de este tipo podemos verificar si el mismo soporta el modo “bitbang” y, de ser así, podemos emplearlo en nuestro proyecto.

Interfaz RS-232
Para cargar los sketches de Arduino y comunicar nuestra placa con el exterior, el programador que construimos anteriormente no nos resulta útil. Para esto, construiremos una interfaz que sea capaz de realizar una conversión de niveles lógicos entre nuestra placa Arduino y el puerto serie de la PC (sí, el antiguo y querido puerto COM1 del módem).

Lista de Componentes
1 Circuito Integrado MAX232N (Texas Instruments)
5 Capacitores de Tantalio 1uF 35V
4 Resistencias 1KΩ 0.25W
1 LED ámbar 3mm
1 LED verde 3mm
1 Conector DB-9 Hembra (para prolongación)

En la siguiente imagen se observa el circuito de la interfaz, como podemos observar es muy sencillo y requiere de unos pocos componentes.

En la siguiente imagen se observa el circuito de la interfaz, como podemos observar es muy sencillo y requiere de unos pocos componentes.

 
La interfaz terminada se observa en la siguiente imagen:

Ver Interfaz RS-232

Para verificar el correcto funcionamiento de la interfaz conectaremos el pin correspondiente a TX con el pin correspondiente a RX. A continuación ejecutamos el IDE de Arduino y en la barra de Menú seleccionamos “Herramientas” –> “Monitor Serial”, o simplemente presionamos CTRL+SHIFT+M. Cada vez que enviamos un caracter deberemos recibir el eco del mismo. Debemos verificar la comunicación a diferentes velocidades de transmisión y tomar nota de los resultados. Para alcanzar las velocidades más rápidas de transmisión es recomendable emplear capacitores de tantalio (ver imagen de la interfaz terminada) ya que son más eficientes a altas frecuencias.

La placa Arduino “Nanino”
Sin lugar a dudas esta es la parte más interesante de nuestro proyecto y la más esperada. La construcción de nuestra propia versión de la placa Arduino. “Nanino” fué diseñanda por Johan Von Konow, su nombre hace honor a los pocos componentes que utiliza y a sus reducidas dimensiones. Existen dos versiones de esta placa, la versión minimalista y la versión “extendida” que incluye un área para prototipado, utilizaremos esta última.

Lista de Componentes
1 Microcontrolador Atmel ATMEGA 328P-PU
1 Resistencia 10KΩ 0.25W
1 Resistencia 1KΩ 0.25W
1 Resistencia 390Ω 0.25W
1 Capacitor de Tantalio 1uF 35V
3 Capacitores Cerámicos 100nF 50V
2 Capacitores Cerámicos 18pF 50V
1 Cristal de Cuarzo 16MHz
1 LED azul 5mm (alto brillo)
1 LED ámbar 5mm
1 Pulsador 6mm (4 terminales)

 
Si bien para el armado de la placa “Nanino” se necesitan sólo dos capacitores de 100nF, vamos a emplear un tercero que soldaremos entre el pin “DTR” y el pin 1 del microcontrolador Atmel ATMEGA328P-PU para implementar la característica de reinicio automático. 🙂 Además, sustituiremos la resistencia de 1KO que conecta “LED PWR” a “GND” por una resistencia de 390O. Para “LED 13” utilizaremos un LED azul de alto brillo (5mm).

Ver Placa Arduino “Nanino”

A continuación se encuentra el PCB en escala 1:1 (el documento PDF debe ser impreso con la escala al 100%), el cual se encuentra listo para la aplicación por transferencia térmica (método “de planchado” ).

Nanino v0.8 PCB

La carga del bootloader
Seguramente esta es la parte más esperada del proyecto y no es apta para cardíacos. Es hora de darle “vida” a nuestra placa Arduino. Luego de colocarnos nuestros trajes NBQ comenzamos a formularnos una serie de preguntas, y seguramente la primera es: ¿Cuál bootloader debemos cargar para nuestra versión? La respuesta es sencilla, pero al principio puede ser confuso. El colectivo imaginario podrá generalizar y pensar que cualquier bootloader es apto ya que se trata de una placa clonada…pero existen muchas placas Arduino en el mercado y no todas son exactamente iguales! Por lo tanto esta afirmación es incorrecta. Luego podemos reducir el conjunto comparando similitudes, nuestra placa consta de un microcontrolador Atmel ATMEGA328P-PU y requiere una interfaz RS-232 para cargar los sketches…con esto en mente se reduce el conjunto de posibilidades.
En este punto es importante mencionar que la popular placa “Arduino UNO“, no posee el circuito integrado FTDI FT232RL, sino que posee el microcontrolador Atmel ATMEGA8U2 (en la versión R2) y el microcontrolador Atmel ATMEGA16U2 (en la versión R3) programado como interfaz USB – UART TTL. Esta placa emplea el bootloader “Optiboot” que, si bien ocupa algunos bytes menos de memoria, no es apto para nuestra placa.

Con el razonamiento anterior, estamos en condiciones de afirmar que el bootloader a cargar es el correspondiente a la placa “Arduino Duemilanove” con el microcontrolador Atmel ATMEGA328P-PU (existen versiones de esta placa con el microcontrolador Atmel ATMEGA168).

Con respecto al software necesario, lógicamente necesitaremos el IDE de Arduino y en caso de utilizar Windows como sistema operativo, debemos instalar giveio ejecutando “ginstall.bat“. Si utilizamos Windows XP debemos instalar además el siguiente parche XP_stop_polling.reg.

Ahora debemos interconectar nuestro “Programador por Puerto Paralelo” con nuestra placa “Nanino“. Tampoco debemos olvidar alimentar nuestra placa “Nanino” con 5 voltios (a través de un puerto USB, por ejemplo). Luego debemos lanzar el IDE de Arduino y, en la barra de menú seleccionamos “Herramientas” –> “Tarjeta” –> “Arduino Duemilanove w/ ATmega 328”. A continuación, desplegamos nuevamente el menú “Herramientas” y seleccionamos “Programador” –> “Parallel Programmer”. Una vez más desplegamos el menú “Herramientas” y seleccionamos “Grabar Secuencia de Inicio“. Luego de este último paso transcurrirán los 30 (treinta) segundos más largos de nuestras vidas para luego gritar finalmente: “¡¡¡ESTA VIVO!!!” (carcajada diabólica opcional).

Luego de cargar exitosamente el bootloader, podemos desconectar el “Programador por Puerto Paralelo” y conectar la “Interfaz RS-232“. A continuación procederemos a cargar un sketch de prueba. En el IDE de Arduino, seleccionamos el menú “Herramientas” –> “Puerto Serial” –> “COM1” (o el puerto serie que corresponda). Nuevamente seleccionamos el menú “Herramientas” –> “Tarjeta” –> “Arduino Duemilanove w/ ATmega 328”. Finalmente seleccionamos el menú “Archivo” –> “Ejemplos” –> “01.Basics” –> “Blink”. Aparecerá en el IDE de Arduino el sketch de prueba llamado “Blink“, finalmente hacemos click en el botón “Cargar“. En breve comenzará a destellar en nuestra placa “Nanino” el LED conectado al pin 13.

Anuncios