La placa electrónica de código abierto Arduino Leonardo |
Esta placa, si te gusta el "Hazlo tú mismo", es impresionante:
- Barata (desde 20€)
- Moderna, completa y flexible, con 20 pines entrada/salida para proyectos muy complejos
- Hardware y software abierto (no hay secretos, te la puedes hacer tú mismo por piezas)
- Fácil de programar (utiliza lenguaje de alto nivel basado en el Processing)
- Con muchos ejemplos y una comunidad cada vez más grande
- Muy económica para lo completa que es ¿lo había dicho ya? XD
Vayamos al tema... Me costó lo suyo dar con la forma de instalar el controlador USB, pues Windows 7 32 bits no lo cogía, no lo encontraba, a pesar de seguir la guía oficial.
Pues al final resultó que es un puerto "COM" de comunicaciones virtual a través de un puerto USB, por lo que primero Windows tiene que instalar la capa superior del controlador, el dispositivo compuesto USB, con el cual funcionarán las comunicaciones, y luego ya el controlador de puerto serie.
Si al ver las propiedades del dispositivo os pone algo de "Port_#0001.Hub_#0007", entonces es eso:
Apunte: Evidentemente para instalarlo hay que dejarlo conectado, de forma que Windows lo muestre en el Administrador de Dispositivos (Panel de Control -> Sistema -> Administrador de Dispositivos si tenemos activada la vista por iconos en el Panel de Control, arriba a la derecha).
Y para instalar el controlador bastará con indicarle a Windows que lo busque en internet, y una vez instalado éste, podemos proceder a instalar el del puerto de comunicaciones:
Primero tenemos que descargar la última versión de la Interfaz de Desarrollo o IDE de la página de Arduino, y lo descomprimimos donde queramos:
En el administrador de dispositivos de Windows, pulsamos con el botón secundario del ratón sobre el dispositivo "Arduino Leonardo" y le damos a "Actualizar controlador", con lo que nos preguntará cómo deseamos buscar el controlador; pinchamos en "Buscar software de controlador en el equipo":
Entre los archivos del IDE que descargamos antes, hay una carpeta "drivers", que es la que tenemos que indicarle a Windows dándole a "Examinar":
Nos pedirá confirmación, ya que el controlador no está firmado, y le damos a instalar de todas formas:
Finalmente termina con que el controlador se ha instalado correctamente (en mi caso aparecía el siguiente COM libre, que era el 4, pero en tu caso puede variar.
Ahora ya nos falta tan sólo indicarle al IDE qué tipo de placa es y en qué puerto serie está conectado. Para ello abrimos el ejecutable de Arduino.exe (no es necesario abrirlo en modo administrador) y vamos al menú Herramientas -> Placa y seleccionamos la nuestra, en mi caso, Leonardo.
También cambiaremos el puerto serie, seleccionando en Herramientas -> Puerto Serie -> El puerto COM que nos ha indicado antes (COM4 en mi caso). Comprobad que se queda con el "tick" azul marcado, si no, no lo cogerá.
Para comprobar que ya podemos cargar software en la placa, cargamos un código ejemplo; Uno de los más sencillos para empezar a aprender cómo funciona es el Blink.
Vamos a Archivo -> Ejemplos > Basicos -> Blink, y le damos al botón redondo de la flecha a la derecha que está debajo del menú "archivo".
Tras unos segundos de compilación, lo manda a la placa. Si nos saliera un error extraño "Problema al subir el código a la tarjeta", con un Id extraño de la tarjeta, lo más seguro es que no hemos seleccionado el puerto COM adecuado. Lo cambiamos por el correcto y volvemos a probar.
Funcionamiento de la subida del código en Leonardo
Según la guía oficial, debido a que utiliza el chip principal para manejar la comunicación por el puerto serie (siendo éste virtual, controlador CDC), cada vez que se resetea la placa, la comunicación del puerto USB se romperá, y se reconectará. En ese instante, Leonardo desaparecerá de la lista de dispositivos, para volver a aparecer.
De esta forma, la estrategia que sigue el IDE para subir el código a la tarjeta, cambia con respecto a Arduino UNO; tras enviar la orden de reset a la placa para subir el código, espera un tiempo prudencial para que esté preparada para recibir el código, y entonces lo envía en el puerto COM que especificamos y que Windows mantendrá cada vez que esto ocurre.
Si el reset automático no funciona, podemos hacer el proceso de forma manual; mantenemos presionado el botón reset de Leonardo, sin soltar pulsamos el botón "subir código" del IDE Arduino.exe, y soltamos el reset únicamente cuando aparezca el mensaje "subiendo código..." en la barra inferior de estado del IDE. En ese momento el arranque de la placa comenzará, creando el puerto virtual (CDC) de nuevo, que verá el software y lo usará para subir el código.
Hoy día no creo que haya mejor primer acercamiento para la electrónica, la programación, la medición, la automatización, la intervención, que Arduino. Felix E. Guerrero
En otra entrada os hablaré del lenguaje que utiliza Arduino, sus reglas básicas e instrucciones para ir empezando. Aquí tenéis un pequeño manual para iniciaros, de la universidad de Alicante, o este otro, un manual de referencia de las instrucciones disponibles, de Brian W. Evans, traducido al castellano.
Con Arduino podremos crear complejos autómatas de forma económica y reciclando electrónica de otros aparatos, como relés, motores, diodos, resistencias, ventiladores, etc, para proyectos como control automático de las luces según la iluminación de la habitación y la presencia de gente, o el control automático de persianas de la casa, o fabricación de pequeños robots "inteligentes" para los niños, o, que es para lo que yo quiero usarlo, el control de la combustión de una caldera de leña "open source". El único límite es tu imaginación.
Más información:
Página oficial Arduino
Arduino: El documental
Comenzando con Arduino en Windows
Manual de iniciación Arduino
Completo manual de Brian W. Evans en Español
Foro Arduino oficial
Guía oficial (inglés) de Arduino Leonardo
Ardumanía, ejemplos y proyectos para ir aprendiendo y disfrutando
Tienda Ardumanía, tienda Arduino en España con buenos precios, bastantes accesorios y mejor atención.
MHVLib - An Efficiency Oriented Runtime Library for AVR Microcontrollers
Excelente, que bueno que existe el hardware abierto, así se pueden hacer esos proyectos sin tanto dinero.
ResponderEliminarY junto con el software libre hay más posibilidades...
Saludos.
Me ha servido de gran ayuda. Muy habitualmente desmonto y monto ordenadores con piezas de diferentes equipos y estoy bastante familiarizado a trastear con este tipo de componente. Nunca viene mal un buen artículo como este. Saludos.
ResponderEliminarMen, no te endiendo lo que dices para instalar la primera parte del controlador, tengo el mismo problema y no he podido instalarlo
ResponderEliminarSiel, cuando te ponga la exclamación en el "dispositivo compuesto USB", le das a "buscar en internet". Luego ya es instalar el controlador propio del Arduino. Espero que se entienda... inténtalo y si no va, indícame más datos para saber que le pasa a tu Windows.
EliminarVeo que eres un experto en Leonardo y necesito hacerte esta pregunta por si puedes ayudarme:
ResponderEliminarMe he desacargado unas lineas de programa que son para Arduino Uno y Arduino Mega. Yo tengo una Leonardo.
Cuando cargo este programa --> https://github.com/condac/Arduino-traintable
Me salen estos errores:
traintable.ino: In function 'void SetupTimer2()':
traintable:174: error: 'TCCR2A' was not declared in this scope
traintable:175: error: 'TCCR2B' was not declared in this scope
traintable:175: error: 'CS22' was not declared in this scope
traintable:175: error: 'CS21' was not declared in this scope
traintable:175: error: 'CS20' was not declared in this scope
traintable:181: error: 'TCNT2' was not declared in this scope
traintable.ino: In function 'void TIMER2_OVF_vect()':
traintable:199: error: 'TCNT2' was not declared in this scope
traintable:248: error: 'TCNT2' was not declared in this scope
traintable:252: error: 'TCNT2' was not declared in this scope
Puede ser por algún tipo de incompatibilidad por los temporizadores.
Hola Jose, gracias, pero no lo domino tanto, estoy empezando... trataré de ayudarte. Puede ser que el Leonardo no tenga lo mismo; la parte del código que falla es la rutina del Timer2, se hace referencia a esta página en el código:
ResponderEliminarhttp://maxembedded.wordpress.com/2011/06/29/avr-timers-timer2/
Tendrás que buscar la manera de usar un temporizador de otra forma, yo no llego a entender por qué falla; igual le falta alguna librería o algo.
Hola David, hace unos días compré Arduino Leonardo y recién quiero instalarle los drivers haciendole como tú lo explicaste, pero no puedo, conecto la tarjeta a la PC por el miniUBS y mi Windows 7 lo acepta (con el típico sonidito cuando insertas un hardware nuevo), pero después lo retira (con el otro sonidito cuando expulsas un hardware) y ya no me lo detecta, tengo que volver a conectar Leonardo y por segundo se vuelve a repetir.
ResponderEliminar¿Sabes qué crees que sea, es mi placa o el cable miniUSB que estoy utilizando? porque el cable miniUSB es de un teléfono Samsung del mismo puerto...
:S
Gracias David de antemano.
a mi me sale en el monitor TESTATA alguien sabe porqué
ResponderEliminargracias
Hola , yo tengo Windows Vista y tengo un error para hacer compatible el dispositivo y que mi ordenador reconozca la placa.
ResponderEliminarPort_#0001.Hub_#0006
He seguido tu recomendación de actualizar el controlador online y no lo consigo.
Me aparece un código 28 y el dispositivo sigue sin ser reconocido.
Alguna idea más?
Gracias de antemano. Un saludo
oye hdp ya me salio gracias malnacido (Y) like!!!!
ResponderEliminarvoid loop() { Gracias infinitas, tuve problemas con la instalación de mi leonardo. Tu guía me ayudo. Saludos }
ResponderEliminarMe sale que el Sjetch usa 1,030 bytes (3%) del espacio de alamacenamiento
ResponderEliminarde programa. El máximo es de 32,256 bytes. que hago?????
Pues nada, porque tienes un 97% restante que podrías llenar sin problema... no entiendo la duda. No hay por qué llenarla... mientras tu Arduino haga lo que quieres.
EliminarAyuda quiero programar para formar una flecha con luces y no se como
ResponderEliminar