01 入門及顯示篇
(2021/08/03)
參考資料:
(2019/06/04)
參考資料:
一、刷入 MicroPython 韌體
先確定已安裝驅動程式(CH340),當web:bit接上電腦時,可得知自己所使用的埠數,如COM5
下載燒錄軟體及韌體 (目前的最新版本為20190528版)
下載完後解壓縮,並執行Flashtool.exe
點右方的Flash來燒錄韌體 (同資料夾內的firmware.bin),如有更新的韌體再改為此名,放此資料夾下
二、下載MicroPython最簡單編輯器 mpy-editor
下載mpy-editor https://github.com/BPI-STEAM/mpy-editor/releases
執行 editor-1.0.8.exe
可以在下方寫一些簡單程式
初識REPL (如上圖)
使用 MicroPython 的一个主要的优点是交互式的 REPL ,REPL(read-evaluate-print loop)代表读取﹣求值﹣输出循环。 REPL 对于学习一门新的编程语言具有很大的帮助,因为它能对初学者写的程序立刻做出回应,这意味着你执行代码,并能马上查看结果,而无需经过先编译再上传的繁琐步骤。
Python REPL 提示符,表示为 >>>
三、寫下第一個程式
寫上第一個程式
from microbit import *
display.show(Image.HAPPY)
第一行 from microbit import * 的意思是我需要使用 microbit 函式庫中的所有内容。
第二行就是利用 display 函式來顯示內建的 Image 圖案
按下Run
這時,就會看到web:bit顯示紅色的笑臉圖案
顯示一個文字或數字
from microbit import *
display.show("A") (最下方有介紹如何修改顯示顏色)
四、顯示內建圖案
內建圖案的名稱
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
試看看顯示各種圖案吧!
五、顯示Hello,World
利用 display.scroll("Hello,World") 滾動(跑馬燈)函數
改變顯示的顏色
預設顏色為紅色
相較於 microbit,web:bit 的 led 屏幕採用的是 RGB 燈(ws2812b)
韌體已預置了8種顏色
black = [0, 0, 0] 黑
Red = [2, 0, 0] 紅
Orange = [2, 1, 0] 橘
Yellow = [2, 2, 0] 黃
Green = [0, 2, 0] 綠
Blue = [0, 0, 2] 藍
Indigo = [0, 2, 2] 靛
Purple = [2, 0, 2] 紫
[紅(R),綠(G),藍(B)] 數字0(無亮)~255(最亮)
顯示 黃色文字(以下發現錯誤)
正確程式
from display import*display = Display()display.scroll("Hello, World!", Yellow)
每個字母顯示的顏色不一樣
from display import*
display = Display()
color = [Red, Orange, Yellow, Green, Blue, Indigo, Purple]
display.scroll("ROYGBIP", color)
新建了一個列表 color
上面每個字母顏色不一樣
自訂顏色及亮度
[紅(R),綠(G),藍(B)] 數字0(無亮)~255(最亮)
from display import *
display = Display()
mycolor = [3,3,3]
display.scroll("hello",mycolor)
不要用太亮,會傷眼睛
六、顯示自行設計的圖案
程式內容 (亮度為0~9)
from microbit import *
boat = Image("01010:"
"01010:"
"01010:"
"99999:"
"09990")
display.show(boat)
畫出一隻船的圖形來,但發現顏色的亮暗並不明顯
中間的部份也可成 boat = Image("01010:01010:01010:99999:09990")
七、製作簡易動畫
利用列表來建立多個圖案的列表,如上方介紹內建的圖案中,有兩組是由多個圖案組成的
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
列表表示法:
列表名稱 = [ 內容1, 內容2, 內容3, .. ]
內建了兩個列表 Image.ALL_CLOCKS 和 Image.ALL_ARROWS
連續顯示 Image.ALL_CLOCKS 列表的圖案,並形成一個動畫
內建的Image.ALL_CLOCKS = [Image.CLOCK12 , Image.CLOCK1 , Image.CLOCK2 ..... Image.CLOCK11 ]
from microbit import *
display.show(Image.ALL_CLOCKS, loop=True, delay=100)
上面程式的loop控制是否一直重複顯示;delay控制每一圖案的停留時間
同理也可試用
display.show(Image.ALL_ARROWS, loop=True, delay=100)
製作船下沉的程式
from microbit import *
boat1 = Image("05050:"
"05050:"
"05050:"
"99999:"
"09990")
boat2 = Image("00000:"
"05050:"
"05050:"
"05050:"
"99999")
boat3 = Image("00000:"
"00000:"
"05050:"
"05050:"
"05050")
boat4 = Image("00000:"
"00000:"
"00000:"
"05050:"
"05050")
boat5 = Image("00000:"
"00000:"
"00000:"
"00000:"
"05050")
boat6 = Image("00000:"
"00000:"
"00000:"
"00000:"
"00000")
all_boats = [boat1, boat2, boat3, boat4, boat5, boat6]
display.show(all_boats, delay=500, loop=True)
改變顏色
程式範例
from microbit import *
from display import * (用上面介紹的 display = Display() 也可以)
display.show(Image.ALL_CLOCKS, color=Blue, loop=True, delay=100)