今更ながらMicro:bitで遊んでいます。
説明は不要だと思われますが、一応Wikipediaから
BBC Micro:bitは、1980年代に情報教育のために英国放送協会が開発したBBC Microが各学校で使用されたように、英国の11歳と12歳の小学生全員に配布される低消費電力、低コストのシングルボードコンピュータ。
まあ、「小学生向きのシングルボードコンピュータ」ということですね。
折角なので、なんか作って遊ぼう・・・と思ったけど、あんまりアイデアが浮かばないので、とりあえず『キーヤーにしてみよう』と思いやってみました。
let str = "" let time = 0 basic.forever(function () { if (5 < str.length) { str = "" } if (input.buttonIsPressed(Button.B)) { music.ringTone(523) basic.pause(100) music.rest(music.beat(BeatFraction.Sixteenth)) str = "" + str + "s" } if (input.buttonIsPressed(Button.A)) { music.ringTone(523) basic.pause(300) music.rest(music.beat(BeatFraction.Sixteenth)) str = "" + str + "l" } time += 1 if (60 < time) { basic.showLeds(` . . . . . . . . . . . . . . . . . . . . . . . . . `) if (str == "sl") { basic.showString("A") time = 0 str = "" } if (str == "lsss") { basic.showString("B") time = 0 str = "" } if (str == "lsls") { basic.showString("C") time = 0 str = "" } if (str == "lss") { basic.showString("D") time = 0 str = "" } if (str == "s") { basic.showString("E") time = 0 str = "" } if (str == "ssls") { basic.showString("F") time = 0 str = "" } if (str == "lls") { basic.showString("G") time = 0 str = "" } if (str == "ssss") { basic.showString("H") time = 0 str = "" } if (str == "ss") { basic.showString("I") time = 0 str = "" } if (str == "slll") { basic.showString("J") time = 0 str = "" } if (str == "lsl") { basic.showString("K") time = 0 str = "" } if (str == "lsl") { basic.showString("K") time = 0 str = "" } if (str == "slss") { basic.showString("L") time = 0 str = "" } if (str == "ll") { basic.showString("M") time = 0 str = "" } if (str == "ls") { basic.showString("N") time = 0 str = "" } if (str == "lll") { basic.showString("O") time = 0 str = "" } if (str == "slls") { basic.showString("P") time = 0 str = "" } if (str == "llsl") { basic.showString("Q") time = 0 str = "" } if (str == "sls") { basic.showString("R") time = 0 str = "" } if (str == "sss") { basic.showString("S") time = 0 str = "" } if (str == "l") { basic.showString("T") time = 0 str = "" } if (str == "ssl") { basic.showString("U") time = 0 str = "" } if (str == "sssl") { basic.showString("V") time = 0 str = "" } if (str == "sll") { basic.showString("W") time = 0 str = "" } if (str == "lssl") { basic.showString("X") time = 0 str = "" } if (str == "lsll") { basic.showString("Y") time = 0 str = "" } if (str == "llss") { basic.showString("Z") time = 0 str = "" } if (str == "ssllss") { basic.showString("?") time = 0 str = "" } if (str == "lssls") { basic.showString("/") time = 0 str = "" } } })
もちろん実用になるものではないのですが、AボタンとBボタン押すと短点と長点が打てて、打ったアルファベットが表示される、というものですが、実際にやってみるとすごく(私にとっては)難しい。まだボタンの反応が悪いし、スピードも調整できない(^^;)
しかし、CWインベーダーとか、スピードが違ってもきわめて正確に符号を認識しているけど、あれってどうやってるんだろうか?しかも連続で・・・ホントにすごいよなぁ・・・。