让LED在莫尔斯闪烁点状或短划线

时间:2018-05-17 22:55:47

标签: python led morse-code esp32

使用带有python的ESP32,这是我的脚本。它的作用是你可以填写一些文本,它会将其转换为莫尔斯代码并显示它。但是我也希望当它是一个短划线时,LED会闪烁一秒钟,当它是一个点时,它会在0.25秒内闪烁。

下面显示的脚本我眨了一下。我认为这是因为pattern.match。我尝试了find()findall,但后来我得到了这些输出

import morse
Enter sentence: hi

.... ..
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "morse.py", line 82, in <module>
AttributeError: 'ure' object has no attribute 'findall'

import morse
Enter sentence: hi
.... ..
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "morse.py", line 82, in <module>
AttributeError: 'ure' object has no attribute 'find'

脚本本身

import time
from machine import Pin
led=Pin(5,Pin.OUT)
BRate=0.25

import re

def morse_dash():
    led.value(1)
    time.sleep(4*BRate)
    led.value(0)
    time.sleep(BRate)

def morse_dot():
    led.value(1)
    time.sleep(BRate)
    led.value(0)
    time.sleep(BRate)

CODE = {' ': '_', 
"'": '.----.', 
'(': '-.--.-', 
')': '-.--.-', 
',': '--..--', 
'-': '-....-', 
'.': '.-.-.-', 
'/': '-..-.', 
'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 convertToMorseCode(sentence):
    sentence = sentence.upper()
    encodedSentence = ""
    for character in sentence:
        encodedSentence += CODE[character] + " " 
    return encodedSentence

while True:

    sentence = input("Enter sentence: ")
    encodedSentence = convertToMorseCode(sentence)
    print(encodedSentence)
    pattern = re.compile('.')
    if pattern.match(encodedSentence):
        [morse_dot() for _ in range(1)]
    else:
        [morse_dash() for _ in range(1)]

1 个答案:

答案 0 :(得分:2)

您不需要正则表达式

vertical-align: top