성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
[정성태] 저렇게 조각 코드 말고, 실제로 재현이 되는 예제 프로젝트를 압...
[정성태] Modules 창(Ctrl+Shift+U)을 띄워서, 해당 Op...
[정성태] 만드실 수 있습니다. 단지, Unity 엔진 내의 스크립트와 W...
[공진영] 안녕하세요 좋은글 감사합니다. 현재 제가 wpf로 관제 모...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>Visual Studio Code를 이용한 아두이노 프로그램 개발</h1> <p> 개인적으로 Arduino IDE를 별로 좋아하지 않습니다. 왜냐하면, (제가 가지고 있는 2대의 PC에서 모두) 공식 Arduino IDE를 실행하면 다음과 같이 기본 CPU가 30%를 점유해 버립니다.<br /> <br /> <img alt='debug_arduino_code_0.png' src='/SysWebRes/bbs/debug_arduino_code_0.png' /><br /> <br /> 4개의 논리 CPU 머신에서 저 정도면 IDE가 CPU 100% 현상을 겪고 있는 것이나 다름없습니다. (8개의 논리 CPU 머신에서는 20% 가까이를 항상 점유하고 있습니다.)<br /> <br /> 게다가 인텔리센스 없는 에디트 환경도 너무 원시적이고! ^^<br /> <br /> <hr style='width: 50%' /><br /> <br /> 그래서 제 경우에 Visual Studio Code를 사용합니다. (맛 들이고 나면 절대 Arduino IDE로 못 돌아갑니다. ^^)<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Visual Studio Code extension for Arduino ; <a target='tab' href='https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.vscode-arduino'>https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.vscode-arduino</a> Visual Studio Code extension for Arduino is now open source by Microsoft + Open Source ; <a target='tab' href='https://open.microsoft.com/2017/07/07/visual-studio-code-extension-arduino-open-source/'>https://open.microsoft.com/2017/07/07/visual-studio-code-extension-arduino-open-source/</a> </pre> <br /> 한번 세팅해 볼까요? ^^<br /> <br /> 우선, 확장 아이콘(Ctrl + Shift + X)을 눌러 "Visual Studio Code extension for Arduino"를 설치합니다. 이후부터는 "Arudino"로 시작하는 확장 명령어를 사용할 수 있는데요, "View" / "Command Palette(F1 또는 Ctrl + Shift + P)" 메뉴를 통해 다음고 같이 "Arduino:"로 시작하는 명령어를 확인할 수 있습니다.<br /> <br /> <img alt='arduino_with_code_1.png' src='/SysWebRes/bbs/arduino_with_code_1.png' /><br /> <br /> "Command Palette"에서 "> arduino: examples" 기능을 선택하면, 다음과 같이 아두이노 예제 폴더 창이 뜹니다.<br /> <br /> <img alt='arduino_with_code_2.png' src='/SysWebRes/bbs/arduino_with_code_2.png' /><br /> <br /> 간단한 시작으로 "01. Basics"의 "Blink"를 선택합니다. 그럼, 기존 샘플 코드가 다음의 경로 하위에 복사되어,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > %USERPROFILE%\Documents\Arduino\generated_examples </pre> <br /> "%USERPROFILE%\Documents\Arduino\generated_examples\Blink" 폴더가 생성되면서 VS Code의 프로젝트 경로로써 동작하게 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > . │ Blink.ino │ Blink.txt │ └───.vscode arduino.json c_cpp_properties.json </pre> <br /> 당연하겠지만, 이제 Visual Studio Code 내에서 아두이노 코드를 작성하면 인텔리센스 기능이 동작합니다.<br /> <br /> <img alt='arduino_with_code_3.png' src='/SysWebRes/bbs/arduino_with_code_3.png' /><br /> <br /> 이제 빌드를 해야겠지요. 이를 위해 먼저 Board Type을 선택해야 하는데 "Command Palette"에서 "> Arduino: Board Config"을 선택해 뜨는 "Arduino Board Configuration" 창의 "Selected Board:" 목록 상자를 통해 고르면 됩니다. (만약 자신의 보드가 없다면 "Arduino: Board Manager"를 이용해 새로운 보드를 추가합니다.)<br /> <br /> 보드 선택 후 남은 작업은 이제 아두이노가 연결된 직렬 포트를 선택하는 것입니다. "Command Palette"에서 "> Arduino: Select Serial Port"를 선택하면 다음과 같이 포트 목록이 나오고,<br /> <br /> <img alt='arduino_with_code_4.png' src='/SysWebRes/bbs/arduino_with_code_4.png' /><br /> <br /> 제 경우에는 "COM3"이므로 그것을 선택했습니다. 여기까지 진행했으면 선택된 사항들이 ./.vscode/arduino.json 파일에 다음과 같이 기록되어 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > { "sketch": "Blink.ino", "port": "COM3", "board": "arduino:avr:leonardo" } </pre> <br /> 달리 말하면, "Arduino: Board Config", "Arduino: Select Serial Port" 명령어들을 실행할 필요 없이 값을 알고 있다면 그냥 arduino.json 파일을 직접 편집해도 무방합니다. 자, 이제 "> Arduino: Verify(Ctrl + Alt + R)"를 실행하면 빌드가 되고, "> Arduino: Upload(Ctrl + Alt + U)"를 선택하면 보드에 Blink 프로그램이 업로드됩니다.<br /> <br /> <hr style='width: 50%' /><br /> <br /> 디버깅까지 마저 해보려고,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Debug your Arduino code with Visual Studio Code ; <a target='tab' href='https://blogs.msdn.microsoft.com/iotdev/2017/05/27/debug-your-arduino-code-with-visual-studio-code/'>https://blogs.msdn.microsoft.com/iotdev/2017/05/27/debug-your-arduino-code-with-visual-studio-code/</a> </pre> <br /> 위의 글에 따라 Debug (Ctrl + Shift + D) 아이콘을 선택해 "Add Configuration..." 항목을 선택하면 다음과 같이 환경 선택 목록이 나옵니다.<br /> <br /> <img alt='arduino_with_code_5.png' src='/SysWebRes/bbs/arduino_with_code_5.png' /><br /> <br /> 당연히 "Arduino"를 선택하고 F5 키를 눌러 시작했는데 다음과 같은 오류 메시지가 뜹니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Cannot find the OpenOCD from the launch.json debugServerPath property. Please input the right path of OpenOCD </pre> <br /> 실제로 ./.vscode/launch.json 파일을 보면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > { // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Arduino", "type": "arduino", "request": "launch", "program": "${file}", "cwd": "${workspaceFolder}", "MIMode": "gdb", "targetArchitecture": "arm", "miDebuggerPath": "", <span style='color: blue; font-weight: bold'>"debugServerPath": "",</span> "debugServerArgs": "", ...[생략]... "stopAtEntry": true, "serverStarted": "Info\\ :\\ [\\w\\d\\.]*:\\ hardware", "launchCompleteCommand": "exec-continue", "filterStderr": true, "args": [] } ] } </pre> <br /> debugServerPath 값이 비어 있습니다. <a target='tab' href='https://github.com/Microsoft/vscode-arduino'>https://github.com/Microsoft/vscode-arduino</a>의 문서에 보면 다음과 같은 내용이 나옵니다.<br /> <br /> <div style='BACKGROUND-COLOR: #ccffcc; padding: 10px 10px 5px 10px; MARGIN: 0px 10px 10px 10px; FONT-FAMILY: Malgun Gothic, Consolas, Verdana; COLOR: #005555'> Make sure your Arduino board can work with STLink, Jlink or EDBG. The debugging support currently is fully tested with the following boards.<br /> <br /> * MXChip IoT Developer Kit - AZ3166<br /> * Arduino M0 PRO<br /> * Adafruit WICED WiFi Feather<br /> * Adafruit Feather M0<br /> * Arduino Zero Pro<br /> </div><br /> <br /> 아마도 제가 구매한 아두이노 레오나르도 호환 보드는 저기에 속하지 않는 것 같고, 일단은 디버깅은 건너뛰어야겠습니다. (혹시 이에 관해 아시는 분은 덧글 부탁드립니다. ^^)<br /> <br /> <hr style='width: 50%' /><br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Visual Studio Code를 이용한 아두이노 프로그램 개발 ; http://www.sysnet.pe.kr/2/0/11753 Visual Studio Code를 이용한 아두이노 프로그램 개발 - 새 프로젝트 ; <a target='tab' href='http://www.sysnet.pe.kr/2/0/11754'>http://www.sysnet.pe.kr/2/0/11754</a> Visual Studio Code의 아두이노 프로그램 개발 시 인텔리센스가 안 된다면? ; <a target='tab' href='http://www.sysnet.pe.kr/2/0/11756'>http://www.sysnet.pe.kr/2/0/11756</a> Visual Studio Code extension for Arduino - #include errors detected. ; <a target='tab' href='http://www.sysnet.pe.kr/2/0/11755'>http://www.sysnet.pe.kr/2/0/11755</a> </pre> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1403
(왼쪽의 숫자를 입력해야 합니다.)