マルツ電波でmicro:bitのスターターキットが安売りしていたので購入。
地元のお祭りも終わったのでちょっといじってみた。
ブロックエディタ、JavaScript、Pythonで開発できるとのこと。
Windows10なので、ストアからMakeCode for micro:bitをダウンロード。
エディタはブロックとJavaScriptと切り替え可能。
JavaScriptでコードを書いてブロックに切り替える、その逆も可能。
ただし、JavaScript→ブロック→JavaScriptと切り替えると、コードがブロックから再生成しているのか、整形しなおしているのか、元に戻りませんね。
とりあえず、こんかいはLEDと温度センサーを使って、温度を簡易的に表示してみました。
エディタが良くできていて、パレットというのか基本や入力などを選ぶと利用できるメソッドなどが選べるのがよい。
で、書いたコードは以下の通り。
大したことはしていませんが、input.temperature()で取得した温度を文字列に変えて、1文字づつ表示しています。
let leds: number[][][] = []
let tmp = 0
let num = 0
basic.forever(function () {
leds = [
[
[0, 0, 1, 0, 0]
, [0, 1, 0, 1, 0]
, [0, 1, 0, 1, 0]
, [0, 1, 0, 1, 0]
, [0, 0, 1, 0, 0]
], [
[0, 0, 1, 0, 0]
, [0, 1, 1, 0, 0]
, [0, 0, 1, 0, 0]
, [0, 0, 1, 0, 0]
, [0, 0, 1, 0, 0]
], [
[0, 1, 1, 1, 0]
, [0, 0, 0, 1, 0]
, [0, 0, 1, 1, 0]
, [0, 1, 0, 0, 0]
, [0, 1, 1, 1, 0]
], [
[0, 1, 1, 1, 0]
, [0, 0, 0, 1, 0]
, [0, 0, 1, 1, 0]
, [0, 0, 0, 1, 0]
, [0, 1, 1, 1, 0]
], [
[1, 0, 0, 0, 0]
, [1, 0, 1, 0, 0]
, [1, 0, 1, 0, 0]
, [1, 1, 1, 1, 0]
, [0, 0, 1, 0, 0]
], [
[0, 1, 1, 1, 0]
, [0, 1, 0, 0, 0]
, [0, 1, 1, 0, 0]
, [0, 0, 0, 1, 0]
, [0, 1, 1, 0, 0]
], [
[0, 0, 1, 1, 0]
, [0, 1, 0, 0, 0]
, [0, 1, 1, 0, 0]
, [0, 1, 0, 1, 0]
, [0, 1, 1, 0, 0]
], [
[0, 1, 1, 1, 0]
, [0, 0, 0, 1, 0]
, [0, 0, 1, 0, 0]
, [0, 0, 1, 0, 0]
, [0, 0, 1, 0, 0]
], [
[0, 0, 1, 0, 0]
, [0, 1, 0, 1, 0]
, [0, 1, 1, 1, 0]
, [0, 1, 0, 1, 0]
, [0, 0, 1, 0, 0]
], [
[0, 1, 1, 1, 0]
, [0, 1, 0, 1, 0]
, [0, 1, 1, 1, 0]
, [0, 0, 0, 1, 0]
, [0, 1, 1, 1, 0]
]
]
let cnt;
cnt = 0
while (true) {
tmp = input.temperature()
let strTmp = tmp.toString()
console.log(strTmp)
num = parseInt(strTmp.charAt(cnt))
for (let y = 0; y <= 5 - 1; y++) {
for (let x = 0; x <= 5 - 1; x++) {
if (leds[num][y][x] == 0) {
led.plotBrightness(x, y, 0)
} else {
led.plotBrightness(x, y, 255)
}
}
}
cnt += 1
if (cnt >= strTmp.length) {
cnt = 0
}
basic.pause(200)
}
})