LED顯示相關

Hello World!

先跟世界打聲招呼 Hello World! 呷飽未

用microbit顯示文數字

有兩種方式

顯示文字 :會一個字一個字顯示

顯示捲動文字:很明顯字是捲動顯示 而且向左捲動

要一直顯示 不要忘記加入重複迴圈

還有 積木程式寫完 看看 python程式

在編輯器上再打一次

display.show() -> 顯示.用秀的

display.scroll() -> 顯示.用轉動的

試試看用micropython你的方式跟世界打招呼!!

圖形顯示

想要顯示心跳100?

用microbit顯示圖像

我們可以用microbit顯示圖像 主要有三種方式

第一種 用內建圖像顯示 python語法:display.show(Image.HEART)

第二種 用自訂圖像顯示 python語法:display.show(Image("00000:09090:09990:00900:00000"))

第三種 用內建的多個圖像組做動畫顯示 python語法:display.show(Image.ALL_CLOCKS, delay=400, wait=True, loop=False, clear=True)

內建的多個圖像組有 ALL_CLOCKSALL_ARROWS

多個圖像組除了內建外 還可以用列表(list)來做

列表動畫顯示

列表(list)就像哆啦A夢的百寶袋

想要裝什麼 就放什麼 真是神奇ㄚㄚㄚ

真的嗎? 好! 那我想放 文字 內建圖像 自訂圖像

OK! 就裝給你看!!

show = ['A', Image.HEART, Image("00000:09090:09990:00900:00000")]

再來用動畫顯示 把圖像顯示來看看

動畫顯示只能一個畫面 所以文字只能顯示一個字母

一次看完所有內建圖像

所有內建圖像把它給裝進列表裡 再顯示出來

from microbit import *
BuiltInImages = [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]
display.show(BuiltInImages, delay=1000,loop=True)

列表動畫顯示

在玩哆啦A夢的百寶袋 也就是列表(list)

想要裝什麼 就裝什麼 的容器

玩著 玩著 玩著

玩出問題了

把兩個變數指向同一個容器

showA = ['A', 'C', 'D']
showB = showA

修改其中一個變數的列表裡的值

showB[0] = 'B'

再顯示showA跟showB兩個變數 啊 啊 啊!!!

發現 跟我想的不一樣

原來是 下圖這樣 列表是可以改變的物件

最後兩個變數 showA 跟 showB 指向同一個列表

所以顯示的結果會 一樣

一般形式(int float string)的物件

是不可變物件

當下列指令作用時

showB = 'B'

是把showB指向 'B'

所以 showA 跟 showB 顯示的結果會 不一樣

LED動畫製作

使用清單變數跟micropython的動畫顯示指令

製作動畫就是這麼簡單

在積木程式編輯器中積木看起來有兩大大塊

但是在文字型程式中

程式用串列把圖形存起來

再用display.show指令顯示出來

兩邊形成對比 讓孩子體會 積木語法 文字語法 差別

再來試試直接修改文字程式

from microbit import *

ShowTime = [Image("00000:00000:00000:00000:90909"), Image("00000:00000:00000:90009:99999"), Image("00000:00000:90009:99999:99999"), Image("00000:90009:99999:99999:99999"), Image("90009:99999:99999:99999:99999"), Image("99999:99999:99999:99999:99999")]

display.show(ShowTime, delay=400, wait=True, loop=True, clear=True)

反向圖形顯示

什麼是反向??

啊不就是 0 變 1 1 變 0

什麼意思?? 不懂!?

沒關係 看下面這個例子 就懂了

兩個圖形的關係是什麼??

會移動的動畫

正在做功課

小孩跑來

小孩:比比你會做箭嗎?

我:什麼箭? 愛神的箭嗎?

小孩:真的可以做愛神的箭嗎?

我:我想想

我:愛神的箭怎麼飛?

小孩:愛神的箭飛向四面八方

我:完成了! 請看

小孩:我的老天鵝! ...

from microbit import *
time = 400
while True:
    im = Image.ARROW_SW
    display.show(im)
    sleep(time)
    for i in range(5):
        im = im.shift_left(1)
        im = im.shift_down(1)
        display.show(im)
        sleep(time)
    im = Image.ARROW_SE
    display.show(im)
    sleep(time)
    for i in range(5):
        im = im.shift_right(1)
        im = im.shift_down(1)
        display.show(im)
        sleep(time)
    im = Image.ARROW_NW
    display.show(im)
    sleep(time)
    for i in range(5):
        im = im.shift_left(1)
        im = im.shift_up(1)
        display.show(im)
        sleep(time)
    im = Image.ARROW_NE
    display.show(im)
    sleep(time)
    for i in range(5):
        im = im.shift_right(1)
        im = im.shift_up(1)
        display.show(im)
        sleep(time)

滿吞吞的霹靂燈

巢狀迴圈

不知國中的孩子

接受程度如何??

我想應該有人可以寫出更複雜的