Cómo subir un sketch a un PLC Arduino usando la línea de comandos

Aprende a subir un sketch a un M-Duino o Ardbox con el comando avrdude de Windows
10 de diciembre de 2018 por
Cómo subir un sketch a un PLC Arduino usando la línea de comandos
Alejandro Jabalquinto

Introducción

En este post, se verá cómo subir un sketch usando la línea de comandos en lugar de usar Arduino IDE. Vamos a mostrar cómo subir remotamente un sketch utilizando la línea de comandos. Sin más dilación, vamos a ver cómo se puede realizar este proceso.

Requisitos

Instalación

En primer lugar debemos saber que para subir un sketch utilizando la línea de comandos es necesario utilizar el programa Avrdude. Este programa forma parte de las herramientas de Arduino IDE, ya que es la herramienta que utiliza Arduino IDE para subir el sketch. Este avrdude se encuentra dentro del directorio de Arduino

Para arrancar un ejecutable en el prompt de la terminal, es necesario estar en ese directorio, o llamar a toda la ruta para decirle a la terminal que el programa que se quiere ejecutar se encuentra en ese directorio. Una mejor solución para ejecutar un programa sin estar en ese directorio es añadir a la variable path, la ruta donde se encuentra el programa. La ruta es en realidad una variable, esta variable contiene todas las rutas que el sistema indica. Así que si queremos ejecutar avrdude estando en otro directorio, es necesario tener la ruta avrdude.exe en la variable path. De esta manera se buscará automáticamente el programa.

Así que el primer paso será añadir el avrdude a la ruta de variables. Para entrar en la Ruta de las Variables, tienes que buscar la palabra "variable" en el botón de inicio. Esto te llevará directamente a la ventana correcta, saltando algunos pequeños pasos para entrar allí.

Lo segundo es seleccionar las variables de entorno, donde realmente es la ruta de la variable.

El tercer paso es editar la variable Path, añadiendo la ruta del Avrdude.

En nuestro caso, avrdude está en: C:\Archivos de programa (x86)\Arduino\hardware\tools\avr\bin. El avrdude en nuestro ordenador se encuentra dentro del directorio bin.

Variable path - Cómo cargar un sketch a un PLC Arduino usando el shell/Command Line - Windows

Una vez añadido, lo último que hay que hacer para fijar la ruta es reiniciar el ordenador para guardar los cambios. Puede que ya esté añadido a la ruta, pero en nuestro caso hemos necesitado hacerlo, así que para asegurar el proceso mejor hacer un reinicio.

Una vez que está en la ruta, estamos listos para enviar el sketch al PLC. Avrdude trabaja con archivos con las extensiones de .hex. Así, un archivo con la extensión .ino (el típico sketch) no puede ser enviado directamente al PLC. Necesitamos tener el archivo .hex. Este archivo se crea en el momento en que compilamos utilizando el software Arduino IDE. En el futuro, publicaremos cómo compilar un sketch .ino en un .hex para utilizar el terminal para todo el proceso. Por ahora nos centraremos únicamente en el avrdude. Para buscar el .hex, echa un vistazo a este post, donde explicamos cómo sacar el archivo binario de un archivo .hex:

Cargar un sketch a un PLC mediante Ethernet Paso 2 - Archivo binario 


En este post, se muestra cómo convertir un archivo .hex en un archivo .bin, y también se explica cómo encontrar el archivo .hex.

 

Ahora, todo está configurado, únicamente necesitamos escribir la línea de comandos para cargar el sketch. Antes de eso, necesitamos saber qué puerto USB está usando el PLC. Necesitamos saberlo porque tenemos que decirle al avrdude dónde tiene que enviar el archivo .hex. Esta información se encuentra en el administrador del dispositivo. Así que tienes que ir al botón de inicio y buscar el administrador de dispositivos. Después de eso, tienes que ir a los Puertos, que es una de las opciones más en la parte inferior.

Administrador de dispositivos - Cómo subir un sketch a un PLC Arduino usando la línea de comandos

Ejemplo

Ahora es el momento de subir el sketch usando el comando avrdude. El comando es:

avrdude -p m2560 -c wiring -P COM9 -b 115200 -U flash:w:example.hex -D -C "C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf"

Para terminar con este post, explicaremos un poco este comando. Todas estas opciones se pueden mostrar si escribimos avrdude en la línea de comandos, y pulsamos enter. Automáticamente se mostrará lo que hacen estas opciones.

-p  -> board. In this case I am uploading the sketch to an M-Duino (Ethernet PLC), which has an Arduino Mega 2560. For Ardbox it is the m32U4
-c  -> type connection. Wiring. We actually do this uploading using the USB wire. Other options are the USBtiny or the avrasp.
-P -> Port. It actually tells to the avrdude where it has to send the .hex file
-b -> Baudrate. Transmission speed.
-U -> :r|w|v:[:format]. As tipycal the memory type used is the flash memory, we want to write(w) and we will write the .hex file
-D -> Disables the auto erase for flash memory.
-C -> Config file. It loads the avrdude configurations. THIS ONE IS REALLY IMPORTANT. It can be also added to the path to ease the calling.

Buscar en nuestro blog

Cómo subir un sketch a un PLC Arduino usando la línea de comandos
Alejandro Jabalquinto 10 de diciembre de 2018
Compartir

¿Estás buscando tu Controlador Lógico Programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.


Industrial PLC comparison >>>