Programar Arduino con Eclipse (1 de 2)


arduino-eclipse

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.

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

Anuncio:

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.

eclipse-arduino-01

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”.

eclipse-arduino-02

En la siguiente pantalla, seleccionamos “Proyecto AVR Cross Target Application” como tipo de proyecto y elegimos un nombre para nuestro proyecto.

eclipse-arduino-03

En la ventana de configuración seleccionamos ”Release”.

eclipse-arduino-04

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.

eclipse-arduino-05

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”.

eclipse-arduino-06

Ahora en el menú de “Project” deseleccionamos “build automatically”, para que el programa compile únicamente cuando lo indiquemos manualmente.

eclipse-arduino-07

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.

eclipse-arduino-08

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.

eclipse-arduino-09

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 codigo”. 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 podeis 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 estandar.

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección Tutoriales de Arduino

Descarga el código

Todo el código de esta entrada está disponible para su descarga en Github.



4 3 votes
Article Rating

Anuncio:

Previous Fuente de alimentación casera con fuente ATX (2 de 2)
Next Programar Arduino con Eclipse (2 de 2)
2 Comments
oldest
newest
Inline Feedbacks
View all comments
Hiddenotebook Rules
7 years ago

Hola Luis fabuloso el tuto he intentado seguirlo pero me quedo en el paso (En la ventana de configuración seleccionamos ”Release”.)

Después de quitar debug y dejar relase marcado a que botón das porque si doy a next me sale esta ventana, a ver si me puedes echar un cable!!

Gracias por compartir

Edu
1 year ago

Hola Luis, He seguido los pasos de esta tutorial sin problemas hasta el final, donde dice pulsamos el botón “Build All”, me sale el siguiente error: 09:44:43 **** Incremental Build of configuration Release for project Proves AVR **** make all  Building target: Proves AVR.elf Invoking: AVR C++ Linker avr-g++ -Wl,-Map,Proves AVR.map,–cref -mrelax -Wl,–gc-sections -mmcu=atmega16 -o “Proves AVR.elf” ./main.o   avr-g++: error: AVR.map,–cref: El fitxer o directori no existeix make: *** [makefile:81: Proves AVR.elf] Error 1 “make all” terminated with exit code 2. Build might be incomplete. 09:44:43 Build Failed. 1 errors, 0 warnings. (took 358ms) No entiendo la causa de este… Read more »