본문 바로가기
오픈소스하드웨어/마이크로:비트

[마이크로 비트 with 파이썬] 버튼 사용법

by 북마크한 취미생활 2020. 3. 20.

| 내장 스위치

마이크로 비트(micro:bit)는 A와 B로 표기된 두 개의 내장(built-in) 스위치를 가지고 있습니다. 이 내장 스위치를 통해 사용자의 입력을 받아 특정한 동작을 실행할 수가 있습니다. 예를 들면 A 버튼을 누르면 Image.ARROW_W(왼쪽 화살표), B 버튼 누르면 Image.ARROW_E(오른쪽 화살표)가 LED에 출력되도록 할 수 있습니다.

▲ 버튼 누름에 따른 동작

다음 코드가 바로 설명드린 동작을 하는 파이썬 코드입니다.

from microbit import *

while True :
    if button_a.is_pressed() :
        display.show(Image.ARROW_W)
    elif button_b.is_pressed() :
        display.show(Image.ARROW_E)
    else :
        display.clear()

| 파이썬 코드 설명

if ~ elif ~ else는 조건문입니다. 이는 'if 뒤에 나오는 문장이 참(True)이면 인덴트 된 아래 문장을 실행하라'는 의미입니다. 조건이 성립하지 않는 경우(False)는 실행을 하지 않습니다. 만약 if 문장이 성립하지 않으면, elif 문의 조건식을 확인합니다. elif 뒤에 있는 문장을 확인하여 참(True)이면 인덴트 된 문장을 실행, 그렇지 않으면(False) 아무런 동작을 하지 않습니다. else의 경우 if, elif의 조건이 모두 해당되지 않을 때 실행이 됩니다.

주의하실 부분은 if와 elif 그리고 else 문장 뒤에는 반드시 :를 써주어야 합니다. 왜냐하면 파이썬의 기본 문법이기 때문에 이를 지키지 않는다면 파이썬이 실행되지 않고, 에러가 발생하기 때문입니다. 참고로 elif의 경우 조건에 따라 여러 개를 추가하실 수 있습니다.

button_a.is_pressed()는 button_a가 눌림(is_prressed) 여부를 확인하는 기능입니다. 버튼 a가 눌리면 True를 반환하고, 그렇지 않으면 False를 반환합니다. button_b의 경우도 마찬가지 입니다.

| 마이크로 비트에서 코드 실행

파이썬 코드를 마이크로 비트(micro:bit)에 업로드(Flash)하면 아래와 같이 A와 B 버튼을 누를 때 해당 화살표 이미지가 표시되는 것을 볼 수 있습니다.

▲ 마이크로 비트(micro:bit)에서 동작모습

| 버튼 관련 함수

button_a.is_pressed()
button의 현재 상태를 반환합니다. 버튼을 눌렀을 때 True, 떨어졌을 때 False를 반환합니다.

button_a.was_pressed()
해당 함수를 호출하기 전까지 스위치의 눌림 여부를 알려줍니다. 함수가 마지막으로 호출이 된 이후부터 스위치가 눌렸다면 True, 눌리지 않았다면 False를 반환합니다.

button_a.get_presse()
해당 함수를 호출하기 전까지 스위치가 눌린 횟수를 반환합니다. 만약 버튼을 2번 눌린 후 함수를 호출하면 2가 반환됩니다. 반환 후 값은 0으로 초기화됩니다.

반응형

댓글