아두이노와 경쟁하는 라즈베리 파이 피코 (PICO) 보드의 주요 특징과 사용법

아두이노와 경쟁하는 라즈베리 파이 피코 (PICO) 보드의 주요 특징과 사용법

​

1. 라즈베리파이 피코의 탄생

앞서 소개한 아두이노가 2006년경 이태리에서 출시된 이후 인기를 끌게 되었고, 이후 영국에서도 컴퓨터 교육용으로도 사용할 수 있고, 아두이노처럼 하드웨어 제어기능도 있는 라즈베리 파이 제품이 2012년경에 출시되었다.

​

초기 라즈베리 파이

현재 기준 가장 최근 버전인 라즈베리 파이 4B

​

라즈베리 파이 역시 크기 면에서 아두이노 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

​

다운로드한 Python IDE를 실행하면 다음과 같은 편집기 화면이 나오며, 한글도 지원된다.

​

​

​

PICO를 연결하고, 다음 화면처럼 우측 하단부를 열어 자신이 사용 중인 PICO 보드와 포트연결을 정확히 지정해 주면 사용준비가 완료된다.

​

​

​

​

참고로 라즈베리 파이 피코에서 기본적으로 사용하는 마이크로 파이썬은 베이직과 유사한 언어로 쉽게 배울 수 있다. 한편 라즈베리파이 재단은 마이크로 파이썬에 대한 공식 가이드북을 만들어 판매도 하는데, PDF 버전의 경우 우료로 제공하기도 한다. 다음의 Link에서 PDF 버전을 다운로드할 수 있는데, 이를 이용하면, 쉽고 정확하게 마이크로 파이썬을 배울 수 있다. (약간의 기부를 요청하나, 개인 선택에 따라 무료로도 다운로드 가능)

​

https://hackspace.raspberrypi.com/books/micropython-pico

se-l-text” id=”SE-9a62cd57-3640-4274-a67e-537aa9910979″>

9a62cd57-3640-4274-a67e-537aa9910979″, “data” : {“link” : “https://hackspace.raspberrypi.com/books/micropython-pico”, : “false”, “thumbnail” : ”

​

​

4. 라즈베리 파이 피코의 사용방법 – C/C++ SDK 이용법

라즈베리파이 PICO를 프로그래밍하는 또 다른 방법은 C/C++ 언어를 사용하는 것인데, Micropython을 이용하는 경우에 비해, 좀 더 세부적인 사항들까지 프로그래밍 하는 과정에서 신경을 써야 해서, 프로그램 작성은 어렵지만, C/C++을 이용하면 파이썬을 이용할 때보다 좀 더 실행속도가 빠르고, 최적화된 프로그램 작성이 가능한 것으로 알려져 있다.

​

​

한편, 라즈베리 파이 재단에서는 PICO에 서용할 수 있는 C/C++ SDK를 제공하고 있어서, 프로그램 작성 효율을 높일수 있는 것으로 알려져 있다.

​

https://www.raspberrypi.com/documentation/microcontrollers/c_sdk.html

se-l-text” id=”SE-7e22e008-1c85-487d-8737-8493b19dd499″>

7e22e008-1c85-487d-8737-8493b19dd499″, “data” : {“link” : “https://www.raspberrypi.com/documentation/microcontrollers/c_sdk.html”, : “false”, “thumbnail” : ”

​

​

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 명령 이후의 행을 처리하게 된다.

​

​

​