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:
- Censo y repositorio de bibliotecas Arduino
- Descargador de la Biblioteca Arduino
- Descargador de la Biblioteca Arduino (2)
¿Hay otras opciones que se convierten en algo utilizable (de la comunidad o de las personas, por qué no)?
Respuestas:
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:
Puede ver una demostración rápida aquí y leer más en la documentación .
fuente
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/
fuente
El Arduino juegos LibraryList y la lista de la biblioteca estándar parecen ser las páginas oficiales para eso.
fuente
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:
Vea, por ejemplo, la página de una biblioteca popular y el archivo JSON que contiene sus metadatos.
fuente
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.
fuente
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.
fuente
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) .
fuente
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:
fuente