아두이노 프로젝트 폴더 설명.
v. Arduino IDE 2.3.6
1. 아두이노 IDE가 특별하게 인식하는 폴더.
이 폴더들은 아두이노 IDE가 컴파일하거나 메뉴에 표시하는 등 특별한 기능을 수행합니다.
- src
아두이노의 공식 스펙은 src를 표준으로 권장합니다.
이 폴더 안의 모든 .c, .cpp 파일은 스케치와 함께 자동으로 컴파일됩니다.
.ino 파일이 너무 길어질 때 코드를 기능 별로 분리하거나, 해당 스케치에서만 사용할 라이브러리를 넣을 때 사용합니다.
하위 폴더를 자유롭게 둘 수 있고, 아키텍처별 코드를 src/arch/avr, src/arch/esp32처럼 나눠 쓰기도 합니다.
내_프로젝트_폴더/
├── 내_프로젝트.ino
└── src/
└── MyLibrary/ <-- (사용하려는 라이브러리 폴더)
├── MyLibrary.h
├── MyLibrary.cpp
└── library.properties
└── ... (기타 파일)
#include <MyLibrary.h>
- utility
예전(1.0 방식) 라이브러리에서 보조 소스를 넣던 위치입니다. 지금은 src/ 사용을 권장하며, utility/는 레거시 호환용으로 남겨두는 편입니다.
라이브러리의 src 폴더와 utility 폴더는 모두 C++ 컴파일러의 인클루드 경로(-I 옵션)에 추가됩니다.
- data
파일 시스템에 업로드할 파일(HTML, CSS, JSON, 텍스트, 이미지 등)을 보관합니다.
이 폴더의 파일은 컴파일되지 않습니다. 대신 ESP32, ESP8266 등 파일 시스템(SPIFFS, LittleFS)을 지원하는 보드에서 "Sketch Data Upload" 도구를 사용할 때, 이 폴더의 내용이 통째로 보드의 파일
시스템에 복사됩니다. (주로 웹 서버 페이지나 설정 파일을 저장합니다.)
아두이노 IDE의 "Tools" 메뉴에 있는 "ESP32 Sketch Data Upload" 또는 "ESP8266 LittleFS Data Upload" 같은 플러그인 도구를 통해 보드의 플래시 메모리(파일 시스템 영역)로 직접 업로드됩니다.
- examples
라이브러리 사용 방법을 보여주는 예제 스케치(.ino)들을 모아둡니다.
각 예제는 예제이름/예제이름.ino 구조로 두면 아두이노 IDE의 파일 > 예제 > [라이브러리 이름] 메뉴에 이 폴더 안의 스케치들이 자동으로 나타납니다.
- 기타 사항.
Arduino 빌드시 같은 폴더의 모든 .ino 파일을 하나의 소스로 합쳐서 컴파일합니다. 이때 폴더 이름과 같은 파일이 먼저, 나머지 .ino가 이름순(ASCII)으로 이어 붙고, 함수 원형(프로토타입)을 자동 생성해 줍니다.
결과적으로 서로 #include 없이도 서로의 함수를 부를 수 있습니다.
다만 기본값, 매개변수(디폴트 인자), 템플릿 함수, 함수 포인터로 넘길 콜백 등은 자동 생성이 어긋날 수 있습니다. 다른 ino의 함수를 호출할 ino 파일에 함수 원형을 선언해야 합니다.
예) void drawTemperature(float c);
폴더: MySketch/
MySketch.ino
sensors.ino
display.ino
위의 ino 파일끼리 서로 함수를 호출할 수 있습니다.
자동생성 오류가 날 수도 있으니 함수 호출 할 ino 파일에 함수 원형을 선언해 주세요.
2. 일반적인 소프트웨어 개발 관례 폴더.
이 폴더들은 아두이노 IDE가 특별하게 다루지는 않지만, 프로젝트 관리를 위해 대부분의 개발자가 약속처럼 사용하는 폴더입니다.
- docs
프로젝트 관련 문서(API 명세, 사용법, Doxygen 설정 파일, 라이선스)를 보관합니다.
IDE는 이 폴더를 무시합니다.
- tests/ 또는 test/
유닛 테스트(Unit Test)나 통합 테스트용 코드를 보관합니다.
IDE는 이 폴더를 무시합니다.
- extras
'기타 자료'를 보관합니다. 소스 코드나 예제는 아니지만 프로젝트와 관련된 파일들을 넣습니다.
IDE는 이 폴더를 무시합니다. (예: 관련 부품의 데이터시트 PDF, 3D 모델링 파일(.stl), Fritzing 다이어그램, 로고 이미지 등)
3. 특정 목적 폴더.
이 폴더들은 이름 그대로 매우 구체적인 목적을 가지며, 주로 관례에 따라 사용됩니다.
- schematics
하드웨어 회로도 파일(Eagle, KiCad, Fritzing 등)이나 PCB 레이아웃 파일을 보관합니다.
IDE는 이 폴더를 무시합니다.
- assets
assets 폴더의 내용물을 자동으로 컴파일되거나 업로드 되지 않습니다.
최종 릴리즈에 포함되지 않는 리소스 파일(이미지, 폰트, 사운드 파일 등)을 보관합니다.
예) 중간 작업 히스토리가 있는 포토샵 파일.
최종 릴리즈에 포함되지 않는 중간 작업물이나 폰트 같은 각종 리소스를 보관합니다.
댓글
댓글 쓰기