Используя 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)]
.
соответствует любому символу, включая точку и тире. - person abarnert   schedule 18.05.2018encodedSentence
? - person abarnert   schedule 18.05.2018