今天一天的心情都很焦躁, 因为要等待幼升小摇奖的结果, 既想早点知道又不想知道.
到了下午4点, 宝山区还没公布, 然后到了4点15分的时候, 老婆突然发来两个字:

中了

哈, 真的非常开心, 立刻就原地跳了起来, 女儿就要成为一个世外的小学生啦. 虽然无数次在脑子里幻想会摇中, 但这一刻真正到来的时候, 还是非常开心的.

以前一直对女儿说感觉她很幸运, 这种心理暗示看来不仅影响了她, 也影响了她身边的我们. 一下班我就赶快回家抱女儿, 对她说:这次感觉你很幸运, 只要你继续这么善良, 自信和乐观, 好运气会一直陪伴着你.

哈哈, 女儿现在有了两个被动技能: 斗争心和强运, 毕竟运气也是实力的一部分, 加油吧少女!

昨天在家整理东西, 翻出来了2018年底买的一个Microbit开发板, 当时买了也没用多久就吃灰了. 后来就不知道放到哪里去了.

正好翻出来, 就对着官方的教程迅速总结一下, 万一哪天小孩要玩了, 也可以翻一下博客立刻上手.

  1. 显示内容和操作LED阵列
  2. 显示图片

显示内容和操作LED阵列

MB的基础显示命令是 display.scroll(字符串, delay=毫秒, loop=True/False)

LED 是一个5*5的阵列, 从左上角横向是 0-4 , 竖向是 0-4

使用 display.set_pixel(x,y, int brightness) 来设置某一个LED, 亮度数值可以取0-9

写一个程序测试一下亮度0-9的变化:

# Add your Python code here. E.g.
from microbit import *

i = 0

while True:

    display.set_pixel(2,2,i)

    i = i+1

    if i ==10:
        i= 0

    sleep(1000)

    display.set_pixel(2,2,0)
    sleep(300)

可以获取当前某个LED的亮度, 用 pixel_brightness = display.get_pixel(3,2) 获取当前亮度

display.show()用于固定显示, 而不卷动.

display.clear()将所有的LED的亮度设置为0

display.off()用来关闭显示, 有五个引脚连到LED阵列的每一列, 关闭显示之后, 这五个引脚可以用来做其他用途. 如果不关闭, 改变显示的时候这五个引脚也会强制被改变, 就不能用来编程了.

display.on()则是重新用来打开显示. display.is_on()则用来判断.

显示图片

Mircobit有一系列内置的图片, 可以使用Image.XXXX来直接进行显示. 搭配display.show(), 就可以显示图片了.

Image.HEART
Image.HEART_SMALL
Image.HAPPY
Image.SMILE
Image.SAD
Image.CONFUSED
Image.ANGRY
Image.ASLEEP
Image.SURPRISED
Image.SILLY
Image.FABULOUS
Image.MEH
Image.YES
Image.NO
Image.CLOCK12
Image.CLOCK11
Image.CLOCK10
Image.CLOCK9
Image.CLOCK8
Image.CLOCK7
Image.CLOCK6
Image.CLOCK5
Image.CLOCK4
Image.CLOCK3
Image.CLOCK2
Image.CLOCK1
Image.ARROW_N
Image.ARROW_NE
Image.ARROW_E
Image.ARROW_SE
Image.ARROW_S
Image.ARROW_SW
Image.ARROW_W
Image.ARROW_NW
Image.TRIANGLE
Image.TRIANGLE_LEFT
Image.CHESSBOARD
Image.DIAMOND
Image.DIAMOND_SMALL
Image.SQUARE
Image.SQUARE_SMALL
Image.RABBIT
Image.COW
Image.MUSIC_CROTCHET
Image.MUSIC_QUAVER
Image.MUSIC_QUAVERS
Image.PITCHFORK
Image.XMAS
Image.PACMAN
Image.TARGET
Image.TSHIRT
Image.ROLLERSKATE
Image.DUCK
Image.HOUSE
Image.TORTOISE
Image.BUTTERFLY
Image.STICKFIGURE
Image.GHOST
Image.SWORD
Image.GIRAFFE
Image.SKULL
Image.UMBRELLA
Image.SNAKE

想显示东西的时候记得先来找一找有没有对应的图片. 对于内置图片有两个特殊的集合, 叫做 ALL_ CLOCKSALL_ARROWS.

显示这两个集合的时候, 就是按照顺序显示其中的所有元素, display.show()方法同样可以指定delay和loop, 这样就可以简单的显示一个时钟, 比如:

display.show(Image.ALL_CLOCKS, delay = 500, loop = True)

由于这实际上是两个集合, 所以可以用索引来取得其中具体的某个箭头或者时间. 而且可以发现, display.show不仅可以显示单个图片, 还可以显示列表. 因此自制一个列表也可以:

imagelist = [Image.SURPRISED, Image.MUSIC_CROTCHET, Image.MUSIC_QUAVER, Image.MUSIC_QUAVERS, Image.PITCHFORK, Image.XMAS, Image.ROLLERSKATE]
display.show(imagelist, delay = 500, loop = True)

如果需要自己创建图片, 按照行, 分割成五个字符串, 前四个以亮度作为字符串内容,冒号结尾. 最后一个无需冒号.

然后使用Image()创建新的图片对象, 例如:

FISH = Image ("00500:""04405:""55555:""04405:""00500")
display.show(FISH)

有了图片显示, 加上时间控制, 就可以作出动画效果来了:

while True:
    display.show(Image.HEART)
    sleep(500)
    display.show(Image.HEART_SMALL)
    sleep(500)