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_CLOCKS
及 ALL_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)
滿吞吞的霹靂燈
巢狀迴圈
不知國中的孩子
接受程度如何??
我想應該有人可以寫出更複雜的