Usualmente uso Netbeans para programar proyectos web, pero Netbeans no ofrece ninguna solución decente para programar de manera compatible con el IDE Arduino.
Recientemente me he decidido a usar Eclipse como IDE, y es realmente impresionante.
Podemos programar cualquier programa Arduino (incluyendo las placas ESP8266 y STM32), aunque sí encontraremos unas mínimas incompatibilidades debido al órden y manera de compilar las librerías. Realmente, el único problema que he encontrado es usando la librería SPIFFS de los ESP8266, que produce conflictos con la librería SD de Arduino y que el IDE Arduino resuelve automáticamente.
Para instalar el IDE tenemos dos opciones: instalar un eclipse completo con el plugin o añadir el plugin a un Eclipse existente.
Sea como sea, los pasos para instalar ambas opciones son:
1. JAVA e IDE Arduino
Necesitamos al menos compatibilidad con Java RE. Podéis decargarlo, si no lo tenéis ya, de https://www.java.com/es/
Si aún no tenemos el IDE Arduino lo descargamos de: https://www.arduino.cc/en/Main/Software (en la sección "Download the Arduino IDE")
2. Instalar el IDE y el plugin
2.A. Instalar el IDE completo
Podemos instalar el IDE con el plugin directamente desde:
- Windows: http://eclipse.baeyens.it/stable.php?OS=Windows
- Linux: http://eclipse.baeyens.it/stable.php?OS=Linux
- MacOS: http://eclipse.baeyens.it/stable.php?OS=MacOS
Es la opción mas sencilla y recomendable.
2.B. Instalar el plugin en un IDE Eclipse ya instalado
- Descargamos el IDE Eclipse estándard, versión C++, si no lo tenemos, y lo instalamos: http://www.eclipse.org/downloads/packag ... rs/oxygenr (A la derecha tenéis los links para cada Sistema Operativo)
- Arrancamos Eclipse. Si es la 1a vez nos preguntará sobre la ruta del "Workspace" Decidle la que deseéis.
- Cerramos la ventana de Bienvenida.
- Vamos al menú "Help" --> "Install new software".
- En "Work with ponemos: http://eclipse.baeyens.it/update/V4/stable y pulsamos intro.
- Deseleccionamos "Group items by category" en las opciones inferiores.
- Seleccionamos el componente "Sloeber" y pulsamos "Next".
- Pulsamos "Continue", aceptamos la licencia ("I accept the terms....") y pulsamos "Finish".
- Nos aparece un Warning diciendo que la extensión no está firmada. Pulsamos "Install Anyway". Al reiniciar acabará la instalación del plugin.
3. Configurar el plugin para que funcione correctamente con nuestras librerías.
- Abrimos el IDE Eclipse
- Seleccionamos el menú "Window" --> "Preferences"
- Vamos a la opción "Arduino"
- En la sección "Private library path" añadimos (botón "New") la siguiente opción: "<ruta Arduino IDE>/libraries" y lo ponemos debajo de nuestra home.
- En la sección "Private hardware path" añadimos (botón "New") las siguientes opciones:
- Si vamos a usar ESP8266: "<home del usuario>/.arduino15/packages/esp8266/hardware/esp8266/<versión que tengamos>"
- "<ruta Arduino IDE>/hardware" y lo ponemos debajo del todo.
- Pulsamos "Apply and Close".
Si queremos usar las placas ESP8266 de nuestro Arduino IDE deberemos editar el archivo
<home del usuario>/.arduino15/packages/esp8266/hardware/esp8266/2.3.0/platform.txt
Y añadir al final:
Código: Seleccionar todo
tools.xtensa-lx106-elf-gcc.path={runtime.platform.path}/../../../tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2
tools.esptool.path={runtime.platform.path}/../../../tools/esptool/0.4.9
4. Nuevo proyecto Arduino con Eclipse
- Vamos al menú "File" --> "New" --> "Project"
- Seleccionamos el tipo "Arduino Sketch" y pulsamos "Next".
- "Project name" y pulsamos "Next"
- Seleccionamos la plataforma ("Platform folder") y la placa ("Board"). Además, las opciones de puerto, upload, etc. Pulsamos "Finish".
- Si nos aparece un aviso sobre la 'perspectiva', seleccionamos "Open Perspective".
5. Abrir proyecto Arduino existente con Eclipse
- Vamos al menú "File" --> "Open project from File System"
- Seleccionamos la carpeta de nuestro Sketch.
- Pulsamos el botón Finish. Él mismo importará nuestro sketch Arduino
6. Problemas, carencias....
Por el momento he visto un par de problemas con Eclipse:
- No soporta la opción (añadida externamente) de subir los datos SPIFFS a un ESP8266 desde el IDE.
- Al importar el sistema SPIFFS entra en conflicto con la librería SD.
Para solucionar el problema de la librería SPIFFS:
Se ha de añadir un define para que la librería no use globals justo antes del include y un extern justo después:
Código: Seleccionar todo
#define FS_NO_GLOBALS // Avoid File compile error on Eclipse
#include "FS.h"
extern fs::FS SPIFFS;
¿Cómo lo hago para poder usar ambos IDES? Añadiendo un define y poniendo ambas configuraciones:
Código: Seleccionar todo
#define IDE_ARDUINO 1
#define IDE_ECLIPSE 2
#define IDE_USED IDE_ECLIPSE
#if IDE_USED == IDE_ECLIPSE
#define FS_NO_GLOBALS // Avoid File compile error on Eclipse
#include "FS.h"
extern fs::FS SPIFFS;
#else
#include "FS.h"
#endif
Y ahora, ¡a compilar!
Fuentes: