MicroPython による micro:bit 用テキストメッセージング拡張

micro:bit財団は、micro:bit用のテキストメッセージング拡張をMicroPythonで作成した、13歳の生徒であるWillよりしばらく前に連絡を受けました。 彼のメッセージでは次のように言っています:「私はmicro:bitでPythonを使うのが大好きで、MicroPythonでテキストメッセージングのプログラムを作成しました」。 もちろん私たちはワクワクしました。 The person who received Will's message wrote to the rest of the team: "A 13-year-old has written a lovely little communicator using Python and two micro:bits - something to consider for the website for an article perhaps?" There was, of course, no argument, so, eventually, here is Will's Micro:bit Txting Program.

概要:

端子0と1を同時にタッチして文字を順に変え、ボタンAを押してメッセージに文字を追加します。ボタンBを押して完成したメッセージを送信します。 このプログラムは2つのmicro:bitだけが必要で、MicroPythonのRadioモジュールで双方に送受信できます。 ただし、micro:bitが3つ以上でも使えます。通信するmicro:bitすべてに同じプログラムを転送するだけで、どれも互いに送受信できます。 実際のPythonプログラムは以下です。

.hex ファイルを作成するには、上記のPythonプログラムをダウンロードして microbit.orgPythonエディタ にファイルをドラッグして .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]
            sentence = []

            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():
                    sentence.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(sentence))
                   display.scroll(''.join(sentence))
                    sentence = []
                    break
            break
Phone()

micro:bitで楽しんでね!

Selecting this opens external content from our support system, which adheres to their privacy policy.