Vamos a aprender a programar Arduino usando AVRdude porque estoy seguro que en algún momento de nuestros proyectos lo vamos a necesitar y aunque no lo veamos, haremos lo mismo que hace nuestro querido IDE de Arduino o la gran mayoría de programas que usamos para grabar el chip Atmel. Outseal PLC es uno de ellos.
Vamos a crear un parámetro de línea de comandos para AVRdude
No es vuelta al pasado, es una realidad que nunca hemos abandonado y se trata de hacer uso de la línea de comandos tipo MSDOS en Windows.
AVRdude es un programa de línea de comandos y necesitamos pasar los argumentos correctos de la línea de comandos para programar el Arduino. Esto se hace así desde que crearon el programa que se usa para flashear los AVR y muchos programas lo utilizan encubierto.
¿Pero que ocurre si nos da un error cuando vamos a programar un PCB Arduino NANO con algún software que nos crea el ejecutable o firmware y no nos deja programar? Nos quedamos parados y sin consuelo.
Bien para evitar lo anterior y otros inconvenientes, vamos a aprender a programar el Arduino desde la línea de comandos usando AVRdude. Normalmente cuando nos dan algún curso de Arduino, esta opción no está contemplada.
CMD para usar AVRdude en Windows
Para programar Arduino usando AVRdude desde la línea de comandos hemos de habilitar la cónsola de comandos de windows, entrar en el directorio donde se ubica AVRdude y ejecuatrlo.
Si lo hacemos tecleando AVRdude aparecerá toda esta información en la ventana de la cónsola:
No se asusten, muchos de ustedes ni han visto nunca esta ventana.
Lo primero que debemos saber son los argumentos que necesitamos de toda la lista de la imagen anterior y para eso tenemos que averiguarlo con algún software que usemos para programar el Arduino y que nos esté funcionando bien, por ejemplo el IDE de Arduino.
Para poder visualizar lo que hace nuestro IDE cuando cargamos el archivo al microcontrolador, hemos de marcar la opción de mostrar salida detallada mientras cargamos el archivo. Vea la imagen siguiente (marcar donde dice subir):
Con esta opción, cada vez que subamos el archivo al Arduino aparecerá en la ventana inferior del IDE una serie de información y de esta copiaremos lo que nos interesa que aparece entre las líneas blancas.
La cuestión de que todo esto es muy fácil porque está funcionando y no nos da problemas, lo importante es realizar esto con el programa que nos está complicando la vida y en mi caso fue el que voy a a descubrir.
¿Porqué usamos AVRdude desde la consola windows?
Un amigo me comentó que tenia problemas con un editor ladder para Arduino que estaba utilizando y no le dejaba carga el archivo a su NANO, entonces decidimos cargarlo por nuestra cuenta. Miramos los pasos que hacia el programa y así podemos crear nuestro propio sistema para programar Arduino usando AVRdude y «quemar» como algunos dicen el NANO.
Primero hacemos lo que os comenté sobre averiguar los parámetros que usa el AVRdude, para ello ejecutamos el comando de flashear el Arduino desde el editor ladder y copiarlos en un archivo de texto.
Copiamos todo lo que hay resaltado en azul a un archivo de texto plano. y analizamos cual puede ser el error.
Esto es lo que nos encontramos en la linea de comandos:
Leyendo los comandos vemos que todo está bien. Una cosa que es muy importante y antes de que se me olvide es que tenemos que tener claro cual es el puerto de comunicación de nuestra placa Arduino. Bien, dicho esto, sigo. Nos fijamos que la velocidad de comunicación está fijada a 115200 baudios, mientras que el IDE Arduino lo hace a 57600, así deducimos el error, la configuración de los baudios.
Entonces como no podemos cambiar este parámetros desde el editor, es cuando decidimos usar por nuestra cuenta y programa Arduino usando AVRdude. La línea de comandos obtenida la modificamos y quedó como sigue:
Desde la cónsola de windows ejecutamos esta línea y grabó el archivo en el Arduino NANO.
A partir de todos estos datos y para que mientras conseguimos una actualización del editor ladder la tarea de grabar el Arduino fuese rápida y fácil, decidimos crear un archivo «bat», de esos de la edad media dirían algunos, pues es cierto, pero aún son necesarios.
Crear archivo bat y listo
Nuestro archivo para grabar el Arduino usando AVRdude quedó de la siguiente manera:
cd\LADUINOCONTROL\system\bin
avrdude -v -p atmega328p -c arduino -P com3 -b 57600 -D -U flash:w:»c:\laduinocontrol\example\proves.hex»:i
cd\laduinocontrol
Le nombramos flash.bat y lo guardamos en el directorio laduinocontrol, desde allí lo ejecutamos y nos graba el Arduino. Este archivo no es necesario ejecutarlo desde el modo consola windows, simplemente lo ponemos en cualquier parte del escritorio y con el mouse le hacemos click y listo, grabando Arduino con AVRdude.
Es importante de que el archivo esté dentro del directorio que han parametrizado en el «flash.bat», de otro modo no funcionaría. Si se fijan, el nuestro está en el directorio c:\laduinocontrol\ y el archivo que subimos al Arduino en; c:\laduinocontrol\example\
Tengan en cuenta que el nombre del archivo a grabar siempre ha de ser el mismo o tendremos que editar el «bat» cada vez que lo cargemos. Nosotros lo que hacemos es guardar el proyecto con su nombre y el que vamos a cargar al Arduino siempre el mismo nombre. Es una opción que el programador del editor LADUINOCONTROL dejó como opciones independientes, permite compilar y guardar el archivo en formato hexadecimal y subirlo al Arduino según nos convenga.
Acerca del editor ladder laduinocontrol
Aprovecho este artículo para comentar que estoy en contacto con el creador del editor laduinocontrol, para actualizarlo y posible colaboración de mejoras. Informaremos de las novedades que tengamos porque es un buen editor ladder para nuestro Arduino.
Y creo que es todo, deseo que este artículo les haya sido útil porque se adapta a muchos problemas que nos encontramos cuando vamos a grabar nuestro Arduino y algún parámetro no es compatible con nuestra placa.
Si tienes alguna duda, ves algún error o aportar información déjanos un comentario y miramos de ayudarte. ¡Hasta pronto!