How to install platformio library with Arduino library manager?

Instalación de Librerías en Arduino y PlatformIO

30/07/2022

Valoración: 4.86 (8502 votos)

El desarrollo de proyectos con Arduino o cualquier microcontrolador se simplifica enormemente gracias al uso de librerías. Estas colecciones de código preescrito nos permiten añadir funcionalidades complejas, como la gestión de pantallas LCD, sensores o comunicación inalámbrica, con solo unas pocas líneas de código. Sin embargo, para poder utilizarlas, primero debemos asegurarnos de que estén correctamente instaladas en nuestro entorno de desarrollo. Esta guía detallada explorará las dos formas más comunes y eficientes de instalar librerías: a través del Arduino Library Manager y mediante la configuración de proyectos en PlatformIO.

What is lcdmenu?
LcdMenu is an Arduino library that enables you to create interactive menus and navigation systems for LCD displays. With LcdMenu, you can easily add menus to your projects and navigate through them using buttons or any input device you want. The library supports a wide range of LCD display modules, including character and alphanumeric displays.

Comprender ambos métodos es crucial, ya que cada uno ofrece ventajas específicas dependiendo de la complejidad y las necesidades de tu proyecto. Además, abordaremos un caso particular pero importante: la librería ArduinoSTL, esencial para microcontroladores con recursos limitados que necesitan soporte para características de C++ estándar como std::vector.

Índice de Contenido

Instalación de Librerías con el Gestor de Librerías de Arduino

El Gestor de Librerías del IDE de Arduino es la forma más sencilla y directa de añadir nuevas funcionalidades a tus bocetos. Está diseñado para ser intuitivo y es ideal para principiantes o para proyectos que utilizan librerías populares y bien mantenidas.

Pasos para usar el Gestor de Librerías:

  1. Abre el IDE de Arduino: Inicia tu entorno de desarrollo Arduino.
  2. Accede al Gestor de Librerías: Ve a Sketch > Incluir Librería > Gestionar Librerías.... Se abrirá una nueva ventana.
  3. Busca la librería deseada: En la barra de búsqueda superior, escribe el nombre de la librería que deseas instalar. Por ejemplo, si buscas la librería LcdMenu, simplemente escribe 'LcdMenu'. El gestor mostrará las librerías que coinciden con tu búsqueda.
  4. Selecciona e instala: Haz clic en la librería que deseas y luego en el botón 'Instalar'. El gestor descargará e instalará automáticamente la versión más reciente (o la que selecciones) de la librería en la ubicación correcta de tu sistema.
  5. Verifica la instalación: Una vez instalada, puedes ir a Sketch > Incluir Librería y deberías ver la librería listada allí, lista para ser incluida en tus proyectos.

Este método es especialmente útil para librerías como LcdMenu, que te permiten crear menús interactivos en pantallas LCD con facilidad. De manera similar, si necesitas la librería ArduinoSTL para añadir soporte a características de C++ estándar, puedes buscarla y instalarla de la misma manera a través del Gestor de Librerías.

Instalación de Librerías en Proyectos PlatformIO

PlatformIO es un entorno de desarrollo integrado (IDE) y un sistema de construcción multiplataforma que ofrece una gestión de librerías mucho más robusta y específica para cada proyecto. Es la elección preferida para desarrolladores que trabajan en proyectos más complejos, que requieren un control preciso sobre las versiones de las librerías o que desean mantener un entorno de desarrollo aislado para cada proyecto.

Pasos para añadir librerías en PlatformIO usando platformio.ini:

La clave para la gestión de librerías en PlatformIO reside en el archivo de configuración del proyecto, platformio.ini. Este archivo define todas las dependencias y ajustes específicos de tu proyecto.

  1. Abre tu proyecto PlatformIO: Abre tu proyecto en VS Code (o tu editor compatible con PlatformIO).
  2. Localiza el archivo platformio.ini: Este archivo se encuentra en la raíz de tu carpeta de proyecto.
  3. Añade la directiva lib_deps: Dentro del archivo platformio.ini, busca la sección [env:nombre_de_tu_entorno] (donde nombre_de_tu_entorno es, por ejemplo, uno para Arduino Uno). Si no existe, puedes crearla o añadir la directiva lib_deps bajo la sección [platformio] si quieres que aplique globalmente, aunque lo más recomendable es hacerlo por entorno.
  4. Especifica la librería: Para añadir una librería, utiliza la directiva lib_deps seguida del identificador de la librería. PlatformIO tiene su propio registro de librerías, pero también puedes especificar repositorios de GitHub.

Ejemplos de cómo añadir librerías en platformio.ini:

Para la librería LcdMenu, si está en el registro de PlatformIO, simplemente podrías añadir:

[env:uno] platform = atmelavr board = uno framework = arduino lib_deps = LcdMenu 

Si la librería no está en el registro o quieres especificar una versión concreta o un repositorio de GitHub, puedes hacerlo así:

[env:uno] platform = atmelavr board = uno framework = arduino lib_deps = https://github.com/tu_usuario/LcdMenu.git#rama_o_tag # O por ID del registro de PlatformIO # 1234 ; Reemplaza 1234 con el ID real de la librería en PlatformIO Registry 

PlatformIO descargará la librería y la gestionará de forma local para tu proyecto, asegurando que no haya conflictos con otras versiones instaladas globalmente o en otros proyectos.

La Importancia de ArduinoSTL y la Compatibilidad con C++ Estándar

Un punto crítico, especialmente para microcontroladores con recursos limitados como el Arduino Uno, es el soporte para las características estándar de C++ (STL - Standard Template Library). Por defecto, muchos entornos de Arduino no incluyen una implementación completa o eficiente de la STL, lo que puede causar problemas al intentar usar características como std::vector, std::string, std::map, etc.

Aquí es donde la librería ArduinoSTL de mike-matera se vuelve indispensable. Esta librería proporciona una implementación ligera y optimizada de partes de la STL que son compatibles con los microcontroladores AVR (como los del Arduino Uno). Sin ArduinoSTL, tu código que utiliza estas características de C++ estándar simplemente no compilará o funcionará erróneamente.

Cómo instalar ArduinoSTL:

Puedes instalar ArduinoSTL de las siguientes maneras:

  • Via Arduino Library Manager: Como se explicó anteriormente, busca 'ArduinoSTL' en el gestor y haz clic en instalar.
  • Descarga directa: Puedes descargar el archivo ZIP directamente desde el repositorio de GitHub de mike-matera/ArduinoSTL y añadirlo manualmente a tu carpeta de librerías de Arduino.
  • Mediante platformio.ini: Para proyectos PlatformIO, añade la siguiente línea a tu archivo platformio.ini:
[env:uno] platform = atmelavr board = uno framework = arduino lib_deps = mike-matera/ArduinoSTL 

Esta última opción es la más recomendada para proyectos PlatformIO, ya que asegura que la librería esté vinculada específicamente a ese proyecto.

La compatibilidad es una consideración clave. Siempre verifica los requisitos de tu microcontrolador y las dependencias de las librerías que intentas usar. Si una librería hace uso intensivo de características de C++ estándar, es muy probable que necesites ArduinoSTL para asegurar una compilación exitosa y un funcionamiento correcto en plataformas como el Arduino Uno.

Tabla Comparativa: Arduino Library Manager vs. PlatformIO lib_deps

Ambos métodos son efectivos, pero cada uno tiene sus fortalezas y debilidades. La elección depende de tus necesidades específicas.

CaracterísticaArduino Library ManagerPlatformIO (lib_deps)
Facilidad de UsoMuy alto (Interfaz gráfica)Moderado (Configuración en archivo .ini)
Gestión de VersionesSelección de versión básicaControl preciso de versiones, ramas, etc.
Aislamiento de ProyectoLibrerías instaladas globalmenteLibrerías por proyecto (aislamiento total)
Manejo de DependenciasBásico (a veces manual)Automático y robusto
Ideal paraPrincipiantes, proyectos simples, librerías popularesProyectos complejos, CI/CD, control de versiones
ComplejidadBajaMedia a alta

Preguntas Frecuentes (FAQ)

¿Qué hago si mi código no compila después de instalar una librería?

Primero, verifica los mensajes de error del compilador. A menudo, estos mensajes indican el problema exacto. Posibles causas incluyen:

  • Falta de dependencias: Algunas librerías requieren otras librerías para funcionar. Asegúrate de haber instalado todas las dependencias listadas en la documentación de la librería principal.
  • Incompatibilidad de hardware: La librería podría no ser compatible con tu microcontrolador específico (ej. una librería diseñada para ESP32 no funcionará en Arduino Uno sin adaptaciones).
  • Problemas de C++ estándar: Si estás usando características como std::vector o std::string en un Arduino Uno, asegúrate de haber instalado ArduinoSTL.
  • Rutas incorrectas: Asegúrate de que la librería esté instalada en la ubicación correcta y que el IDE la esté detectando. Reiniciar el IDE a veces ayuda.
  • Errores de sintaxis: Revisa tu propio código para detectar errores de tipeo o lógica que puedan estar impidiendo la compilación.

¿Puedo instalar una librería manualmente si no está en el gestor?

Sí. Si una librería no está disponible en el Gestor de Librerías de Arduino, o si tienes una versión específica en un archivo ZIP, puedes instalarla manualmente:

  1. Descarga el archivo ZIP: Obtén el archivo ZIP de la librería.
  2. Abre el IDE de Arduino: Ve a Sketch > Incluir Librería > Añadir Librería .ZIP....
  3. Selecciona el archivo ZIP: Navega hasta donde guardaste el archivo ZIP y selecciónalo. El IDE lo descomprimirá y lo instalará en la ubicación correcta.

Para PlatformIO, la forma manual es añadir la ruta al archivo ZIP o al repositorio local en la directiva lib_deps de tu platformio.ini.

¿Cuál es la ventaja de PlatformIO sobre el IDE de Arduino tradicional para la gestión de librerías?

La principal ventaja de PlatformIO es su capacidad para gestionar librerías por proyecto. Esto significa que cada proyecto puede tener sus propias versiones de las librerías, evitando conflictos cuando diferentes proyectos requieren versiones distintas de la misma librería. Además, PlatformIO ofrece:

  • Resolución de dependencias: Puede resolver y descargar automáticamente las dependencias de una librería.
  • Integración con sistemas de control de versiones: Facilita la colaboración en equipos, ya que las dependencias se definen en el archivo platformio.ini y son fácilmente compartibles.
  • Entorno de construcción reproducible: Asegura que tu proyecto se compilará de la misma manera en cualquier máquina que use PlatformIO, lo cual es crucial para la integración continua y el desarrollo profesional.
  • Soporte para múltiples plataformas y frameworks: No se limita solo a Arduino, sino que soporta una amplia gama de microcontroladores y frameworks de desarrollo.

¿Es necesario instalar ArduinoSTL si mi microcontrolador es un ESP32 o ESP8266?

Generalmente, no. Microcontroladores más modernos y potentes como el ESP32 o el ESP8266 (basados en arquitecturas Xtensa) suelen venir con un soporte más robusto y completo para las características de C++ estándar, incluyendo una implementación de la STL en su toolchain. Por lo tanto, no necesitarías instalar una librería específica como ArduinoSTL para usar std::vector o std::string en estos microcontroladores. ArduinoSTL es más relevante para microcontroladores AVR con recursos limitados como el Arduino Uno o Nano.

Conclusión

Dominar la instalación y gestión de librerías es un pilar fundamental en el desarrollo de proyectos con microcontroladores. Ya sea que optes por la simplicidad del Arduino Library Manager o la potencia y el control granular de PlatformIO a través de su archivo platformio.ini, entender cómo integrar estas herramientas en tu flujo de trabajo te permitirá construir proyectos más complejos y eficientes. Recuerda siempre verificar las dependencias y la compatibilidad de las librerías, especialmente en el caso de la crucial ArduinoSTL para dispositivos con soporte limitado de C++ estándar. Con esta guía, tienes los conocimientos necesarios para gestionar tus librerías de manera efectiva y llevar tus ideas desde el concepto hasta la realidad.

Si quieres conocer otros artículos parecidos a Instalación de Librerías en Arduino y PlatformIO puedes visitar la categoría Librerías.

Subir