JH7UBCブログ

アマチュア無線 電子工作 家庭菜園など趣味のブログです

micro:bit MicroPython モールス符号練習機

2019-11-09 15:06:50 | micro:bit

 micro:bit MicroPythonの組み合わせで、モールス符号練習機を作ってみました。

 micro:bitで音を出すメソッドは、music.pitch(frequency,duration,pin,wait)です。

 pinとwaitを省略するとpin0にfrequency(Hz),でduration(ms)間pin0に矩形波を出力します。

 AからZまでのモールス符号をランダムに出力させます。

 ボタンAを押すとスタートし、ボタンBでストップさせます。

 モールスの速度は、最初のバージョンなので固定として、JARLのモールス電信技能認定の3級より少し早い程度(30字/分)に設定します。(これは後で変更可能です)

 

 つまり、短点とスペースの時間を200ms、長点と文字間のスペースの時間を短点の時間の3倍の600msとします。

 スクリプトです。

 音の周波数は、700Hzにしています。(好みで変更してください)

 モールス符号は、A~Zの順に.と-で表し、morseというリストにしておきます。

 また、A~Zの文字は、mojiというリストにしておきます。

 0~25の乱数を発生させ、数字に対応した文字を表示し、モールス符号を送出します。

-------------------------------------------------------------------

from microbit import *
import music
import random
 
morse_code = ['.-','-...','-.-.','-..','.','..-.','--.','....','..','.---',
              '-.-','.-..','--','-.','---','.--.','--.-','.-.','...','-',
              '..-','...-','.--','-..-','-.--','--..']

moji = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N',
        'O','P','Q','R','S','T','U','V','W','X','Y','Z']
 
def dot():
    music.pitch(700,200)
 
def dash():
    music.pitch(700,600)
 
def space():
    sleep(200)
 
def ch_space():
    sleep(600)
 
def morse():
    while True:
        n = random.randint(0,25)
        m = morse_code[n]
        l = len(m)
        display.show(moji[n])
        for i in range(0,l):
            s = m[i]
            if s == '.':
                dot()
            else:
                dash()
            space()
        ch_space()
        if button_b.is_pressed():
            break
 
while True:
    if button_a.is_pressed():
        morse()
---------------------------------------------------------------------------------------
 
 pin0にスピーカを接続して音を出します。練習にちょうど良い音量です。(イヤホンでは、音が大きすぎます)
 電池で動きますので、持ち運び可能です。
 
 速度を変えられるようにするなど、皆さんで改良してみてください。

 



最新の画像もっと見る

コメントを投稿