È da molto tempo che cerco una buona risposta a questa domanda.
In genere, qualsiasi progetto Arduino ma il più semplice includerà:
- Il file principale del codice sorgente
MyProject.ino
- Librerie specifiche per il progetto (
MyProjectLibrary1.h
,MyProjectLibrary1.cpp
...) - Librerie di terze parti (generalmente open source gratuito, aggiunte manualmente alla directory delle librerie di Arduino)
- Schemi, schemi PCB
- Documentazione
- ...
Tutto ciò rende difficile mantenere l'intero codice e il documento di un progetto in Gestione del codice sorgente (ad esempio su Subversion, Git o GitHub).
Gestire il controllo del codice sorgente del progetto significa gestire la versione di tutti i file utilizzati dal progetto, comprese le librerie di terze parti.
Ora per un singolo progetto, devo definire una struttura di directory che:
- Include tutti i file di progetto come descritto sopra
- Posso impegnarmi completamente in uno strumento di gestione del codice sorgente (comprese dipendenze di terze parti)
- Posso effettuare il checkout in qualsiasi punto del mio disco rigido e creare il progetto da lì (deve essere un unico percorso come imposto dall'IDE di Arduino)
- Posso comprimere in un archivio autonomo che posso inviare a un amico per farlo costruire il più facilmente possibile (nessun download manuale aggiuntivo)
Ciò che trovo particolarmente complicato con i progetti Arduino è la gestione delle dipendenze delle librerie esterne. Progetti Java sviluppatori hanno Maven repository per questo e che aiuta molto nella gestione di tutte le dipendenze esterne. Ma non abbiamo un sistema equivalente per le librerie Arduino.
Sarei interessato a sapere come altri creatori di progetti Arduino affrontano questi aspetti nei propri progetti.
Inoltre, sono aperto a cambiare il mio processo di sviluppo, incluso il mio IDE (attualmente utilizzo Eclipse con il plug-in Arduino per la maggior parte del tempo, e quindi mi assicuro che i miei progetti possano funzionare anche direttamente con l'IDE Arduino).