En la entrada de instalación ID de Arduino introducción a Arduino comentamos que es posible emplear otros entornos de programación para realizar nuestros proyectos Arduino. Esto nos permite saltarnos muchas limitaciones que nos impone el IDE estándar, y emplear toda la potencia de C++ en nuestros proyectos.
Actualización: Esta entrada es de 2014.
Actualmente os recomiendo usar Visual Studio Code + Platformio
En esta entrada vamos a aprender a configurar y programar Arduino con Eclipse, uno de los entornos de programación más populares del momento. Eclipse es Open Source, y está disponible de forma gratuita para Linux y Windows. El desarrollo de este tutorial se va a realizar en Linux Ubuntu / Linux Mint, pero su configuración otros sistemas operativos es muy similar.
El nivel de dificultad de este tutorial es algo más avanzado que el del resto de entradas de Arduino que hemos hecho hasta el momento pero, con un poco de habilidad y siguiendo los pasos en orden, conseguiréis configurar correctamente el IDE fácilmente.
Instalar Eclipse
En primer lugar vamos a instalar el IDE Eclipse. Para ello, abrimos una consola de terminal y escribimos
sudo apt-get install eclipse
O podemos descargar directamente el programa de la página Web https://www.eclipse.org/, y asegurarnos de que tenemos la última versión disponible.
Instalar avrdude
Ahora vamos a instalar el AVRDUDE. Los procesadores Atmega que montan las placas Arduino tienen arquitectura AVR. Esta aplicación nos permitirá compilar nuestros programas C++, y cargarlos en la placa base directamente desde Eclipse.
Para ello, escribimos en la entrada de terminal
sudo apt-get install gcc-avr binutils-avr gdb-avr avr-libc avrdude make
Instalar el plugin AVR-EClipse
A continuación instalaremos el plugin “avr-eclipse”, que permite usar las funcionalidades de AVRDUDE desde Eclipse.
Para ello abrimos Eclipse y nos dirigimos al menú (Help > Install New Software…). En la ventana que aparece, en la línea “Work with:”, escribimos la dirección ”http://avr-eclipse.sourceforge.net/updatesite”, y pulsamos “Add” para añadir el repositorio. Seleccionamos todos los plugins disponibles y terminamos de instalar, dejando el resto de opciones por defecto.
Nuevo proyecto C++
Ahora que ya tenemos Eclipse y AVRDUDE instalados y conectados a través del plugin AVR, vamos a crear nuestro primer proyecto, y comprobar que todo funciona correctamente.
Seleccionamos “New Project” y en el asistente que aparece elegimos “C++ Project”. En la siguiente pantalla, seleccionamos “Proyecto AVR Cross Target Application” como tipo de proyecto y elegimos un nombre para nuestro proyecto. En la ventana de configuración seleccionamos ”Release”. Dejamos el resto de configuraciones como están.
Añadimos un nuevo archivo de código, pulsando con el botón derecho sobre el proyecto, y elegiendo “Add source file”. Definimos el nombre de este primer archivo como “main.cpp”, y finalizamos pulsando aceptar. Pulsamos nuevamente con el botón derecho encima del proyecto en el explorador de soluciones, y seleccionamos propiedades del proyecto. Dejamos seleccionado únicamente “Generate HEX file only for Flash memory”. Ahora en el menú de “Project” deseleccionamos “build automatically”, para que el programa compile únicamente cuando lo indiquemos manualmente. Por último entramos en “Windows/Prerences”, y seleccionamos la opción “Save automatically before build”, de forma que los archivos fuente se guarden automáticamente antes de compilar.
Probando a programar Arduino con Eclipse
Vamos a comprobar que todo hemos configurado todo correctamente. Para ello copiamos esto en el cuerpo de main.cpp
#include <avr/io.h>
#include <util/delay.h>
int main(void) {
DDRB = (1<<PB5); //Pin B5 Salida
for(;;){ // while(1)
PORTB |= (1<<PB5); //Ponemos el pin en alto
_delay_ms(1000);
PORTB &= ~(1<<PB5); //Ponemos el pin en bajo
_delay_ms(1000);
}
return 0;
}
Pulsamos en el la flecha junto al botón de “Build All” y en el desplegable elegimos “Release”. Finalmente, pulsamos el botón “Build All”, que tiene el símbolo de un martillo. Si no hay errores… ¡enhorabuena! Todo está correctamente configurado y funcionando, ya puedes programar Arduino con Eclipse y usar toda la potencia de C++ en tus programas. Pero espera… ¿Qué es todo ese código? ¡Eso no se parece nada a Arduino!
Los que hayáis programado procesadores os sonará “ese código”. Eso que vemos es la auténtica programación de Atmel. El llamado “Wiring” es en realidad una serie de librerías que ocultan y simplifican el proceso de simplificación. Sin embargo, en ocasiones resulta ventajoso y más eficiente programar directamente en bajo nivel
Los que queráis profundizar en la programación a bajo nivel de Arduino podéis ampliar la información consultando el siguiente enlace Atmel Datasheet
Muy interesante pero… ¿Como recuperamos nuestras librerías de Arduino? En la siguiente entrada veremos como configurar nuestro proyecto, para que podemos programar Arduino con Eclipse en el mismo lenguaje limpio y entendible al que estamos acostumbrados en el IDE estándar.
Descarga el código
Todo el código de esta entrada está disponible para su descarga en Github.