Où puis-je trouver un référentiel central de toutes les bibliothèques Arduino disponibles?


11

Actuellement; lorsque je démarre un nouveau projet Arduino avec du nouveau matériel, la première chose que je fais est de rechercher des bibliothèques tierces qui apportent un support Arduino pour ce matériel.

Les premiers endroits que je regarde sont:

En général, je ne trouve aucune bibliothèque de support ou plusieurs bibliothèques différentes (il est assez rare d'en trouver une seule) à différents endroits avec différents niveaux de documentation, différents niveaux de test ...

Une fois que j'ai trouvé la bibliothèque dont j'ai besoin (parfois je dois en essayer plusieurs), je la télécharge dans mon dossier de bibliothèques Arduino, je l'utilise et je l'oublie.

Je trouve ce processus lourd:

  • recherche manuelle avec différentes options possibles, pas toujours bien documentée
  • téléchargement manuel et installation dans les bibliothèques Arduino
  • aucun contrôle de version dans le processus (toutes les versions d'une bibliothèque ont le même nom et ne peuvent donc pas coexister dans le dossier de la bibliothèque Arduino).

Je souhaite qu'il y ait un référentiel central avec toutes les bibliothèques disponibles pour Arduino, avec:

  • description (matériel pris en charge, cartes prises en charge)
  • code source
  • Documentation
  • versions

Et un outil (Arduino IDE ou externe) pour accéder à ce référentiel au moment de la construction du projet.

Une sorte de maven pour Arduino en fait.

J'ai déjà vu plusieurs discussions sur le forum Arduino, mais il semble qu'elles n'aient mené nulle part:

Y a-t-il d'autres options, qui sont rendues utilisables (par la communauté ou les individus, pourquoi pas)?


Ce serait similaire à PyPi pypi.python.org/pypi et virtualenv en Python, si quelqu'un a besoin d'un analogue dans une autre langue.
Cybergibbons

Une autre bonne source est PJRC pjrc.com/teensy/td_libs.html
Cybergibbons

Quelque chose me dit que le wiki de balise de bibliothèque serait un bon endroit pour créer une telle base de données. ~ 35 000 caractères devraient fournir suffisamment d'espace pour développer une liste très complète.
asheeshr

@AsheeshR pourquoi pas? Mais d'abord, une description claire de ce qui est requis (et de ce qui est facultatif) pour chaque entrée de bibliothèque doit être définie, afin que ce 3template3 puisse être suivi pour chaque entrée ajoutée.
jfpoilpret

@jfpoilpret C'est un sujet pour une discussion Arduino Meta .
asheeshr

Réponses:


4

Vous venez de décrire les problèmes que l'entreprise pour laquelle je travaille tente de résoudre. Nous avons récemment lancé un produit appelé biicode . Il semble exactement ce que vous recherchez.

biicode est à la fois un référentiel central en ligne pour le code et un outil client qui comprend:

  • Facile à utiliser par les débutants, configurable pour les utilisateurs plus avancés
  • Résolution des dépendances, de manière transitoire, comme le fait maven, mais sans fichiers de configuration: lit les dépendances directement à partir du code source.
  • Référentiel central, tout le monde peut télécharger ses bibliothèques. Ils peuvent être explorés, parcourus et découverts sur le Web
  • Contrôle de version: il vérifie la compatibilité des versions et permet des mises à jour sûres des dépendances
  • Vous pouvez l'utiliser avec n'importe quel éditeur de texte (il a un support d'éclipse en option)
  • Il gère la configuration et les compilations du projet, clignote le firmware généré sur la carte
  • Il a un joli moniteur série en plus

Vous pouvez voir une démo rapide ici et en savoir plus dans la documentation .


Répondu 2014, son 2018 toujours en production?
parohy

Non, est maintenant conan.io de jfrog et ne sais plus s'il prend en charge arduino
hithwen

4

Depuis que cette question a été posée pour la première fois, il y a maintenant le gestionnaire de bibliothèque Arduino, intégré à l'IDE Arduino. Là, vous pouvez rechercher et installer des bibliothèques.

Il y a des informations sur le fonctionnement du gestionnaire de bibliothèque ici: https://github.com/arduino/Arduino/wiki/Library-Manager-FAQ

Il n'y a cependant pas de site officiel répertoriant les bibliothèques, j'ai donc récemment créé ce site non officiel, basé sur les mêmes données dans le gestionnaire de bibliothèque Arduino:

http://www.arduinolibraries.info/



2

Si vous souhaitez créer un tel registre vous-même, vous pouvez jeter un œil à npm , le gestionnaire de packages de Node.js , qui est open-source et dont la portée est très similaire à celle que vous souhaitez décrire. Npm est à la fois:

  1. un registre central avec des métadonnées sur chaque bibliothèque:
    • nom, description, mots clés, page d'accueil, auteur, contributeurs
    • numéro de version, en principe conforme au versioning sémantique
    • URL du référentiel source (svn, git, github, gitlab, bitbucket ...)
    • informations de compatibilité (dans ce cas, il s'agit des versions de Node)
    • Licence
    • dépendances
  2. un outil en ligne de commande pour:
    • recherche dans le registre
    • télécharger et installer des packages, en suivant récursivement leurs dépendances
    • publier et mettre à jour vos propres packages dans le registre.

Voir par exemple la page d'une bibliothèque populaire et le fichier JSON contenant ses métadonnées.


1

Il n'y en a pas. Malheureusement, vous devrez rechercher manuellement chaque bibliothèque qui vous intéresse.

Si vous êtes intéressé à créer un tel référentiel central, alors que ce serait génial, ce n'est pas le forum approprié pour le faire.


Alors, que conseilleriez-vous si nous devions créer un tel référentiel?
jfpoilpret

Euh ... commencez? Que voulez-vous dire conseiller? Il s'agit essentiellement d'un site Web. Peut-être ajouter quelque chose de gestionnaire de paquets à l'éditeur de texte Arduino si vous y étiez vraiment? Le problème majeur, comme toujours, va être d'amener les gens à l' utiliser réellement .
Connor Wolf

1
Franchement, même si vous ajoutez un gestionnaire de paquets de fantaisie à l'éditeur de texte arduino, je ne sais pas quel type d'adoption vous allez obtenir, car l'éditeur arduino est horrible et les gens ont tendance à cesser de l'utiliser assez rapidement . En tant que tel, vous auriez presque besoin d'un gestionnaire de packages séparé, donc je dirais presque simplement un site Web de base avec un index des bibliothèques, un bref texte descriptif et des liens vers l'endroit où ils sont réellement hébergés est le meilleur pari.
Connor Wolf

C'était mon idée aussi, le but ne serait pas d'héberger des bibliothèques mais plutôt d'en garder des références, ainsi que des métadonnées utiles. En ce qui concerne Arduino IDE, je suis d'accord, je ne l'utilise pas très souvent, mais un outil externe devrait être facile à intégrer ultérieurement.
jfpoilpret

@jfpoilpret - Le problème avec un outil externe est, comme avec les gestionnaires de packages, la résolution des dépendances et la gestion des exigences de version. Le peuple arduino ne semble pas trop gêné par le maintien de la compatibilité descendante, et de nombreuses bibliothèques nécessitent "arduino verson {blah}". Je pense vraiment qu'une simple liste de références est le meilleur pari. Tout élément plus complexe peut arriver plus tard.
Connor Wolf

0

Arduino IDE et les bibliothèques associées sont inclus en tant que logiciel installable dans la plupart des référentiels OS. Malheureusement, les versions de ces référentiels sont généralement obsolètes, voire plusieurs mois. Il semblerait que le vrai problème consiste à faire en sorte que les gestionnaires de référentiels OS intègrent les nouvelles versions à mesure qu'elles deviennent disponibles.

Ce problème est aggravé lorsque la version de votre système d'exploitation n'a pas été mise à jour vers la dernière version, car cela vous oblige à utiliser un référentiel de logiciels obsolète.

Bien que ce ne soit pas une réponse parfaite, vous devez probablement vous assurer que vous utilisez la dernière version de votre système d'exploitation, puis encourager les gestionnaires de référentiels pour ce système d'exploitation à incorporer la dernière version d'Arduino IDE.

Une alternative serait d'aller sur la page d'accueil Arduino.org et de suivre les instructions pour télécharger et installer la dernière IDE et les bibliothèques associées. Ce sera probablement sous la forme d'un fichier .tar.gz, vous devrez donc savoir comment décompresser, décompresser et créer le logiciel nécessaire.


0

Je pense que votre souhait ne se réalisera pas. J'espère pour cela, car avoir un seul endroit pour tous les bibliothèques Arduino, sans aucune bibliothèque autorisée, ne serait pas là et toutes ces bibliothèques seraient obligées de respecter toutes les normes commerciales de qualité, de test et de documentation (+ qualité du code, efficacité et lisibilité). signifie que seuls des professionnels et des équipes qualifiées similaires seraient autorisés à publier une bibliothèque Arduino et que tout serait régi par une seule entité, ce qui imposerait la suppression des bibliothèques fonctionnellement en double ou similaires. Et une telle entité sonnerait ou deviendrait plus tard mauvaise.

J'aime que l'Arduino soit gratuit et cela signifie également que je suis libre d'écrire une bibliothèque pour prendre en charge certaines fonctionnalités (que je veux utiliser) de certains matériels (que j'ai, l'intention d'acheter ou que je veux faire moi-même - même fortement expérimental et peut-être instable, mais amusant pour moi).

Avec votre grande autorité centrale efficace, je choisirais simplement une autre plate-forme gratuite, plutôt que d'être poursuivi pour le résultat moins que parfait et certifié commercialement de mon passe-temps à jouer avec l'électronique et forcé de travailler pour eux, PAS mes objectifs sur MON temps libre.

Et si votre Big Central Athority ne m'obligeait pas à forcer le travail libre pour eux, alors que feriez-vous à propos de ma bibliothèque permettant une utilisation spéciale de certains matériels courants, et à propos de le partager avec quiconque le veut, même si ce n'est pas le cas résoudre toutes les fonctionnalités HW entièrement en matière professionnelle et documenté seulement autant que je serais à l'aise de passer mon propre temps libre avec de la documentation. Et que se passerait-il s'il surgissait une autre bibliothèque pour le même matériel, qui permettrait une autre partie de la fonctionnalité ou utiliserait une autre API et une autre approche pour l'ensemble de la problématique?

À savoir, j'ai acheté un module multi 7 segments et il y avait une "bibliothèque officielle" pour son fabricant. J'ai fait une autre bibliothèque pour le même module. Et maintenant? Ma bibliothèque devrait-elle être dans le référentiel central en tant que "la seule bibliothèque pour ce matériel" ou devrait-elle être "la bibliothèque officielle du fabricant"? Notez que s'il y avait les deux, cela casserait votre "un et un seul" point de bibliothèque demandé. Si vous interdisez celui du fabricant, alors "le seul" manquerait de nombreuses fonctionnalités, comme un tampon intégré pour les nombres, une interface d'objet simple, un exemple simple, comment l'utiliser et il y aurait une forte dépendance à un temporisateur spécifique et générique API non objet, juste fonctionnelle, qui obligerait l'utilisateur à diviser les entiers en chiffres uniques - ne semble pas trop bon. Si vous interdisez ma bibliothèque, l'utilisateur aurait ce qui précède, mais son affichage ne serait actualisé que 10 fois par seconde avec des clignotements et des fantômes d'autres chiffres partout, tout en utilisant pleinement le processeur et la documentation serait principalement en chinois. Et l'utilisateur manquerait un taux de rafraîchissement de 100x par seconde avec presque aucune utilisation du processeur, de beaux chiffres et caractères propres (éventuellement définis par l'utilisateur). - Pas bon non plus.

Dans l'état actuel du chaos, l'utilisateur (peut-être vous ou quelqu'un d'autre) peut utiliser la bibliothèque, qui convient mieux à ses besoins (que ce soit la simplicité et la prise en charge des nombres entiers natifs, ou que ce soit un rafraîchissement rapide et propre et une faible utilisation du processeur) ou combiner les deux ensemble, faire le troisième avec un rafraîchissement rapide ET une manipulation simple des entiers ET un jeu de caractères défini par l'utilisateur, AVEC une belle API d'objet et une riche documentation. Il n'a besoin que d'une personne avec un peu de temps et de dévouement, ce qui facilite les débutants et certaines compétences en anglais et les connaissances de base des objets et comment les "bibliothèques Arduino officielles" sont emballées, afin que l'EDI puisse facilement les importer. (Et cette personne devrait le faire et le contribuer au conditionneur de bibliothèque Arduino).

Je ne le ferais pas - car mes besoins sont des API fonctionnelles bien meilleures et plus simples à utiliser, prennent moins d'octets de la mémoire et moins de cycles CPU et je n'ai aucune envie d'améliorer la bibliothèque d'une manière que je n'utiliserais pas. De plus, je n'utilise pas Arduino IDE, j'utilise un simple Makefile pour construire et télécharger les programmes, donc je peux facilement utiliser un bon éditeur de texte (vim dans mon cas) et ne pas me battre avec IDE-Notepad-parody.

Sous Big Central Authority appliquant votre modèle, je ne me soucierais pas du tout d'utiliser Arduino et vous serez coincé avec la version chinoise, le cas échéant (car elle n'y arriverait pas faute d'une bonne documentation en anglais et d'un format de package approprié) .


0

http://downloads.arduino.cc/libraries/library_index.json fournit une liste de toutes les bibliothèques disponibles dans Arduino Library Manager.

J'ai utilisé ce fichier pour créer https://github.com/scls19fr/arduino_libraries_search C'est un script Python Pandas pour rechercher des bibliothèques Arduino correspondant à certains mots clés et pour les exporter vers un fichier Excel

Vous pouvez également trouver des bibliothèques Arduino en utilisant:

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.