마이크로비트란? / micro:bit

 1. 마이크로비트 (micro:bit)란

영국의 BBC에서는 코딩교육 목적으로 마이크로비트 (micro:bit)를 출시했다. 아두이노, 라즈베리파이까지 공부할 것이 많다고 느끼는 찰나에 나타난 초소형 컴퓨터! 실제 사이즈는 아두이노나 라즈베리파이보다 작은 가로 4cm 세로 5cm 정도로 25개의 빨간색 LED가 내장되어 있다.

microbit

마이크로비트의 앞뒤면에 있는 컴포넌트들과 각 기능은 다음과 같다.

micro

1. LED 매트릭스: 5×5 LED 매트릭스를 통해서 숫자 및 문자를 출력할 수 있다. 즉, 프로그래밍을 처음 하게 될 때 출력하는 “Hello World!”라는 문자열을 모니터 및 LCD 디스플레이가 아닌 LED 매트릭스를 통해서도 구현할 수 있다.
2. A/B 버튼: A와 B로 표기된 버튼은 프로그래밍을 통해 사용할 수 있는 내장된 푸쉬버튼으로 게임 및 음악 컨트롤을 위해서 사용될 수 있다.
3. I/O핀: 마치 고전 게임팩에서 보았을만한 모양의 금색 패드와 구멍은 입출력을 위한 기능을 한다. 악어클립/케이블을 이용해서 센서, 엑추에이터, 그리고 디스플레이 등의 외부 하드웨어와의 연결이 가능다.

4. 광센서: LED 매트릭스는 디스플레이 용도 뿐만 아니라 광센서의 역할을 하기도 한다.

micro (1)

1. 마이크로컨트롤러: 마이크로비트(micro:bit)의 핵심 소자인 프로세서(processor)는 16MHz의 ARM Cortex-M0를 사용하며, 256KB의 플래시 메모리와 16KB의 RAM이 사용된다.
2. 가속도센서/지자기센서: 왼쪽 하단에는 두개의 작은 집들이 있는데, 하나는 가속도센서이고 다른 하나는 지자기센서이다. 가속도센서를 통해서 중력가속도 방향인 연직방향을 기준으로 상대적으로 회전하는 각도를 검출할 수 있고, 지자기센서를 통해서 동서남북의 방향을 검출할 수 있다.
3. 블루투스: 마이크로비트(micro:bit)는 스마트폰 및 타블렛과 블루투스(BLE)를 통한 통신이 가능하다. 또한, 마이크로비트끼리도 이 블루투스를 통해 무선통신이 가능하다.
4. 온도센서: 마이크로컨트롤러는 또한 온도센서로도 역할을 한다. 온도 센싱이 가능한 마이크로컨트롤러를 탑재했다는 것은 마이크로비트의 또 다른 숨은 기능이다.
5. 마이크로USB 포트: 전원 및 프로그래밍 목적으로 사용되는 마이크로USB 포트
6. 리셋 버튼: 프로그래밍을 초기화하여 다시 시작할 수 있도록 하는 리셋버튼

7. JST 배터리 커넥터: 외부 전원 및 배터리와 연결할 수 있는 JST 커넥터가 내장되어 리튬폴리머/리튬이온 및 1차전지와도 사용이 가능하다. 또한, JST 커넥터 단자를 사용하여 어댑터를 통한 전원 공급도 가능하다.

 

 2. 컴퓨터와 연결하기

마이크로비트의 마이크로USB 포트에 케이블을 연결한 후, 컴퓨터의 USB 단자에 케이블을 끼우면 자동으로 인식을 한다.

  

 

파일 내부를 들여다보면, MICROBIT라는 파일과 DETAILS라는 파일을 확인할 수 있으며,

DETAILS라는 파일을 열어보면 보드의 정보가 기재되어 있다.

마이크로비트는 32비트의 Cortex-M0를 사용하며, 아두이노와 비슷한 방식으로 프로그래밍하는 것이 아니라 MBED와 비슷한 방식으로 프로그래밍을 하게 된다.

위의 DETAILS 내부의 정보를 보면 알 수 있듯이 펌웨어는 MBED를 기본으로 하고 있음을 알 수 있다.

마이크로비트가 MBED와 비슷한 방식으로 프로그래밍을 한다고 하면, 프로그래밍을 통해 업로드할 파일을 생성할 것이다.

아두이노에서는 파일을 드래그하여 업로드하는 것이 아닌 IDE라는 소프트웨어를 통해서 업로드하였다.

하지만, 마이크로비트는 프로그래밍을 통해서 파일을 생성하고 드래그하여 프로그램을 업로드하는 것이 가능하다.

 3. 프로그래밍하는 방법블록 프로그래밍과 파이썬 프로그래밍

마이크로비트는 두가지 방법으로 프로그래밍이 가능한데, 첫번째는 블록 프로그래밍 기반이며 두번째는 파이썬 프로그래밍을 이용한 방법이다.

1) 블록 프로그램 기반: https://makecode.microbit.org/

2) 파이썬 프로그래밍 기반: http://python.microbit.org/

1) 블록 프로그래밍과 자바스크립트

스크래치나 엔트리를 사용해본 사람이라면, 익숙한 블록 프로그래밍을 지원하는 마이크로비트는 마이크로소프트에서 제공하는 블록 기반의 프로그래밍 인터페이스를 제공한다. 이 블록 프로그래밍은 자바스크립트로 상호 변환이 가능하며, 시뮬레이션도 가능하다.

오른쪽의 블록을 배치하는 곳을 보면 다음과 같이 “on start” 블록과 “forever” 블록이 있다. “on start” 블록은 전원이 들어오면 한번 실행되는 블록이며, 아두이노의 “setup()” 함수와 비슷하다. 그리고 “forever” 블록은 전원이 꺼질 때까지 계속 반복되는 블록으로 아두이노의 “loop()” 함수와 비슷하다.

 

메뉴 중에서 “Basic”을 선택하면 다음과 같은 기능을 가진 블록 리스트가 확인할 수 있고, “show leds”라는 블록을 선택한 후 드래그하여 프로그램 공간에 이동한다.

 

 

“show leds” 블록 안에 있는 각각의 LED를 클릭해서 다음과 같은 패턴을 만들어본다. 그러면 왼쪽에 보이는 시뮬레이터를 통해 실제 마이크로비트에 출력될 LED 패턴을 확인할 수 있다.

LED를 활용한 애니메이션을 만들어보기 위해서 메뉴의 “Basic”에서 “pause(ms)” 블록을 선태간 후에 다음과 같이 블록을 조립해본다. “pause(ms)” 블록은 아두이노의 “delay()” 함수와 비슷한 기능을 한다.

 

왼쪽 하단에 있는 프로그램 다운로드 버튼을 클릭해본다. 그러면 .hex 확장자를 가진 파일이 생성된다.

 

Microbit-제목-없음.hex라고 생성된 파일을 드래그하여 마이크로비트가 있는 폴더로 이동시키면 마이크로비트에 업로드 된 새로운 기능을 확인할 수 있다.

 

블록을 사용하여 간단한 프로그램을 만들어서 업로드하였는데, 마이크로소프트에서 제공한 본 방식은 자바스크립트를 이용한 웹 기반의 프로그래밍이다. 때문에 블록을 사용한 프로그램은 자바스크립트 언어로도 변환이 가능한데, 다음과 같이 프로그램이 자동으로 만들어진 것도 확인을 할 수가 있다.

오른쪽 상단의 “Blocks” 탭을 “JavaScript” 탭으로 변경하면 프로그램 공간에 자바스크립트 형태의 프로그래밍 언어를 확인할 수 있다.

프로그램이 업로드 된 후에는 보조배터리를 통해서도 전원 공급이 가능하다. 이미 프로그램이 업로드 되어 있기 때문에, 전원을 공급하는 것만으로도 프로그램을 재생할 수 있다.

 

2) 파이썬을 이용한 프로그래밍

파이썬을 사용한 프로그래밍은 확장성을 가질 수 있지만, 마이크로비트를 처음 다룰 경우에는 추천하고 싶지 않은 방법이다. 먼저, 마이크로비트에서 사용할 수 있는 문법을 배워야하기 때문이다. 예를 들어, 블록을 기반으로 프로그래밍을 할 경우에는 display.scroll()라는 명령어를 사용하지 않고, 직관적인 블록을 사용하여 프로그래밍이 가능했지만, 파이썬을 프로그래밍의 경우에는 마이크로비트에서 이미 만들어 놓은 함수(built-in function)을 사용해야하기 때문에 함수에 대해서 숙지하거나 검색을 통해서 사용할 수 있다.

마이크로비트에서 사용되는 파이썬 문법과 함수에 대해서는 다음의 링크에서 확인이 가능하다.

https://microbit-micropython.readthedocs.io/en/latest/

기본적으로 제공된 Hello, World!와 하트를 출력하는 프로그램을 마이크로비트에 업로드하기 위해서는 왼쪽 상단의 Download 버튼을 클릭하면 hex 파일이 저장되며, 이를 드래그해서 마이크로비트의 폴더로 이동시켜주면 프로그램이 업로드된다.

끝으로 마이크로비트 및 악세서리를 가장 많이 판매하고 있는 링크를 소개한다.

Leave a Reply