Semplice keyer CW, senza memorie e altri comandi che gestisce anche il tasto verticale, tutto in uno.
Il tutto nasce dall'esigenza di avere un unico emulatore del tasto " ENTER o INVIO " del tasto verticale e del tasto paddle collegato ad un keyer cw.
Grazie all'utilizzo del piccolo Raspberry Pi Pico lavorando con Circuit Python sono riuscito ad realizzare un semplice software che riesce a gestire il tasto verticale cw e il tasto paddle cw emulando in questa configurazione il tasto della tastiera " ENTER o INVIO " , ma può emulare altri tasti.
Il circuito è nato per il software TRAINER CW , SIMULATORE con decodificatore del tasto di QSO di Riccardo Pizzaiola " Morse-Vail"
https://www.youtube.com/watch?v=ZLSHjvFglmQ&t=19s
L'alimentazione viene presa dalla porta USB che comunica con il PC per emulare il tasto
Vista del Raspberry Pi Pico, tasto verticale e tasto paddle.
Schema elettrico del keyer CW
Componenti :
n.1 scheda Raspberry Pi Pico
n. 3 resistenze da 10kΩ 1/4 di W
n.1 potenziometro lineare da 10kΩ (consigliato multigiri)
n.1 cavo collegamento USB
Vista piedinatura raspberry pi pico
vista dall'alto piedinatura raspberry pi pico
potenziometro velocità keyer cw
Per caricare il sistema operativo Circuit Python vedi la guida al seguente indirizzo da QUI
Ricorda di sostituire il file code.py della pagina del sistema operativo con questo sotto
QUESTO è il codice scritto :
# programma realizzato da IT9SAJ ed implementato da Riccardo
# L'utilizzo e gratuito
import digitalio
import board
import time
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode
import analogio
led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT
key_out = digitalio.DigitalInOut(board.GP15)
key_out.direction = digitalio.Direction.OUTPUT
key_in = digitalio.DigitalInOut(board.GP16)
key_in.switch_to_input(pull=digitalio.Pull.DOWN)
key_dot = digitalio.DigitalInOut(board.GP4)
key_dot.switch_to_input(pull=digitalio.Pull.DOWN)
key_dash = digitalio.DigitalInOut(board.GP5)
key_dash.switch_to_input(pull=digitalio.Pull.DOWN)
keyboard = Keyboard(usb_hid.devices)
pot_read = analogio.AnalogIn(board.GP28_A2)
igce = 0
key_out.value = True # pin GP15 su TRUE
led.value = False
speed = 0.11
# lampeggioIniziale
for it9saj in range(1, 20):
led.value = it9saj % 2
time.sleep(0.2)
igce = 0
while True:
print(pot_read.value, speed)
speed = pot_read.value * 3.3 / 330000
if (key_in.value):
led.value = True
keyboard.press(Keycode.RETURN)
elif (key_dot.value) and (key_dash.value) and igce == 2:
led.value = True
keyboard.press(Keycode.RETURN)
time.sleep(speed)
led.value = False
keyboard.release(Keycode.RETURN)
time.sleep(speed)
led.value = True
keyboard.press(Keycode.RETURN)
time.sleep(speed * 3)
led.value = False
keyboard.release(Keycode.RETURN)
time.sleep(speed * 0.7)
elif (key_dot.value) and (key_dash.value) and igce == 1:
led.value = True
keyboard.press(Keycode.RETURN)
time.sleep(speed * 3)
led.value = False
keyboard.release(Keycode.RETURN)
time.sleep(speed * 0.7)
led.value = True
keyboard.press(Keycode.RETURN)
time.sleep(speed)
led.value = False
keyboard.release(Keycode.RETURN)
time.sleep(speed)
elif (key_dot.value):
igce = 1
led.value = True
keyboard.press(Keycode.RETURN)
time.sleep(speed)
led.value = False
keyboard.release(Keycode.RETURN)
time.sleep(speed)
elif (key_dash.value):
igce = 2
led.value = True
keyboard.press(Keycode.RETURN)
time.sleep(speed * 3)
led.value = False
keyboard.release(Keycode.RETURN)
time.sleep(speed * 0.7)
else:
led.value = False
keyboard.release(Keycode.RETURN)
igce = 0
Il codice da caricare nel Driver o Volume del Raspberry Pi Pico è possibile scaricarlo da QUI
Video guida realizzazione keyer CW su scheda Raspberry Pi Pico