아두이노 팁 #3. Visual Studio Code로 아두이노 코딩 사용법과 나노팁
Lucy Archive
Lucy 2023
2020. 7. 16. 01:45

VSCode Arduino 사용 방법VSCode Arduino 사용 방법

VSCode 아두이노 코딩 방법과 나노팁

지난 포스트에서 Visual Studio Code 로 아두이노 환경 설정하는 방법을 작성하였습니다. 이번 포스트에서는 VSCode 로 아두이노 코딩하는 방법에 대해 작성하였습니다. 아두이노

프로젝트 생성 방법, 라이브러리 매니저, 예제 실행, 시리얼 모니터 사용과 아두이노 폴더 관리

를 편하게 해주는 팁에 대해 소개합니다.

아두이노 기본 빌드 환경 구성

아두이노 기본 빌드 환경 구성을 하기 위해 아래의 순서로 진행 합니다.

  • 아두이노 작업 폴더 생성 및 설정
  • F1 키를 눌려 Command Palette 에서 Arduino: Initialize 를 입력 후 선택 
  • 아두이노 코드 파일명 입력 후 엔터 (또는 그냥 엔터)
  • 아두이노 보드 선택
  • 우측 하단 <Select Serial Port> 선택 후 시리얼 포트 선택
  • 우측 상단 Upload 버튼 클릭하여 빌드와 보드 업로드가 정상적으로 동작 되는지 확인

작업 폴더 생성 및 선택작업 폴더 생성 및 선택

아두이노 프로젝트 생성아두이노 프로젝트 생성

시리얼 포트 선택시리얼 포트 선택

빌드 및 업로드빌드 및 업로드

위 그림과 같이 업로드 버튼을 눌리고, '[Done] Upload the sketch ~' 메세지가 출력 되면 기본 적인 프로젝트 설정은 완료되었습니다. 

Arduino IDE 의 기능 실행

Visual Studio Code 에서 Arduino Extention 을 사용하면 Arduino IDE 에서 제공되는 아래의 기능을 VSCode 에서 사용 가능 합니다.

예제 실행하기

VSCode 에서 ARduino IDE 의 예제 기능을 제공합니다. 실행 방법은 아래와 같습니다.

  • 왼쪽 사이드바 파일탭 에서 Arduino Examples 탭 선택
  • 예제를 선택 -> 새로운 창에서 예제 파일이 열림
  • Verify 또는 Upload 로 정상 동작 확인

Explorer 탭에서 아두이노 예제 클릭Explorer 탭에서 아두이노 예제 클릭

VScode 와 Arduio IDE 의 예제는 동일VScode 와 Arduio IDE 의 예제는 동일

Blink 예제 선택Blink 예제 선택

아두이노 파일 선택 후 업로드아두이노 파일 선택 후 업로드

업로드 선택 후 보드 내장 LED 가 깜빡이는 지 확인하시면 됩니다.

라이브러리 매니저

예제의 창은 닫고, 이 전에 아두이노 프로젝트 생성한 윈도우에서 시작하겠습니다. Visual Studio 에서 Arduino IDE 의 라이브러리 매니저에서 라이브러리 설치 하는 방법은 아래와 같습니다. VScode 의 라이브러리 매니저에서는 라이브러리 설치뿐만아니라, 헤더 삽입 기능도 함께 제공합니다. 

MsTimer2 예제를 불러와서 LED 를 점멸 하는 코드를 작성해봅시다. 실행 순서는 아래와 같습니다.

  • F1 키를 눌러 Command Palette 에서 Arduino: Library Manager 를 선택
  • Library Manager 에서 'MsTimer2' 라이브러리 검색 후 설치
  • 라이브러리 설치 후 Include Library 를 누르면 해당 라이브러리 참조 코드가 자동 삽입
  • 코드 작성, 업로드 후 결과 확인

Visual Studio Code 라이브러리 매니저라이브러리 매니저 열기

VSCode 아두이노 라이브러리라이브러리 검색 및 설치

VSCODE 아두이노 라이브러리 매니저라이브러리 참조 헤더 추가

Visual Studio Code 아두이노 업로드코드 작성 및 업로드

시리얼 모니터

Visual Studio Code 에서 기본적으로 제공되는 시리얼 터미널은 읽기만 가능하고 쓰지는 지원하지 않습니다. 디버깅 용도로 사용할 떄만 사용하고, 용도에 다른 시리얼 모니터링 프로그램을 사용 하시면 됩니다. (구글링 하면 읽기, 쓰기 되는 시리얼 터미널을 설정하는 방법이 있는 것 같으나, 전 이것 저것 해봐도 되지 않아 패스 하기로 했습니다..)

간단히 1초 간격으로 "Hello! VSCode~!" 텍스트를 출력하는 코드를 추가로 작성 후 출력을 확인하겠습니다. 아두이노 시리얼 출력 코드 이해가 필요하신 분은 아래 링크를 참조해주세요.

시리얼 출력

2020/07/03 - [Arduino/Basic] - 아두이노 강좌 #4 시리얼 통신 1. 개요 및 Hello World 출력

2020/07/04 - [Arduino/Basic] - 아두이노 강좌 #5 시리얼 통신 2. UART 초기화 및 송신 프로그래밍


시리얼 모니터를 열기 위해 아래의 순서로 진행 하시면 됩니다.

  • 우측 하단 Open Serial Monitor 아이콘 클릭
  • 우측 하단 Buardrate 숫자 선택
  • Command Palette 에서 Buadrate 속도 선택
  • 시리얼 모니터에서 정상 메세지 수신 되는지 확인

Visual Studio Code 시리얼 모니터시리얼 모니터 열기

VSCode 시리얼 모니터 설정시리얼 모니터 환경설정


아두이노 프로젝트 관리 나노팁

Visual Studio Code 를 사용하는 경우 새로운 프로젝트를 생성 할 때 마다 arduino.json  c_cpp_properties.json 파일을 수정해줘야 하는 단점이 있습니다. 아래 그림의 우측 그림과 같이 하나의 폴더에 각각의 세부 폴더를 만들어서 ino 파일을 작성하게되면 추가적인 arduino.json c_cpp_properties.json 수정 없이 프로그래밍이 가능합니다.

VScode 아두이노 프로그래밍시 나노팁(좌) 일반적인 방법 (우) 권장하는 방법

우측과 같이 사용하는 경우 c_cpp_properties.json 파일에 자신이 사용하는 모든 라이브러리를 한번만 추가해 놓으면 됩니다. 제가 작업 폴더의 c_cpp_properties.json 파일에는 아래와 같이 제가 사용하는 라이브러리를 등록 시켜 놓고, 새로운 프로그램 작성시 새로운 폴더에 .ino 파일을 생성하여 테스트를 진행합니다.

c_cpp_properties.json 예시 참고용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{
    "configurations": [
        {
            "name""Win32",
            "includePath": [
                "C:\\Users\\{UserName}\\Documents\\Arduino\\libraries\\IRremote",
                "C:\\Users\\{UserName}\\Documents\\Arduino\\libraries\\AccelStepper\\src",
                "C:\\Users\\{UserName}\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library",
                "C:\\Users\\{UserName}\\Documents\\Arduino\\libraries\\Adafruit_TFTLCD_Library",
                "C:\\Users\\{UserName}\\Documents\\Arduino\\libraries\\Adafruit_TouchScreen",
                "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino",
                "C:\\Users\\{UserName}\\Documents\\Arduino\\libraries\\LiquidCrystal_I2C",
                "C:\\Users\\{UserName}\\Documents\\Arduino\\libraries\\MsTimer2",
                "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\\5.4.0\\include\\**",
                "C:/Program Files (x86)/Arduino/hardware/arduino/avr/libraries/SoftwareSerial/src",
                "C:/Program Files (x86)/Arduino/libraries/Servo/src",
                "C:/Program Files (x86)/Arduino/libraries/Stepper/src",
                "C:/Program Files (x86)/Arduino/libraries/Ethernet/src",
                "C:/Program Files (x86)/Arduino/hardware/arduino/avr/libraries/SPI/src",
                "C:/Program Files (x86)/Arduino/libraries/SD/src",
                "C:/Users/{UserName}/Documents/Arduino/libraries/IRremote",
                "C:/Program Files (x86)/Arduino/libraries/SD/src/utility"
            ],
            "forcedInclude": [
                "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino\\Arduino.h"
            ],
            "intelliSenseMode""msvc-x64",
            "compilerPath""C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x64/cl.exe",
            "cStandard""c11",
            "cppStandard""c++17",
            "defines": [
                "USBCON"
            ]
        }
    ],
    "version"4
}
cs

arduino.json 에서 작업 파일 설정

이렇게 서브 폴더를 만들어서 작업할 경우 문제가 하나 있습니다. 코드 창에서 Verify 또는 Upload 버튼을 눌리면 컴파일되는 파일은 현재 ~.ino 파일이 아닌 arduino.json 에서 "sketch" : "{FilePath}" 에 지정된 파일이 빌드되고 업로드가 됩니다. 여러 폴더를 생성해서 프로그래밍 하는 경우 현재 작업 파일을 arduino.json 에 등록 하셔야 합니다.

더 편한 방법을 자동화 하는 방법이 있을 것 같은데, 전 아직 찾지 못했고, 아래와 같이 저는 현재 작업 파일 설정을 합니다.

  • 작업 파일 상대 경로 복사
  • arduino.json 파일에 붙혀 넣기 
  • json 파일에 파일 경로의 \ 문자는 인식을 못해 / 또는 \\ 로 수정

VSCode arduino.json 작업 파일 선택현재 작업 파일 설정


마무리

Visual Studio Code 로 아두이노 프로젝트 생성, 예제, 라이브러리 매니저, 시리얼 모니터 사용 방법과 제가 권장하는 방식의 나노팁에 대해 작성하였습니다. VSCode 로 편리하게 아두이노 프로그래밍 하는데 조금이라도 도움이 되었으면 합니다. 다음 포스트는 Visual Studio Code 로 아두이노 디버깅 하는 방법에 대해 작성 할 예정입니다.

끝까지 읽어 주셔서 감사합니다.^^

관련포스트

👉 아두이노 Visual Studio Code 환경 설정 관련글 목록 보기

👉 아두이노 개발 환경 구성 관련글 목록보기

👉 아두이노 전체 포스트 목록 보기