Используя ESP32 с python, это мой скрипт.Вы можете заполнить некоторый текст, и он преобразует его в азбуку Морзе и отобразит его.Но я также хочу, чтобы индикатор мигал секунду, когда это тире, и 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)]