Windows에 Raspberry Pi Pico C 개발 환경 만들기
Windows에서 Raspberry Pi Pico에서 C 프로그래밍을 하기 위해 필요한 작업들을 정리합니다. Raspberry Pi Pico W에서도 동일하게 개발환경으로 사용가능하지만 포스트에서 테스트를 위해 다루고 있는 Blink 예제의 경우엔 LED의 핀번호가 달라서 동작하지 않습니다.
Raspberry Pi pico W에서는 다음 예제들을 테스트해보세요.
Raspberry Pi Pico W - TCP Server C 예제
https://webnautes.tistory.com/2095
Raspberry Pi Pico W - TCP 소켓 통신으로 LCD에 문자열 출력하기
https://webnautes.tistory.com/2096
2021. 3. 30 최초작성
2021. 4. 03 개별 프로젝트 빌드 방법 추가
2022. 7. 17 업데이트된 공식 문서를 참고하여 다시 업데이트
2022. 11. 10 패키지 다운로드 받는 방법 수정
2024. 8. 3 최신 버전으로 동작확인
Raspberry Pi Pico 보드를 받은 날, 바로 핀을 납땜을 했습니다. 이쪽 전공이 아니라 잘하지는 못합니다.
Arduino와 달리 바로 사용할 수 없는 단점이 있네요. 물론 찾아보면 미리 납땜을 해놓은 제품을 살 수 도 있습니다.
납땜할때 주의점은 핀이 기울어질 염려가 있는 것입니다.
한쪽이 기울어져서 납을 모두 제거후, 다시 납땜했네요.
양끝을 먼저 납땜하며 기울어짐을 잡은 후, 나머지를 납땜하는게 좋은 듯합니다.
1. ARM GCC Toolchain이 필요합니다. 아래 링크에 접속하여 윈도우용 설치파일을 다운로드합니다.
받는 시점에 따라 버전이 다를 수 있습니다.
arm-none-eabi를 검색하여 확장자가 exe인 설치파일을 다운로드하여 설치합니다.
설치완료 전 “Add path to environment variable”을 체크해야 합니다.
2.아래 링크에서 CMake Windows x64 Installer를 다운로드하여 설치합니다.
3. 아래 링크에서 접속하여 Build Tools for Visual Studio를 설치해야 합니다.
https://visualstudio.microsoft.com/ko/downloads/
아래로 스크롤하여 “Visual Studio 도구”를 선택합니다.
“Visual Studio 2022용 빌드 도구”에 있는 다운로드를 클릭합니다.
다운로드 받은 설치파일을 실행합니다.
“C++를 사용한 데스크톱 개발”을 선택하고 “설치” 버튼을 클릭합니다.
4. 아래 링크에 접속하여 “Python 3.10.5” 항목에 있는 “Windows installer (64-bit)”을 다운로드 받아 설치합니다.
https://www.python.org/downloads/windows/
설치시 “ Add Python 3.10 to the PATH”를 체크해줘야 합니다. Install Now를 클릭하여 설치합니다.
5. 아래 링크에서 64-bit Git for Windows Setup를 클릭하여 다운로드하여 설치합니다.
https://git-scm.com/download/win
별다른 옵션 변경없이 설치를 진행하면 됩니다.
6. SDK와 예제코드를 다운로드합니다.
우선 윈도우키 + R키를 누른 후, cmd를 입력하여 명령 프롬프트를 실행합니다.
다운로드 받을 원하는 위치로 이동합니다. 여기에선 D드라이브에 work\pico 폴더에서 작업을 진행합니다.
다음 두 명령을 차례로 실행합니다.
git clone https://github.com/raspberrypi/pico-sdk.git
git clone https://github.com/raspberrypi/pico-examples.git
pico-sdk 디렉토리로 이동하여 다음 명령을 추가로 해줘야 합니다.
git submodule update --init
7. 예제 코드들을 한꺼번에 컴파일하는 과정입니다.
시스템 환경 변수 path에 아래 경로를 추가합니다.
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.32.31326\bin\Hostx64\x64\
문제 없으면 다음처럼 명령 프롬프트에서 nmake를 실행할 수 있습니다.
명령 프롬프트는 윈도우 키 + R을 누른 후, cmd를 입력하여 실행할 수 있습니다.
윈도우 키를 누른 후, “ Developer Command”을 입력하여 Developer Command Prompt for VS 2022를 실행합니다.
다음처럼 PICO SDK 경로를 설정합니다. 경로는 pico-sdk 위치로 수정하세요.
setx PICO_SDK_PATH "D:\work\pico\pico-sdk"
Developer Command Prompt for VS 2022를 다시 실행합니다.
pico-examples 폴더로 이동한 후, build 폴더를 생성하고 build 폴더로 이동합니다.
다음 명령을 실행합니다.
cmake -G "NMake Makefiles" ..
D:\work\pico\pico-examples\build>cmake -G "NMake Makefiles" .. Using PICO_SDK_PATH from environment ('D:\work\pico\pico-sdk') PICO_SDK_PATH is D:/work/pico/pico-sdk Defaulting PICO_PLATFORM to rp2040 since not specified. Defaulting PICO platform compiler to pico_arm_gcc since not specified. -- Defaulting build type to 'Release' since not specified. PICO compiler is pico_arm_gcc -- The C compiler identification is GNU 11.2.1 -- The CXX compiler identification is GNU 11.2.1 -- The ASM compiler identification is GNU -- Found assembler: C:/Program Files (x86)/Arm GNU Toolchain arm-none-eabi/11.2 2022.02/bin/arm-none-eabi-gcc.exe Build type is Release Defaulting PICO target board to pico since not specified. Using board configuration from D:/work/pico/pico-sdk/src/boards/include/boards/pico.h -- Found Python3: C:/Users/webnautes/AppData/Local/Programs/Python/Python310/python.exe (found version "3.10.5") found components: Interpreter TinyUSB available at D:/work/pico/pico-sdk/lib/tinyusb/src/portable/raspberrypi/rp2040; enabling build support for USB. cyw43-driver available at D:/work/pico/pico-sdk/lib/cyw43-driver lwIP available at D:/work/pico/pico-sdk/lib/lwip -- Configuring done -- Generating done -- Build files have been written to: D:/work/pico/pico-examples/build |
nmake를 실행합니다. 빌드가 시작되는데 좀 시간이 걸립니다.
아래 스크린샷은 문제 없이 빌드가 완료된 상태입니다.
nmake
8. Raspberry Pi Pico를 마이크로 5핀 케이블을 사용하여 PC에 연결하면 외부 저장공간으로 인식됩니다. 인식이 안되는 경우 Raspberry Pi Pico에 있는 버튼을 누른 후, 마이크로 5핀 케이블을 연결하세요. 한번 프로그램을 업로드한 이후에는 버튼을 누른 상태로 연결해야 인식됩니다.
build 폴더에 있는 blink 예제 컴파일 결과물인 blink.uf2 파일을 복사하여
D:\work\pico\pico-examples\build\blink
앞에서 인식된 외부 저장공간에 붙여넣기 해줍니다. 외부 저장 공간을 열었던 탐색기가 자동으로 닫히면서 보드에 있는 LED가 깜빡입니다.
참고로 build에 있는 다른 폴더에는 다른 예제들의 빌드 결과물들이 포함되어 있습니다.
blink는 GPIO 25번에 연결된 LED를 깜빡이게 하는 예제입니다.
GPIO 25는 사용자가 사용할 수 없는 보드에 내장된 LED에 연결된 핀입니다.
아래 스크린 샷을보면 왼쪽 상단에 위치한 것을 볼 수 있습니다.
Pico 보드에 있는 BOOTSEL 버튼을 누른 상태에서 Pico 보드를 연결해야 다시 저장공간으로 인식됩니다.
깜박이던 LED는 멈추게 됩니다.
앞에서 넣었던 파일은 보이지 않지만 버튼 누르지 않고 다시 연결해보면 blink 예제대로 LED가 깜빡이는 것을 볼 수 있습니다.
개별 프로젝트 빌드하기
1. 다음 파일을 다운로드하여 앞에서 진행한 pico 폴더의 다음 위치에 압축을 풀어 둡니다.
https://github.com/webnautes/nudapeu/blob/master/project1.zip
2. 다음 위치에 있는 blink 예제의 blink.c를 복사하여
D:\work\pico\pico-examples\blink
project1 폴더에 붙여넣기합니다.
CMakeLists.txt 파일을 열어서 다음 부분을 blink.c로 수정합니다.
하나 이상의 소스코드 파일을 추가해야 한다면 줄바꿈으로 구분하여 여러개를 적으면 됩니다.
3. 윈도우 키를 누른 후, “ Developer Command”을 입력하여 Developer Command Prompt for VS 2022를 실행합니다.
4. project1 폴더에 있는 build 폴더로 이동합니다.
5. 다음 두 명령을 차례로 실행합니다.
cmake -G "NMake Makefiles" ..
nmake
6. 윈도우 탐색기로 project1 아래에 있는 build 폴더로 이동하면 project1.uf2 파일을 찾을 수 있습니다.
Raspberry Pi pico의 BOOTSEL 버튼을 누른 채 PC에 연결합니다.
project1.uf2를 pico를 연결해 추가된 외장 저장공간으로 복사합니다.
잠시 후, pico의 LED가 깜박이게 됩니다.
관련 포스트
Raspberry Pi Pico C 프로그래밍 - USB Serial 예제
https://webnautes.tistory.com/2093
Raspberry Pi Pico C 프로그래밍 - I2C LCD 예제
https://webnautes.tistory.com/2094
Raspberry Pi Pico C 프로그래밍 - 온보드 온도 센서
https://webnautes.tistory.com/2363
참고
https://datasheets.raspberrypi.org/pico/getting-started-with-pico.pdf