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 탭에서 아두이노 예제 클릭
VScode 와 Arduio IDE 의 예제는 동일
Blink 예제 선택
아두이노 파일 선택 후 업로드
업로드 선택 후 보드 내장 LED 가 깜빡이는 지 확인하시면 됩니다.
라이브러리 매니저
예제의 창은 닫고, 이 전에 아두이노 프로젝트 생성한 윈도우에서 시작하겠습니다. Visual Studio 에서 Arduino IDE 의 라이브러리 매니저에서 라이브러리 설치 하는 방법은 아래와 같습니다. VScode 의 라이브러리 매니저에서는 라이브러리 설치뿐만아니라, 헤더 삽입 기능도 함께 제공합니다.
MsTimer2 예제를 불러와서 LED 를 점멸 하는 코드를 작성해봅시다. 실행 순서는 아래와 같습니다.
F1키를 눌러Command Palette에서Arduino: Library Manager를 선택- Library Manager 에서 '
MsTimer2' 라이브러리 검색 후 설치 - 라이브러리 설치 후 Include Library 를 누르면 해당 라이브러리 참조 코드가 자동 삽입
- 코드 작성, 업로드 후 결과 확인
라이브러리 매니저 열기
라이브러리 검색 및 설치
라이브러리 참조 헤더 추가
코드 작성 및 업로드
시리얼 모니터
Visual Studio Code 에서 기본적으로 제공되는 시리얼 터미널은 읽기만 가능하고 쓰지는 지원하지 않습니다. 디버깅 용도로 사용할 떄만 사용하고, 용도에 다른 시리얼 모니터링 프로그램을 사용 하시면 됩니다. (구글링 하면 읽기, 쓰기 되는 시리얼 터미널을 설정하는 방법이 있는 것 같으나, 전 이것 저것 해봐도 되지 않아 패스 하기로 했습니다..)
간단히 1초 간격으로 "Hello! VSCode~!" 텍스트를 출력하는 코드를 추가로 작성 후 출력을 확인하겠습니다. 아두이노 시리얼 출력 코드 이해가 필요하신 분은 아래 링크를 참조해주세요.
시리얼 모니터를 열기 위해 아래의 순서로 진행 하시면 됩니다.
- 우측 하단
Open Serial Monitor아이콘 클릭 - 우측 하단
Buardrate숫자 선택 - Command Palette 에서
Buadrate속도 선택 - 시리얼 모니터에서 정상 메세지 수신 되는지 확인
시리얼 모니터 열기
시리얼 모니터 환경설정
아두이노 프로젝트 관리 나노팁
Visual Studio Code 를 사용하는 경우 새로운 프로젝트를 생성 할 때 마다 arduino.json c_cpp_properties.json 파일을 수정해줘야 하는 단점이 있습니다. 아래 그림의 우측 그림과 같이 하나의 폴더에 각각의 세부 폴더를 만들어서 ino 파일을 작성하게되면 추가적인 arduino.json c_cpp_properties.json 수정 없이 프로그래밍이 가능합니다.
(좌) 일반적인 방법 (우) 권장하는 방법
우측과 같이 사용하는 경우 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 파일에 파일 경로의
\문자는 인식을 못해/또는\\로 수정
현재 작업 파일 설정
마무리
Visual Studio Code 로 아두이노 프로젝트 생성, 예제, 라이브러리 매니저, 시리얼 모니터 사용 방법과 제가 권장하는 방식의 나노팁에 대해 작성하였습니다. VSCode 로 편리하게 아두이노 프로그래밍 하는데 조금이라도 도움이 되었으면 합니다. 다음 포스트는 Visual Studio Code 로 아두이노 디버깅 하는 방법에 대해 작성 할 예정입니다.
끝까지 읽어 주셔서 감사합니다.^^
'Embedded > Arduino' 카테고리의 다른 글
아두이노 코딩 LED Toggle (On/OFF) 여러 가지 방식 (0) | 2020.07.19 |
---|---|
아두이노 팁 #4. Visual Studio Code로 아두이노 디버깅 환경 설정 및 실행 (8) | 2020.07.18 |
아두이노 팁 #2. Visual Studio Code로 아두이노 프로그래밍 장점 (feat. Arduino IDE 불편해) (1) | 2020.07.15 |
아두이노 강좌 #15 시리얼 통신 포트 추가로 사용하기 SoftwareSerial.h (0) | 2020.07.14 |
아두이노 강좌 #14 타이머 인터럽트 MsTimer2.h (1) | 2020.07.13 |