- 잡담 - 포스팅 수정 190821
[아두이노] vscode 에서 아두이노 개발하기
아두이노의 기본 ide 개발환경이 너무 불편하여 vs code 로 아두이노 개발환경을 꾸민자료를 정리한다.
잡담) 오랜만에 펌웨어 개발하니 너무 잼난다. ㅎㅎ. 아두이노의 라이브러리들을 써서 개발하니 개발속도가 너무 빨라서 스스로도 뻘쭘할정도 ㅠㅠ 빨리 개발하고 일하는척하고 놀꺼다. ㅋㅋ
vscode 플러그인설치
아두이노의 extension 을 설치한다.
- arduino 로 검색했을때 가장많이 다운로드 받은 공식 plugin 이다.
공식 github 저장소 : 매뉴얼 참고할것
위의 사이트에서 매뉴얼 및 소스코드등을 배포한다. 그냥 vs code 내의 플러그인 매뉴에서 바로 다운로드 하여 설치하는것이 좋은듯하다.
매뉴얼등은 위의사이트에서 정독하여 사용하면된다.
vscode 환경설정
.vscode 폴더 만들고 setting.json 을 만든다.
setting.json 은 vs code 의 기본 설정에 덮어쓴다.
.vscode/setting.json
컴파일러 및 vs code 가 아두이노 플러그인을 사용하기 위한 기본설정이다.
settings.json
{
"arduino.path": "C:/Program Files (x86)/Arduino",
"arduino.commandPath": "arduino_debug.exe",
"arduino.additionalUrls": "",
"arduino.logLevel": "info",
"arduino.enableUSBDetection": true,
"arduino.disableTestingOpen": false,
"arduino.skipHeaderProvider": false,
// "terminal.integrated.shellArgs.windows": ["/K", "chcp 65001"],
}
- arduino.path : 기본 설치경로
- arduino.commandPath : 아두이노의 기본프로그램 - 컴파일러, upload 등등의 모든 역할을담당하는 프로그램이다. - arduino.exe 의경우 ui 등을 포함한 실행파일이므로 arduino_debug.exe 를 적는다. - 해당 부분에 사용자가 bat 파일로 만들어서 자동화 시켜도 된다.
- 나머지 부분들은 그냥 위의 내용을 그대로 작성한다.
- 해당 부분을 수정할경우 vs code 를 재실행 시켜야 적용된다.
.vscode/arduino.json
아두이노보드를 사용하기 위한 일종의 프로젝트 설정파일이다. -> 자동으로 생성해도된다.
자동생성방법
- F1 키를 누른다.
- 그럼 커맨드 창이 나온다.
- arduino: initialize 를 선택한다.
- 프로젝트 메인 스케치(main) 파일과 보드를 설정한다.
arduino.json
{
"sketch": "main\\main.ino",
"board": "arduino:avr:uno",
"port": "COM72",
"output": "../build"
}
만약 comport / baudrate / 보드설정등은 다음의 화면 우측 밑에서 언제든지 설정변경가능하다. (보드나 baudrate / comport 부분등을 클릭하면 설정가능)
컴파일 및 파일업로드
F1을 누른후에..
- arduino : verify / arduino : upload 를 통해서 컴파일 및 보드에 업로드가 가능하다.
- 단, 빌드시 나오는 메시지는 한글이 깨진다. - 별짓을 다해봤는데 출력이 잘안된다 ㅠㅠ
한글깨짐 ㅠㅠ : 해결가능하다!!! 오오!!!
추가 : 한글 나오게 하는방법
arduino 는 java 위에 올라가는것 같다.
아두이노 설치폴더에 보면 arduino_debug.l4j.ini / arduino.l4j.ini 파일이 있는데 해당내용이 java 머신의 설정파일이다.
해당 ini 파일에 다음의 내용을 추가하면 utf8 로 강제 인코딩되어 콘솔에 프린트된다.!! 한글이 된다!!
-Dfile.encoding=UTF8
주의사항 : 파일관리?
- ino 파일이 아닌 직접 cpp 를 작성하여 코드(프로젝트를 작성한다.) - 새로 추가되는 파일들을 ino 파일로 만들었더니 개념이 복잡해진다 ㅠㅠ - 그냥 새로운 파일들을 header 와 함께 cpp 로작성하여 메인 스케치파일에서 include 하여 사용한다.
- 프로젝트의 개념이 한 폴더에 있는 파일들 같다. - 메인 스케치 파일경로에 다른 cpp 파일들을 넣으면 자동 컴파일된다.
팁 : 사용자 라이브러라 추가하기
컴파일을 하다보면 다음의 파일이 자동으로 생성된다.
c_cpp_properties.json
{
"configurations": [
{
"name": "Win32",
"includePath": [
"C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino"
],
"browse": {
"limitSymbolsToIncludedHeaders": false,
"path": [
"C:\\Program Files (x86)\\Arduino\\libraries\\Firmata",
"C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino"
]
},
"intelliSenseMode": "msvc-x64",
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.13.26128/bin/Hostx64/x64/cl.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"defines": [
"USBCON"
]
}
],
"version": 4
}
해당 부분에서 만약 사용자 라이브러리를 추가하려면 includePath / browse 부분에 적당하게 path 를 넣어주면된다.
그리고 arduino : verify 를 실행 한번해줘야한다.
팁 : 기본제공 확장 라이브러리 추가하기
- f1 키를 누른다.
- arduino : library manager 를 선택한다.
- 그럼 라이브러리 매니져가 뜬다.
- 추가하고싶은 라이브러리를 install 한다.
- 라이브러리가 인스톨 되면 c_cpp_properties.json 쪽에 인스톨한 라이브러리가 자동으로 추가된다.
팁 : 디버그메시지 창 띄우기
- f1 키를 누른다.
- arduino : open serial monitor 를 선택한다.
- 그럼 시리얼창이 뜬다!!
결론
기존 아두이노 ide 는 실제 개발을 진행하다보면 불편한점이 너무 많다.
vs code 를 사용하니 단축키로 컴파일 / 업로드 / 데이터확인이 모두 한방에 이뤄졌다. 또한 코드 탐색도 가능하여 훨씬 개발하기 수월하다. 단, 헤더파일등에 대한 검사등이 추가가 되었는지 각종 라이브러리나 사용자가 추가한 함수들에 대해서 사용할때 워닝이나 에러가 많이발생하여 헤더파일 관리가 조금 번거롭다 ㅠㅠ
기존에 개발에 대해서 익숙하지 않은 분들은 기본 아두이노 ide 를 사용하고, 만약 기존 개발자들은 vs code 로 환경세팅하여 개발하는것을 추천한다