3. 마이크로파이선 명령어 알아보기2(무선통신, 입력/출력)

이 활동은 파이선 프로그래밍 언어의 BBC 마이크로비트용 버전인 마이크로파이선(MicroPython)에 대해 알아보기 위한 활동 차시이다. 이 활동을 통해 마이크로파이선 언어 중 무선통신(radio)과 마이크로비트의 핀(0, 1, 2) 입력을 사용하는 예시들을 통해 직접 실습해 보게 된다. 이 활동을 통해 여러분들은 추후 마이크로비트를 이용한 다양한 프로젝트 활동 및 메이커 활동을 할지 생각해 볼 수 있게 될 것이다.

【활동목표】


1. 마이크로비트의 다양한 명령어에 대해 알 수 있다.

2. 예제를 통해 무선통신(radio) 명령어의 기능을 알 수 있다.

3. 예제를 통해 마이크로비트의 핀(0, 1, 2) 입력의 기능을 알 수 있다.

1무선통신(Radio)

먼 곳에서의 상호작용은 마술처럼 느껴진다. 무선 상호 작용은 모두 물리학에 관한 것이다. 전파(전자기 방사선의 한 유형인 가시광선과 유사)는 정보가 인코딩 될 수 있는 방식으로 송신기에 의해 변조되는 일종의 속성(예. 진폭, 위상 또는 펄스 폭)을 갖는다. 전파가 전기 전도체(즉, 공중)와 마주칠 때, 교류는 파도의 정보가 추출되어 원래의 형태로 다시 변환 될 수 있는 교류를 일으키게 된다.

[준비물]

- micro:bit 2 set(1set는 마이크로비트 본체 1개, micro USB(5핀) to USB 선 1개로 구성)

- 악어 클립 전선 4개

- 이어폰 혹은 피에조 버저 2개

무선통신의 경우는 수신기와 송신기의 개념으로 접근해야 하기 때문에 혼자서 2개의 마이크로비트를 활용하여 활동하고자 한다. 짝꿍과 함께 각각 1개의 마이크로비트를 가지고 활동하여도 무방하다.


다음은 무선통신의 예제이다.

이미지. 마이크로비트에 무선통신의 예제코드를 실행하는 동영상의 스크린샷.

from microbit import *


import music

import radio


radio.on()


while True:

    if button_a.was_pressed():

        radio.send(‘1’)

    incoming=radio.receive()

    if incoming==‘1’:

        music.play(music.WEDDING)

우선 마이크로파이선에 무선통신(radio)와 내부 멜로디 음악(music)을 입력시킨다.

그 위 무선통신 함수를 호출하여 켜기 위해 radio.on()을 입력한다.

그 뒤 1번 마이크로비트의 버튼 a를 눌렀을 때 무선통신을 통해 “1”이라는 문자가 2번 마이크로비트에게 보내지게 되고 2번 마이크로비트에서는 받은 문자 “1”이 같다면 음악을 부르게 된다.


한번 위의 예시를 작성하여 2대의 마이크로비트에 입력한 뒤 체험해 보기 바란다.

더 알아보기

무선통신을 보낼 때 문자(“ ”)를 보낼 수도 있지만 숫자를 보낼 수도 있다.

숫자를 보내는 방법은 다음과 같다.

문자: radio.send(“”)

숫자: radio.send_bytes()

활동예제

1

1번 마이크로비트의 a 버튼을 눌렀을 때 “반짝반짝 작은 별” 멜로디가 2번 마이크로비트에서 나올 수 있도록 해보자.

이미지. 마이크로비트에 반짝반짝 작은 별 멜로디가 두 번 실행되는 동영상의 스크린샷

[참고 자료] 반짝반짝 작은 별 코드


tune=["C4:4", "C4:4", "G4:4", "G4:4", "H4:4", "H4:4", "G4:8", "F4:4", "F4:4", "E4:4", "E4:4", "D4:4", "D4:4", "C4:8", "G4:4", "G4:4", "F4:4", "F4:4", "E4:4", "E4:4", "D4:8", "G4:4", "G4:4", "F4:4", "F4:4", "E4:4", "E4:4", "D4:8", "C4:4", "C4:4", "G4:4", "G4:4", "H4:4", "H4:4", "G4:8", "F4:4", "F4:4", "E4:4", "E4:4", "D4:4", "D4:4", "C4:8"]

from microbit import *


import music

import radio

tune=["C4:4", "C4:4", "G4:4", "G4:4", "H4:4", "H4:4", "G4:8", "F4:4", "F4:4", "E4:4", "E4:4", "D4:4", "D4:4", "C4:8", "G4:4", "G4:4", "F4:4", "F4:4", "E4:4", "E4:4", "D4:8", "G4:4", "G4:4", "F4:4", "F4:4", "E4:4", "E4:4", "D4:8", "C4:4", "C4:4", "G4:4", "G4:4", "H4:4", "H4:4", "G4:8", "F4:4", "F4:4", "E4:4", "E4:4", "D4:4", "D4:4", "C4:8"]


radio.on()


while True:

    if button_a.was_pressed():

        radio.send('1')

    incoming=radio.receive()

    if incoming=='1':

        music.play(tune)

2입력/출력(Input/Output)

2차시에서 알아본 명령어인 음악(Music)에서 우리는 이미 입력과 출력에 대해 배웠다.

입력된 프로그램을 출력하기 위해 스피커 및 피에조 버저를 0핀(+극)과 GND 핀(-극)에 악어 클립으로 연결 후 출력한 방식이 입력과 출력의 기본 방법이라고 할 수 있다.

이번에는 핀을 통한 입력의 가장 간단한 예인 접촉 여부를 확인하는 것에 대해 알아보고자 한다.

[준비물]

- micro:bit 1 set(1set는 마이크로비트 본체 1개, micro USB(5핀) to USB 선 1개로 구성)

- 악어 클립 전선 2개

- 이어폰 혹은 피에조 버저 1개

더 알아보기

BBC micro:bit의 각 핀은 pinN이라는 객체로 표현된다. 여기서 N은 핀 번호이다. 그렇다면 예를 들어 위에서 언급한 큰 핀 중 0은 어떻게 표현할까? 맞다. pin0라고 불리게 된다.

이러한 명칭으로 불리는 이유는 특정 핀이 수행할 수 있는 작업에 따라 다양한 메서드가 있기 때문이다.

핀을 통한 입력의 가장 간단한 예는 접촉 여부를 확인하는 것이다.

다음의 예를 입력해 보도록 하겠다.

이미지. 마이크로비트의 1번 핀을 만졌을 때 소리가 나는 동영상의 스크린샷

from microbit import *


import music

tune=["C4:8"]


while True:

    if pin1.is_touched():

        music.play(tune)

위의 프로그램은 1핀을 만졌을 경우 소리가 나도록 하는 것이다.

하지만, 지금 1핀을 만졌을 때 과연 소리가 날까? 모든 접속을 통할 때는 GND 핀을 잡아야지 전류가 통하게 되어 소리가 나게 된다.

한번 한 손은 1핀을 다른 한 손은 GND 핀을 만져보자. 소리가 난다.

활동예제

1

1핀을 만졌을 때 웨딩 노래가 나올 수 있도록 코드를 작성해 보자.

이미지. 마이크로비트의 1번 핀을 만졌을 때 웨딩 노래가 실행되는 동영상의 스크린샷

from microbit import *


import music


while True:

    if pin1.is_touched():

        music.play(music.WEDDING)

이상으로 마이크로파이선의 명령어에 대해 알아보았다.

여러분이 배운 명령어인 음악, 버튼, 무선통신, 입력/출력으로 할 수 있는 다양한 활동들이 있다. 단순히 예제를 실행하는데 그치지 않고 여러분의 상상을 현실로 만들어 보기 바란다.