마이크로 컨트롤러 개발 기판은 메이커 커뮤니티에서 필수품이 되었습니다. 이러한 프로그래밍 가능 장치는 센서, 모터, LED, HID(휴먼 입력 장치)와 같은 다양한 모듈 및 구성 요소를 제어하기 위한 방법으로 입력 및 출력 신호를 처리하도록 특별히 설계되었습니다.

하지만 그 전에 마이크로 컨트롤러가 이러한 장치를 프로그래밍하기 위해 해석할 수 있는 스크립팅 언어를 배워야 합니다. 오늘날 가장 많이 사용되는 마이크로컨트롤러 언어에는 MicroPython, CircuitPython, Arduino(간소화된 C++), C 등이 있으며, 각 언어에는 고유한 장단점이 있습니다.

마이크로파이썬

마이크로파이썬은 마이크로컨트롤러를 위해 특별히 설계된 파이썬 3 프로그래밍 언어의 경량 구현입니다. 더 빠른 프로토타이핑과 이미 Python에 익숙한 사람들이 유사한 언어로 마이크로컨트롤러를 프로그래밍할 수 있도록 2013년에 Damien George 박사에 의해 출시되었습니다.

특징

마이크로파이썬은 마이크로컨트롤러를 프로그래밍하려는 초보자를 위한 훌륭한 스크립팅 언어입니다. 코딩 경험이 없는 초보자도 간단한 구조로 사람이 읽을 수 있는 명령을 사용하기 때문에 쉽게 읽고 이해할 수 있습니다. 또한 읽기-평가-출력-루프(REPL) 런타임 환경을 사용하여 대화형 코딩 경험이 가능합니다.

성능

마이크로파이썬을 사용하여 마이크로컨트롤러를 프로그래밍하려면 인터프리터, 라이브러리 및 기타 다양한 종속성이 포함된 펌웨어가 마이크로컨트롤러에 플래시됩니다. 이를 통해 마이크로컨트롤러에서 마이크로파이썬 코드를 로컬로 해석하고 실행할 수 있으므로 코딩하는 동안 실시간 피드백을 받을 수 있어 신속한 프로토타이핑이 가능합니다.

그러나 프로세서가 코드를 실행하는 방식 때문에 MicroPython과 같은 해석 언어는 C++와 같은 컴파일 언어에 비해 상당히 느립니다. 따라서 기본적으로 프로토타이핑은 훨씬 빠를 수 있지만 코드 실행 자체는 느립니다.

호환성

마이크로파이썬은 로컬 리소스를 사용하여 프로그램을 해석하고 실행하므로 마이크로컨트롤러에는 최소 256kB의 플래시 메모리와 16kB의 RAM이 있어야 합니다. 안타깝게도 아두이노 우노와 같이 널리 사용되는 일부 개발 보드는 필요한 사양을 충족하지 못합니다. 하지만 MicroPython과 호환되는 보드는 여전히 많이 있습니다.

현재 MicroPython은 공식적으로 파이보드, ESP32, ESP8266, 라즈베리파이 피코, BBC 마이크로비트, STM32 개발 보드, 그리고 나노 33 BLE, 나노 RP2040, 기가 R1, 포텐타 H7과 같은 몇 가지 아두이노 보드를 지원하고 있습니다.

이 글도 확인해 보세요:  내부에서 REST API 호출을 수행하는 방법 VS 코드

커뮤니티 및 지원

2013년에 출시된 이후 MicroPython은 상당한 팬층을 확보하고 있습니다. 잘 작성된 문서 덕분에 초보자도 쉽게 MicroPython을 배울 수 있습니다. 도움이 더 필요한 경우, 사용자가 튜토리얼과 아이디어를 공유하고 MicroPython과 관련하여 발생할 수 있는 모든 종류의 문제에 대한 답변을 제공하는 커뮤니티 포럼도 있습니다.

아두이노

아두이노는 주로 전자제품 및 DIY 애호가를 대상으로 하는 인기 있는 오픈 소스 플랫폼입니다. 아두이노 프로그래밍 언어는 C 및 C++ 프로그래밍 언어를 기반으로 합니다. 아두이노 언어는 2005년에 이탈리아의 엔지니어, 예술가, 디자이너 그룹에 의해 출시되었습니다.

특징

아두이노 프로그래밍 언어는 C와 C++의 간소화된 버전을 사용하므로 쉽게 배우고 개발할 수 있습니다. 아두이노를 사용한 코드 실행은 컴파일된 언어의 특성으로 인해 해석된 언어보다 훨씬 빠릅니다. 또한 아두이노는 작동하는 데 소량의 시스템 리소스만 필요하므로 많은 개발 보드 및 마이크로 컨트롤러와 호환됩니다.

성능

마이크로파이썬 및 서킷파이썬과 달리 아두이노는 컴파일된 프로그래밍 언어입니다. 즉, 코드는 먼저 컴파일러에서 컴파일된 다음(이미 Arduino IDE에 포함되어 있음) 마이크로 컨트롤러에서 전체 프로그램으로 실행됩니다.

이렇게 하면 마이크로 컨트롤러가 각 코드 줄을 해석하는 데 리소스를 사용할 필요가 없으므로 코드 실행이 크게 향상됩니다. 또한 프로그램을 컴파일하면 마이크로컨트롤러가 종속성을 설치하지 않고도 기본적으로 실행할 수 있는 머신 코드로 변환됩니다.

마이크로컨트롤러가 코드 번역에 시간과 하드웨어 리소스를 할당하지 않고도 프로그램을 직접 실행할 수 있으므로 코드 실행 속도가 크게 향상됩니다.

지원 보드

컴파일 단계가 IDE를 통해 이루어지기 때문에 마이크로컨트롤러는 최소 32kB의 플래시 메모리와 2kB의 RAM만 있으면 작동할 수 있습니다. 따라서 아두이노 보드 외에도 아두이노로 프로그래밍하는 데 사용할 수 있는 많은 아두이노 보드 대안이 있습니다. 이러한 보드 중 상당수는 ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 및 STM32와 같은 마이크로 컨트롤러를 사용합니다.

커뮤니티 및 지원

2005년부터 오픈 소스 플랫폼으로 사용되어 온 아두이노는 최고의 문서를 보유하고 있습니다. 아두이노 재단은 매년 업데이트, 지원 및 새롭고 흥미로운 제품을 적극적으로 제공하고 있습니다. 또한 전 세계 커뮤니티는 가이드와 아이디어를 공유하고 발생할 수 있는 문제 해결에 대한 답변을 제공하는 데 가장 적극적인 커뮤니티 중 하나입니다. 아두이노를 사용하면 좋은 수준의 지원을 보장받을 수 있습니다.

이 글도 확인해 보세요:  React Native에서 Flexbox를 사용하는 방법

CircuitPython

CircuitPython은 마이크로파이썬을 기반으로 구축된 Adafruit의 파이썬 3 구현입니다. MicroPython에서 포크되었지만 CircuitPython은 마이크로 컨트롤러를 쉽고 재미있게 학습할 수 있도록 몇 가지 개선된 기능을 제공합니다.

특징

회로 파이썬은 초보자가 마이크로 컨트롤러를 프로그래밍하는 방법을 배우도록 돕기 위해 만들어졌습니다. 이를 위해 CircuitPython은 대화형 코딩 환경, 내장 라이브러리, 간단한 구문(마이크로파이썬보다 간단함), 훌륭한 문서 및 가이드 등 여러 기능을 제공합니다.

성능

CircuitPython은 MicroPython을 기반으로 하기 때문에 동일한 강점과 약점을 많이 가지고 있습니다. CircuitPython은 더 많은 기능과 추가 라이브러리를 제공하므로 프로그램 실행 시간은 MicroPython보다 약간 느립니다. 그러나 CircuitPython이 작동하려면 더 성능이 뛰어난 마이크로컨트롤러가 필요하기 때문에 그 차이는 눈에 띄지 않을 수 있습니다.

지원되는 보드

통합 라이브러리와 더 간단한 구문으로 인해 마이크로컨트롤러 개발 보드에서 CircuitPython을 사용하려면 더 많은 리소스가 필요합니다. 마이크로컨트롤러에는 최소한 8비트 프로세서, 256KB의 플래시 메모리(512KB 권장), 32KB의 RAM(64KB 권장)이 있어야 합니다. 현재 CircuitPython은 390개 이상의 개발 보드를 지원하며, 공식 웹사이트 에 나열되어 있습니다.

커뮤니티 및 지원

Adafruit는 초보자 친화적인 제품을 만드는 것으로 유명합니다. 따라서 회로 파이썬에 대한 이해하기 쉬운 문서와 책을 찾을 수 있습니다. 이 언어는 2017년에야 소개되었지만, Discord와 공식 포럼을 통해 접할 수 있는 마이크로파이썬보다 여전히 더 많은 팔로워를 보유하고 있습니다. 아두이노 재단과 마찬가지로 Adafruit는 업데이트, 지원 및 신제품을 적극적으로 제공하고 있으므로 지원을 쉽게 찾을 수 있습니다.

C

C는 1970년대에 벨 연구소의 데니스 리치(Dennis Ritchie)가 개발한 범용 프로그래밍 언어입니다. 엔지니어 및 기타 전문가가 마이크로 컨트롤러를 높은 수준의 효율성으로 프로그래밍하는 데 자주 사용하는 컴파일된 프로그래밍 언어입니다.

특징

배우기 어려운 언어이지만 MicroPython, CircuitPython 및 Arduino에 비해 C의 주요 장점은 속도, 효율성, 제어 및 이식성 수준입니다. 따라서 C는 완제품에 사용되는 두 마이크로컨트롤러를 프로그래밍하는 데 가장 적합한 언어입니다.

성능

C는 뛰어난 휴대성 외에도 성능으로도 잘 알려져 있습니다. 리소스가 적은 마이크로컨트롤러를 사용하더라도 Arduino, MicroPython, CircuitPython보다 빠르게 프로그램을 실행할 수 있습니다. 이는 C가 종속성이 가장 적은 효율적인 언어이기 때문입니다. 컴파일된 아두이노 프로그램은 C 프로그램과 마찬가지로 베어메탈 하드웨어에서 실행할 수 있지만, 머신 코드는 성능을 저하시키는 라이브러리와 도구로 미리 구워져 제공됩니다.

이 글도 확인해 보세요:  라즈베리 파이에서 호스팅할 수 있는 9가지 종류의 서버

지원 보드

C 언어는 이식성이 뛰어나 거의 모든 Arm 기반 마이크로컨트롤러를 프로그래밍하는 데 사용할 수 있습니다. 또한 Atmel AVR, STM32, PIC 및 MSP 마이크로컨트롤러 기반 보드에서 사용할 수 있습니다.

커뮤니티 및 지원

강력한 프로그래밍 응용 프로그램과 이미 수십 년이 지났기 때문에 C 프로그래밍 언어에는 방대한 온라인 커뮤니티가 있습니다. C 언어에 대해 토론하고 아이디어를 공유하는 다양한 온라인 포럼, 채팅방, 블로그를 통해 도움을 쉽게 찾을 수 있습니다.

어떤 언어로 프로그래밍해야 하나요?

그렇다면 마이크로컨트롤러를 프로그래밍하는 데 가장 적합한 언어는 무엇일까요? 사람에 따라 다릅니다. 생산용 전자 제품을 설계하는 전문가에게는 C 언어가 가장 적합할 것입니다.

코딩 경험이 없는 사람은 쉽고 재미있게 배울 수 있는 기능과 설명서가 있는 CircuitPython으로 시작하는 것이 좋습니다. 파이썬에 익숙한 사용자라면 마이크로파이썬으로 마이크로컨트롤러를 쉽게 프로그래밍할 수 있습니다.

그리고 대부분의 DIY/메이커 커뮤니티에서는 성능, 휴대성, 기능 및 커뮤니티의 뛰어난 균형을 제공하는 Arduino가 여전히 마이크로 컨트롤러를 프로그래밍하는 데 가장 적합한 언어일 것입니다.

By 이지원

상상력이 풍부한 웹 디자이너이자 안드로이드 앱 마니아인 이지원님은 예술적 감각과 기술적 노하우가 독특하게 조화를 이루고 있습니다. 모바일 기술의 방대한 잠재력을 끊임없이 탐구하고, 최적화된 사용자 중심 경험을 제공하기 위해 최선을 다하고 있습니다. 창의적인 비전과 뛰어난 디자인 역량을 바탕으로 All Things N의 잠재 독자가 공감할 수 있는 매력적인 콘텐츠를 제작합니다.