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 

 keyer cw raspberry pi pico

Vista del Raspberry Pi Pico, tasto verticale e tasto paddle.

 schema elettrico keyer cw

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 

 

Cablaggio scheda raspberry pi pico

 Vista piedinatura raspberry pi pico

vista dall'alto piedinatura raspberry pi pico

vista dall'alto piedinatura raspberry pi pico

potenziometro velocità keyer cw

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 :

# emulatore tasto ENTER da tasto verticale e/o tasto Paddle
# 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