En este artículo voy a hablar de qué es una librería de Arduino y cómo podemos utilizarlas. Seguramente hayas oído hablar de ellas aunque no sepas muy bien qué son y para qué sirven. Las librerías son fundamentales a la hora de crear proyectos con Arduino y ESP8266.
¿Te suena la película Matrix? Estoy seguro que si. En esta película cuando Neo quiere aprender algo, una nueva habilidad, se enchufa un ordenador al cerebro y la carga. Si quiere aprender Kung-Fu sólo tiene que buscar el programa y cargarlo en su cerebro.
Así lo puede hacer con todo el conocimiento, un idioma nuevo, pilotar un avión o un coche de carreras. Una librería de Arduino funciona de manera parecida. Dota de habilidades extra o superpoderes a nuestros programas con Arduino y ESP8266.
Cuando queremos hacer algo concreto dentro de nuestra aplicación con algún componente, sólo tenemos que descargar esa nueva habilidad al IDE de Arduino y utilizarla inmediatamente.
En este artículo vamos a ver varios conceptos que tenemos que tener claros de una librería de Arduino como qué son, dónde se almacena una librería de Arduino, la estructura que tiene, cómo se instalan y cómo elegir una librería de Arduino u otra.
Tenemos bastante trabajo por delante así que vamos a empezar.
Indice de contenidos
- 1 ¿Qué es una librería de Arduino?
- 2 ¿Dónde están los ficheros de una librería de Arduino?
- 3 Estructura de las librerías de Arduino
- 4 Cómo instalar una librería de Arduino
- 5 Cómo añadir una librería de Arduino al código
- 6 Cómo elegir librerías de Arduino para nuestro proyecto
- 7 Conclusiones librería de Arduino
¿Qué es una librería de Arduino?
Seguro que te viene a la cabeza la típica tienda donde podemos comprar libros, no te quito razón :) Las librerías de Arduino tienen otro sentido. Se trata de un archivo de código que agrupa funciones similares que ayuda a hacer algo.
Ahora te estarás preguntando ¿cómo nos puede ayudar una librería de Arduino? Tenemos miles de librerías para Arduino, esta es una de las maravillas que nos aporta esta plataforma.
Muchas personas colaboran de forma altruista y crean librerías para poder comunicarse con sensores, otros circuitos integrados y otras placas diferentes. Personas como Xose Pérez, el creador de ESPurna para el relé Sonoff WiFi.
Estas personas como Xose, han hecho un trabajo previo de investigación y documentación. Escribieron el código y lo empaquetaron en un sistema muy fácil de utilizar llamado librería.
Por lo tanto, una librería no es más que un código que podemos incorporar a nuestro programas que aportarán nuevas funcionalidades a nuestros proyectos.
Dentro de todas las librerías que hay disponibles podemos diferenciar entre dos tipos: librerías estándar y librerías no estándar. Las primeras son librerías desarrolladas por el equipo de Arduino, las segundas son librerías no desarrolladas por el equipo de Arduino.
Librerías de Arduino estándar
La librerías estándar vienen preinstaladas en el IDE de Arduino. La forma más fácil de ver cuales son es ir a la referencia del lenguaje de Arduino. Encontrarás un apartado donde pone Libraries.
La referencia de un lenguaje de programación es como una guía de usuario. Nos informa de cómo debemos utilizar el lenguaje de Arduino. La web oficial de Arduino es muy completa. Sin embargo, está en inglés :/
Si accedes a la referencia encontrarás todas las librerías de Arduino estándar como EEPROM, Ethernet, Firmata o LiquidCrystal. Puedes encontrar un montón de librerías de este tipo.
Por ejemplo, vamos a fijarnos en la librería Servo. Esta librería de Arduino está creada para poder manejar un servomotor de una forma muy sencilla dentro de nuestros programas. Si accedes a su documentación podrás ver sus funciones.
Del mismo modo la librería EEPROM te permite gestionar los datos que se almacenan en esta memoria.
Sin embargo, nosotros también podemos escribir nuestras propias funciones para controlar un servo o para gestionar la memoria EEPROM. El problema es que esto puede llevarnos algo más de tiempo ya que tenemos que descubrir, por nosotros mismos, cómo trabajar con estos componentes.
Utilizar una librería de Arduino es un arma de doble filo. Como nota negativa podemos decir que muchas veces no investigamos lo suficiente como para conocer el código que hay detrás de las librerías. No deja de ser una caja negra que utilizamos sin saber qué hace.
Sin embargo, es muy útil para ponernos en acción. Nos permite ahorrar mucho tiempo ya que son librerías empaquetadas muy sencillas de usar y siempre tendremos la posibilidad de entrar en el código y ver qué están haciendo.
Pero ¿dónde podemos ver qué librerías estándar están instaladas? Sólo tienes que acceder al IDE de Arduino y en la opción del menú Programa>Incluir Librería aparecen todas las librerías estándar.
Para utilizar una de ellas sólo tienes que seleccionarla en la lista. Como resultado, inserta una línea de código en la parte superior del programa.
Esta línea significa que ha incluido (#include) la librería servo (servo.h). Se hace poniendo el símbolo menor que (<), el nombre del archivo y mayor que (>).
Con esta simple acción ya podríamos utilizar todas las funcionalidades de la librería de Arduino servo, es muy sencillo. Vuelvo a repetir, sólo tienes que ir a Programa>Incluir Librería y seleccionar la que quieres utilizar.
También podrías poner tu mismo en el código la línea que añade de forma automática con esta acción. Para saber cómo se utiliza esta línea, sólo tienes que acudir a la referencia del lenguaje de Arduino.
Todo esto irá tomando sentido a lo largo de este artículo.
Librerías de Arduino no estándar
Una librería de Arduino no estándar es igual que una librería de Arduino estándar. Se diferencian en quién la ha creado. Las librerías estándar las desarrolla el equipo de Arduino y las no estándar las desarrollan personas fuera del equipo de Arduino.
Pero vamos, al final hacen lo mismo. Nos aportan un montón de funcionalidades extra. Las puedes encontrar en la propia referencia del lenguaje con el nombre Contributed Libraries.
Aquí vas a encontrar un montón de librerías de Arduino para diferentes componentes, cálculos y muchas más cosas. Puedes entrar en la referencia de Arduino y comprobar si hay alguna que haga lo que quieres hacer en tu programa.
Sin embargo, en este listado no están todas las librerías no estándar. Hay muchas que no las vas a encontrar en esta web. Pero no te preocupes, seguro que alguien ha pensado en ello y la ha programado.
Sólo tienes que ir a Google y buscar usando las palabras clave Arduino, lo que quieres hacer y al final poner librería. Esto funciona mucho mejor en inglés. Vamos a ver un ejemplo.
Quiero utilizar una librería para leer la temperatura y humedad del sensor DHT11. En la referencia de Arduino no encuentro la librería pero si busco en Google «Arduino dht11 library» aparece lo siguiente.
Los dos primeros resultados nos llevan al Playground Arduino. Es un repositorio de tutoriales de muchas cosas. Si abres el primer enlace verás un tutorial de cómo utilizar el sensor DHT11 con Arduino.
El tercer resultado es un enlace al propio repositorio de GitHub donde podríamos bajarnos todo el código e instalar la librería de forma manual.
Una cosa importante a tener en cuenta es que las librerías no estándar no vienen preinstaladas en el IDE de Arduino. Tienes que instalarlas tu. Más adelante veremos cómo instalar una librería de Arduino.
Eso sí, una vez que se instala ya puedes ir a Programa>Incluir Librería en el IDE de Arduino y hacer uso de ella. Cuando lo abres se pueden ver tres bloques diferenciados.
El primer bloque es el que hemos visto de librerías de Arduino estándar, donde pone Arduino librerías. El segundo bloque, donde pone Reommended librerías son librerías estándar que han sido supervisadas por Arduino. El tercer bloque, Contributed librerías, son las librerías no estándar que no han sido supervisadas por Arduino.
Pero ¿dónde se encuentran los ficheros con el código de una librería de Arduino? Bueno pues eso es lo que vamos a ver a continuación, localizar en nuestro disco duro los ficheros de una librería de Arduino.
¿Dónde están los ficheros de una librería de Arduino?
Ahora voy a hablar de dónde se guardan las librerías dentro de nuestro ordenador. No es algo nuevo, lo vimos en el curso de Arduino, cuando hablaba sobre el IDE y cómo configurar las preferencias.
Si recuerdas, en la opción del menú del IDE Archivo>Preferencias elegías las ruta para guardar los archivos de Arduino. Es la carpeta por defecto donde se guardarán todos nuestros programas.
En la opción Localización de proyecto seleccionamos la carpeta. En esta misma carpeta también se almacenan las librerías que instalamos. Si entras en tu ordenador encontrarás una carpeta que pone libraries.
En Windows lo encontramos en Documentos>Arduino>libraries. Dentro de esta carpeta encontrarás todas las librerías que tienes instaladas.
Es una carpeta más, dentro de todas las carpetas con todos los programas de Arduino que hayas creado. Yo tengo un montón lo sé :)
La ubicación o ruta de esta carpeta dependerá del sistema operativo con el que trabajes. Sin embargo, da lo mismo el sistema operativo, todas tienen la misma estructura y utilizan los mismos archivos.
Estructura de las librerías de Arduino
Vamos a ver ahora cuál es la estructura de una librería de Arduino. Todas tienen que tener dos archivos obligatorios. Una con la extensión .cpp (que significa C++ del inglés C plus plus) que contiene todo el código fuente es decir, las definiciones de las funciones, la lógica.
El otro archivo tiene extensión .h (viene del inglés header y significa cabecera). Es como si fuera un listado de las funciones que hay dentro del código fuente, en el archivo .cpp. Le dice a nuestro programa qué funciones va a utilizar de la librería.
Por ejemplo, si queremos utilizar la librería OneButton, sólo tenemos que ir al programa y decir que queremos incluir esta librería.
El archivo de cabecera está indicando al programa donde tiene que ir a buscar todas las funciones para utilizar esta librería.
Seguro que ahora mismo estás confuso pero no te preocupes, no tienes que entenderlo completamente. Solo quiero que tengas una visión general de los archivos de una librería de Arduino.
Lo importante, tienes dos archivos obligatorios, uno con la extensión .h (cabecera) y otro con la extensión .cpp (implementación del código).
Aunque el archivo .h y el archivo .cpp sean obligatorios, la carpeta que contiene la librería también puede tener otros archivos y carpetas que no son obligatorios.
Carpeta de ejemplos
Lo más normal es que cada librería tenga una carpeta con ejemplos para mostrar cómo utilizar la librería. Por ejemplo, la librería OneButton tiene una carpeta que se llama examples (en español significa ejemplos).
En el caso de la librería de Arduino OneButton, tiene 3 ejemplos. Si accedes a la carpeta de alguno de ellos verás un programa de Arduino con la extensión .ino.
Además, tenemos acceso a todos ellos a través del IDE de Arduino. Si vas a Archivo>Ejemplos>OneButton encontrarás los 3 ejemplos que hemos visto antes.
Si seleccionas uno de los ejemplos se abrirá el código que contiene y podrás probar la librería. Los ejemplos son realmente útiles.
Archivo keywords.txt
Otro archivo que suele estar en todas las librerías es keywords.txt (keywords en español es palabras clave). Es un archivo de texto que contiene las palabras claves de la librería de Arduino.
Su utilidad es indicar al IDE de Arduino que coloree dichas palabras cuando se escriban en el editor.
Para la librería OneButton, hay varias palabras clave. La numeración KEYWORD1 y KEYWORD2 determinan el color que tendrán en el IDE de desarrollo.
Ahora que sabemos qué es una librería de Arduino y dónde podemos ver los archivos, vamos a pasar a instalar una librería de Arduino.
Cómo instalar una librería de Arduino
Existen tres métodos para instalar una librería de Arduino. Cuando digo instalar una librería de Arduino me refiero a integrar dentro del IDE de Arduino la estructura de ficheros, carpetas y rutas de una librería de Arduino
Recuerda que la carpeta donde se instala una librería de Arduino depende del sistema operativo. Puedes ver la carpeta en la opción del menú Archivo>Preferencias.
Como quiero que sea algo práctico, voy a utilizar un montón de capturas de pantalla. Incluso puede que cuando estés leyendo esto, alguna de las librerías no existan o hayan cambiado de nombre. Lo importante es que el procedimiento sigue siendo el mismo.
Las 3 formas de instalar una librería son:
- A través del Gestor de Librerías
- Instalando un archivo .zip
- Instalando una librería de Arduino de forma manual
Antes de empezar, recuerda que existen dos tipos de librerías de Arduino: librerías estándar y librerías no estándar. Las primeras son desarrolladas por el equipo de Arduino y no hace falta instalarlas. Las segundas son creadas por terceros y son las que vamos a instalar.
Vamos a comenzar por el método más sencillo y el recomendado siempre que se pueda, a través del gestor de librerías.
Instalar librería de Arduino con el Gestor de Librerías
Comenzamos con la forma más sencilla de instalar una librería de Arduino, a través del Gestor de Librerías. Para abrir este gestor sólo tienes que ir a Programa>Incluir Librería>Gestionar Librerías
Esto abre una nueva ventana donde pone Gestor de Librerías. Esta ventana nos permite buscar e instalar las librerías que han sido aprobadas por Arduino pero no son estándar es decir, librerías de terceros.
Podemos encontrar de diferentes fabricantes de hardware como Adafuit o Sparkfun y un montón de librerías más para diferentes propósitos.
Vamos a examinar esta ventana en detalle.
#1 Filtro por tipo
- Todos: muestra todas las librerías.
- Actualizable: la librería tiene una actualización disponible. Es muy útil para saber qué librerías tienen una nueva versión y así poder actualizar cada una de ellas.
- Instalado: muestra la lista de librerías que tienes instaladas en tu IDE de desarrollo.
- Arduino: las librerías estándar que tienes instaladas en tu IDE de desarrollo.
- Compañero: se trata de una mala traducción de Partner. Este tipo de librerías son no estándar de asociados o afiliados a Arduino. Empresas como Microsoft o SmartEverything son este tipo de empresas que llegan a un acuerdo con Arduino para ofrecer servicios para sus placas.
- Recomendado: listado de librerías no estándar recomendadas y que han sido revisadas por Arduino.
- Contribución: listado de librerías no estándar.
- Retirado: son las librerías que se han retirado o que no se siguen desarrollando. En este tipo puede haber librerías estándar y no estándar.
#2 Filtro por tema
También puedes hacer un filtro por la temática de la librería según 11 categorías.
#3 Buscar por palabra
Por último puedes filtrar por una palabra clave. En el campo de texto puedes escribir cualquier palabra y el gestor de librerías filtrara todas las librerías que coincidan con esa palabra clave.
#4 Listado de librerías
En este área aparece el listado de librerías según los filtros aplicados. La librería puede estar en 3 estados, sin instalar, instalada o pendiente de actualización.
Según el estado te mostrará una información un otra.
Una librería sin instalar sólo te permite una acción, instalarla. Si haces click sobre una librería en este estado, aparecerá un selector para seleccionar la versión y un botón de instalar.
Es recomendable siempre seleccionar la última versión. Por defecto es la que está seleccionada.
Una librería instalada sólo te permite cambiar de versión. Si haces click aparecerán las mismas opciones para seleccionar versión e instalar pero situadas en la parte izquierda. Además aparece un texto donde indica que está instalada.
El botón de Instalar solo se activa cuando seleccionas una versión diferente a la que está instalada.
Por último en una librería que está pendiente de actualizar aparecerá un botón de actualizar además de las opciones para cambiar de versión.
#5 Botón cerrar
Una vez que hemos terminado de gestionar las librerías podemos hacer click en el botón de cerrar para cerrar la ventana.
Instalar librería de Arduino a través de un archivo .zip
En muchas ocasiones en el repositorio oficial de Arduino, del que tira el Gestor de Librerías, no están todas las librerías. Arduino sigue una política estricta para que una librería forme parte de este repositorio.
En estos casos podemos instalar una librería de Arduino de dos formas, a través de un archivo .ZIP o de forma manual. En esta sección vamos a ver cómo instalar una librería de Arduino a través de un archivo .ZIP.
Lo haremos a través del propio IDE de Arduino y lo más importante es conocer de dónde podemos descargar la librería de Arduino.
Lo más típico es buscar por Internet. Por ejemplo, hay una librería que hizo Germán Martín, colaborador del podcast. La librería se llama WiFiLocation y permite geolocalizar una placa de Arduino a través de la WiFi.
Aunque este artículo se centra en librerías de Arduino en general, esta librería sólo funciona con placas que tienen conexión a una red WiFi. Placas como Arduino MKR1000 o NodeMCU. Sin embargo, esta librería no está en el repositorio oficial de Arduino.
Pero ¿de dónde sacamos el código de la librería? En la siguiente sección profundizaremos más en todo esto pero seguramente, la librería que estás buscando la encuentres en GitHub. Se trata de un repositorio de código abierto a nivel mundial.
Pero no sólo vas a encontrar librerías, código y ejemplos para Arduino, también puedes encontrar multitud de código para otros lenguajes. En esta plataforma se encuentra también el código fuente del IDE de Arduino.
Hacer una búsqueda en tu buscador favorito
Si lo que quieres es geolocalizar una placa a través de la WiFi ¿qué crees que deberías buscar en Internet? Localización WiFi por ejemplo :)
Una advertencia, si realmente quieres encontrar resultados tienes que buscar en inglés, no queda otra.
Lo mismo a ti te resulta complicado este idioma pero no te preocupes, hay una solución para todo. Si desconoces cómo se dice algo en inglés solo tienes que acudir al traductor de Google.
Es muy sencillo de usar solo tienes que poner cómo se dice en español e inmediatamente te dará la traducción al idioma que desees, en este caso inglés.
Asegúrate que tienes seleccionado el idioma español en el lado de la izquierda y el idioma inglés (o cualquier otro) en el lado de la derecha.
Una vez que tengas cómo se dice en inglés solo tienes que hacer una búsqueda en Google. Por ejemplo, puedes poner wifi location y al final siempre añade Arduino.
Si existe una librería con esas condiciones seguramente esté en GitHub. En este caso hemos tenido suerte y aparece que hay una librería ESPWifiLocation en GitHub. Precisamente es la de Germán :)
Descargar el archivo .ZIP
Ahora solo tienes que acceder a la página y descargar la librería de Arduino. En la siguiente sección veremos más en detalle GitHub, ahora solo quiero que le des al botón de Clone or download y hagas click en Download ZIP.
Da lo mismo donde guardes el archivo .ZIP pero acuérdate ya que ahora mismo lo vamos a necesitar.
Cargar el archivo .ZIP desde el IDE de Arduino
Abre el IDE de Arduino y ves a la opción del menú Programa>Incluir Librería>Añadir librería .ZIP.
Esto abrirá una ventana para que selecciones el archivo .ZIP que has descargado. Luego le das a Abrir.
Cuando termina, en principio parece que no ha hecho nada. Puedes comprobar en el IDE de que la librería de Arduino se ha instalado y en la carpeta de librerías encontrarás los archivos del código fuente.
Lo que ha realizado el IDE de Arduino por debajo es descomprimir el archivo en la carpeta de librerías y lo añade tanto ejemplos como el acceso a la librería de Arduino.
Instalar una librería de Arduino de forma manual
El último método que vamos a ver es cómo instalar de forma manual, sin la intervención del IDE de Arduino.
Vamos a instalar una nueva librería de Arduino. Imagínate que quiero generar un tono con Arduino para hacer música por ejemplo. También sirve para otras cosas pero bueno, esto no es el objeto de este artículo.
Hacemos una búsqueda por Internet. Recuerda que es recomendable hacerla en inglés. Utiliza Google Translate para hacer la traducción. Tras buscar tone library arduino obtenemos un resultado en GitHub que puede ser útil.
Accedo a GitHub y descargo la librería comprimida en un archivo .ZIP. Esta vez te recomiendo que lo guardes en la carpeta de librerías de Arduino.
Ahora accede a la carpeta y simplemente descomprime el archivo dentro de la carpeta de librerías de Arduino.
Esto habrá generado una carpeta con el nombre Tone-master. Te recomiendo que cambies el nombre por Tone. Aunque esto no genera ningún tipo de problema, quedará mucho más claro.
Si accedes comprobarás que dentro tienes los archivos .h y .cpp además de una carpeta con ejemplos.
Si accedes al IDE de desarrollo a la opción del menú Programa>Incluir Librería … ¡¡¡ ohhhhh sorpresa !!! no está la librería de Arduino que acabamos de instalar. ¿Qué ha pasado?
Tranquilidad, la librería se ha instalado correctamente lo único que ocurre es que si la instalamos de forma manual tenemos que reiniciar el IDE de Arduino para que aparezca esta librería.
Ahora podríamos cargar un ejemplo de esta librería de Arduino y ver el código.
Como ves es, relativamente sencillo dar funcionalidad extra a nuestros programas. Con esto terminamos la sección de instalación de una librería de Arduino. En el siguiente apartado veremos cómo podemos insertar el código necesario para utilizar una librería de Arduino en nuestro programa.
Cómo añadir una librería de Arduino al código
Vale, ya tenemos la librería de Arduino instalada en nuestro ordenador y ahora ¿qué hacemos con ella? Seguramente si la has descargado es que estabas buscando una funcionalidad que aporta esa librería, de otra manera te aconsejo que la elimines.
Te voy a enseñar dos métodos para añadir una librería de Arduino a tu programa. Pero antes es conveniente que te familiarices con las funciones y métodos que utiliza la librería que has instalado. Lo mejor es mirar los ejemplos.
Muchas de las librerías que encuentras por Internet o en el repositorio de Arduino tienen ejemplos. Aquí es donde te debes dirigir primero. El código lo encuentras en la misma carpeta donde se ha descargado la librería.
Pero también puedes acceder a través del entorno de desarrollo.
Una vez que te hayas familiarizado con la librería de Arduino, vamos a ver cómo añadirla a nuestro código a través de dos métodos.
Incluir librería de Arduino a través del IDE
Empecemos por el más sencillo. Abre un programa o sketch nuevo en el IDE de Arduino. Vete a la opción del menú Programa > Incluir Librería y selecciona la librería que quieres añadir.
Esto te añade un trozo de código al principio del programa. Por ejemplo, yo he añadido la librería servo.
Como ves es muy sencillo y no requiere que escribamos nada de código.
Incluir librería de Arduino a través de código
Vamos con el segundo método que aunque parezca algo más difícil, realmente solo tenemos que tener en cuenta un par de cosas.
Como ya hemos hablado antes, las librerías se instalan por defecto en la carpeta Arduino/libraries. Esto es muy importante, ahora lo comprenderás.
Si la librería que queremos añadir a nuestro sketch o programa está en esta carpeta, solo tenemos que añadir la siguiente línea de código.
1 |
#include <miLibreria.h> |
La extensión .h significa header, cabecera. Lo que añadimos es una cabecera con todos los métodos, funciones y variables.
¿Pero qué ocurre si la librería de Arduino está en otra carpeta que no es la de por defecto? No te preocupes, hay una solución. Solo tienes que escribir la ruta completa donde se encuentra la librería de Arduino entre comillas.
1 |
#include "C:\Users\Luis\Documents\Arduino\libraries\Firmata\Firmata.h" |
Y con esto damos por finalizada la instalación y uso de una librería de Arduino. En el último apartado vamos a ver unos consejos prácticos a la hora de elegir una librería de Arduino.
Cómo elegir librerías de Arduino para nuestro proyecto
Imagínate que tienes un proyecto en mente. Ya tienes claro lo que quieres hacer y cómo lo vas a hacer. Estás seguro de que una o varias de las partes de tu proyecto pueden programarse con una librería de Arduino.
Lo mismo necesitas una librería para controlar algún motor, obtener datos de un sensor o simplemente hacer unos cálculos u operaciones en tu código. Da lo mismo lo que sea, seguramente haya una librería de Arduino que te puede ayudar y ahorrar trabajo.
No vamos a reinventar la rueda si ya está más que inventada ¿no?
Lo primero que haces es ir a un buscador de Internet, Google por ejemplo, y buscas algunas librerías que dan solución a tus problema de programación. Ahora es cuando surge la duda ¿Qué librería elijo para mi proyecto?
En este apartado, vamos a dar solución a todas esas dudas con unos cuantos consejos útiles.
La carta a los reyes magos
En la sociedad de consumo en la que vivimos a día de hoy, muchas veces compramos cosas inútiles que realmente no nos hacen falta. Estas cosas las compramos de forma impulsiva, sin apenas mirar lo que nos ofrece.
Sin embargo, cuando necesitamos algo realmente, sí que nos molestamos en investigar cuáles son las opciones. Sobre todo cuando se trata de una inversión cara como por ejemplo un coche.
En estos casos nos paramos a pensar y solemos hacer una lista. Por ejemplo, si vas a comprar un coche te planteas ¿diesel, gasolina o eléctrico? Dependerá del número de kilómetros que hagas.
También pensarás en la capacidad. Si tienes 1 perro, 1 gato y 3 hijos, desearás que sea lo más grande posible y con un buen maletero. Además tiene que tener un buen sistema de audio ya que te encanta escuchar música y podcast.
Lo importante es que tienes una lista de necesidades que te ayudar a tomar una decisión a la hora de comprar un coche adecuado.
Con una librería de Arduino ocurre más o menos lo mismo. Deberías tener una lista de cosas que necesitas o quieres que haga esa librería.
En ocasiones esta lista es muy corta. Por ejemplo, lo único que quieres que haga es leer el valor de un sensor de temperatura.
Pero a veces la lista es bastante larga y complicada. Quieres que lea la temperatura, lea la presión atmosférica, la humedad relativa y que haga el pino puente :)
Sea como sea, la librería debería satisfacer cada una de esas necesidades o deseos. Por lo tanto, mi recomendación es que antes de ponerte a buscar escribas la carta a los reyes magos a través de una lista de deseos.
Realmente, eso puede ser más difícil de lo que nos podamos creer. A veces no estamos seguros de lo que necesitamos hasta que no avanzamos en el proyecto e investigamos un poco más.
En otras ocasiones, al buscar una librería descubres que es capaz de hacer cosas que ni siquiera habías pensado, ampliando así la lista de deseos.
Pero también puede ocurrir lo contrario. Creías que con el componente eléctrico podías hacer cierta cosa que realmente no se puede.
La lista de deseos no es definitiva, irá cambiando según avanzas. También debes tener en cuenta que al principio, cuando estás aprendiendo, puede que no sepas qué buscar. Por lo tanto, cuando empiezas a buscar una librería puede que tu lista no sirva de nada.
Pero no dejes que esto te desanime, según vayas avanzando en tu aprendizaje a través del software y hardware, obtendrás la experiencia necesaria para establecer unas necesidades realistas.
Se trata de un proceso de aprendizaje, ir conociendo nuevas placas, nuevos componentes y nuevas librerías. Eso sí, no saber no te excusa para saber qué es lo que realmente quieres.
Por lo tanto, antes de empezar a buscar una librería de Arduino ten siempre claro qué es lo que necesitas.
Una forma fácil de elegir una librería
Ahora supongamos que tienes todo claro y has hecho tu lista de los deseos para elegir una librería de Arduino. En ocasiones esto resulta muy sencillo.
Imagínate que tienes un componente eléctrico específico de una marca concreta, puede que la empresa que lo fabrica ya tiene una librería para programar este componente.
Por ejemplo, si la empresa que lo fabrica es Adafruit o Sparkfun va a ser muy sencillo encontrar la librería.
Con empresas como estas lo vamos a tener muy fácil elegir una librería de Arduino. Cuando compras un componente, en la propia página del componentes encontrarás enlaces a las librerías y cómo puedes utilizarlas.
Otro caso también sería cuando sólo hay una librería disponible. A no ser que quieras programar tu propia librería para ese componente, tendrás que utilizar la única librería que has encontrado.
Pero ¿qué sucede si no nos encontramos en estos casos tan fáciles? En estos casos hay que aplicar ciertos criterios para elegir la mejor librería.
Criterios para elegir una librería para Arduino
Si has tenido algo de suerte, no tanta como en el caso anterior, habrás encontrado unas cuantas librerías de Arduino. En estos casos necesitas seguir algunos criterios para ayudarte a elegir la librería que debes usar.
Lo primero es hacerte una serie de preguntas que quizás, no tengan respuesta.
- ¿Es una librería que se actualiza? ¿Desde hace cuánto tiempo que no se actualiza?
- ¿Cuántas personas utilizan esa librería?
- ¿Tiene una buena documentación? ¿Es sencilla de utilizar?
- ¿Tiene código de ejemplos para saber cómo se utiliza?
- Con ligeras modificaciones ¿podría funcionar con componentes parecidos?
Vamos a ir respondiendo a cada una de estas preguntas utilizando algunas herramientas que nos puedan ayudar.
¿Es una librería de Arduino que se actualiza? ¿Desde hace cuánto tiempo?
Ya te he hablado de GitHub, el repositorio mundial de código libre. Muchos desarrolladores mantienen su código en esta plataforma ya que es gratuita, permite guardar el código y tiene un control de versiones.
No voy a entrar en mucho detalle de qué es un control de versiones. GitHub, como su nombre indica, utiliza el control de versiones Git.
Cuando estás haciendo un programa, a menudo vas haciendo modificaciones, muchas modificaciones. Poco a poco vas mejorando el programa.
El control de versiones nos permite guardar un histórico del código que has ido modificando y hacer un seguimiento de cada versión. La utilidad real de un control de versiones es poder volver a una versión que realmente funcionaba antes de las modificaciones.
Imagínate que decides implementar una nueva funcionalidad de código. Esto implica añadir nuevas variables, nuevas estructuras de control y nuevas librerías. Tras dos semanas picando código decides que no, que no funciona correctamente y quieres volver a como estaba antes.
Con un control de versiones es sumamente sencillo. Sin embargo, si no tienes control de versiones probablemente no seas capaz de dejar el código como estaba. Esa es la gran utilidad del control de versiones.
Por lo tanto, como ya te he dicho, muchos desarrolladores utilizan la plataforma gratuita GitHub para alojar su código. Entre ellos está Adafruit. En este repositorio podemos ver todas las librerías que tiene para los componentes que venden.
De aquí podemos sacar mucha información. Vamos a ver un ejemplo, la librería Neopixel. Esta librería permite controlar tiras y anillos de NeoPixel que no son más que LEDs direccionables y RGB.
Si entras en la web de GitHub de esta librería, podrás ver una información muy valiosa. Lo primero es saber cuándo se actualizó por última vez.
Vemos que la última actualización cuando estoy escribiendo este artículo es de hace 16 horas. Es muy reciente y nos quiere decir que hay gente trabajando en la actualidad en esta librería añadiendo nuevas funcionalidades y/o corrigiendo errores.
Esto es un buen síntoma aunque puede llevarnos a tomar decisiones erróneas. Por ejemplo, el repositorio de la librería Firmata en GitHub muestra lo siguiente.
Desde el año 2015 no se actualiza es decir, no es muy actual. Pero esto no es necesariamente malo.
Tal vez no se actualice porque funciona perfectamente y no hay ningún error ni ninguna mejora que se pueda añadir. Sin embargo, en el caso de tener dos librerías que hagan exactamente lo mismo, siempre tenemos que elegir la que ha sido actualizada más recientemente.
También hay otra forma de saber cómo de activa es la librería de Arduino con respecto a actualizaciones. Si entras en la opción de Insights y luego vas a Commits podrás ver un histórico de las actualizaciones en el último año.
Si lo que quieres es ver una perspectiva general de la librería de Arduino desde que se creó y los programadores que contribuyen a ella, puedes hacerlo desde la opción de Contributors.
En esta gráfica te muestra cuándo comenzó el proyecto, cuánto tiempo ha estado funcionando y cuántas contribuciones se ha realizado desde el inicio.
Si vas bajando por esta página también puedes ver quién hace las contribuciones. Todo esta información puede que no sea necesaria pero puedes hacerte una idea de la actividad y el estado en el que se encuentra una librería de Arduino.
¿Cuántas personas utilizan la librería?
Esta parte puede ser algo difícil ya que no se puede controlar de una forma sencilla. Sin embargo, otra vez GitHub nos da información bastante importante. Vamos a seguir con los dos ejemplos anteriores. Te dejo otra vez los enlaces.
Si abrimos los dos respositorios en GitHub y te fijas en la parte de arriba verás un ojo donde pone Watch y una estrella donde pone Star.
Watch nos indica las personas que están viendo este repositorio. A todas ellas se les notificará en caso de que haya alguna modificación o nueva versión.
Star marca el repositorio como favorito y así poder acceder a él más rápidamente.
Estos dos indicadores nos dan una visión de la salud de la librería. Vuelvo a repetir que aunque nos puede guiar como la fecha de la última actualización, no son parámetros determinantes.
Hay librerías que por su propia naturaleza no se usan tanto.
Otra forma de ver lo popular que es una librería de Arduino es accediendo al foro de ayuda de Arduino. No sólo te va a dar información sobre una librería concreta, también puede darte información sobre otras librerías que hagan lo mismo.
Por ejemplo si entras en el foro de Arduino y buscas «Neopixel library» obtendrás todos los resultados donde se hable de esta librería.
De aquí podemos sacar mucha información. Hay 1.260 resultados eso quiere decir que se utiliza mucho. También descubrimos nuevas librerías para controlar NeoPixel como FastLED e incluso una comparativa.
El foro de Arduino es una fuente inagotable de información así que siempre que puedas utilízalo.
¿Tiene una buena documentación? ¿Es sencilla de utilizar?
Hasta ahora hemos visto el estado de salud de la librería. Cuál fue su última actualización, quién aporta su conocimiento a esa librería y cuánta gente más o menos la está utilizando.
Sin embargo, hay una pregunta que quizás sea más importante que todo esto y es ¿qué documentación tiene una librería de Arduino?
Aquí surge el primer problema. A veces encontrar la documentación de una librería no es sencillo.
Lo primero ¿qué es la documentación de una librería? Se trata de un documento o página web donde vamos a poder ver todas las funciones que tiene la librería donde nos expliquen qué parámetros tiene, que devuelve y qué hace esa función en concreto.
Viene a ser algo parecido a lo que vimos con la referencia de un lenguaje de programación.
Lo mejor para buscar la documentación es irnos a nuestro buscador favorito y escribir algo parecido a esto «NeoPixel library documentation» por ejemplo.
Te recomiendo que lo hagas en inglés ya que obtendrás muchos más resultados que en español.
En este caso, al buscar la documentación de la librería Neopixel nos aparece como primer resultado Adafruit. Eso es un buen síntoma ya que si entras dentro de la página verás como detallan toda las funciones de la librería con ejemplos.
En esta imagen sólo muestro una parte. Si continúas desplazándote hacia abajo comprobarás lo extensa que es la documentación. Incluso hay ejemplos y proyectos donde se utiliza la librería.
Que una librería sea sencilla o no depende de muchos factores. El principal es nuestra experiencia con el lenguaje de programación. Al principio seguramente todas te parezcan difíciles, pero según te vayas familiarizando con el lenguaje, verás lo fácil que resulta.
Puede que leer la documentación puede no ser muy divertido. Sin embargo, este tipo de ayuda te puede ahorrar muchísimo tiempo.
Este sería el mejor de los casos, cuando tenemos algún sitio donde podemos ver la documentación de la librería de Arduino. En el caso de que no tengamos nada, sólo hay una solución, acudir al código en GitHub.
Es una solución bastante complicada y no recomendada para gente que se está iniciando. La idea es acceder al archivo .h (cabecera) y ver las funciones que nos ofrece la librería de Arduino.
Si el programador o programadores han sido buenos, probablemente encuentres comentarios que expliquen qué hace cada función, incluyendo parámetros y valores devueltos. Por eso repito que es tan importante los comentarios en el código.
Así que se buen programador y comenta tu código :)
¿Tiene ejemplos para saber cómo se utiliza?
Ya hemos visto cómo se instala una librería de Arduino. Si la librería tiene ejemplos, también los instalará. Para saber precisamente esto, lo podemos hacer de dos formas.
La primera sería a través del IDE de Arduino en Archivo>Ejemplos. En ese listado deberías ver los ejemplos de la librería que has instalado. Si no están es que no tiene ejemplos.
Pero si quieres saber antes de instalar la librería si tiene ejemplos disponibles, puedes acudir al repositorio de GitHub y comprobarlo. Por ejemplo, la librería NeoPixel de Adafruit los tiene.
Los ejemplos son una herramienta muy importante a la hora de aprender cómo funciona una librería de Arduino. Demuestra su uso a través de un ejemplo simple y normalmente es el punto de partida de nuestros programas.
Vamos a instalar esta librería y veamos algún ejemplo.
Una vez instalado si vas a Archivo>Ejemplos encontrarás los 5 ejemplos. Ahora te preguntarás ¿por dónde empiezo? Precisamente hay uno que pone Simple. Quizás ese sea una buena idea comenzar por este ejemplo simple.
Una vez que abres el ejemplo, lo primero que tienes que hacer es verificar el código. Si el ejemplo no se compila correctamente puede que no sea buena idea utilizar la librería. Sin embargo, en caso contrario, nos estará diciendo que es una buena elección.
¿Funciona con componentes parecidos o con ligeras modificaciones?
Debes asegurarte de que la librería de Arduino es compatible con el componente o el hardware que estás utilizando. Se que parece obvio pero créeme que no lo es.
Piensa en unas pantallas LCD. Hay diferentes tipos de pantallas de este tipo, alguna funciona por I2C y otras no. Seguramente cuando busques la librería para controlar esta pantalla te aparezca una concreta para un tipo concreto.
Lo que quiero decir es que te tienes que asegurar que esa librería de Arduino que has encontrado es la adecuada para tu hardware. La mejor forma de hacerlo es buscar de nuevo en Internet.
Busca algún artículo, algún hilo de algún foro que te asegure que esa librería funciona con tu hardware concreto. Esto te ahorrará mucho tiempo de pruebas.
Conclusiones librería de Arduino
En este artículo hemos visto todo lo que necesitas saber de una librería de Arduino. Esta herramienta hace que nuestros proyectos adquieran habilidades extra de una forma rápida y sencilla.
Una librería de Arduino no es más que un trozo de código empaquetado. Contiene funciones que hacen cosas específicas como operaciones matemáticas o controlar componentes de hardware.
Cuando instalas una librería en tu ordenador, estás descargando unos ficheros que se instalan para poder utilizar la librería de Arduino. La ruta dependerá del sistema operativo que estés utilizando.
Las librerías pueden contener muchos ficheros pero todas, tienen como mínimo dos: fichero con extensión .h (cabecera) y fichero con extensión .cpp (con la implementación).
Se puede instalar una librería de Arduino de 3 formas diferentes, a través del gestor de librerías, desde un archivo .ZIP o de forma manual.
Por último, hemos visto cómo elegir una librería de Arduino. Tendrás que evaluar, de alguna forma, cómo de popular es la librería y que documentación y ejemplos incluye.
Una librería de Arduino es muy útil sin embargo, es conveniente utilizarlas correctamente y entender qué hacen por dentro.
¿Cuál es la librería de Arduino que más utilizas?
Puedes dejar tus comentarios aquí abajo :)
Gracias a Shutterstock por ceder los derechos de la imagen.