본문 바로가기

메이커 이야기/ESP32

ESP32 MicroPython 시작하기

반응형

ESP32를 MicroPython을 사용하여 제어해보는 과정을 만들어보려고 합니다. 그 동안은 Arduino IDE로 ESP32를 제어했었는데요. Python을 종종 사용하는 저에게 C++개발환경보다는 Python을 사용할 수 있다는게 너무 큰 장점인것 같습니다.
그럼 Micropython에 대해서 한번 알아보도록 하겠습니다.


1. ESP32 보드의 소개와 특징들

 ESP32 보드는 는 Espressif Systems에서 개발한 저전력 무선 Wi-Fi 및 블루투스 SoC(System-on-a-Chip)입니다. ESP32 보드는 이러한 SoC를 이용한 개발보드로, 저렴하면서도 고성능의 장점을 가지고 있습니다.

ESP32 보드의 주요 특징은 다음과 같습니다.

듀얼코어 프로세서

ESP32는 32비트 듀얼코어 마이크로컨트롤러로 구성되어 있습니다. 이로 인해 높은 처리 속도와 성능을 제공하며, 다양한 IoT 응용 프로그램에서 유용하게 사용됩니다.

Wi-Fi 및 블루투스 모듈 (강추!!)

ESP32 보드는 내장된 Wi-Fi 및 블루투스 모듈을 통해 인터넷과 다른 디바이스와의 무선 통신이 가능합니다. 이를 이용하여 IoT 응용 프로그램을 구현할 수 있습니다.

저전력

ESP32 보드는 저전력 운영을 지원하여 배터리 수명을 연장할 수 있습니다. 또한, ESP32는 기본적으로 슬립 모드에서 동작하며, 센서 값의 변화에 따라 깨어나 필요한 작업을 수행하므로, 저전력으로 대기할 때에도 전력 소모가 낮습니다.

다양한 인터페이스 지원

ESP32 보드는 다양한 인터페이스를 지원합니다. 이를 통해 센서, 모터, 디스플레이 등 다양한 하드웨어를 제어할 수 있습니다. ESP32 보드는 GPIO, I2C, SPI, UART, ADC, DAC 등의 다양한 인터페이스를 지원합니다.

쉬운 개발 환경

ESP32 보드는 Arduino IDE, MicroPython, Lua 등의 다양한 프로그래밍 언어와 개발 도구를 지원합니다. 이를 이용하여 사용자는 보다 쉽고 빠르게 ESP32 보드를 활용하여 IoT 응용 프로그램을 개발할 수 있습니다.

이 중에서도 저는 단연 아두이노보다 높은 사양과 WIFI - BLE가 된다는게 아주 좋은 것 같아요! 개발환경이 잘 되어 있다는것도 하나의 이유 입니다!

 

2. MicroPython? 무엇인가요?

 

 MicroPython은 파이썬 언어를 기반으로 하는 마이크로컨트롤러 및 임베디드 시스템용 인터프리터 언어입니다. MicroPython은 매우 작은 용량으로 구현되어 있으며, 대부분의 파이썬 3 문법을 지원합니다.

 MicroPython은 다양한 임베디드 시스템에서 사용될 수 있습니다. 예를 들어, 마이크로컨트롤러보드, Wi-Fi 모듈, IoT 디바이스, 로봇, 센서 등에서 활용될 수 있습니다. MicroPython은 기존의 C 또는 어셈블리 언어로 작성된 코드보다 더 높은 추상화 수준을 제공하며, 개발자들은 더욱 쉽게 하드웨어를 제어할 수 있습니다.

 MicroPython은 다양한 장점을 가지고 있습니다. 첫째, 매우 적은 용량으로 구현되어 있기 때문에, 임베디드 시스템에서도 동작 가능합니다. 둘째, 파이썬의 간결하고 직관적인 문법을 이용하여, 하드웨어 제어와 데이터 처리를 쉽게 수행할 수 있습니다. 셋째, 다양한 플랫폼에서 지원되며, 호환성이 높습니다.

 또한, MicroPython은 파이썬 3.4 이상의 대부분의 문법을 지원하며, 파이썬 개발자들은 높은 호환성과 빠른 개발 속도를 경험할 수 있습니다. MicroPython은 파이썬에서 지원하는 모듈과 라이브러리를 일부 지원합니다. 이는 개발자들이 표준 라이브러리를 이용하여 더욱 효율적으로 개발할 수 있도록 돕습니다.

 MicroPython은 다양한 하드웨어 플랫폼에서 지원됩니다. 이를 이용하여, 사용자는 간편하게 마이크로컨트롤러 보드에서 Python 프로그래밍을 수행할 수 있습니다. MicroPython은 Arduino, ESP32, Raspberry Pi, BBC micro:bit, Adafruit Circuit Playground 등 다양한 보드에서 동작 가능합니다.

 

3. MicroPython vs Python의  차이점

 MicroPython은 Python 3.x 버전을 기반으로 하여, 작은 크기와 저전력 환경에서의 실행 등의 특징을 갖는 파이썬입니다. 이에 따라, MicroPython과 Python 점을 정리해보겠습니다.

1. 크기: MicroPython은 Python 인터프리터의 크기를 최소화하기 위해 필요한 기능만을 구현하여, 크기가 작습니다. 따라서, MicroPython은 제한된 자원을 갖는 임베디드 시스템에서도 실행 가능합니다.

2. 라이브러리: MicroPython은 Python의 표준 라이브러리를 지원하지만, 모든 라이브러리를 지원하지는 않습니다. MicroPython은 하드웨어와 관련된 라이브러리를 강화하여, IoT 등의 분야에서 높은 활용도를 갖습니다.

3. 성능: MicroPython은 Python 인터프리터에 비해 실행 속도가 느릴 수 있습니다. 이는 MicroPython이 파이썬의 일부 기능을 최적화하지 않고, 크기를 최소화하기 때문입니다.

4. 표준 입출력: Python에서는 print() 함수를 통해 출력을 수행하며, input() 함수를 통해 사용자 입력을 받습니다. 그러나 MicroPython에서는 표준 입출력 기능이 지원되지 않기 때문에, 특별한 라이브러리를 사용하여 입출력을 처리해야 합니다.

5. 제공 함수: MicroPython에서는 일부 빌트인 함수가 Python과 다른 결과를 반환할 수 있습니다. 예를 들어, range() 함수의 경우, MicroPython에서는 제너레이터 객체를 반환하지 않고, 리스트를 반환합니다.

6. 예외 처리: Python과 달리 MicroPython은 모든 예외를 처리하지 않습니다. 이는 MicroPython의 자원이 제한되어 있기 때문입니다.

7. 모듈 임포트: Python과 달리 MicroPython에서는 모듈을 동적으로 로딩할 수 없습니다. 모듈은 미리 컴파일되어야 하며, 해당 모듈이 제공하는 함수와 변수만 사용할 수 있습니다.

아무래도 최소화한 기능들만 제공한 것이다보니 안되는 것들이 많아보입니다. 하지만 ESP32를 제어하는데 있어서는 전혀 어려움이 없어 보여서 도전해볼만한 가치는 있다고 생각합니다!!

특히 IoT 서비스를 구축하기 위해서 MicroPython을 사용하면 더 편하게 구축할 수 있을 것 같아요!!

 

그럼 MicroPython을 한번 설치해보도록 하겠습니다.

반응형