개발자의 생활

라즈베리파이 피코 소개 및 개발환경 구축 본문

라즈베리파이 Pico

라즈베리파이 피코 소개 및 개발환경 구축

Developer성현 2023. 5. 6. 13:07

안녕하세요 이번에는 아두이노와 같은 마이크로 컨트롤러인 라즈베리파이 피코 를 소개하고

개발환경을 구축 해 보겠습니다.

 

먼저 라즈베리파이는 아두이노처럼 교육용으로 만들어진 보드입니다. 이름처럼 해당 보드는 라즈베리파이사 에서 만든 보드이며 지금까지는 MPU를 사용해서 OS 에 의해 구동되는 미니PC만 만들었지만 처음으로 자체적으로MCU를 만들어

피코라는 이름을 붙여 아두이노처럼 저럼한 4달라! 가격으로 출시하였습니다.

 

라즈베리파이 피코의 가장 큰 특징은 파이썬 을 사용한다는것인데요. 하드웨어를 제어하는데 C, C++이 아닌 파이썬을 사용한다는 점에서 정말 신기하네요. 물론 C, C++을 사용해서 개발할수도 있다고 합니다. 그래도 교육용으로 만들어진 보드인만큼 학생들이 진입장벽이 낮은 파이썬을 사용하는것이 좋겠지만 정확이는 마이크로파이썬을 사용한다는 점과 인터프리터 언어이기에 C, C++에 비해 속도가 느리다는 단점도 있습니다. 하지만! 그만큼 라즈베리파이 피코의 성능이 좋기 때문에 큰 영향은 없을거라 생각됩니다.ㅎㅎ

 

라즈베리파이 피코의 성능을 아두이노와 비교해보겠습니다.

아두이노는 가장 대표작인 UNO보드와 비교해보겠습니다.

비교항목 아두이노(UNO) 라즈베리파이 피코
MCU Atmega328p RP2040
클럭 16MHz 133MHz
디지털 제어핀 수 20개 26개
PWM 제어 핀 수 6개 16개
아날로그 입력 핀 수 6개 3개
SRAM 2KB 264KB
EEPROM 1KB 2MB
시리얼 통신 UART(4개), SPI(1개), I2C(2개) UART(2개), SPI(2개), I2C(2개)

전체적으로 라즈베리파이 피코 보드의 사양이 더 좋습니다. 특히 클럭 속도가 아두이노에 비해 무려 8배 이상 빠르기 때문에 위에서 인터프리터 언어를 사용해도 속도에 큰 영향이 없다는것입니다. 그리고 저장용량 또한 SRAM은 132배 EEPROM는 2048배! ... K를 M로 잘못쓴거 아닙니다. 저거 맞습니다. 또한 I2C통신은 거의 모든핀에서 사용할 수 있기에

조금 더 유연한 회로구성이 가능할거 같습니다. 그리고 표에는 없지만 듀얼 쓰레드를 사용할 수 있다는 큰 장점도 있습니다.

 

하지만 라즈베리파이 피코에도 단점은 물론 존재합니다.

가장 큰 단점은 보드 형태입니다. 아두이노 나노처럼 브레드보드에 연결해서 사용해야 하기 때문에 조금 번거롭고 기본 출력전압이 아두이노와 다르게 3.3V 입니다. 하지만 다른 보드 STM32 도 3.3V이기에 이 부분은 이상한것은 아니지만 아두이노를 사용하다가 피코를 사용하면 불편할 수도 있을겁니다.

그리고 핀 구조도 GPIO핀 4개 사이에 GND가 있어서 핀을 잘못 연결할 수도 있을거 같습니다. GND를 사이사이에 넣어서 편하게 사용할 수 있게 설계한거 같지만 오히려 불편할수도 있을거 같네요. 이부분은 호불호가 있을거 같습니다.

또한 GPIO23 ~ 25번 핀이 내부에 다른 기능으로 사용되고 있어서 했갈릴수도 있습니다. 그냥 핀 이름을 다르게 해서 설계하면 더 깔끔할거 같은데 프로토타입으로 만들어졌다보니 어쩔 수 없었을수도 있겠네요.

제가 가장 불편하다고 생각한건 아날로그 입력 ADC핀이 3개밖에 사용할수 없다는것인데요 사실 4개가 존재하지만 이것또한 핀 하나는 내부 온도센서로 연결되있다고 하네요.

그리고 USB포트를 마이크로5핀 2.0 을 사용한다는것입니다. 요즘에는 C타입으로 바뀌어가는 추세인데 저렴하게 만들기 위해 그런건가 싶네요...

 

아래는 라즈베리파이 피코 의 이미지와 핀 구성 입니다

.

https://shop.mchobby.be/fr/pico-rp2040/2025-pico-rp2040-microcontroleur-2-coeurs-raspberry-pi-3232100020252.html

위 이미지를 보시면서 개발하면 편하겠네요. 아날로그 입력핀에 인가할 수 있는 전압은 3.3V 가 최대라고 강조하는거 보니

실수로라도 5V를 넣지 안게 조심해야겠네요. 그리고 위 표에서는 PWM을 16개만 제어할 수 있다고 나와있는데 이미지에서는 모든 핀에서 사용할 수 있다고 나옵니다. 정확히는 모든 핀에서 사용할 수 있지만 제어할 수 있는 개수는 16 개라는겁니다. 즉 GP0 ~ GP15까지 PWM을 사용하고 있다면 그 이외 다른 핀에서는 사용할 수 없습니다.

 

스팩은 여기까지만 소개하고 바로 개발환경을 구축해보겠습니다.

 

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

 

Raspberry Pi Documentation - MicroPython

The official documentation for Raspberry Pi computers and microcontrollers

www.raspberrypi.com

먼저 위 사이트에 들어가셔서 파란색으로 밑줄 친 부분을 클릭해서 파일 2개를 다운받아 주세요.

2개의 파일중 확장자가 uf2인 파일은 라즈베리파이 피코에 들어가는 파일 입니다. 자세히는 모르겠지만 아두이노로 비교하면 부트로더 같은 존재가 아닐까 생각됩니다. 그리고 또 하나는 개발 툴 IDE입니다. 이 툴을 사용해서 코드를 작성하고 라즈베리파이 피코에 업로드를 할겁니다.

 

그럼 피코 보드에 BOOTSEL 버튼을 누르면서 PC에 USB케이블을 연결시켜 주세요. 그럼 PC가 라즈베리파이 피코를 외장 메모리로 인식을 하고 저장소가 만들어 질겁니다. 그 안에 조금전에 다운받은 확장자가 uf2인 파일을 넣어주시면 자동으로 보드가 재부팅 되면서 저장소가 사라지게 됩니다. 이제 보드에 코드를 넣어서 구동시킬 준비가 되었습니다.

다음으로 개발툴을 설치해줍니다. 설치 과정은 크게 어려울거 없이 간단하니 포스팅은 구지 안하겠습니다.

 

프로그램을 실행하면 이런 비슷한 창이 나올겁니다.

하지만 처음 실행하면 위에 메뉴바가 안보일겁니다. 그럴때는 우측 상단에 레귤러모드로 변경을 누르고 프로그램을 재실행 해주시면 상단에 메뉴바가 나올겁니다.

 

그리고 메뉴바에 Run 을 클릭하고 첫번째 항목을 클릭해주시면 설정창이 나오게 됩니다.

 

여기서  인터프리터 선택 클릭해서 MicroPython (Raspberry Pi Pico) 선택해 주시고 OK를 눌러주세요

그리고 바로 아래쪽에 포트를 클릭해서 USB직렬장치를 선택해주시면 모든 준비가 완료됬습니다

 

이제 간단하게 hello pico 를 출력하는 코드를 작성해서 넣어보겠습니다.

코드를 작성해서 위 실행버튼을 클릭하면 피코보드에 코드가 올라가고 shell 창에 프린트되는걸 보실 수 있습니다.

 

라즈베리파이 피코 소개와 개발한경 구축을 해 보았습니다.

수고하셨습니다.

'라즈베리파이 Pico' 카테고리의 다른 글

내장LED 점등 소등 시키기  (0) 2023.05.06