본문 바로가기
IT/파이썬

임베디드 보드 파이썬 - CircuitPython MicroPython

PC 환경이 아닌 임베디드 보드에서 동작하는 파이썬 환경이 있다.

MicroPython 이 대표적이라고 볼 수 있다.

RaspberryPi Pico 보드의 공식 포트는 이 마이크로파이썬으로 되어 있긴 하네. 그런데, 여러 라이브러리를 import 해서 쓰려고 하니 여기저기 찾아봐야 하는 것이 많다.

 

CircuitPython ! 임베디드 보드 및 프로젝트에서 엄청 유명한 Adafruit 에서 공식적으로 배포하고 있는 MicroPython fork 버전이다. 여기에는 그냥 갖다 쓸 수 있는 라이브러리가 많다. 

왠만한 모듈에 대한 드라이버의 기본 예제는 제공하는 듯 하다. 부품을 워낙 많이 팔고 있으니 계속 유지보수 될 것이라는 기대도 있다.

Adafruit 홈페이지에서 내세우는 차이와 장점을 살펴보자.

https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython/micropython-or-circuitpython

 

Getting Started with Raspberry Pi Pico and CircuitPython

The Raspberry Pi foundation changed single-board computing when they released the Raspberry Pi computer, now they're ready to do the same for microcontrollers with the release of the brand new Raspberry Pi Pico.

learn.adafruit.com

 

일단, MicroPython과 거의 다를게 없으며, 되려 초보자들이 접근하기 쉽게 빠르게 자신의 원하는 바를 해 볼 수 있도록 목적으로 두고 있다고 한다. 

CircuitPython is focused on beginners, education, and getting folks started super fast.

 

USB 드라이버 기반으로, 그냥 USB 드라이버에 있는 code.py를 수정하면 파이썬 코드가 동작하도록 되어 있다. 이 USB 드라이버는 수MB 정도 수준이라고 하네

CircuitPython was designed to have a USB disk drive that appears when you plug in the board. That disk drive is small (on the order of MB!) and holds your code and files. You can treat it just like a disk drive - drag and drop files, delete and copy them. You do not need to use Thonny to 'upload' a file - simply drag any file you want to the USB drive.

 

코드의 재시작은 그냥 파일을 저장하기만 하면 자동으로 된다. edit-save-run 스텝으로 완성된다.
CircuitPython will restart your code when you save files to the disk drive. That means when you write Python code, whenever you save it will auto-reload the code for you, for instant gratification. This is a little unusual for programmers who are used to 'edit-save-compile-upload-reset-run' - we go straight to 'edit-save-run'.

지원되는 거의 모든 보드에 일관성 있는 API 접근을 제공한다. 보드가 바뀐다고 Application이 통째로 바뀌면 힘드니깐...

CircuitPython has a consistent API across all boards. That means that whether you're using a Pico, or an nRF52840 or an ESP32-S2 or SAMD51 for your project, the code for your hardware is identical. (Other than pin names which may vary depending on how many there are on the board itself and what they're called).

최대 장점!! 아주 많은 검증된 예제와 강력한 지원

CircuitPython has a lot of examples and support!
There are 260+ libraries for the standard CircuitPython API. Most of these will already work. Listed here

자세한 지원되는 리스트는 아래 링크를 확인하세요.

https://circuitpython.readthedocs.io/projects/bundle/en/latest/drivers.html

 

공식 사이트의 소개는 아래 링크를 참고하세요.

https://learn.adafruit.com/welcome-to-circuitpython

 

Welcome to CircuitPython!

You may have seen CircuitPython mentioned on the Adafruit site or on Discord. What is it? Why would you use it? Once you have a CircuitPython board, what do you do next? This guide has you covered from the moment you plug in your new board. Check it out!

learn.adafruit.com

사실 기본적인 사용법은 공식 문서보다는 예제로 잘 구성되어 있는 아래 페이지가 훨씬 낫다.

살펴보기

https://learn.adafruit.com/circuitpython-essentials/circuitpython-essentials

 

CircuitPython Essentials

You've already gotten started with CircuitPython. What's next? CircuitPython Essentials! This guide provides examples of all the core modules and some of the common libraries found in CircuitPython and how they're used. You'll be able to use any board desi

learn.adafruit.com

 

BJ.

석양보며 쉬자

Abdullah Ghatasheh 님의 사진, 출처: Pexels