마이크로비트 마이크로파이선 메시징 패키지

마이크로비트 재단은 마이크로파이선(MicroPython)으로 텍스트 메시징 패키지를 만든 13살 학생 윌(Will)과 한 동안 연락을 주고 받았습니다. 그의 메시지에서 "저는 제 마이크로비트에서 파이선(Python)을 사용하는 것이 너무 좋습니다. 그래서 마이크로파이선(MicroPython)을 이용해서 텍스트 메시징 프로그램을 만들었습니다." 물론 우리 재단은 아주 많이 기대했습니다. 윌 학생의 메시지를 받았던 팀원 중 한 명은 다음과 같이 나머지 팀원들에게 이야기 했습니다. "13살짜리 학생이 2개의 마이크로비트 사이에 메시지를 통신하는 작고 멋진 통신 프로그램을 파이선 프로그래밍 언어로 만들었습니다. - 아마? 웹 사이트에 관련 글이 올려져 있을 것 입니다." 물론, 글이 올려져 있었고 그 작품은 윌의 마이크로비트 텍스트 메시징 프로그램(Will's Micro:bit Txting Program)입니다.

기본 사항:

0번과 1번 핀을 동시에 눌러 문자들을 바꾸고, A버튼을 눌러 원하는 문자를 메시지에 추가하고, B버튼을 누르면 완성한 메시지가 전송됩니다. 이렇게 메시지를 만들어 전송하기 위한 프로그램 스크립트는 2개의 마이크로비트를 이용해 사용 가능하며 마이크로파이선(MicroPython)의 라디오(무선 블루투스) 모듈을 이용해 메시지를 주고 받습니다. 또한 여러 개의 마이크로비트에 같은 프로그램을 업로드해서 2개 이상의 마이크로비트들이 서로 메시지를 주고 받도록 할 수 있습니다. 윌(Will)이 만든 파이선 코드는 다음과 같습니다.

.hex 파일을 만들기 위해서는 위 코드 파일 중 하나를 microbit.org의 파이선(Python) 편집기에 드래그해서 넣은 다음 .hex 파일을 만들어 다운로드하면 됩니다.

설명(주석)이 함께 작성되어 있는 마이크로파이선(MicroPython) 코드


from microbit import *
import radio
import random
import microbit
#setup radio
radio.config(length=251, channel=53, power=4)

sending = 1

def Phone():

    #initialise radio
    radio.on()
    while True:

        msg = str(radio.receive())

        global sending

        if sending >= 2:
            sending = 0


        #select page
        while sending == 1:

            message = 0
            messages = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '(', ')', '"', ':)', ':(']
            global tosend
            tosend = messages[message]
            sentance = []

            while True:

                msg = str(radio.receive())

                #prevents errors
                if message >= int(len(messages)):
                    message = int(len(messages))

                #scrolls message when received
                if msg != 'None':
                    display.scroll(msg)
                    display.show(tosend)

                #scrolls through characters
                if microbit.pin0.is_touched():
                    message = message - 1
                    tosend = messages[message]
                    display.show(tosend, delay=200)
                    sleep(200)

                if microbit.pin1.is_touched() and tosend != 9:
                    message = message + 1
                    tosend = messages[message]
                    display.show(tosend, delay=200)
                    sleep(200)

                #adds character to list
                if microbit.button_a.is_pressed():
                    sentance.append(tosend)
                    tosend = messages[message]
                    display.scroll(tosend, delay=50)

                #sends list as string
                if sending == 1 and microbit.button_b.is_pressed():
                    radio.send(''.join(sentance))
                   display.scroll(''.join(sentance))
                    sentance = []
                    break
            break
Phone()

마이크로비트를 재미있게 가지고 놀아보세요!