2025-02-12 20:48:21
Morse Send rp2040 circuitpython
# main.py
import board
import time
import sys
import select
from morse_lib import MorseTransmitter
MORSE_WPM = 11
HALT_COMMAND = '~'
# Инициализация передатчика Морзе
morse = MorseTransmitter(pin=board.GP3, wpm=MORSE_WPM)
def process_buffer(buffer):
if buffer:
char = buffer.pop(0)
print(f"send:\"{char}\"<<\"{(''.join(buffer))}\" \r", end='')
morse.transmit(char)
if not buffer:
print(f"send:\"\"<<\"{(''.join(buffer))}\" \r", end='')
# print()
return True
print("\nSource: https://ur4uqu.com:445/wiki/doku.php?id=pub:arduino:rp2040:morse-send")
print(f"\nВводите символы. Нажмите '{HALT_COMMAND}' для очистки буфера.\n>>", end='')
input_buffer = []
while True:
# Проверяем, есть ли данные для чтения
rlist, _, _ = select.select([sys.stdin], [], [], 0.1)
if rlist:
char = sys.stdin.read(1)
if char:
if char == HALT_COMMAND:
#print("\nОчистка буфера.")
input_buffer.clear()
print() # Добавляем пустую строку после очистки буфера
else:
input_buffer.append(char)
#print(f"\rbuffer:\"{(''.join(input_buffer))}\"", end='')
else:
# Обрабатываем символы из буфера
process_buffer(input_buffer)
time.sleep(0.01) # Небольшая задержка для стабильности
Back to list