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

[마이크로 비트 with 파이썬] 디버깅

by 북마크한 취미생활 2020. 5. 17.

마이크로 비트(micro:bit)에서 파이썬 코딩을 하고, 코드를 마이크로 비트(micro:bit)에 올렸을 때 잘 수행이 되면 좋을 텐데 가끔 LED display에 에러 문구가 보이고 동작을 하지 않는 경우가 있습니다.

그래서 이번 포스팅은 이렇게 잘못 작성된 코드를 찾아내고 수정하는 디버깅 방법을 소개하도록 하겠습니다.

| 오류가 있는 코드

하기의 코드는 마이크로 비트 LED display에 "Hello, World"를 출력하는 기본 코드입니다. 하지만 디버깅 방법을 설명해 드리기 위해서 일부러 에러가 있는 코드로 만들었습니다.

from microbit import * 

while true : 
display.scroll("Hello, World")

에러의 내용은 다음과 같습니다. while 구문에서 Truetrue로 변경하였고, display.scroll("Hello, World") 구문에 indent를 띄우지 않았습니다.

| 디버깅 방법

해당 코드를 마이크로 비트에 올리면 당연히 코드에서 의도했던 "Hello, World"의 구문이 나오지 않고 이상한 문구만 출력이 됩니다.

에러를 잡기 위해 'Mu' 에디터의 REPL 버튼을 누릅니다.

그러면 REPL 모드로 전환이 되는데, 이때 프롬프트에 커서를 위치시킨 뒤에 CTRL+D 키를 누릅니다.

키를 누르면 soft reboot이 실행이 되고, 마이크로 비트에 올려진 프로그램 실행 시 발생한 에러를 볼 수 있게 됩니다.

에러 구문을 보면 코드의 4번째 줄에서 구문 에러(invalid syntax)가 발생됨을 알 수 있습니다. MU 프로그램에서 REPL 버튼을 다시 눌러 코드를 수정할 수 있는 edit 모드로 변경을 합니다.
앞서 설명한 것처럼 코드에서 display.scroll("Hello, World") 문장에 indent를 주지 않아 에러가 발생한 것으로 문장 앞에 TAB 키를 눌러 indent를 주어 에러를 수정합니다.

다시 Flash 버튼을 눌러 코드를 마이크로 비트에 수정된 프로그램을 업로드합니다.

코드를 수정하고 프로그램을 다시 올리더라도 정상 동작을 하지 않습니다. 다시 REPL mode로 변경한 뒤에 CTRL+D 키를 눌러 에러를 확인합니다

에러는 4번 라인이라고 적혀있는데, 상세한 에러를 알기 위해서 아래 문구를 읽으면 ''true'라는 것이 정의되어 있지 않다'라고 설명되어 있습니다. 4번 줄에는 true라는 코드가 없으니 에러 구문에 표기된 4번 라인 앞뒤를 보면, 3번 라인의 Truetrue로 잘못 타이핑된 것을 발견할 수 있습니다.
다시 REPL을 빠져나와 3번 라인의 trueTrue로 변경합니다.

변경한 코드를 마이크로 비트에 올리면 수정된 코드가 정상적으로 동작하는 것을 볼 수 있습니다.

이번 포스팅에서는 에러가 있는 간단한 코드에서 에러를 찾고 수정하는 방법을 살펴봤습니다. 마이크로 비트 프로그램 작성 중에 에러로 고생하신 분이 있다면, REPL을 이용하여 디버깅을 하는 방법을 활용하시면 에러를 찾는데 조금이나마 도움이 될 것이라 생각 듭니다.

긴 글 읽어 주셔서 감사합니다.

반응형

댓글