99 lines
1.8 KiB
Python
99 lines
1.8 KiB
Python
from time import sleep
|
|
import robot
|
|
|
|
POWER = 50
|
|
|
|
TURN_T = 0.08 # 10 degrees
|
|
|
|
RIGHT_WHEEL_OFFSET = 4
|
|
|
|
CLOCKWISE_OFFSET = 0.82
|
|
|
|
MORSE = {
|
|
"0": "-----",
|
|
"1": ".----",
|
|
"2": "..---",
|
|
"3": "...--",
|
|
"4": "....-",
|
|
"5": ".....",
|
|
"6": "-....",
|
|
"7": "--...",
|
|
"8": "---..",
|
|
"9": "----.",
|
|
"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 short_wiggle(arlo):
|
|
arlo.go_diff(POWER, POWER + RIGHT_WHEEL_OFFSET, 1, 0)
|
|
sleep(TURN_T * CLOCKWISE_OFFSET)
|
|
arlo.stop()
|
|
sleep(0.2)
|
|
arlo.go_diff(POWER, POWER + RIGHT_WHEEL_OFFSET, 0, 1)
|
|
sleep(TURN_T)
|
|
arlo.stop()
|
|
|
|
def long_wiggle(arlo):
|
|
arlo.go_diff(POWER, POWER + RIGHT_WHEEL_OFFSET, 1, 0)
|
|
sleep(TURN_T * CLOCKWISE_OFFSET * 2)
|
|
arlo.stop()
|
|
sleep(0.3)
|
|
arlo.go_diff(POWER, POWER + RIGHT_WHEEL_OFFSET, 0, 1)
|
|
sleep(TURN_T * 2)
|
|
arlo.stop()
|
|
|
|
def main():
|
|
# Initializes the robot and runs the
|
|
arlo = robot.Robot()
|
|
|
|
text = input()
|
|
for word in text.split(" "):
|
|
for character in word:
|
|
morse_code = MORSE[character]
|
|
for morse_character in morse_code:
|
|
if morse_character == ".":
|
|
short_wiggle(arlo)
|
|
else:
|
|
long_wiggle(arlo)
|
|
sleep(0.2)
|
|
sleep(0.5)
|
|
sleep(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
main()
|