디지털 라이프 電子的生活 My Digital Life/아두이노 (Arduino)

아두이노 코드 올리는 라즈베리파이 피코!!!

미친도사 2021. 6. 7. 22:48

IOT, 임베디드 어쩌고 하는 것에 라즈베리파이와 아두이노가 등장하면서 예전에는 쉽게 접근하지 못 했던 마이컴(또는 micro-processor)을 이용한 회로 설계가 많이 대중화되었다 할 수 있다.

두 환경이 서로 그 타겟이 다르다 할 수 있는데,
- 라즈베리파이 진영은 ARM계열 프로세서에 데비안 계열의 리눅스 OS를 올려서 사용자가 필요한 개발 언어를 이용하여 자유롭게 개발하는 환경이라 할 수 있었고,
- 아두이노 진영은 Atmel사의 소형 마이크로 프로세서에 아두이노 IDE란 C-언어를 기본으로 하는 개발 환경을 제공하여 사용자가 만든 프로그램을 쉽게 업로드해서 실행할 수 있게 하는 환경이었다.

아두이노 진영이 계속 여러 마이크로 프로세서를 지원하면서 ARM 계열까지 지원하기에 이르러 다양한 아두이노 지원 하드웨어가 시장에 등장했고, 라즈베리파이 진영은 리눅스 OS가 아닌 임베디드 개발 환경을 지원하는 ARM 계열의 RP2040이란 마이크로 프로세서를 발표하고 그 첫번째 하드웨어러 라즈베리파이 피코 (Raspberry Pi Pico)를 시장에 내놓았다.

그러더니, 아두이노 진영에서 바로 라즈베리파이 피코를 지원하겠다 발표했다. 아두이노를 지원하는 하드웨어들이 사양이 좀 낮아서 아쉬울 때가 아주 조금 있는데, 좀 더 강력하고 GPIO가 많은 라즈베리파이 피코의 아두이노 환경 지원은 굉장히 흥미롭다 하겠다.

라즈베리파이 피코의 기본 기능은 다음과 같다.
(출처: https://www.raspberrypi.org/documentation/rp2040/getting-started/#board-specifications)

 

https://www.raspberrypi.org/documentation/rp2040/getting-started/#board-specifications

Documentation Documentation for Raspberry Pi Pico and other RP2040-based boards. An RP2040-based microcontroller boardA microcontroller by Raspberry PiUsing RP2040 microcontrollers to build boards and products C/C++ development with Raspberry Pi Pico and o

www.raspberrypi.org

  • 영국의 라즈베리파이에서 설계한 RP2040 마이크로 프로세서 칩
  • 최대 133MHz가지 동작가능한 유연한 클럭 속도의 듀얼 코어 ARM Cortex M0+ 프로세서
  • 264KB SRAM, 2MB의 온보드 플래시 메모리
  • 캐리어 보드에 직접 납땜 가능한 골진 모듈 *
  • USB 1.1 장치 및 호스트 기능 지원
  • 저전력 절전 및 유휴 모드
  • USB를 통한 저장 장치를 이용한 드랙앤드롭 프로그래밍
  • 26개의 다기능 GPIO 핀
  • 2 × SPI, 2 × I2C, 2 × UART, 3 × 12-bit ADC, 16 × 제어가능한 PWM 채널
  • 정확한 클럭 및 타이머 내장
  • 온도 센서
  • 가속화된 부동 소수점 라이브러리 내장
  • 커스텀 주변기기 지원을 위한 8개의 PIO state machines (??)

* 역주: 핀 헤더로만 연결하는 것이 아닌 PCB에 직접 땜할 수 있게 I/O 핀 주변 가장자리에 홈이 나 있다.

 

이렇게만 써놓고 보면 뭐가 그리 다른가 싶긴 한데, I/O 많고 성능 좋고 하니 GPIO 많이 쓰고, PWM 컨트롤 많이 하는 쪽에선 굉장히 매력적일 것 같다. 게다가 주변 기기를 붙일 수 있는 기능이 있다하니, 변형된 형태의 아두이노 모델들이 많이 나올 것 같다. 당장 아두이노 진영에서 공식적으로 RP2040 프로세서에 와이파이, 블루투스, 6축 센서 등 기능 잔뜩 넣은 아두이노 나노 RP2040이란 제품을 내놓고 예약 판매 시작했으니 흥미로운 제품 줄줄이 나올 것 같다.

https://store.arduino.cc/usa/nano-rp2040-connect-with-headers

 

Arduino Nano RP2040 Connect with headers

Can I power the Nano RP2040 with a battery? Batteries: the Nano RP2040 Connect has no battery connector, nor charger. You can connect any external battery of your liking as long as you respect the voltage limits of the board. Does the Nano RP2040 have I2C

store.arduino.cc

나도 아두이노 공홈에 주문해놓고 기다리는 중이다. ㅎㅎ

그런데, 문제는 라즈베리파이 피코가 아두이노 환경을 쓰도록 만들어진 건 아니라서 아두이노를 위해서는 약간의 사전 작업이 필요하다. 이 내용을 다룬 글이 좀 있긴 한데, 가장 최근에 아두이노 진영에서 내놓은 보드 프로파일을 이용하는 것이 한방에 동작해서 나도 소개해 본다.

참고한 동영상은 다음과 같다

https://www.youtube.com/watch?v=5YOEauk9bLo 

 

이게 검색하면 예전에 개인이 개발한 RP2040 보드 프로파일이 있긴 한데, 잘 안 되더라. 하지만, 아두이노 진영에서 배포한 보드 프로파일은 한 방에 성공했다.

따로 설명을 쓸 필요도 별로 없이 이 영상 따라하면 된다.

포인트는
1. 아두이노 IDE의 board manager에서 Arduino에서 제공하는 RP2040 보드 프로파일을 설치
2. 아두이노 IDE에 기본 샘플 코드인 blink 읽어 들이고
3. 보드는 Arduino Mbed OS RP2040 Boards > Raspberry Pi Pico 선택

4. 이렇게 해둔 상태에서 라즈베리파이 피코의 BOOTSEL 버튼을 누른 채로 USB 연결을 하고, 그대로 아두이노 IDE에서 blink 소스를 Upload한다.

정상적인 상태라면 보드가 연결된 시리얼 포트 지정을 해야 하지만, 포트 선택이 안 되어 있는 상태지만 BOOTSEL을 누르고 연결된 상태에서는 upload가 된다. 그리고, 나면 내장 LED가 깜빡이면서 해당 피코가 아두이노용으로 바뀐 것이다.

이제 뺐다가 다시 끼우면, 라즈베리파이 피코가 여느 아두이노 보드들처럼 시리얼 포트 연결이 활성화되어서 지정할 수 있다.

 

뭐에 써먹나 싶긴 한데, 일단 이런 하드웨어도 있음을 알고 있으면 언젠가는 써먹지 않겠나 싶다. ㅋㅋ

일단 라즈베리파이 피코에 아두이노 올린 기념 짧은 포스트는 여기까지~!

반응형