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