micro:bitでPython [5x5LEDマトリクス]
micro:bitには5×5マトリクスのLEDが搭載されてて、これが簡易的な表示装置の役目になってて動作状況が把握できるようになってます。
動作中には何がしかの表示装置がないと状況がつかめず不安になったり、イライラしたりとあまりよくないです、Arduinoではシリアルモニタという機能でPC上に表示ができるようになってますが、このmicro:bitではこの5x5LEDである程度状況が把握でき、とても便利です。
ということでどんなコトが表示できるのかをサンプルプログラムを絡めて試してみました。
尚、公式サイトのチュートリアル・ページはここにありますので先に読んでからの方が良い気がします。
目 次
表示できる内容
基本的には5×5のマトリクスサイズで表示できるものに限定されます。
- 英数字&記号:a、b、c~、0~9、+、-、÷、x、など
- アイコンイメージ:ハートマーク、スマイルマークなどなど
表示方法
組み込みイメージ
display.show(Image.Happy) 関数を使います。
というようにImage.xxxxで組み込みイメージをダイレクトに表示させます。
このXXXXの文字で組み込みパターン名を指定します。以下に実際の組み込みパターンを示します。
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
実際のプログラム例です、6個のイメージを切り替えて表示。
(前もってい言われないと判読困難なパターンもあります)
from microbit import * while True: display.show(Image.HEART) sleep(2000) display.show(Image.HAPPY) sleep(2000) display.show(Image.SMILE) sleep(2000) display.show(Image.SAD) sleep(2000) display.show(Image.CONFUSED) sleep(2000) display.show(Image.ANGRY) sleep(2000)
自分でイメージパターンを作る
5×5のパターンを自分で作ります。
数値の意味は、0=消灯、1~9:点灯(数字が大きい方が明るい)
公式ページに掲載のサンプルプログラムです。
帆船イメージです。(マストが2本)
from microbit import * boat = Image("05050:" "05050:" "05050:" "99999:" "09990") display.show(boat)
何個かの関数が準備されてますが代表的なものは
set_pixel(x,y,value) 関数です、
x列(0~4)、y行(0~4)のピクセルの明るさをvalue(0~9)で指定。
その他にも便利な関数が用意されてます。ここを見てください。
サンプルプログラムです。
from microbit import * while True: for b in range(0, 10): for x in range(0, 5): for y in range(0, 5): display.set_pixel(x, y, (x+y+b) % 10) sleep(50)
実際に動作させた時の動画です。