Visual Studio Code(VS Code)로 아두이노 프로그래밍하기
Arduino IDE 로 프로그래밍을 하다가 좀 더 쾌적한 환경에서 프로그래밍
을 하고 싶은 필요성이 생기면 참고하시면 됩니다.Arduino IDE 외에 다른 에디터로 아두이노 프로그래밍이 가능합니다. Visual Studio Code, Atom, Vim, Sublime Text, Visual Studio, Atmel Studio. Eclipse.. 등등 정말 다양한 환경에서 개발이 가능합니다. 개인적으로는 Visual Studio Code가 아래와 같은 장점을 가지고 있어, 이후 확장성을 위해서도 Visual Studio Code로 사용하시길 권장합니다.
Visual Studio Code 장점
- 무료
- 2020 점유율 1위의 에디터로 추후 업데이트도 계속 지원 예상됨
- 윈도우, 리눅스, 맥OS 모두 지원 가능
- MS가 열심히 관리함
- 심플한 디자인
- 다른 언어들도 동시에 개발 가능함
- 편리한 에디팅 기능
개요 : VSCode 사용 장점
기존 Arduino IDE 로 복잡한 코드를 작성하게 되면 아래와 같은 기능 제약이 있어 한계를 느끼게 됩니다.
- 낮은 코드 가독성
- 코드 자동 완성 기능 없음
- 코드 탐색 기능 없음
- 디버깅모드 없음
물론 개발 환경을 바꾸지 않더라도 Arduino IDE 환경 설정 또는 프로그래밍 기법으로 어느 정도 개선이 가능 합니다.
- 낮은 코드 가독성 : Arduino IDE 자체의 환경 설정으로 개선 가능 -> 클릭
- 코드 자동완성 기능 없음 : IDE 자체 대한이 없음
- 코드 탐색 기능 없음 : IDE 자체 대안이 없음
- 디버깅모드 없음 -> 프로그램
Visual Studio Code 의 Arduino Extention 을 이용하면 아래의 장점이 있습니다.
- 🧡 코드 자동 완성
- 🧡 코드 탐색 기능
- 구문 색상 표시
- 빌드 및 업로드
- 디버그 모드 가능 (제약이 있음)
- 기본 Arduino IDE에서 제공되는 예제, 라이브러리 관리자 등의 대부분 기능 지원
개발 환경 구성
Arduino IDE 설치
Visual Studio Code 로 Arduino 개발환경을 구성하기 위해, Arduino IDE 설치를 하셔야 합니다. Arduino IDE 는 아래 링크에서 Arduino Installer 로 설치를 진행하셔야 합니다. 설치 과정은 생략 합니다.
- Arduino IDE 다운로드 링크 -> 클릭
Visual Studio Code 설치
Visual Studio Code 는 각 운영체제에 맞게 다운로드하여 설치 하시면 됩니다. 설치 과정은 생략 합니다. 다만, 아래의 설치 옵션은 참고해주세요. 개인적으로는 2,3번쨰 체크박스는 선택하시기를 권장합니다.
VScode 설치 옵션
2,3번 체크 결과 : 폴더 VScode 로 열기
VScode 에서 Arduino Extention 설치
VScode 에서 Arduino Extention 설치 하는 순서는 아래와 같습니다.
- 좌측 사이드바에서 'Extention' 아이콘 클릭
- 검색 칸에 Arduino 검색
- 검색된 Extention 중 Arduino for Visual Studio Code 선택
- Install 클릭하여 설치
VScode 아두이노 환경 설정하기
권장하는 설정 순서는 아래와 같습니다.
- VScode 에서 <Ctrl + ,> 로 설정화면 진입
- Extentions 클릭 -> Arduino configuration 클릭
- Edit in settings.json 클릭
- settings.json 에 아래의 코드 삽입
입력 코드는 아래와 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | { "arduino.path": "C:/Program Files (x86)/Arduino", "arduino.commandPath": "arduino_debug.exe", "arduino.logLevel": "info", "arduino.allowPDEFiletype": false, "arduino.enableUSBDetection": true, "arduino.disableTestingOpen": false, "arduino.skipHeaderProvider": false, "arduino.additionalUrls": [ "https://raw.githubusercontent.com/VSChina/azureiotdevkit_tools/master/package_azureboard_index.json", "http://arduino.esp8266.com/stable/package_esp8266com_index.json" ], "arduino.defaultBaudRate": 115200 } | cs |
✔ 아두이노 설정 코드에서 arduino.path 의 값이 자신의 PC에 아두이노 설치된 경로가 맞는지 확인이 필요합니다.
프로젝트 생성, 빌드, 다운로드
프로젝트 생성부터 다운로드 순서는 아래와 같습니다. 아래의 순서를 시작하기 전에, 사용할 보드와 PC를 USB 연결한 상태에서 진행하시길 추천 드립니다.
- 윈도우 탐색기에서 아두이노 프로젝트를 진행할 폴더를 생성
- 폴더 마우스 우클릭 메뉴에서 code(으)로 열기를 클릭
- F1 클릭 후 arduino initialize 를 선택
- 원하시는 파일명을 입력 합니다. 디폴트로 app.ino 로 설정
- 보드와 포트를 설정
- 코드 작성 후 업로드 버튼 클릭
작업 폴더에서 Code 로 열기
Arduino 프로젝트 초기화
Arduino 보드 선택
사진의 작성 코드는 아래와 같습니다. Arduino Uno 에 내장된 LED를 500ms 간격으로 깜빡이게 합니다. 코드 작성에 대한 내용은 이후의 포스트에서 진행할 예정입니다. 지금은 VSCode 를 사용하여 아두이노 개발환경 설정 확인 하는 용도로만 생각해주시면 됩니다.
1 2 3 4 5 6 7 8 9 10 | void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, !(digitalRead(13))); delay(500); } | cs |
작성한 프로그램이 정상적으로 보드에 다운로드 되면 아래 그림과 같이 Arduino Uno 보드에 LED가 정상적으로 깜빡이는 것을 확인 할 수 있습니다.
추가 설정
따라오시느라, 고생 많으셨습니다. 이후 더욱 쾌적환 환경에서 아두이노 개발을 위해 아래의 설정을 추가로 진행 하시길 추천 드립니다. 아래의 json 설정 파일 코드를 복사해서 붙혀넣으실 경우 주석 부분은 제거 후 복사하시기 바랍니다.
빌드 출력 파일 경로 지정
빌드 결과 폴더를 지정하기 위해 .vscode/arduino.json 파일을 수정합니다. 빌드 결과 폴더를 지정하지 않아도 빌드 및 보드 업로드에 문제가 없습니다. 하지만, 빌드 결과 폴더 지정 안되있을 경우 빌드시 임시 폴더를 생성하므로 시간이 추가적으로 소요되고, 결과물 파일을 찾을 수 없는 단점이 있습니다.
Line 6 : 빌드 결과 저장 폴더를 지정코드를 추가합니다.
1 2 3 4 5 6 7 | // .vscode/arduino.json { "sketch": "app.ino", "board": "arduino:avr:uno", "port": "COM3", "output": ".\\build" // 빌드 결과 저장 폴더 } | cs |
build 출력 폴더 설정
#Include 헤더 오류 해결
아래 그림과 같이 #include 오류가 발생은 includePath 에 오류가 있어 발생합니다. 이 문제는 .vscode/c_cpp_properties.json 파일에 적절한 헤더를 추가하여 해결이 가능합니다. 추후 라이브러리 추가시 이 .vscode/c_cpp_properties.json에 라이브러리 경로를 추가해주셔야 합니다.
includePath 오류
Line 9 : 추가 헤더 파일 경로를 지정
Line 10 : 추가 헤더 파일 경로를 지정, 해당 경로의 {7.3.0} 숫자는 아두이노 설치 버전에 따라 다를 수 있어, 탐색기로 해당 경로가 맞는지 확인이 필요
Line 16~17 : serial 클래스 사용시 헤더 오류를 해결
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | // .vscode/c_cpp_properties.json { "configurations": [ { "name": "Win32", "includePath": [ "C:\\Program Files (x86)\\Arduino\\tools\\**", "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\**", "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr\\avr\\include", // 추가 "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr\\lib\\gCc\\avr\\7.3.0\\include\\**" // 추가 - 자신의 PC 경로 확인 필요 ], "forcedInclude": [ "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino\\Arduino.h" ], "intelliSenseMode": "msvc-x64", "defines": [ "USBCON" // serial 클래스 쓸경우 Include 에러 방지 ] } ], "version": 4 } | cs |
Output 창 불필요한 메세지 제거
Build 시 vscode OUTPUT 창에 아래 그림과 같은 메세지가 출력된다면, C:\Program Files (x86)\Arduino\arduino_debug.l4j.ini 파일에서 -DDEBUG=false 내용을 추가하여 OUTPUT 창에 DEBUG StatusLogger 와 TRACE StatusLogger 메세지가 출력되는 것을 제거 할 수 있습니다.
arduino_debug.l4j.ini 변경 전
arduino_debug.l4j.ini 변경 후
arduino_debug.l4j.ini 편집
arduino_debug.l4j.ini 수정 내용
'Embedded > Arduino' 카테고리의 다른 글
아두이노 강좌 #3 시간 관련 함수 설명, delay() 없이 LED Blink 코드 작성 (1) | 2020.07.02 |
---|---|
아두이노 강좌 #2 디지털핀 GPIO 으로 LED 깜빡이기 (0) | 2020.07.01 |
아두이노 강좌 #1 아두이노 개요 및 프로그래밍 구조 (0) | 2020.06.30 |
아두이노 환경설정 #2. Arduino IDE 다크테마, 폰트, 탭 간격 설정 +a (유용한 환경설정) (0) | 2020.06.20 |
아두이노 환경설정 #1. Arduino IDE 설치 및 Blink 예제 실행 (0) | 2020.06.19 |