¿Dónde puedo encontrar un repositorio central de todas las bibliotecas Arduino disponibles?

11

Actualmente; Cuando comienzo un nuevo proyecto Arduino con un nuevo hardware, lo primero que hago es buscar bibliotecas de terceros que traigan soporte de Arduino para este hardware.

Los primeros lugares que miro son:

En general, no encuentro ninguna biblioteca de soporte o varias bibliotecas diferentes (es bastante raro encontrar solo una) en diferentes ubicaciones con diferentes niveles de documentación, diferentes niveles de prueba ...

Una vez que he encontrado la biblioteca que necesito (a veces necesito probar varias), la descargo a mi carpeta de bibliotecas Arduino, la uso y la olvido.

Este proceso me parece engorroso:

  • búsqueda manual con diferentes opciones posibles, no siempre bien documentada
  • descarga manual e instalación en bibliotecas Arduino
  • no hay control de versiones en el proceso (todas las versiones de una biblioteca tienen el mismo nombre y, por lo tanto, no pueden coexistir en la carpeta de la biblioteca Arduino).

Desearía que hubiera un repositorio central con todas las bibliotecas disponibles para arduino, con:

  • descripción (hardware compatible, placas compatibles)
  • código fuente
  • documentación
  • versiones

Y una herramienta (Arduino IDE o externa) para acceder a este repositorio en el momento de la construcción del proyecto.

Una especie de experto en Arduino, de hecho.

He visto varias discusiones una vez que tuvieron lugar en el foro de Arduino, pero parece que no llevaron a ninguna parte:

¿Hay otras opciones que se convierten en algo utilizable (de la comunidad o de las personas, por qué no)?

jfpoilpret
fuente
Esto sería similar a PyPi pypi.python.org/pypi y virtualenv en Python, si alguien necesita un análogo en otro idioma.
Cybergibbons
Otra buena fuente es PJRC pjrc.com/teensy/td_libs.html
Cybergibbons
Algo me dice que el wiki de etiqueta de biblioteca sería un buen lugar para crear dicha base de datos. ~ 35,000 caracteres deben proporcionar un amplio espacio para desarrollar una lista muy completa.
asheeshr
@AsheeshR ¿por qué no? Pero primero, se debe definir una descripción clara de lo que se requiere (y lo que es opcional) para cada entrada de la biblioteca, de modo que se pueda seguir este 3template3 para cada entrada agregada.
jfpoilpret
@jfpoilpret Ese es un tema para una discusión de Arduino Meta .
asheeshr

Respuestas:

4

Acabas de describir los problemas que la empresa para la que estoy trabajando está tratando de resolver. Recientemente lanzamos un producto llamado biicode . Parece exactamente lo que estás buscando.

biicode es tanto un repositorio central en línea para el código como una herramienta cliente que presenta:

  • Fácil de usar por principiantes, configurable para usuarios más avanzados.
  • Resolución de dependencias, de forma transitiva, como lo hace Maven, pero sin archivos de configuración: lee las dependencias directamente del código fuente.
  • Repositorio central, cualquiera puede subir sus bibliotecas. Se pueden explorar, navegar y descubrir en la web.
  • Control de versiones: comprueba la compatibilidad de versiones y permite actualizaciones seguras de dependencias
  • Puede usarlo con cualquier editor de texto (tiene soporte opcional para eclipse)
  • Gestiona la configuración y las compilaciones del proyecto, actualiza el firmware generado a la placa
  • Tiene un buen monitor en serie como un plus

Puede ver una demostración rápida aquí y leer más en la documentación .

Hithwen
fuente
Respondió 2014, ¿su 2018 aún está en producción?
parodia
No, ahora es conan.io de jfrog y no sé si ya es compatible con arduino
hithwen
4

Dado que esta pregunta se hizo por primera vez, ahora está el Administrador de la Biblioteca Arduino, integrado en el IDE de Arduino. Allí puede buscar e instalar bibliotecas.

Aquí hay información sobre cómo funciona el administrador de la biblioteca: https://github.com/arduino/Arduino/wiki/Library-Manager-FAQ

Sin embargo, no hay un sitio web oficial que enumere las bibliotecas, por lo que recientemente creé este sitio no oficial, basado en los mismos datos en Arduino Library Manager:

http://www.arduinolibraries.info/

njh
fuente
3

El Arduino juegos LibraryList y la lista de la biblioteca estándar parecen ser las páginas oficiales para eso.

El chico con el sombrero
fuente
Sí, pero son solo una mezcla de documentos cortos con enlaces a bibliotecas, y parecen seguir un mantenimiento de "mejor esfuerzo", lo que lleva a algo que parece un desastre si quisiéramos usarlo desde algún tipo de administrador de paquetes.
jfpoilpret
2

Si desea crear dicho registro usted mismo, puede echar un vistazo a npm , el administrador de paquetes de Node.js , que es de código abierto y tiene un alcance muy similar al que desea describir. Npm es ambos:

  1. Un registro central con metadatos sobre cada biblioteca:
    • nombre, descripción, palabras clave, página de inicio, autor, colaboradores
    • número de versión, en principio que cumple con las versiones semánticas
    • URL del repositorio de origen (svn, git, github, gitlab, bitbucket ...)
    • información de compatibilidad (en este caso se trata de las versiones de Node)
    • licencia
    • dependencias
  2. Una herramienta de línea de comandos para:
    • buscando en el registro
    • descarga e instalación de paquetes, siguiendo recursivamente sus dependencias
    • publicar y actualizar sus propios paquetes en el registro.

Vea, por ejemplo, la página de una biblioteca popular y el archivo JSON que contiene sus metadatos.

Edgar Bonet
fuente
1

No hay ninguno. Desafortunadamente, tendrá que buscar manualmente cada biblioteca que le interese.

Si está interesado en crear un repositorio tan central, aunque sería increíble, este no es el foro correcto para hacerlo.

Connor Wolf
fuente
Entonces, ¿qué aconsejarías si tuviéramos que crear tal repositorio?
jfpoilpret
Uh .... empezar? ¿Qué quieres decir con asesorar? Básicamente es un sitio web. ¿Tal vez agregar algo de administrador de paquetes al editor de texto arduino si realmente te interesa? El problema principal, como siempre, será lograr que la gente realmente lo use .
Connor Wolf
1
Francamente, incluso si agrega un administrador de paquetes de fantasía al editor de texto arduino, no sé qué tipo de adopción va a obtener, porque el editor arduino es horrible , y la gente tiende a dejar de usarlo en un tiempo bastante corto. . Como tal, casi necesitaría un administrador de paquetes por separado, por lo que casi diría que un sitio web básico con un índice de bibliotecas, una breve reseña y enlaces a donde realmente están alojados es la mejor opción.
Connor Wolf
Esa fue también mi idea, el propósito no sería alojar bibliotecas sino mantener referencias a ellas, junto con metadatos útiles. Con respecto al IDE de Arduino, estoy de acuerdo, no lo uso muy a menudo, pero una herramienta externa debería ser fácil de integrar con él más adelante.
jfpoilpret
@jfpoilpret: el problema con una herramienta externa es, al igual que con los administradores de paquetes, la resolución de dependencia y la gestión de requisitos de versión. Las personas arduino no parecen preocuparse demasiado por mantener la compatibilidad con versiones anteriores, y muchas bibliotecas requieren "arduino verson {blah}". Realmente creo que solo una lista de referencias es la mejor apuesta. Cualquier cosa más compleja puede venir más tarde.
Connor Wolf
0

Arduino IDE y las bibliotecas asociadas se incluyen como software instalable en la mayoría de los repositorios del sistema operativo. Lamentablemente, las versiones de estos repositorios suelen estar desactualizadas durante varios meses o incluso años. Esto parecería que el verdadero problema es lograr que los administradores de repositorios del SO incorporen nuevas versiones a medida que estén disponibles.

Este problema se agrava cuando la versión de su sistema operativo no se ha actualizado a la última versión, porque esto lo obliga a utilizar un repositorio de software desactualizado.

Si bien no es una respuesta perfecta, probablemente debería asegurarse de que está utilizando la última versión de su sistema operativo, y luego alentar a los administradores de repositorios para ese sistema operativo a incorporar la última versión de Arduino IDE.

Una alternativa sería ir a la página de inicio de Arduino.org y seguir las instrucciones para descargar e instalar el último IDE y las bibliotecas asociadas. Esto probablemente tendrá la forma de un archivo .tar.gz, por lo que deberá saber cómo descomprimir, descomprimir y compilar el software necesario.

Arvid
fuente
0

Creo que tu deseo no se hará realidad. Lo espero, porque tener un solo lugar para todas las bibliotecas Arduino, sin bibliotecas permitidas, no estaría allí y todas esas bibliotecas se verían obligadas a soportar todos los estándares comerciales de calidad, prueba y documentación (+ calidad de código, efectividad y legibilidad) significa que solo los profesionales y equipos calificados similares podrían publicar alguna biblioteca de Arduino y todo estaría gobernado por una sola entidad, lo que obligaría a eliminar bibliotecas funcionalmente duplicadas o similares. Y tal entidad sonaría o más tarde se volvería malvada.

Me gusta el Arduino por ser gratuito y eso también significa que soy libre de escribir una biblioteca para admitir algunas funciones (que quiero usar) de algún hardware (que tengo, planeo comprar o quiero hacer yo mismo) experimental y tal vez inestable, pero divertido para mí).

Con su Big Central Authority siendo efectiva, simplemente elegiría otra plataforma gratuita, en lugar de ser demandado por un resultado menos que perfecto y certificado comercialmente de mi pasatiempo jugando con la electrónica y obligado a trabajar por ellos, NO por mis objetivos en MI tiempo libre.

Y si su Big Central Athority no me obligaría a realizar trabajos de mano de obra gratuita para ellos, entonces, ¿qué harían si mi biblioteca habilitara un uso especial de algún hardware común, y sobre que lo comparta con cualquiera que lo desee, incluso si no lo hace? resolver toda la funcionalidad HW completamente en materia profesional y documentada solo en la medida en que me resulte cómodo pasar mi propio tiempo libre con la documentación. ¿Y qué pasaría si surgiera otra biblioteca para el mismo HW, que permitiría otra parte de la funcionalidad o usaría otra API y otro enfoque para toda la problemática?

Es decir, compré un módulo multi de 7 segmentos y su fabricante le proporcionó una "biblioteca oficial". Hice otra biblioteca para el mismo módulo. ¿Ahora que? ¿Debería estar mi biblioteca en el repositorio central como "la única biblioteca para este HW" o debería estar allí la "oficial del fabricante"? Tenga en cuenta que si hubiera ambos, entonces rompería su punto de biblioteca "uno y solo uno" solicitado. Si no permite el fabricante, entonces al "único" le faltarían muchas características, como un búfer integrado para números, una interfaz de objeto simple, un ejemplo simple, cómo usarlo y habría una gran dependencia de un temporizador específico y genérico API no funcional, solo objeto, que requeriría que el usuario separe enteros de un solo dígito de alguna manera, no suena demasiado bien. Si no permite mi biblioteca, el usuario tendría lo anterior, pero su pantalla se actualizaría solo 10 veces por segundo con parpadeo y dejando fantasmas de otros dígitos en todo el lugar, mientras utiliza completamente el procesador y la documentación estaría principalmente en chino. Y el usuario perdería una frecuencia de actualización de 100x por segundo con casi ningún uso del procesador, dígitos y caracteres limpios y agradables (potencialmente también definidos por el usuario). - Tampoco está bien.

En el estado actual del caos, el usuario (tal vez usted o cualquier otra persona) puede usar la biblioteca, que se adapta mejor a sus necesidades (ya sea simplicidad y soporte de enteros nativos, o sea una actualización rápida limpia y un bajo uso de CPU) o combinar ambos, haciendo tercero con actualización rápida Y manipulación de enteros simple Y juego de caracteres definido por el usuario, con buena API de objetos y rica documentación. Solo necesita una persona con algo de tiempo y dedicación que facilite a los principiantes y algunas habilidades de inglés y conocimientos básicos de objetos y cómo se empaquetan las "bibliotecas oficiales de Arduino", por lo que el IDE puede importarlos fácilmente. (Y esa persona debería hacerlo y contribuir al empaquetador de la biblioteca Arduino).

No lo haría: para mis necesidades, la API funcional es mucho mejor y más simple de usar, toma menos bytes de memoria y menos ciclos de CPU y no tengo ganas de mejorar la biblioteca de formas que no usaría. Además, no uso Arduino IDE, uso un Makefile simple para compilar y cargar los programas, por lo que puedo usar fácilmente un buen editor de texto (vim en mi caso) y no tener que pelear con IDE-Notepad-parody.

Bajo Big Central Authority haciendo cumplir su modelo, no me importaría usar Arduino en absoluto y se quedará con la versión china, si es que la tiene (ya que no lo haría por falta de buena documentación en inglés y el formato de paquete adecuado también) .

gilhad
fuente
0

http://downloads.arduino.cc/libraries/library_index.json proporciona una lista de todas las bibliotecas disponibles en Arduino Library Manager.

Utilicé este archivo para crear https://github.com/scls19fr/arduino_libraries_search Es un script de Python Pandas para buscar bibliotecas Arduino que coincidan con algunas palabras clave y enviarlas a un archivo Excel

También puede encontrar bibliotecas Arduino usando:

scls
fuente