마이크로:비트의 파이썬 라이브러리 구조가 한 눈에 보이는 게 없어서 여기에 정리해 보고자 한다. (공식문서를 참조했다.)


모듈의 이름은 microbit 이다. 따라서 아래와 같은 함수나 클래스를 사용하려면 


from microbit import * 


명령으로 모두 로드하던가, 아니면 개별적으로 로드해서 사용하면 된다.



① 시스템관련


reset() 함수 : 보드를 리셋한다

panic(n) 함수 : 패닉모드(panic mode)로 들어간다. (보드는 재시작되어야 함)


② 시간 관련


sleep(ms) : 밀리초만큼 (아무 일도 않고) 기다린다.

running_time() : 보드가 (재)가동된 시간을 밀리초로 반환한다.


(외부모듈로는 utime이 있다. 외부모듈이므로 별도로 import 해야함)


③ 시각적인 표시 관련


Image 클래스


display.show(image) 메서드

display.scroll(string) 메서드


display.get_pixel(x, y)

display.set_pixel(x, y, value) : value 는 [0, 9]범위의 정수로 밝기를 설정함

display.clear()


display.on()

display.off()

display.is_on()

display.read_light_level(val)



④ 버튼 관련


미리 정의된 button_a,  button_b 객체를 사용함


button_a.is_pressed() : 현재 눌려졌으면 True 반환

button_a.was_pressed() : 이 함수가 마지막으로 호출된 이후 눌려진 적이 있다면 True반환 하고 상태는 리셋됨

button_a.get_pressed() : 총 몇 번 눌렸는지를 반환(그리고 횟수는 0으로 리셋됨)


※ button_b에 대해서도 동일한 메서드를 사용 가능


④ 핀관련


pin0, pin1, pin2, ... oin16, pin19, pin20 (pin17과 pin18은 사용불가)

(pin5는 button_A, pin11은 button_b에 사용)

pin_logo (V2에 추가)

pin_speaker  (V2에 추가)



pinN.read_digital()

pinN.write_digital(val) : val이 1이면 HIGH, 0이면 LOW


pinN.read_analog() : 0(0V)~1023(3.3V)사이의 정수 반환, (pin3, pin4, pin10 만 가능)

pinN.write_analog(val) : PWM출력 val은 0(0%듀티)~1023(100%듀티) 사이의 정수

pinN.analog_period(ms) : PWM주기 설정(최소갑은 1ms)

pinN.analog_period_microseconds(us) : PWM주기 설정(최소갑은 256 us)

※ 아날로그 입출력은 pin0, pin1, pin2 만 (내부LED를 안 쓸때는 pin3, pin4, pin10 까지) 가능


pinN.is_touched() : 터치되었다면 True 반환 

pinN.set_touch_mode(val) : val은 pinN.CAPACITIVE 혹은 pinN,RESISTIVE

※ 터치 기능은 pin0, pin1, pin2 에만 (V2에는 pin_logo 에도) 있음


⑤ 소리관련


audio.play()

audio.is_playing()

audio.stop()


⑥ 가속도계 관련


accelerometer.get_x()

accelerometer.get_y()

accelerometer.get_z()

accelerometer.get_values()

accelerometer.current_gesture()


⑦ 나침판(compass) 관련


compass.calibrate()

compass.clear_calibration()

compass.get_field_strength()

compass.get_x()

compass.get_y()

compass.get_z()

compass.hearing()



⑧ 내장 마이크 (V2)


microphone


⑨ 내장 스피커 (V2)


speaker.on()

speaker.off()

speaker.is_on()


⑩ 기타: Bluetooth SPI, UART I2C 등은 생략




Posted by 살레시오

댓글을 달아 주세요

최근에 마이크로비트가 V2로 하드웨어가 업데이트되었다. 규격은 동일하지만 프로세서가 업그레이드 되면서 기존의 48MHz 클럭 스피드가 65MHz로 상향되었다. 그리고 플래시메리리가 512kb 로 기존의 두 배로 늘어났고 램도 32kb로 역시 두 배로 늘었다.


그리고 스피커와 마이크로폰이 추가되었고 로고에 터치센서가 연결된 점이 가장 크게 눈에 띈다.



Posted by 살레시오

댓글을 달아 주세요

마이크로비트(micro:bit)는 파이썬(정확히는 '마이크로파이썬'이다)으로 프로그램이 가능하다.

라이브러리가 잘 갖추어져 있는 것 같고 웹에서 바로 코딩하거나 Mu라는 에디터를 PC에 설치하여 파이썬 코딩이 가능하다. 개인적으로 Mu를 이용하는 것이 편했다.



Mu는 이전에는 꽤 불안정한 에디터였던 것으로 기억하는데 버전이 1.x대로 올라섰고 어느 정도 안정감 있게 동작하는 것 같다.



마이크로비트뿐만 아니라 마이크로파이썬이 동작하는 ESP32기반의 보드 같은 것에도 사용할 수 있다.



위의 모드에 보면 circuitpython 기반의 보드들도 지원하는 것을 알 수 있다.


Posted by 살레시오

댓글을 달아 주세요