앞선 글을 통해 라즈베리 파이 재단에서 개발한 라즈베리 파이 피코 제품과 그 특징에 대해 소개한 바 있는데, 이러한 피코 보드를 실제로 마이크로 파이썬을 이용하여 사용하는 방법을 소개하려 한다.
1. 핀 배열
라즈베리 파이 피코를 각종 자동제어용으로 사용하려면 핀 배열을 잘 알아볼 줄 알아야 한다. 반드시 기억할 필요는 없으나 자주 찾아보아야 하므로 한 장 인쇄하여 책상 옆에 두고 참고하는 것도 도움이 된다.
2. Firmware 및 Thonny IDE 설치
마이크로 USB를 이용하여, Window PC에 연결하면 피코 보드는 다음과 같이 RP2라는 이름을 가지는 USB 장치로 인식된다.
단, 기존에 프로그램이 로딩되었던 피코 등의 경우는 단순히 연결만 해서는 외부 저장 장치로 인식되지 않기도 하는데, 이때는 피코 보드의 BOOTSEL 버튼을 누른 채 USB 케이블을 PC에 연결하면 이렇게 인식된다.
(참고 : 피코 보드는 PC에 연결하더라도 보드 상의 LED가 반짝이지 않는 게 정상이다. )
이렇게 인식된 RP2를 열고, 미리 다운로드해 둔 지원하는 최신 펌웨어를 복사해 주어야 하는데,
마이크로 파이썬 구동기를 지원하는 최신 펌웨어는 2023년 4월 기준 1.20이 최신으로 https://micropython.org/download/rp2-pico/) 사이트에서 다운로드하면 된다.
이 사이트를 방문하면 하단부에 다음과 같은 firmware 목록이 나오는데 이중 자신이 원하는 최신 버전을 다움 받아둔다. 가급적 공식 버전인 Release 부분의 latest 항목을 다운로드한다.
이렇게 다운로드한 Firmware는 UF2 확장자를 가지는데, 이 파일을 아래 그림처럼 Rp2라는 이름의 외부 저장소로 인식된 곳에 드래그하여 복사하여 주면 된다. 복사가 완료되면 자동적으로 메모리 창의 닫기고 재부팅하게 된다.
3. 파이썬 IDE 다운로드 및 설치
실제 프로그램 작성을 위해, https://thonny.org/에서 Python IDE를 다운로드하여 프로그램을 작성할 PC에 설치해 준다. (2023.7 기준 4.11 버전이 최신)
이 사이트를 방문하면 다음과 같은 화면이 되는데, 아래 화면의 붉은색 표기된 곳에서 자신의 PC 환경에 적합한 부분을 선택하면,
다시 세부 버전을 선택할 수 있다. 가장 상단의 추천되는 버전을 선택하여 다운로드한다.
다운로드가 완료되면 다음과 같이 실행파일 형태가 되는데, 이를 실행하여 설치하면 된다.
설치가 완료되면 바타와 면에 다음과 같이 Thonny IDE 아이콘이 생성되고
이를 실행하여 다음과 같은 thonny IDE에 들어와 프로그램 작성 및 실행이 가능하게 된다.
4. IDE 환경설정 (Board 및 Port 설정)
그런데 이 상태는 아직, 연결된 PICO 보드의 포트가 인식되지 않은 상태이다.
위의 화면의 우측 하단부를 아래 화면처럼 마우스로 클릭해 주면 다음과 같은 화면이 나타나는데, 여기서 연결된 PICO 보드와 프트를 선택해 준다.
이로써, 라즈베리 파이 피코 보드에서 마이크로 파이썬을 이용하여 라즈베리 파이 피코 보드에 프로그래밍을 하기 위한 준비가 완료되었다.
5. 첫 예제 – Blink Test와 기억할 것들
마이크로 컨트롤러 보드인 아두이노 보드나, 라즈베리 파이 피코 보드를 공부하면서 가장 먼저 접하게 되는 사용 예제인 보드 자체에 부착된 LED를 켰다 껐다 동작시키는 예제를 만들어 본다.
1) Library 선언
– 피코 보드의 핀 기능을 사용하려면 프로그램 앞부분에 반드시 다음과 같이 라이브로 시용을 선언해 준다.
import machine
– 이 외에도, 자체적으로 지원하는 시간 관련 기능을 사용하기 위해서는 import utime 또는 import time
라이 브러시 사용도 함께 기재해 준다. 기타 필요한 라이브러리가 있으면 이런 방식으로 프로그램 앞부분에서
사용 여부를 선언해 주면 된다.
2) 핀의 사용 모드 선언
피코 보드의 핀들은 출력이나 입력 모드 중 선택할 수 있는데, 코드 앞부분에서 다음과 같은 방식으로 선언해 주어야 한다. 단, 핀의 사용모드를 선언할 때 프로그램 내에서 사용할 변수명에 할당하는 방식으로 선언해 준다.
출력 : mypicoled=machine.pin(핀 번호, machine.Pin.OUT)
machine.Pin(25, machine.Pin.OUT)은 25번 핀을 출력용도로 사용한다는 의미인데,
실제로 LED를 켜주려면, 값도 1로 바꾸어 주어야 한다. 즉, 다음 2줄로 피코보드의 LED를 켤수 있다.
mypicoled=machine.pin(핀 번호, machine.Pin.OUT)
mypicoled.value(1)
(참고사항: 피코보드에 내장된 LED를 핀번호 25에 기본적으로 연결되어 있다.)
이렇게 핀이 할당된 LED를 켜거나 끄려면 해당 핀이 할당된 변수의 값을 각기 1/0으로 바꾸면 된다.
켜기 : mypicoled.value(1)
끄기 : mypicoled.value(0)
입력 : button=machine.pin(핀 번호, machine.Pin.IN, machine.Pin.PULL_DOWN) (대소문자 주의)
해당 핀을 입력용으로 사용한다는 의미이다.
PULL_DOWN은 눌리지 않은 경우 해당 핀에 입력중인 값을 0으로,
PULL_UP은 눌리지 않은 경우 해당핀으로 입력중인 값을 1로 처리해 준다.
3) 핀의 사용 모드 선언
위의 내용을 토대로 피코 보드의 25번 핀에 연결된 피코 보드 내장 LED를 0.5초 간격으로 깜빡이게 하는 코드를 만들면 다음과 같다.
위와 같이 Thonny IDE에 Code를 넣고, 상단의 실행 버튼을 누르면 다음과 같이, 0.5초 간격으로 피코 보드 상의 LED가 깜빡이게 된다.

참고로, 이 코드에서. toggle()은 mypicoled라는 변숫값을 0과 1간에 서로 바꾸어주는 기능을 하게 되며, time.sleep(0.5)는 0.5초간 프로그램 실행을 지연시키는 효과를 낸다.
4) 저장방법 (보드에 Uploading)
피코 보드가 PC와 분리된 상태가 되더라도, 전원만 들어오면 프로그램한 동작이 자동으로 실행되게 하려면, 작성된 프로그램을 main.py라는 이름으로 피코 보드에 저장하면 된다.
(아두이노 보드의 경우와 달리 라즈베리 파이 피코 보드는 보드 자체의 메모리 용량도 상대적으로 커서, 여러 개의 프로그램을 저장할 수 있다. 아두이노 보드는 하나의 프로그램을 Compile/업로드하는데 반해, 라즈베리 파이 피코는 여러 개의 프로그램을 저장할 수 있는데, 이 중에서 기본적으로 자동 실행되는 프로그램의 이름을 main.py로 지정하는 방식으로 업로드가 이루어진다.)


