from microbit import * # Morse Code Text Sender. G3RSP December 2016 # Version 2 # Key out on pin 1 # Speed volts on pin 2 # textcounter = message string index # char = ASCII character to be sent # mc = morse "code" integer string # elcounter = mc index lookup = { "a": [1, 3], "b": [3, 1, 1, 1], "c": [3, 1, 3, 1], "d": [3, 1, 1], "e": [1], "f": [1, 1, 3, 1], "g": [3, 3, 1], "h": [1, 1, 1, 1], "i": [1, 1], "j": [1, 3, 3, 3], "k": [3, 1, 3], "l": [1, 3, 1, 1], "m": [3, 3], "n": [3, 1], "o": [3, 3, 3], "p": [1, 3, 3, 1], "q": [3, 3, 1, 3], "r": [1, 3, 1], "s": [1, 1, 1], "t": [3], "u": [1, 1, 3], "v": [1, 1, 1, 3], "w": [1, 3, 3], "x": [3, 1, 1, 3], "y": [3, 1, 3, 3], "z": [3, 3, 1, 1], "1": [1, 3, 3, 3, 3], "2": [1, 1, 3, 3, 3], "3": [1, 1, 1, 3, 3], "4": [1, 1, 1, 1, 3], "5": [1, 1, 1, 1, 1], "6": [3, 1, 1, 1, 1], "7": [3, 3, 1, 1, 1], "8": [3, 3, 3, 1, 1], "9": [3, 3, 3, 3, 1], "0": [3, 3, 3, 3, 3], "/": [3, 1, 1, 3, 1], ".": [1, 3, 1, 3, 1, 3], ",": [3, 3, 1, 1, 3, 3], "?": [1, 1, 3, 3, 1, 1], " ": [0], "(": [3, 1, 3, 3, 1], ")": [3, 1, 3, 3, 1, 3], "=": [3, 1, 1, 1, 3], "'": [1, 3, 3, 3, 3, 1] } def decode(buffer): return lookup.get(buffer) def send_text(): textcounter = 0 while textcounter < len(text): char = text[textcounter] buffer = char mc = decode(buffer) elcounter = 0 speed = pin2.read_analog() speed = speed/4 textcounter = textcounter + 1 sleep(speed * 2) while elcounter < len(mc): pin1.write_digital(1) sleep(mc[elcounter] * speed) pin1.write_digital(0) sleep(speed) elcounter = elcounter + 1 msg1 = "abcdefghijklmnopqrstuvwxyz1234567890(=).,/?" msg2 = "the quick brown fox jumped over the lazy dog's back " pin1.write_digital(0) while True: if button_a.is_pressed(): text = msg1 send_text() elif button_b.is_pressed(): text = msg2 send_text() send_text()