1. 라즈베리파이 피코의 탄생
앞서 소개한 아두이노가 2006년경 이태리에서 출시된 이후 인기를 끌게 되었고, 이후 영국에서도 컴퓨터 교육용으로도 사용할 수 있고, 아두이노처럼 하드웨어 제어기능도 있는 라즈베리 파이 제품이 2012년경에 출시되었다.
라즈베리 파이 역시 크기 면에서 아두이노 Uno와 유사한 신용카드 정도의 크기였으나, 아두이노와 달리 MPU를 채용하고 운영체제 SW를 이용하여 구동되는 방식으로, 아두이노가 단순한 프로그램을 반복 수행하는 Microcontroller Board인데 반해, 라즈베리 파이는 아두이노처럼 GPIO PIN을 이용하여 미리 정해둔 기능을 수행하는 microcontroller 용도로 사용할 수는 있으나, 그보다는 microcontroller 용도로도 사용이 가능한 하나의 컴퓨터 SBC (Single Board Computer)로서의 특징이 더 뚜렷해졌다고 할 수 있다. 한마디로 Overspecification이었던 셈이다.
또한 성능은 좋았지만 상대적으로 아두이노 보드에 비해 많이 비싸, 저가의 단순한 기능을 제공하는 microcontroller 용도로 사용하기에 불리한 측면도 있었다. 또한 아두이노에서는 소형화를 위해 손가락 1-2마디 정도의 작은 크기인 Pro Mini / Pro Micro 같은 제품들까지 출시하는데 비해 라즈베리 파이는 신용카드 크기를 표준처럼 유지하는 것도 소형화에는 불리한 측면이었다(물로 Zero 같은 상대적으로 작은 버전이 있기는 했다).
그런데, 라즈베리 파이 재단에서도 이러한 상황을 전환시키기 위해, RP2040이라는 독자적인 microcontroller Chip을 2020년경 개발하였는데, 이 칩은 Arm 계열로, 133MHz로 동작하고 264KB의 내장 메모리를 지니고 있어 기존 아두이노 보드에 사용된 microcontroller 가 16MHz 정도로 작동하고 내장 메모리도 32KB 정도로 작았던 것에 비해 매우 고성능으로 평가된다. 라즈베리 파이 재단은 이 칩을 자체 용도로도 사용할 뿐 아니라, 사용자층 확대를 위해 외부 업체에도 판매하는 것으로 알려져 있다.
라즈베리 파이 재단은 이 RP2040 microcontroller chip을 이용하여 아두이노 보드들과 동일한 기능을 하는 Microcontroller 전용의 보드도 새로 개발하여 2021년 라즈베리 파이 피코 (Raspberry PI PICO)라는 이름으로 출시하였다. RP2040의 스펙상 성능이 기존 아두이노 보드에 사용되었던 칩들에 비해 우수함에도 불구하고, 가격은 개당 4$ 정도로 책정되었다.
시중에서 구할 수 있는 라즈베리 파이 피코 제품은 다음 4가지이다.
가장 기본형은 다음 사진 중 가장 왼쪽의 것으로 Wi fi 기능과 헤더 핀이 없는 형태이며, 여기에 헤더 핀 장착 여부 및 Wi fi(블루투스 포함) 지원 여부에 따라 4가지로 나뉘게 된다. Wi fi를 지원하는 모델은 PICO W라고 부른다.
2. 라즈베리파이 피코 보드의 특징
앞서 소개한 아두이노 보드류에 비해 라즈베리 파이 피코는 시장에서 기존 아두이노 보드와 동일한 용도에 사용이 가능한데, 다음과 같은 특징이 있다.
1) 훨씬 저렴한 가격
아두이노 우노 정품은 약 25$로 알려져 있는데 반해, 피코보드의 기본 모델은 공식가격이 4$ 로 훨씬 저렴하다.
2) 더 우수한 성능
가격은 현저히 저렴함에도 불구하고, 성능 측면에서는 라즈베리파이 피코 보드가 오히려 , 아두이노 우노 보드에 비해 현저히 우수한 하드웨어 성능을 나타낸다.
또한 피코보드에 사용되는 MCU인 RP2040칩에는 온도센서가 내장되어 있기에 이를 이용한 온도 측정도 가능하다.(ADC 4번 채널 이용)
아두이노 우노 보드 | 피코 보드 | |
CPU | 8 Bit Single Core | 32 Bit-Dual Core |
클럭속도 | 16 MHz | 133 MHz |
메모리 | 2 KB SRAM | 264KB SRAM 2MB Flash Memory |
Digital 입출력 핀수 | 14 | 26 (GP0~GP28번) 단, 23/24/25 PIN이 없음 |
Analog 입력수 | 6 | 3+1(내장온도센서) |
ADC | 10 Bit | 12 Bit |
PWM | 6 | 16 |
온도센서 | 내장 안함 | 내장 |
내장 LED 출력핀번호 | 13 | 25 |
3) 쉬운 언어인 마이크로 파이썬을 사용할 수도 있다.
아두이노가 C언어와 유사한 언어를 사용하는데 비해, 피코 보드는 베이직과 유사해서 배우기 쉬운 마이크로 파이썬도, C/C++과 함께 지원한다.
처음 배우는 사람이나, 개발자가 아닌 일반인이 자기 목적에 맞는 코드를 만들때는 마이크로 파이썬이 훨씬 더 사용하기 쉽기에 접근성을 높여주는 효과가 있다.
4) Wifi와 블루투스를 자체적으로 지원하는 버전이 있다.
피코 보드는 기본적으로, Wifi를 지원한다.
(좀 더 저가이면서 Wifi는 지원되지 않는것과, 조금 더 가격이 높으나 Wifi가 지원되는 2가지로 대별된다.)
5) 기본적으로 소형이고, 종류가 복잡하지 않아 선택이 단순하다.
물론 아두이노에도 소형인 나노나 마이크로 같은 제품이 있기는 하나. 가장 대표적인 제품인 우노에 비해 1/3~1/4 정도에 불과하다. (나노 버전과 유사)
3. 라즈베리 파이 피코 보드의 사용방법 – Micropython과 Python IDE이용법
라즈베리파이 피코는 다음 3가지 방법으로 프로그래밍하여 사용할 수 있다.
1) Micropython과 Python IDE를 이용하여 프로그래밍하는 방법
2) C/C++을 이용하는 방법
3) Arduino IDE를 이용하여 Arduino 언어로 Programming하는 방법
이중 가장 기본이라고 할수 있는 Micropython을 이용하는 방법을 먼저 소개한다.
Step 1. Firmware Update 및 Micropython 설치
먼저, Micropython사용을 위한 최신 Firmware를 라즈베리파이 재단 홈페이지에서 다운로드한다.
Raspberry Pi Documentation – MicroPython
이 링크를 통해 다음과 같은 라즈베리파이 공식 사이트의 Microcontroller 페이지에 들어가 화면을 약간 내려주면,
다음과 같은 부분이 나타난다. 여기서 자신에게 적합한 Firmware를 다운로드한다.
위의 붉은색 부분중 자신에게 해당되는 기종을 선택하면 UF2확장자를 가지는 Firmware파일이 다운로드
다음 PICO의 Bootsel 버튼을 누른 상태로 USB케이블을 PC에 연결하면,
PC에서는 라즈베리파이 PICO가 외부 저장소의 형태로 인식된다.
이렇게 인식된 라즈베리파이 피코를 열고, 미리 다운로드 해둔 UF2파일을 드래그 하여 넣어주면 된다.
UF2파일이 복사되면, 자동으로 라즈베리파이 피코가 재부팅되면서, Micropython을 사용할 준비가 완료된다.
Step 2. 다음 사이트에서 Python 개발용 IDE를 다운로드하여 설치한다.
다운로드한 Python IDE를 실행하면 다음과 같은 편집기 화면이 나오며, 한글도 지원된다.
PICO를 연결하고, 다음 화면처럼 우측 하단부를 열어 자신이 사용 중인 PICO 보드와 포트연결을 정확히 지정해 주면 사용준비가 완료된다.
참고로 라즈베리 파이 피코에서 기본적으로 사용하는 마이크로 파이썬은 베이직과 유사한 언어로 쉽게 배울 수 있다. 한편 라즈베리파이 재단은 마이크로 파이썬에 대한 공식 가이드북을 만들어 판매도 하는데, PDF 버전의 경우 우료로 제공하기도 한다. 다음의 Link에서 PDF 버전을 다운로드할 수 있는데, 이를 이용하면, 쉽고 정확하게 마이크로 파이썬을 배울 수 있다. (약간의 기부를 요청하나, 개인 선택에 따라 무료로도 다운로드 가능)
4. 라즈베리 파이 피코의 사용방법 – C/C++ SDK 이용법
라즈베리파이 PICO를 프로그래밍하는 또 다른 방법은 C/C++ 언어를 사용하는 것인데, Micropython을 이용하는 경우에 비해, 좀 더 세부적인 사항들까지 프로그래밍 하는 과정에서 신경을 써야 해서, 프로그램 작성은 어렵지만, C/C++을 이용하면 파이썬을 이용할 때보다 좀 더 실행속도가 빠르고, 최적화된 프로그램 작성이 가능한 것으로 알려져 있다.
한편, 라즈베리 파이 재단에서는 PICO에 서용할 수 있는 C/C++ SDK를 제공하고 있어서, 프로그램 작성 효율을 높일수 있는 것으로 알려져 있다.
https://www.raspberrypi.com/documentation/microcontrollers/c_sdk.html
5. 라즈베리 파이 피코의 사용방법 – Arduino IDE 이용법
라즈베리파이 PICO를 프로그래밍하는 또 다른 방법은 아두이노 보드용으로 사용하던 Arduino IDE를 그대로 사용하여 Arduino 보드들처럼 Coding 하는 방법이다.
사용방법은 Arduino IDE를 실행한 후, 다음 화면에서처럼 PICO 보드를 찾아 지정해주고, 이후 프로그래밍은 일반 Arduino 보드를 프로그래밍 하는 방식대로 프로그래밍 하면 된다. (참고로, 최근에는 아두이노에서도 라즈베리파이 재단이 개발한 RP2040 칩을 이용한 보드도 개발했다고 한다.)
이렇게 하면, 아두이노 IDE에서 작성한 Code를 라즈베리파이 PICO로 업로드하는 과정에서, 자동적으로 라즈베리 파이 PICO 에 맞게 변환되어 업로드된다. 즉 굳이 파이썬을 새로 배우지 않아도 아두이노 욕으로 사용하던 지식을 거의 그대로 이용하여 라즈베리 파이 PICO도 프로그래밍 할 수 있게 되는 것이다.
다만, 실제 사용해 보면 이 방법이 잘 작동하기는 하지만, Comile/upload 시간이 파이썬을 이용하여 작성하는 경우에 비해 훨씬 길어 좀 답답하게 느껴지는 측면도 있다.
6. 라즈베리 파이 피코의 Double Core 기능과 활용법
일반적인 아두이노 보드들은 Single core로 구성된 마이크로 컨트롤러 칩을 사용하기 때문에, 한번에 한가지씩의 프로그램을 처리할수 밖에 없다.
그러나 피코 보드에 사용되는 RP2040 칩은 라즈베리파이 재단에서 개발한 것으로, 칩내에 2개의 core를 가지고 있다. 따라서, 이를 이용하면 하나의 칩에서 2가지 일을 동시에 처리할 수 있다.
(주: 아두이노 보드중에도 최근 RP2040을 사용하는 보드가 출시되고 있기는 하다.)
따라서, 라즈베리파이 피코를 사용하는 프로그램을 만들때 이점을 고려할 필요가 있는데, _thread라는 방식을 이용하여 처리하게 된다. 즉, 다음과 같은 code에서 _thread 명령을 만나면, 이 thread 명령을 미리 선언해 둔 함수를 하나의 코어에서 처리하게 되고, 나머지 코어는 계속해서 _thread 명령 이후의 행을 처리하게 된다.

