Dove posso trovare un repository centrale di tutte le librerie Arduino disponibili?


11

Attualmente; quando inizio un nuovo progetto Arduino con un nuovo hardware, la prima cosa che faccio è cercare librerie di terze parti che offrano il supporto Arduino per questo hardware.

I primi posti che guardo sono:

Generalmente non trovo nessuna libreria di supporto o diverse librerie diverse (è abbastanza raro trovarne solo una) in posizioni diverse con diversi livelli di documentazione, diversi livelli di test ...

Una volta trovata la libreria di cui ho bisogno (a volte devo provarne diverse), la scarico nella mia cartella delle librerie di Arduino, la uso e la dimentico.

Trovo questo processo ingombrante:

  • ricerca manuale con diverse opzioni possibili, non sempre ben documentata
  • download manuale e installazione nelle librerie Arduino
  • nessun controllo di versione nel processo (tutte le versioni di una libreria hanno lo stesso nome e quindi non possono coesistere nella cartella della libreria di Arduino).

Vorrei che ci fosse un repository centrale con tutte le librerie disponibili per Arduino, con:

  • descrizione (hardware supportato, schede supportate)
  • codice sorgente
  • documentazione
  • versioni

E uno strumento (Arduino IDE o esterno) per accedere a questo repository in fase di creazione del progetto.

Una specie di maven per Arduino in effetti.

Ho visto diverse discussioni una volta sul forum di Arduino, ma sembra che non abbiano portato da nessuna parte:

Ci sono altre opzioni, che sono rese utilizzabili (dalla comunità o dagli individui, perché no)?


Questo sarebbe simile a PyPi pypi.python.org/pypi e virtualenv in Python, se qualcuno avesse bisogno di un analogo in un'altra lingua.
Cybergibbons,

Un'altra buona fonte è PJRC pjrc.com/teensy/td_libs.html
Cybergibbons

Qualcosa mi dice che il tag della libreria wiki sarebbe un buon posto per creare un tale database. ~ 35.000 caratteri dovrebbero fornire ampio spazio per sviluppare un elenco molto completo.
asheeshr,

@AsheeshR perché no? Ma prima, deve essere definita una chiara descrizione di ciò che è richiesto (e di ciò che è facoltativo) per ciascuna voce della libreria, in modo che questo 3template3 possa essere seguito per ogni voce aggiunta.
jfpoilpret,

@jfpoilpret Questo è un argomento per una discussione su Arduino Meta .
asheeshr,

Risposte:


4

Hai appena descritto i problemi per cui l'azienda che sto lavorando sta cercando di risolvere. Recentemente abbiamo lanciato un prodotto chiamato biicode . Sembra esattamente quello che stai cercando.

biicode è sia un repository centrale online per il codice sia uno strumento client che presenta:

  • Facile da usare per i principianti, configurabile per utenti più esperti
  • Risoluzione delle dipendenze, transitivamente, come fa Maven, ma senza file di configurazione: legge le dipendenze direttamente dal codice sorgente.
  • Repository centrale, chiunque può caricare le proprie librerie. Possono essere esplorati, navigati e scoperti nel web
  • Controllo versione: verifica la compatibilità delle versioni e consente aggiornamenti sicuri delle dipendenze
  • Puoi usarlo con qualsiasi editor di testo (ha il supporto eclipse opzionale)
  • Gestisce la configurazione e le compilazioni del progetto, il flash genera il firmware generato sulla scheda
  • Ha un bel monitor seriale come un vantaggio

Puoi vedere una breve demo qui e leggere di più nella documentazione .


Con risposta 2014, il suo 2018 è ancora in produzione?
parohy,

No, ora è conan.io di jfrog e non so più se supporta arduino
hithwen

4

Da quando questa domanda è stata posta per la prima volta, ora c'è Arduino Library Manager, integrato nell'IDE di Arduino. Lì puoi cercare e installare librerie.

Ci sono informazioni su come funziona il gestore della biblioteca qui: https://github.com/arduino/Arduino/wiki/Library-Manager-FAQ

Non esiste tuttavia un sito Web ufficiale che elenchi le biblioteche, quindi di recente ho creato questo sito non ufficiale, basato sugli stessi dati in Arduino Library Manager:

http://www.arduinolibraries.info/



2

Se vuoi creare un registro del genere da solo, potresti dare un'occhiata a npm , il gestore di pacchetti di Node.js , che è open-source e molto simile nell'ambito che vuoi descriverti. Npm è entrambi:

  1. un registro centrale con metadati su ciascuna libreria:
    • nome, descrizione, parole chiave, homepage, autore, collaboratori
    • numero di versione, in linea di principio conforme alla versione semantica
    • URL del repository di origine (svn, git, github, gitlab, bitbucket ...)
    • informazioni sulla compatibilità (in questo caso si tratta delle versioni di Node)
    • licenza
    • dipendenze
  2. uno strumento da riga di comando per:
    • ricerca nel registro
    • scaricare e installare pacchetti, seguendo ricorsivamente le loro dipendenze
    • pubblicare e aggiornare i propri pacchetti nel registro.

Vedi ad esempio la pagina di una libreria popolare e il file JSON contenente i suoi metadati.


1

Non c'è nessuno. Sfortunatamente, dovrai cercare manualmente ogni libreria che ti interessa.

Se sei interessato a creare un repository così centrale, mentre sarebbe fantastico, questo non è il forum corretto in cui farlo.


Allora cosa consiglieresti se dovessimo creare un repository di questo tipo?
jfpoilpret,

Uh .... iniziare? Cosa intendi dire? È fondamentalmente un sito Web. Magari aggiungi qualcosa di gestore di pacchetti all'editor di testo di Arduino se ti interessasse davvero? Il problema principale, come sempre, sarà convincere le persone a usarlo davvero .
Connor Wolf,

1
Francamente, anche se aggiungi un gestore di pacchetti fantasiosi all'editor di testo Arduino, non so che tipo di adozione otterrai, perché l'editor di Arduino è orribile e la gente tende a smettere di usarlo in un ordine abbastanza breve . Come tale, avresti quasi bisogno di un gestore di pacchetti separato, quindi direi solo un sito Web di base con un indice di librerie, un breve blurb e collegamenti a dove sono effettivamente ospitati è la soluzione migliore.
Connor Wolf,

Anche questa era la mia idea, lo scopo non era quello di ospitare librerie, ma piuttosto di mantenere dei riferimenti ad esse, insieme a metadati utili. Per quanto riguarda Arduino IDE, sono d'accordo, non lo uso molto spesso, ma uno strumento esterno dovrebbe essere facile da integrare con esso in seguito.
jfpoilpret,

@jfpoilpret - Il problema con uno strumento esterno è, come con i gestori dei pacchetti, la risoluzione delle dipendenze e la gestione dei requisiti di versione. Le persone arduino non sembrano troppo infastidite dal mantenimento della compatibilità con le versioni precedenti e molte librerie richiedono "arduino verson {blah}". Penso davvero che solo un elenco di riferimenti sia la scommessa migliore. Qualsiasi cosa più complessa può venire dopo.
Connor Wolf,

0

L'IDE Arduino e le librerie associate sono inclusi come software installabile nella maggior parte dei repository del sistema operativo. Sfortunatamente le versioni di questi repository di solito sono obsolete di diversi mesi o addirittura anni. Ciò sembrerebbe che il vero problema sia far sì che i gestori del repository del sistema operativo incorporino le nuove versioni non appena diventano disponibili.

Questo problema si aggrava quando la versione del tuo sistema operativo non è stata aggiornata all'ultima versione, perché questo ti costringe a utilizzare un repository software obsoleto.

Sebbene non sia una risposta perfetta, dovresti probabilmente assicurarti di utilizzare l'ultima versione del tuo sistema operativo, quindi incoraggiare i gestori del repository per quel sistema operativo a incorporare l'ultima versione di Arduino IDE.

Un'alternativa sarebbe quella di andare alla homepage di Arduino.org e seguire le istruzioni per scaricare e installare l'IDE più recente e le librerie associate. Questo probabilmente avrà la forma di un file .tar.gz, quindi dovrai sapere come decomprimere, decomprimere e costruire il software necessario.


0

Penso che il tuo desiderio non si avvererà. Lo spero, perché avere un solo posto per tutte le librerie di Arduino, senza le librerie che non possono essere lì e tutte quelle biblioteche sarebbero costrette a sostenere tutti gli standard commerciali di qualità, test e documentazione (+ qualità del codice, efficacia e leggibilità) significa che solo i professionisti e i team qualificati simili sarebbero autorizzati a pubblicare alcune librerie Arduino e tutto sarebbe governato da un'unica entità, che imporrebbe la rimozione di librerie funzionalmente duplicate o simili. E tale entità sarebbe diventata figlio o in seguito sarebbe diventata malvagia.

Mi piace Arduino per essere libero e questo significa anche che sono libero di scrivere una libreria per il supporto di alcune funzionalità (che voglio usare) di alcuni hardware (che ho, ho intenzione di acquistare o voglio farmi da solo - anche altamente sperimentale e forse instabile, ma divertente per me).

Con la tua grande autorità centrale efficace, sceglierei semplicemente un'altra piattaforma gratuita, piuttosto che essere citato in giudizio per un risultato inferiore a quello perfetto e commercialmente certificato del mio hobby giocando con l'elettronica e costretto a lavorare per i loro, NON i miei obiettivi nel MIO tempo libero.

E se la tua grande università centrale non mi costringesse a forzare il lavoro del lavoro libero per loro, allora cosa faresti della mia biblioteca che consente un uso speciale di hardware comune e che lo condivido con chiunque lo desideri, anche se non lo fa risolvere tutte le funzionalità HW in modo professionale e documentato solo se mi piacerebbe passare il mio tempo libero con la documentazione. E se sorgesse un'altra libreria per lo stesso HW, che abiliterebbe un'altra parte della funzionalità o userebbe un'altra API e un altro approccio all'intera problematica?

Vale a dire che ho acquistato un modulo multi-7 segmenti e c'era una "biblioteca ufficiale" per esso dal suo produttore. Ho creato un'altra libreria per lo stesso modulo. E adesso? La mia libreria dovrebbe essere nel repository centrale come "l'unica libreria per questo HW" o dovrebbe esserci quella "ufficiale dal produttore"? Si noti che se ci fossero entrambi, ciò spezzerebbe il punto della libreria "uno e solo uno" richiesto. Se non si accetta quello del produttore, allora "l'unico" mancherebbe molte funzionalità, come buffer integrato per numeri, interfaccia semplice oggetto, semplice esempio, come usarlo e ci sarebbe una forte dipendenza da un timer specifico e generico API non oggetto, solo funzionale, che richiederebbe all'utente di spezzare numeri interi in cifre singole in qualche modo - non suona troppo bene. Se non autorizzi la mia libreria, l'utente avrebbe quanto sopra, ma il suo display si aggiornerebbe solo 10 volte al secondo con gli occhi lampeggianti e lasciando fantasmi di altre cifre dappertutto, mentre utilizzerebbe completamente il processore e la documentazione sarebbe principalmente in cinese. E l'utente perderebbe la frequenza di aggiornamento 100x al secondo con quasi nessun utilizzo del processore, cifre e caratteri puliti e piacevoli (definiti anche dall'utente). - Inoltre non va bene.

Nello stato attuale del caos l'utente (forse tu o chiunque altro) può utilizzare la libreria, che è più adatta alle sue esigenze (che si tratti di semplicità e supporto di numeri interi nativi, o che si tratti di aggiornamento rapido pulito e basso utilizzo della CPU) o combinare entrambi insieme, rendendo terzo con aggiornamento rapido E semplice manipolazione di numeri interi E set di caratteri definiti dall'utente, CON API per oggetti di buona qualità e ricca documentazione. Ha solo bisogno di una persona con un po 'di tempo e dedizione per facilitare i principianti e alcune abilità in inglese e le conoscenze di base sugli oggetti e su come sono imballate le "librerie ufficiali di Arduino", in modo che l'IDE possa importarle facilmente. (E tale persona dovrebbe farlo e contribuire al pacchetto di librerie Arduino).

Non lo farei: per le mie esigenze l'API funzionale è molto migliore e più semplice da usare, richiede meno byte dalla memoria e meno cicli della CPU e non ho alcun bisogno di migliorare la libreria in modi che non userei. Inoltre non uso Arduino IDE, utilizzo un semplice Makefile per compilare e caricare i programmi, quindi posso facilmente usare un buon editor di testo (vim nel mio caso) e non combattere con IDE-Notepad-parody.

Sotto Big Central Authority che rafforza il tuo modello, non mi dispiacerebbe affatto usare Arduino e rimarrai bloccato con la versione cinese, se del caso (poiché non lo farebbe lì per mancanza di buona documentazione inglese e formato del pacchetto adeguato) .


0

http://downloads.arduino.cc/libraries/library_index.json fornisce un elenco di tutte le librerie disponibili in Arduino Library Manager.

Ho usato questo file per creare https://github.com/scls19fr/arduino_libraries_search È uno script di Python Pandas per cercare librerie Arduino che corrispondono ad alcune parole chiave e per generare file Excel

Puoi anche trovare le librerie di Arduino usando:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.