• アマチュア無線やってます


今更ながら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インベーダーとか、スピードが違ってもきわめて正確に符号を認識しているけど、あれってどうやってるんだろうか?しかも連続で・・・ホントにすごいよなぁ・・・。










コメント一覧

返信2019年10月3日 5:28 PM

河野24/

こんにちは。先般は偶然の交信ありがとうございました。あれから一度2m で呼びましたが空振りでした。cwの練習相手と言ってましたが、骨折により入院となりましてお力になれずすみません。退院しましたらまたお願いします。

    返信2019年10月3日 6:18 PM

    je6rij24/

    わざわざ書き込みありがとうございます。とてもうれしいです。お怪我のほうは大丈夫なんでしょうか。心配です。元気になりましたらまたお相手よろしくお願いします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)