Давно я шукав гарну відповідь на це питання.
Як правило, будь-який проект Arduino, але найпростіший, включатиме:
- Основний файл вихідного коду
MyProject.ino
- Бібліотеки, характерні для проекту (
MyProjectLibrary1.h
,MyProjectLibrary1.cpp
...) - Сторонні бібліотеки (як правило, безкоштовний відкритий код, доданий вручну до каталогу бібліотек Arduino)
- Схеми, схеми друкованої плати
- Документація
- ...
Все це ускладнює збереження всього коду та документа одного проекту під управлінням вихідного коду (наприклад, на Subversion, Git або GitHub).
Управління джерелом управління проектом означає керування версією всіх файлів, що використовуються проектом, включаючи сторонні бібліотеки.
Тепер для одного проекту мені потрібно визначити структуру каталогу, яка:
- Включає всі файли проекту, як описано вище
- Я можу повністю взяти на себе зобов’язання використовувати інструмент управління вихідним кодом (включаючи сторонні залежності)
- Я можу оформити замовлення будь-де на своєму жорсткому диску і створити проект звідти (чи повинен він бути одним місцем, як накладено Arduino IDE)
- Я можу зафіксувати автономний архів, який я можу надіслати другові, щоб він склав якомога простіше (без додаткової завантаження вручну)
Що мені особливо складно в проектах Arduino - це управління залежностями зовнішніх бібліотек. Розробники проектів Java мають для цього сховища Maven , що дуже допомагає в управлінні всіма зовнішніми депами. Але у нас немає еквівалентної системи для бібліотек Arduino.
Мені було б цікаво дізнатись, як інші розробники проектів Arduino мають справу з цими аспектами у власних проектах.
Також зауважте, що я відкритий для зміни свого процесу розробки, включаючи свій IDE (в даний час я використовую Eclipse з плагіном Arduino більшу частину часу, і тоді я переконуюсь, що мої проекти також можуть працювати безпосередньо з ID Arduino IDE).