Para quem entende Español.
Quem não conhece usa o tradutor.
Fonte:
http://txapuzas.blogspot.com.br/2009/12/paperduino-leonardo-clon-de-arduino.html
Descripción
El presente proyecto es realizar un clon de Arduino Leonardo de una
manera sencilla. Es por eso que la distribución de las patillas no
coincide con las standard de Arduino (habría que hacer muchos puentes en
la placa o usar las dos caras). No obstante, la mayoría de las
características de Arduino Leonardo se mantienen.
El circuito está protegido con un fusible de rearme automático (PTC) de
500 mA para evitar que en un descuido nos carguemos el puerto USB.
La selección de la alimentación no se realiza de forma automática, sino
que hemos de seleccionarla manualmente mediante un puente (Alimentación
externa / USB).
El circuito está "basado" en el realizado por J.M. en
Probando el ATmega(32/16)u4
al que simplemente he añadido un regulador de tensión, un fusible de
protección y la numeración de las patillas de Arduino Leonardo según el
siguiente documento.
NOTA: Este proyecto está realizado con una versión provisional del Entorno Arduino,
la Arduino-1.0RC2, en poco tiempo los chicos de Arduino han sacado la
versión definitiva 1.0, en la que han realizado una serie de
modificaciones:
- Han eliminado del menú "Board" la opción "Leonardo", pero puedes
activarla eliminando los comentarios en el archivo
Arduino-1.0/Hardware/Arduino/boards.txt.
- Han modificado el mapeo de pines, más concretamente han
intercambiado la patilla D14 por la D17 (señal MISO y la SS). Como las
señales MISO y SS vienen definidas por hardware, quizás sea un error. Es
decir en la versión 1.0 la señal MISO es en la patilla D14 - PB3 y la
SS en D17 - PB0. Gracias Hilo90Mz. (La definición de patillas la tienes
en el archivo
Arduino-1.0/hardware/arduino/variants/leonardo/pins_arduino.h)
De momento, ante la posibilidad de
nuevas modificaciones, (hasta que salga la placa Arduino Leonardo
Oficial), no voy ha corregir las modificaciones.
Nota:
El conector de alimentación externa no tiene polaridad y el circuito no
tiene diodo de protección contra la inversión de la polaridad, por lo
que cuidadín a la hora de conectar la pila!!
Esquema
Como Leonardo utiliza el chip ATmega32U4, no es necesario un chip
conversor USB, ya que éste chip lo tiene internamente, simplificándose
el circuito. (tampoco será necesario un cable FTDI como en los otros
Paperduinos).
El esquema de nuestro circuito es bastante sencillo:
NOTA: Al realizar la placa me he dado
cuenta de que los LEDs Rx(8) y Tx(22) están invertidos, es decir,
permanecen encendidos constantemente y se apagan al recibir y emitir
datos. Esto no afecta el funcionamiento del circuito, pero de todas
formas si quieres modificarlo, habría que invertir los diodos LED y
conectarlos a 5 voltios. A la espera de que la gente de Arduino realice
alguna modificación, de momento no voy a corregir este pequeño defecto, y
esperaré a que salga la versión definitiva de Leonardo.
En la parte inferior izquierda vemos el regulador 7805 con sus
condensadores asociados, que nos permitirá alimentar nuestro Paperduino
con una tensión comprendida entre 7v y 14v en el conector J1. También
vemos el puente J5 de selección de alimentación, bien a través del 7805 o
bien a través del conector USB. Mediante el led D1 comprobamos que el
circuito recibe una tensión correcta.
En la parte izquierda del esquema vemos el conector J2, que dispone en
la parte superior de cuatro terminales con 5v para su uso en nuestros
circuitos. Después tenemos conexión directa a los pines del chip,
teniendo la patilla PB0 un led indicador de recepción por el puerto
serie con su resistencia de polarización, y la patilla de RESET un
pulsador a masa y una resistencia Pull-Up.
En la parte superior vemos los condensadores de estabilización del chip.
En la parte derecha del esquema tenemos el conector J3, que dispone en
su parte superior 4 terminales a masa para utilizarlos en nuestros
circuitos, después nos da acceso a los pines de entrada/salida del chip,
y desde luego tiene un diodo led en el pin 13!!.
En la parte inferior del esquema vemos el cristal con sus condensadores
asociados, el conector mini USB, con el fusible de protección. En la
patilla 22 tenemos el diodo LED indicador de transmisión de señal por el
puerto serie. Y la 33 la llevamos a nivel bajo para impedir tener
acceso al bootloader.
Componentes
IC1 Regulador LM7805
IC2 Microcontrolador ATmega32U4-AU
X1 Cristal 16 MHz.
C1,C2 Condensador electrolítico 100 uF 24v
C3-C7 Condensador SMD(1206) 100nF
C8,C9 Condensador SMD(1206) 18 pF.
C10,C11 Condensador SMD(1206) 1 uF.
R1,R2,R4,R6 Resistencia SMD(1206) 680 Ohmnios.
R3 Resistencia SMD(1206) 10K.
R5 Resistencia SMD(1206) 3K9.
R7,R8 Resistencias SMD(1206) 22 Ohmnios.
R5 Resistencia SMD(1206) 3K9.
P1 Pulsador Reset
F1 Fusible Rearmable 500mA (PTC)
D1 DiodoLED 3mm verde
D2 Diodo LED 3mm naranja
D4 Diodo LED 3mm amarillo
D3 Diodo LED 3mm rojo
J1 Tira de pines Hembra (x17)
J2 Tira de pines Hembra (x17)
J3 Conector Mini USB SMD
J4 Tira de pines Hembra (x2)
J5 Tira de pines Macho (x3)
una placa virgen de circuito impreso (y material para fabricación del PCB)
y una impresora para imprimir el PaperDocumento!! ;-)
Realización
El circuito está realizado con
Inkscape , y tienes el documento imprimible al final de esta página, en el apartado de descargas.
Una vez descargado el documento, y descomprimido, puedes imprimir el
documento PaperduinoLeonardo.pdf (sin aplicar ningún tipo de escala),
para ello comprobaremos que la impresión se ha realizado a la escala
correcta con la ayuda de la regla impresa situada en el lateral
izquierdo de la hoja. Al colocar a su lado un regla en centímetros
deberán coincidir las marcas.
En la parte inferior del documento tienes la placa PCB (espejo)
preparada para su transferencia a la capa de cobre (bien por el método
de la plancha, o por fotosensibilización).
Para la realización de la placa he utilizado el método de la plancha,
con la ayuda de unas hojas de transferencia térmica (las tenía por casa
desde hace años), pero puedes utilizar cualquier sistema.
Para ello he impreso la hoja del paperdocumento en una hoja en blanco,
para tener una referencia de la posición del circuito impreso. Después
he colocado una hoja en blanco encima de la hoja impresa, y he recortado
un trozo de plástico de transferencia térmica, pegándolo encima del
lugar donde se imprimirá el circuito impreso. Después he metido la hoja
en la impresora y al imprimir el paperdocumento en esta hoja, el
circuito quedará impreso en el transferible:
 |
| Esta imagen es de un primer prototipo en el que el PCB era incorrecto |
Aplicando calor con una plancha, transferimos el circuito sobre la placa y obtenemos el siguiente resultado:
 |
| Esta imagen es de un primer prototipo en el que el PCB era incorrecto |
Taladramos los agujeros con una broca de 0,7 mm.
Ahora podemos hacer la PaperEtiqueta, primeramente la protejemos con plástico transparente autoadhesivo (Aironfix):
Y lo recortamos
Aplicamos en la parte trasera adhesivo (he utilizado cinta de doble cara) y recortamos
Con ayuda de una aguja posicionamos la paperetiqueta sobre la placa
Una vez colocada, perforamos todos los agujeros
Y ya podemos soldar todos los elementos, primeramente he soldado los
convencionales (no SMD), debes prestar atención a la polaridad de los
diodos LED, los condensadores y la posición del regulador (7805).
Posteriormente soldaremos los componentes SMD, empezando por los menos sensibles al calor (resistencias y condensadores).
Yo he utilizado el truco del "Loctite", es decir, primeramente pongo una
muy pequeña cantidad de adhesivo en la placa, con mucho cuidado y con
ayuda de unas pinzas coloco el componente en posición, y una vez fijo,
sueldo con tranquilidad.
Te puedes ayudar de la imagen del paperdocumento:
NOTA: Debido a que las pistas
están muy cerca unas de otras es bastante fácil que se produzca algún
cortocircuito, por lo que es conveniente ir comprobando con el tester el
aislamiento, e incluso de vez en cuando alimentar el circuito con una
pila de 9v y comprobar que el regulador no se calienta.
 |
| Esta imagen es de un primer prototipo en el que el PCB era incorrecto |
Para soldar el conector miniUSB,
primeramente cargamos de soldadura las pistas, después con ayuda de una
trenza de desoldar eliminamos casi todo el estaño:
 |
| Esta imagen es de un primer prototipo en el que el PCB era incorrecto |
Hacemos lo mismo con el conector, cargamos de soldadura...
Eliminamos la soldadura sobrante:
quedando los terminales con un poquito de soldadura, listos para ser soldados
Ahora lo colocamos en posición y aplicando calor con la punta del estañador sobre las pistas lo soldamos.
Previamente es necesario aislar la el conector de la pista que pasa por
debajo de él, lo podemos hacer con un trocito de cinta aislante:
 |
| Esta imagen es de un primer prototipo en el que el PCB era incorrecto |
Para soldar el microcontrolador utilizaremos un método similar, aplicamos estaño:
 |
| Esta imagen es de un primer prototipo en el que el PCB era incorrecto |
Eliminamos el estaño sobrante:
 |
| Esta imagen es de un primer prototipo en el que el PCB era incorrecto |
Colocamos con mucho cuidado el chip en la placa alineándolo
perfectamente con las pistas (he utilizado un alicate de puntas para
mantenerlo en posición)
 |
| Esta imagen es de un primer prototipo en el que el PCB era incorrecto |
Y aplicamos estaño a cada una de las patas (primeramente las cuatro esquinas, comprobando que no se haya desplazado el chip)
 |
| Esta imagen es de un primer prototipo en el que el PCB era incorrecto |
No te preocupes si se te unen algunas vías,ya que con ayuda de la trenza de desoldar, puedes eliminar fácilmente el sobrante.
Y ya tenemos nuestro circuito listo!!
Carga del Bootloader utilizando ArduinoISP
Para convertir nuestra placa en una "Arduino compatible" y así poder
utilizar el entorno de programación Arduino, deberemos cargar en el chip
el bootloader del ATMega32U4.
En la fecha de realización de este documento (noviembre de 2011), la
versión Arduino1.0 no permite grabar el bootloader utilizando Arduino
as ISP, debido a un error. Existe un archivo
ArduinoISP_04.zip (
gracias Flico)
que corrige este error, pero que no podemos compilar en el nuevo
entorno Arduino1, por lo que es necesario utilizar una versión anterior
para cargar el sketch Arduino as ISP, yo he utilizado la 22, donde
sustuituiremos la carpeta Examples/ArduinoISP por la contenida en este
archivo. Bueno vamos a exolicar este proceso detenidamente:
0 Cerramos todos los entornos Arduino que tengamos abiertos
1 Primero descargamos el archivo el parcheado
ArduinoISP_04.zip
2 Si no utilizas el entorno 022 de Arduino lo puedes descargar de
aquí
3 Buscamos en la carpeta Examples el directorio ArduinoISP, lo renombramos por ejemplo como "ArduinoISPOriginal"
4 Descomprimimos el directorio "ArduinoISP" del archivo comprimido que hemos descargado en el directorio examples.
5 Abrimos el entorno Arduino_022 y seleccionamos
File/Examples/ArduinoISP.
y el IDE nos abrirá una nueva ventana con el sketch que convierte al arduino en un programador.
6 Seleccionamos el tipo de arduino que estamos utilizando como programador, en mi caso una duemilanove:
Tool/Boards/Arduino Duemilanove w/ATMega328.
7 Conectamos la placa Arduino (no la Leonardo) mediante USB al PC
8 Seleccionamos el puerto serie que utiliza nuestra placa (quizás tengas que esperar un poco a que el PC reconozca el Arduino).
9 Apretamos el botón de "Upload" y cargamos el Sketch en el Arduino.
Bueno!! ya hemos convertido el Arduino en un programador, y ahora lo
utilizaremos para programar el bootloader en el Arduino Leonardo (Hasta
que el chip no tenga el bootloader cargado no podremos conectarle con
el IDE de Arduino).
Para cargar el bootloader en la placa Pareduino Leonardo que hemos realizado seguiremos los pasos siguientes:
1 Deberemos
descargar el nuevo entorno de Arduino (Arduino1), que dispone del
bootloader para el Leonardo. Lo podemos descargar desde
aquí.
2 Lo descomprimimos
3 Ejecutamos el archivo "Arduino", y se abrirá el nuevo entorno.
4 Conectamos el Paperduino al Arduino, para ello utilizaremos las patillas siguientes:
10: RESET
11: MOSI
12: MISO
13: SCK
Si queremos ver el estado de funcionamiento del programador podemos
añadirle unos LEDS (con sus correspondientes resistencias de
polarización) en los pines:
9: Pulsos - Indica que el programador está funcionando
8: Error - Se iluminará cuando se produzca algún error (mejor que sea de color rojo)
7: Programando - Comunicándose con el esclavo (Paperduino Leonardo)
El conexionado sobre las placas reales será algo parecido a:
Nota: Si tienes un Arduino UNO, tal
vez necesites colocar un condensador de unos 10uF entre las patillas
RESET y GND para que no se ejecute el autoreset (info).
4 Una vez conectado, desde el entorno de Arduino, seleccionamos el puerto serie que utiliza nuestro Arduino: Tools/Serial Port/(Puerto Serie de Arduino)
5 Seleccionamos la placa como Arduino Leonardo:Tools/Board/Arduino Leonardo:
NOTA: Recuerda que en la versión del IDE Arduino1.0 los chicos
de Arduino han eliminado del menú "Board" la opción "Leonardo", pero
puedes
activarla eliminando los comentarios en el archivo
Arduino-1.0/Hardware/Arduino/boards.txt.
6 Le indicamos que vamos a programarlo utilizando un Arduino como programador: Tools/Programmer/Arduino as ISP:
7 Y por último seleccionamos Tools/Burn Bootloader, para cargar el bootloader de Leonardo en nuestro Paperduino.
Se
empezarán a encender y apagar los leds (espero que no se te encienda el
rojo que indica que se ha producido un error) y ya hemos convertido
nuestra placa en un Paperduino Leonardo.
8
Conectamos nuestro Paperduino Leonardo directamente al PC mediante el
cable USB (ya no necesitaremos el Arduino original), y veremos que el
ordenador lo reconoce y el entorno Arduino también (en el puerto dev/ttyACM0 ).
Blink.ino
Como la placa ya incorpora un LED en el pin 13, podemos cargar el sketch blink (File/Examples/Basic/Blink) y comprobar que funciona.
Nota: los sketches de arduino tienen ahora la extensión ino para diferenciarlos de los de processing.
Keyboard.ino
Una de las características importantes de nuestro Leonardo, es que puede
simular las pulsaciones de un teclado en el ordenador. Podemos
comprobarlo
cargando el sketch keyboard (File/Examples/Keyboard/KeyboardMessage).
NOTA: En la versión 1.0 del entorno Arduino, han eliminado los
ejemplos keyboard y mouse utilizables con el Leonardo, los puedes
descargar del siguiente enlace. Debes decomprimirlos y colocarlos en la carpeta libraries: en la carpeta Arduino-1.0/libraries/Mouse y Arduino-1.0/libraries/Keyboard.
Deberás conectar un pulsador a 5v en la
patilla 4 con una resistencia Pull-down. Como verá en el vídeo
simplemente he conectado una resistencia de 10K entre el pin 4 y masa y
después con un cable que está conectado a 5v puenteo el pin 4. Cada de
vez que se activa dicho pin el Leonardo envía al ordenador una cadena de
texto como si fuera un teclado.
NOTA: el
programa no envía datos por el puerto paralelo, sinó que para el
ordenador es como si se hubieran tecleado. Como ves en el video el
programa que está en pantalla y donde aparecen los mensajes es un
procesador de texto.
Enlaces de interés
- Página donde me he "inspirado" para la realización del circuito realizada por J.M. en el blog de C.I.R.E.
- Paperduino,
Diseño original de paperduino por Guilherme Martins, un clon de Arduino
realizado sobre un cartón, de donde ví por primera vez la utilización
de etiquetas para la ayuda en la confección de circuitos (a partir de
ahí surgieron todos los paper).
- Archivo
descriptivo del patillaje de Arduino Leonardo, utilizado para modificar
el circuito de J.M. de un ATMega32U4 en un Arduino compatible.
Información legal
0. Fallos y txapuzas no controladas.
Los circuitos publicados se han comprobado y funcionan correctamente.
No obstante en el caso de que en una página se publiquen varios
montajes diferentes de un mismo circuito (sobre un stripboard, PCB,
...), pueden existir fallos que no se han detectado en alguno de los
montajes, ya que normalmente sólo realizo un montaje. En ese caso por
favor notificad el fallo para que pueda corregirlo. muchas gracias.
1. Propiedad intelectual
Todos los derechos de propiedad intelectual del contenido de
Txapuzas eléctronicas, están bajo una licencia Creative Commons
Share-Alike, cuyo contenido podéis revisar en
este enlace.
Por tanto queda permitido copiar, distribuir, comunicar públicamente
la obra y hacer obras derivadas de la misma, siempre que se
respeten los términos de la licencia arriba reseñada.
3. Actualizaciones y modificaciones de Txapuzas electrónicas
El autor se reserva el derecho a actualizar, modificar o eliminar
la información contenida en Txapuzas eléctrónicas, y la
configuración o presentación del mismo, en cualquier momento, sin
previo aviso, y sin asumir responsabilidad alguna por ello.
4. Indicaciones sobre aspectos técnicos
El autor no asume ninguna responsabilidad que se pueda derivar de
problemas técnicos o fallos en los equipos informáticos, que se
produzcan a causa de los circuitos e ideas expuestos en el blog de
txapuzas electrónicas, así como de los daños que pudieran ocasionar.
El autor se exime de toda responsabilidad ante posibles daños o
perjuicios que pueda sufrir el usuario a consecuencia de errores,
defectos u omisiones en la información facilitada.
--
Atenciosamente
Webert Oliveira
W.O
BlueFrog