CW Key
Telegrāfa atslēga uz Arduino procesora bāzes (Jambiskā, B tips) – (Projekts, kas vēlāk papildināms līdz WinKeyer līmenim)
Gunārs, YL2GD ir piekritis apmācīt grupiņu entuziastu telegrāfa ābecē. Apsveicami !!!
Kas tur sagaidāms. Būs jāmācās lasīt telegrāfa signālu, un būs jāmācās raidīt telegrāfa signālu.
To visu mācās un dara pēc zināmas metodikas, un Gunārs to visu grupiņai izstāstīs. Es tur nejaukšos.
Informācijai:
Telegrāfa signālu lasa, to klausoties, un, vai nu - pieraksta ar roku, vai datoru, vai vienkārši nolasa un patur galvā, vai aizmirst. Ko kategoriski nedrīkst darīt klausoties signālu, tas ir - skaitīt svītriņas un punktus. Burti ir jāiemācās kā skaņa!
Raidot ar telegrāfa atslēgu rīkojas līdzīgi – redzot, vai iedomājoties raidāmo simbolu (burtu, ciparu u.c.), ar roku automātiski (neskaitot punktus un svītras) tiek veiktas kustības, kas nepieciešamajā ritmā pakustina to sviru, ar ko tiek veidots signāls.
Šīs iemaņas apgūst regulāri praktizējoties, un vairāku mēnešu garumā.
Raidot, tehniski tiek veidota punktu, strīpu un paužu virkne, kas saslēdz pīkstuli, lai to varētu klausīties, (šī virkne var tikt ievadīta transiverī, raidīšanai ēterā, tas vēlāk, kad būs prakse).
Šo simbolu virkni var iegūt divejādi – ar telegrāfa atslēgu, vai ar datoru. Telegrāfa atslēgas mēdz būt dažādas.
Vienkāršākā ir mehāniskā telegrāfa atslēga, kas veido kontaktu, kad to "nospiež". Mehāniskajām atslēgām ir vismaz trīs dažādi paveidi (vertikālās atslēgas, Vibroplex tipa atslēgas un Cottie tipa (zāģītis, ar ko sāniski paspiežot uz abām pusēm var noslēgt kontaktu)).
Nākošā ir elektroniskā telegrāfa atslēga, kas veidota uz elektronikas komponentēm. Šāda atslēga parasti ir atsevišķa kastīte, kurai tiek pieslēgts manipulators un tās izejā ir relejs (tranzistors, optrons), kas imitē parastās atslēgas kontaktu savienošanu. Manipulatori ir vien-sviras, vai ar divām paralēlām svirām. Ar manipulatoru raida. Atkarībā no manipulatora un elektronikas iespējām ir vairāki raidīšanas paņēmieni. Elektroniskā atslēga dod precīzu punktu un svītru garuma attiecību un dažreiz arī ievēros pareiza garuma pauzes ne tikai starp signāliem, bet arī starp burtiem. Ar vien-sviras manipulatoru var iegūt perfektu telegrāfa signālu, bet nāksies vairāk pārslēgt manipulatora sviru. Ir izveidots tā sauktais Jambiskais pārraides režīms, kas pieejams tikai ar div-sviru manipulatoriem. Saslēdzot vienlaicīgi abas sviras, tiek pārraidīta secīga punktu un svītru virkne. Atlaižot, vai saslēdzot vienu no abām svirām, var veidot burtus. To sauc par Jambisko A režīmu. Ir iets vēl tālāk – ieviesta viena simbola atmiņa ("pamanipulējot uz priekšu", tad, kad skan iepriekšējais signāls). Šo režīmu sauc par Jambisko B režīmu. Iemācoties raidīt ar div-sviru manipulatoru Jambiskajā B režīmā, raidīšana paliek pavisam vienkārša. (Liekas, ka tas arī ir viss, ko var tur izdomāt).
Manipulators ir tas instruments, ar kuru raida. Ar to iemācās raidīt un turpmāk to lieto praktiskai raidīšanai. Ir zināmas asociācijas ar mūzikas instrumentu – tam jau sākumā ir jābūt pietiekami labam, pie kura Jūs pieradīsiet un vēlāk lietosiet. Pirms tādu iegādājieties, pakonsultējieties ar pieredzējušiem amatieriem un neuzticieties visam, kas rakstīts internetā.
Raidīšana ar datoru ir specifiska lieta. Punktu un svītru rindu taisa datorprogramma un, atkarībā no tā, kam tā ir domāta – izvada pīkstienu datora skaļrunī, vai saslēdz kontaktu (priekš raidītāja) kādā no datora izejām (parasti COM portā). Pati raidīšana ir vienkārša – nospiež burtu uz klaviatūras un izejā parādās signāls - punktu un svītru veidā. Ir iespējams raidāmo tekstu datorā ievadīt ātrāk, nekā tas izskan izejā (ievadīt "uz priekšu"). Te būtiskākais ir apgūt raitu teksta drukāšanu uz datora klaviatūras un saprast, kā darbojas programma.
Vēl nedaudz informācija par datoru un telegrāfu:
Ir divas metodes, kā transiverim likt raidīt šādu telegrāfa signālu virkni. Viena - kad transiveris ir tieši saslēgts ar datoru, ar vienu USB kabeli, un datorā esošā programma sakonfigurēta tā, ka pa šo pašu kabeli tiek arī dota komanda raidīt ēterā telegrāfa signāla virkni. Reāli ir noskaidrots, ka telegrāfam šis nav tas optimālākais slēguma veids, jo transivera datu apmaiņas procesors bieži bremzē procesu un kropļo raidāmo telegrāfa paketi ( kavē sākumu, stiepj signālu un pauzes). Lai saglabātu operativitāti, tika izveidota cita - WinKeyer sistēma, kas darbojās paralēli - pa otru, datoram pieslēgtu, USB kabeli. Tad pārraidāmais signāls no datora, ar daudz lielāku ātrumu, tiek iesūtīts atsevišķā kastītē, no kuras tas tad, vajadzīgajā telegrāfa signāla ātrumā, tiek padots uz transivera telegrāfa atslēgas ieeju. (it kā imitē ārēji pieslēgtu mehānisku atslēgu).
Tad vēl, pieslēdzot šai WinKeyer kastītei telegrāfa manipulatoru, rodas iespēja jebkurā brīdī noraidīt kaut ko ēterā "ar roku", negaidot datora reakciju. Arī telegrāfa pārraides ātrumu var regulēt ar potenciometru šajā kastītē.
Šī Winkeyer sistēma ir iepatikusies radioamatieriem pasaulē, un daudzas sacensību un aparāta žurnālu programmas to atbalsta. Ir vairāki ražotāji, kas savos izstrādājumos ievieto šo WinKeyer sistēmu.
Ir internetā atrodamas vairākas WinKeyer saturošas konstrukcijas, ko var nopirkt (~250 EUR) un principā tādas var iegādāties un lietot.
Tagad par piedāvāto telegrāfa atslēgu:
Popularizējot atvērtā koda principu, labu telegrāfa atslēgu var izveidot uz Arduino procesora bāzes. Procesoram ir pilnīgi visas nepieciešamās tehniskās iespējas, lai tādu nodrošinātu. Kāpēc Arduino? Tāpēc, ka tas ir populārs, lēts un internetā ir pieejama pilnīgi visa nepieciešamā informācija, lai iemācītos ar to strādāt. Ir izveidoti Arduino "starta komplekti", kurus var iegādāties "pilnīgi pa sviestmaizi". Pie reizes ir iespējams apgūt arī Arduino tehnoloģiju. Protams atslēgu var veidot arī uz PIC procesora bāzes, vai uz modernāka, jaudīgāka procesora, teiksim Raspbery Pi bāzes. Arduino šeit izvēlēts kā tehniski pilnīgi pietiekams procesors, kuru iespējams pārprogrammēt un modernizēt pēc nepieciešamības.
Dotā konstrukcija ir secīgi attīstāms telegrāfa atslēgas "projekts", kas finālā novedīs Jūs līdz pilnvērtīgai WinKeyer iekārtai. Vispirms ar šādu atslēgu būs iespējams iemācīties raidīt telegrāfa signālu, un vēlāk praktizēties, uzlabojot savas prasme. Tālāk – doties ēterā un piedalīties telegrāfa sacensībās.
Konstrukcijas centrā ir Arduino mikroprocesors. Procesoram ir savas ieejas, izejas un viņš kaut ko dara, saskaņā ar programmu, ko tur ievada. Principā ir jāizveido divas lietas – ir jāsavāc tehniskais aprīkojums šim procesoram, kas kaut ko darīs, un procesorā jāievada programma, kas noteiks – kas un kā ir jādara.
Tehnisko aprīkojumu jāsagādā un jāsamontē, un programmu – jāuzprogrammē. Neuztraucaties, aprakstā zemāk būs Jambiskās B tipa telegrāfa atslēgas programma, ko varēsiet vienkārši pārkopēt un ierakstīt mikroprocesorā.
Tehniskais aprīkojums.
Vajag sagādāt:
Arduino procesors (Nano, vai UNO), - atslēgas "smadzenes". Ja Jums ir pieejams UNO procesors, varat sākt ar to. Ja konstrukcija patiks, tad vēlāk varēsiet nopirkt Nano. Ja procesora nav, tad pērkiet uzreiz Nano.
Potenciometrs 100 k, lineārais, - tas atslēgas raidīto simbolu ātruma regulēšanai,
Kondensators 4,7 nF, 1 gb. - augstfrekvences strāvu bloķēšanai un signāla aizturei.
Zummeris 1 gab – pīkstēs, kad tiks raidīts, vēlāk, kad strādāsiet ēterā, varēs atslēgt.
Arduino saspraužamā maketplatīte, kā viens no variantiem to visu savākt kopīgā konstrukcijā. Var veidot arī drošāku konstrukciju – nopirkt lodējamo maketplatīti, mikroshēmu pamatiņus, vadiņus un to visu salodēt. Būs drošāk. Šajā jautājumā droši konsultējieties ar mani, lapas sadaļā: "Sazinies ar mani".
USB kabelis: ja procesors ir - Nano, tad USB A -> mini USB A, bet ja procesors ir - UNO, tad USB A -> USB B. Varbūt tāds mājās jau ir.
Ligzda, kurā iespraust manipulatora spraudni. Iesaku 6.35 mm stereo ligzdu, drošāka.
Barošanas bloku 5V 1A, lai darbinātu atslēgu autonomi no tīkla, bez datora. Der mobilā telefona lādētājs, ja tam ir USB A izeja. Citādi, atslēdzot no datora, atslēga pārtrauks strādāt.
Tas būtu pietiekamais minimums, lai ar šādu atslēgu varētu sākt kaut ko raidīt (pīkstināt).( kopā ~ 15 EUR). Zemāk pievienoju Latvijas internetveikala SIA Salvats pilna komplekta detaļu sarakstu ar veikala artikuliem, ko, kā pasūtījumu, var savākt viņa internetveikalā. (lietojiet artikula numuru meklēšanas lodziņā). Visu uzreiz nevajag sūtīt, bet spriediet paši. Detaļas, kas maksā santīmus – pasūtiet ar rezervi. Savukārt, ja ko atliksiet vēlākam pasūtījumam, skatiet – pa santīmiem arī viņi negribās jūs apkalpot. Pasūtījumi tiek piegādāti Omniva pakomātos pa visu Latviju. Tas maksā ap 2-3 EUR, vienam sūtījumam.
No minētajām detaļām ir jāizveido sekojoša shēma:

Bet par visu jau var sākt priecāties, kad Jūsu rokās ir nonācis procesors. Vēl pieci soļi.
Uz datora vajag uzinstalēt Arduino programmu (teiksim versiju 2.3.6, kas brīvi iegūstama internetā). Tad vajag saslēgt Arduino procesoru ar USB kabeli ar kādu no datora USB portu, un noskaidrot tā numuru. (Uziet uz Start ikonas un nospiež labo peles pogu, tad – Device Manager, tad atver - Ports (COM, LPT), tad iesprauž, un izvelk, USB kabeli no datora un skatās kurš COM pazūd un parādās. Tas arī būs īstais).
Tad atver uzinstalēto Arduino programmu, un tur nokonfigurē sekojošo: Tools -> PORT -> jūsu Arduino COM porta numurs. Tools -> Board -> Arduino AVR boards un izvēlaties UNO vai NANO, kas jums ir. Dažreiz vajag vēl atzīmēt: Tools -> Processor " Atmega 328 P Old Bootloader" -> Atmega 328P Old Bootloader, ja programma nelādējas procesorā.
Tad augšā, uz ekrāna kreisajā pusē, ir divi zili/zaļi aplīši (podziņas), viena ar ķeksīti un otra – ar bultiņu pa labi. Nospiežot ķeksīti, tiks pārbaudīta, vai programma, kas šobrīd ir redzama ekrānā ir sastādīta gramatiski un loģiski pareizi un tādu varētu ielādēt procesorā. Ja pareiza – zemāk melnajā ekrānā parādīsies divas teksta līnijas ar baltiem burtiem. Ja programmā kaut kas nav pareizs, parādīsies teksta līnijas ar sarkaniem burtiem un aptuvens kļūdas skaidrojums. Ja teksts ir baltā krāsā, programmu var ielādēt procesorā. To veic, nospiežot otru podziņu - ar bultiņu. Būs nedaudz jāpagaida (~ 20 - 30 sekundes), un par sekmīgu programmas ielādi procesorā būs paziņojums tai pašā melnās krāsas laukumā.
Viss, programma ir procesorā un ir gatava darbam. Tagad par pašu procesora programmu. Ieslēdzot datorā Arduino programmu, uz ekrāna parādās vienkārša pārbaudes programmiņa, kas noder visa datu sagatavošanas un ielādes procesa pārbaudei. Šī programmiņa liek sarkanai gaismas diodītei uz Arduino procesora platītes mirgot ar 1 sekundes intervālu. Ja tādas programmas tur nav, tad tā ir atrodama: File -> Examples -> 01.Basics -> Blink. Izvelaties to, un veiciet iepriekšminētās procedūras. Varat pamainīt ciparus komandā delay(1000); uz delay (500); pārbaudīt un ielādēt vēlreiz - un diodīte mirgos pussekundi. Ja viss izdodas, tad uzskatat, ka šis process ir apgūts!
Zemāk ir programma Jambiskajai B tipa atslēgai. Lejuplādējiet to un atveriet kādā teksta redaktorā - Notepad, vai Word.
Datorā, Arduino programmā, atveriet jaunu skeču: File -> New Sketch un ar CTRL + C, CTRL + V metodi pārnesiet visu programmu (no sākuma, līdz beigām) no teksta redaktora Arduino datora programmā. Secīgi – pārbaudiet skeču un ielādējiet procesorā (augšējās divas pogas uz ekrāna). Vajadzētu sanākt. Ja rodas problēmas – kontaktējiet ar mani.
//*********************************************************
// Programmas sākums
// Jambiskā CW atslēga,
// ideja no 2009. gada Septembra QEX žurnāla
// Richards Chapmens, KC4IFB
// YL2FD adaptācija
//*********************************************************
#define SPEEDIN 0 // analogā ieeja CW ātruma potenciometram R1
#define DOTIN 2 // D2 ieeja - punkti
#define DASHIN 5 // D5 ieeja - svītras
#define KEYOUT 11 // D11 izeja uz optronu CW uz transiveri
#define TONEPIN 4 // D4 izeja uz zummeri
// tehniski lielumi - telegrāfa manipulatora lasīšnai:
#define IDLE 0 // gaida
#define DASH 1 // atskaņo svītras
#define DOT 2 // atskaņo punktus
#define DELAY 3 // iztur intervālu starp simboliem
int sensorPin = A0; // Ātruma potenciometra ieeja
int dotLength; // Programmas mainīgie lielumi
int dotVal; // un to sākotnējās vērtības
int dashVal;
int oldDotVal;
int oldDashVal;
int speedDial;
int currEltEndTime;
int currElt;
int nextElt;
int lastElt;
int time;
int dit = 56;
int dah = 3 * dit;
int wdsp = 7 * dit;
int Soundtone = 400; // skaņas tonis Hercos
void setup() {
pinMode(KEYOUT, OUTPUT); //definē ieejas un izejas
pinMode(DOTIN, INPUT);
pinMode(DASHIN, INPUT);
digitalWrite(KEYOUT, LOW);
// ieslēdz iekšējos rezistorus drošākai manipulācijai
digitalWrite(DOTIN, HIGH);
digitalWrite(DASHIN, HIGH);
// Inicializē manipulatora stāvokļa mainīgos
lastElt = IDLE;
currElt = IDLE;
nextElt = IDLE;
time = millis();
currEltEndTime = time;
}
void loop() {
dotLength = ((analogRead(sensorPin) * (65. / 1023.) + 35)); //load CW message WPM
// nolasa manipulatoru:
oldDotVal = dotVal;
oldDashVal = dashVal;
dotVal = digitalRead(DOTIN);
dashVal = digitalRead(DASHIN);
time = millis();
/**********************************
Dažādi manipulatora stāvokļi
**********************************/
switch (currElt) {
case DASH:
if ((dotVal == LOW) && (nextElt == IDLE)) {
nextElt = DOT;
}
if (time >= currEltEndTime) {
lastElt = DASH;
currElt = DELAY;
currEltEndTime = time + dotLength;
}
digitalWrite(KEYOUT, HIGH);
tone(TONEPIN, Soundtone);
break;
case DOT:
if ((dashVal == LOW) && (nextElt = IDLE)) {
nextElt = DASH;
}
if (time >= currEltEndTime) {
lastElt = DOT;
currElt = DELAY;
currEltEndTime = time + dotLength;
}
digitalWrite(KEYOUT, HIGH);
tone(TONEPIN, Soundtone);
break;
case IDLE:
if ((dotVal == LOW) && (dashVal == HIGH)) {
lastElt = IDLE;
currElt = DOT;
currEltEndTime = time + dotLength;
} else if ((dotVal == HIGH) && (dashVal == LOW)) {
lastElt = IDLE;
currElt = DASH;
currEltEndTime = time + 3 * dotLength;
} else if ((dotVal == LOW) && (dashVal == LOW) && (nextElt == IDLE)) {
lastElt = IDLE;
currElt = DOT;
nextElt = DASH;
currEltEndTime = time + 3 * dotLength;
}
digitalWrite(KEYOUT, LOW);
noTone(TONEPIN);
break;
case DELAY:
if (time >= currEltEndTime) {
currElt = nextElt;
if (currElt == DOT) {
currEltEndTime = time + dotLength;
} else if (currElt == DASH) {
currEltEndTime = time + 3 * dotLength;
}
lastElt = DELAY;
nextElt = IDLE;
}
if ((lastElt == DOT) && (dashVal == LOW) && (nextElt == NULL)) {
nextElt = DASH;
} else if ((lastElt == DASH) && (dotVal == LOW) && (nextElt == NULL)) {
nextElt = DOT;
}
digitalWrite(KEYOUT, LOW);
noTone(TONEPIN);
break;
default:
noTone(TONEPIN);
digitalWrite(KEYOUT, LOW);
break;
}
}
// Programmas beigas
// ***************************************************************************************
Programmu var ielādēt procesorā arī tad, kad aprīkojums vēl nav savākts. Secīgi pieslēdzot detaļas, būs novērojama kaut kāda reakcija. Brīdinājums – kas slēdziet procesoram klāt jaunas detaļas, to obligāti jāatslēdz no USB kabeļa, vai/un barošanas bloka, ja tādu lieto !!!
Tagad secīgi pieslēdziet potenciometru R1, C1, tad zummeri J1, tad manipulatoru J2. Manipulatoru, kamēr tā nav, var imitēt ar vadiņiem, saslēdzot J2 spraudnī 1. kontaktu ar 2. kontaktu, 3. kontaktu ar 2. kontaktu, un visus trīs kopā. Ja programma procesorā ielādējās, zummerim J1 ir jāpīkst. Ar potenciometru, to grozot, ir jāmainās punktu un svītru garumiem. Ja tas notiek – Atslēga strādā un var sākt mācīties. Ja nē – meklējiet kļūdu, pārbaudiet vēlreiz slēguma shēmu. Ja netiekat galā – kontaktējiet ar mani.
Ko tālāk.
Var sākt domāt kā šo konstrukciju noformēt kā pabeigtu projektu – ievietot korpusā, izveidot savu – autonomu barošanu un kaut kad, vēlāk, pilnveidot ar papildus funkcijām.
Detaļas, procesora izvadu adreses un pārējais ir veidots tā, lai ar šādu atslēgu varētu arī strādāt ēterā. Shēma šādai papildinātai atslēgai būs šāda:

Te nāk klāt izvads uz transivera KEY izeju. Optrons U1droši atdalīs, un aizsargās, šīs abas iekārtas, vienu no otras. LED1 diode spīdēs, kad uz transiveri tiks padots telegrāfa signāls. Bet attīstībā tas vēl nav viss. Ja kādam būs interese, publicēšu projekta turpinājumu – ar 1- 4 ieprogrammētiem raidāmiem tekstiem un līdz pat WinKeyer stadijai.
Tagad solītais detaļu saraksts. Pieejiet radoši, sākumā varat pasūtīt tikai to apjomu, ar ko šobrīd nodarbosieties. Tiek piedāvātas divas montāžas opcijas – lodēt uz maketplatītes, vai saspraust Arduino maketplatītē. Drošāka ir lodēšana, bet elastīgāka ir saspraušana. (tiek piedāvāts arī lodāmurs).

Vēlu sekmes !!
Materiāls precizēts 2025. gada 31. jūlijā.