适用于micro:bit的MicroPython的文本库

Micro:bit教育基金会回访了威尔,一名13岁的学生。他在MicroPython中创建了一个适用于micro:bit的文本通信库。 在他的消息中,他说:“我喜欢用Python来给我的micro:bit编程并且我在MicroPython里面创建了一个文本通信程序”。 当然,我们都非常激动。 那个收到威尔消息的人写信给其他团队成员说:“一名13岁的孩子已经用Python和2块micro:bit板子写出了一个可爱的通信小程序-或许我们该写点文章发布到网上,怎么样呢?” 当然,没有任何人提出反对。所以最终有了这篇威尔的Micro:bit文本通信程序

概览:

同时按下引脚P0和P1循环通过字符,按下按钮A添加消息字符,按下按钮B发送已完成的消息。 这个程序脚本只需要2块micro:bit和2个能过通过MicroPython发送接收无线电的模组。 但是,2块以上micro:bit板子也能使用,只需要把同一程序存储进多块micro:bit板子并且它们都可以发送接收信息。 实际Python代码

要想创建.hex文件,须下载以上其中一个Python代码文件,把文件拖拽进 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()
 

尽情地享受micro:bit带来的乐趣吧!