9.3 演示案例
micro:bit萤火虫
- 首先,它检查按钮A是否被按下,如果是,则使用无线电发送消息“flash”。
- 然后它使用
radio.receive()
从消息队列中读取任何消息。如果有消息,它会暂停一段短暂的随机时间(以使显示更有趣),并使用display.show()
设置动画。最后,为了让事情变成随机发生,它选择一个随机数,以便它有十分之一的机会将“flash”消息重新广播给其他人(这就是在几个设备中维持萤火虫显示的可能性)。如果它决定重新广播,那么在再次发送“闪光”信号之前等待半秒(因此初始闪光消息的显示有可能消失)。
import radio
import random
from microbit import *
flash = [Image().invert()*(i/9) for i in range(9, -1, -1)]
radio.on()
while True:
if button_a.was_pressed():
radio.send('flash')
incoming = radio.receive()
if incoming == 'flash':
sleep(random.randint(50, 350))
display.show(flash, delay=100, wait=False)
if random.randint(0, 9) == 0:
sleep(500)
radio.send('flash')