Stran 1 od 1

Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 24 Avg 2024, 05:02
Napisal/-a Lovro7
Pozdravljeni,

Na letošnjem taboru mladih elektronikov na Mašunu smo se jaz, @maj in @MaliMedo odločili za izdelavo keyerja za radijsko postajo. Pri tem so nam pomagali @kroko, @radix in @airWolf.

Čemu služi?
Na računalniku imate GUI, ki vsebuje terminal kamor vpišete poved, ki bi jo poslali. Mikrokrmilnik pa to poved pretvori v morsejevo abecedo in jo pošlje na pin3.
Na levi strani je 12 gumbov za pogosto uporabljene besede/povedi.
Na desni strani pa se nastavlja hitrost izpisa morsejeve abecede.

Izdelali smo tudi PCB, ki ima za preklapljanje optosklopnik. Narejen je za ATmega328. Ima pa tudi luknje za Arduino pro micro.
Če kdo potrebuje PCB me naj kontaktira preko zs

Vse datoteke so v prilogi. Več informaciji o samem delovanju in zagonu programa najdete v dokumentu "README.txt"

Tukaj je še slika GUI:
GUI_v1.1.0.png

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 24 Avg 2024, 13:10
Napisal/-a MaliMedo
Pozdravljen Lovro,

hvala še enkrat za sodelovanje z menoj in Majem, iskreno super narejeno delo, narejeno v 1 dnevu in pol.

Za tiste, ki bi se projekta lotili, dodajam še shemo, kako povezati keyer s katerokoli radijsko postajo, ki ima key vtičnico, s katero sklenjuješ stik pina GND in TIP (Konektor 3,5mm ali 6,33mm - Kot za slušalke :-) )
V besedah se Arduinotova pina poveže vzporedno s katerimkoli tasterjem, če je pa tisti polavtomatski, pa samo s TIP od priključka- shema je priložena.

Presete, ki jih lahko vidite v python programu, se flash-a v Arduino, najde se jih v .cpp datoteki. Definirani so na zečtku programa kot #define btn1_content, btn2_content... V narekovaje le napišemo, kaj hočemo da se pošlje v postajo. V tej verziji morajo črke biti samo male, velikih ne bo registriralo

Pin, ki ga arduino kratkostiči z maso, definira v vrstici #define PIN_MORSE[številka uporabljenega pina], na vrhu datoteke main.cpp.

Bolj priročno je, da ima postaja Break-in način dela (BK-IN)

V prihodnosti bo dodanih več funkcij, kmalu možnost prvega preseta dati na ponavljanje (klasična papiga za CQ - nastavljiv bo bil tudi razmik med ponavljanji).

73 in lep pozdrav vsem
DE S57AP

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 24 Avg 2024, 18:18
Napisal/-a sundancer
Vse pohvale mladim za idejo in izvedbo. Verjamem, da boste sčasoma dodelali program za keyer kot tudi samo izvedbo zato bi predlagal, da razmislite o uporabi platforme katera bi vam nudila centralizirano shranjevanje vseh datotek povezanih s projektom. Torej ali kaj razmišljate, da bi source koda, sheme in dokumentacija projekta zašla tudi na github? Le-ta vam omogoča tudi sledenje spremembam kar olajša organizacijo pri vključevanju različnih idej v sam projekt. Forum še vedno ostane za debatni krožek o izboljšavah medtem ko se izboljšana verzija kode ali sheme vedno nahaja na istem mestu z možnostjo versioniranja oziroma vračanja nazaj na prejšnje različice.

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 24 Avg 2024, 18:29
Napisal/-a MaliMedo
Pozdravljen,

v kratkem imamo namen naložiti na Lovrotov github, link bomo priložili.

73 de S57AP

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 24 Avg 2024, 19:43
Napisal/-a Lovro7
Verzija 1.2.0 je končana.

Tukaj so spremembe:
-V GUI je dodana možnost ponavljanja pošiljanja vsebine gumba 12. V malo polje vpišete število ponovitev in pritisnete tipko za začetek. Možno je tudi prekiniti.
-V README.txt so bolj podrobno opisani vhodi in izhodi.
-Koda podpira tudi velike črke. Morsejeva abeceda jih ne!
-Gumbe lahko pritiskate z tipkami F1-F12. Na nekaterih računalnikih morate pritisniti Fn + F1!


Tukaj je nov GUI:
GUI_v1.2.0.png

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 24 Avg 2024, 19:46
Napisal/-a Lovro7
sundancer je napisal/-a:Vse pohvale mladim za idejo in izvedbo. Verjamem, da boste sčasoma dodelali program za keyer kot tudi samo izvedbo zato bi predlagal, da razmislite o uporabi platforme katera bi vam nudila centralizirano shranjevanje vseh datotek povezanih s projektom. Torej ali kaj razmišljate, da bi source koda, sheme in dokumentacija projekta zašla tudi na github? Le-ta vam omogoča tudi sledenje spremembam kar olajša organizacijo pri vključevanju različnih idej v sam projekt. Forum še vedno ostane za debatni krožek o izboljšavah medtem ko se izboljšana verzija kode ali sheme vedno nahaja na istem mestu z možnostjo versioniranja oziroma vračanja nazaj na prejšnje različice.


Danes bom zadevo objavil na github in mojo spletno stran. Link bom dodal v temo. Na github bom objavil tudi stare verzije.

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 24 Avg 2024, 19:55
Napisal/-a airwolf
V veselje je bilo delati z vami.
Prilagam še fotografijo končanega izdelka.
IMG_20240822_105704_258.jpg

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 24 Avg 2024, 20:17
Napisal/-a MaliMedo
Lovro7 je napisal/-a:Verzija 1.2.0 je končana.

Tukaj so spremembe:
-V GUI je dodana možnost ponavljanja pošiljanja vsebine gumba 12. V malo polje vpišete število ponovitev in pritisnete tipko za začetek. Možno je tudi prekiniti.
-V README.txt so bolj podrobno opisani vhodi in izhodi.
-Koda podpira tudi velike črke. Morsejeva abeceda jih ne!
-Gumbe lahko pritiskate z tipkami F1-F12. Na nekaterih računalnikih morate pritisniti Fn + F1!


Tukaj je nov GUI:
GUI_v1.2.0.png


Odkril bug, majhen problemček;

Če gumbe F10, F11 in F12 klikneš z miško, se pošlje beseda 'keyer'. Če le- te gumbe pošlješ v arduino z uporabo F10, 11 In 12 na tipkovnici, se pa pravilen preset pošlje.

Ko debugiramo objavimo.
73 de S57AP

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 24 Avg 2024, 21:01
Napisal/-a airwolf
Koda: Izberi vse
    btn10 = tk.Button(root, text="f10:  " + BTN10, command=btn9_is_pressed, height=2, width=30)

    btn11 = tk.Button(root, text="f11:  " + BTN11, command=btn9_is_pressed, height=2, width=30)

    btn12 = tk.Button(root, text="f12:  " + BTN12, command=btn9_is_pressed, height=2, width=30)

bi moralo biti
Koda: Izberi vse
    btn10 = tk.Button(root, text="f10:  " + BTN10, command=btn10_is_pressed, height=2, width=30)

    btn11 = tk.Button(root, text="f11:  " + BTN11, command=btn11_is_pressed, height=2, width=30)

    btn12 = tk.Button(root, text="f12:  " + BTN12, command=btn12_is_pressed, height=2, width=30)

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 24 Avg 2024, 21:18
Napisal/-a airwolf
Sem našel še en bug.
V primeru da nimaš nobenega COM porta in klikneš na ponovno iskanje ti odpre novo okno.
Bolje bi bilo če bi lahko ponovno uporabil staro okno.

Na Mašunu smo se pogovarjali tudi v pretvorbi v EXE.
Preverite tale projekt.
https://pypi.org/project/auto-py-to-exe/

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 25 Avg 2024, 01:10
Napisal/-a Lovro7
Narejena je nova verzija v1.3.2

To so spremembe:
-Program je dostopen v .exe . Najdete ga v mapi MasunKey_v1.3.2_exe
-Dodan je slide bar za nastavljanje razmaka med ponavljanjem
-Odpravljeni so bugi z gumbi
-Odpravljen je bug pri izračunu pavze med ponavljanjem
-Dodano je samodejno zapranje oken
-Dodana so besedila v oknu

Tukaj je GUI:
GUI_v1.3.2.png

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 25 Avg 2024, 01:44
Napisal/-a Lovro7
Tukaj sta še shema in slika PCB-ja.
Dobim jih naslednji teden.

Specifikacije:
-Napaja se iz računalnika
-Max tok čez optosklopnik je 50mA
-Napetosti iz računalnika in tasterja sta galvansko ločeni
-Ima luknje za Arduino pro micro
-Ima tudi priključek za Atmega328/8/88... (TQFP32 ohišje)
-FT232RL USB v UART pretvornik.

Trenutno koda deluje na arduino pro micro (klon). Na original UNO R4 (za komunikacijo uporablja ATmega8u4) pa iz nekega razloga ne.

Vezja bodo na voljo, ko bodo testirana. Cena na kos bo 2€. Na začetku bodo na voljo 4 kosi.

PCB:
3D_pcb_zgoraj_v1.0.0.png

3D-pcb_spodaj_v1.0.0.png

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 25 Avg 2024, 01:53
Napisal/-a Lovro7
MaliMedo je napisal/-a:Pozdravljen Lovro,

hvala še enkrat za sodelovanje z menoj in Majem, iskreno super narejeno delo, narejeno v 1 dnevu in pol.

Za tiste, ki bi se projekta lotili, dodajam še shemo, kako povezati keyer s katerokoli radijsko postajo, ki ima key vtičnico, s katero sklenjuješ stik pina GND in TIP (Konektor 3,5mm ali 6,33mm - Kot za slušalke :-) )
V besedah se Arduinotova pina poveže vzporedno s katerimkoli tasterjem, če je pa tisti polavtomatski, pa samo s TIP od priključka- shema je priložena.

Presete, ki jih lahko vidite v python programu, se flash-a v Arduino, najde se jih v .cpp datoteki. Definirani so na zečtku programa kot #define btn1_content, btn2_content... V narekovaje le napišemo, kaj hočemo da se pošlje v postajo. V tej verziji morajo črke biti samo male, velikih ne bo registriralo

Pin, ki ga arduino kratkostiči z maso, definira v vrstici #define PIN_MORSE[številka uporabljenega pina], na vrhu datoteke main.cpp.

Bolj priročno je, da ima postaja Break-in način dela (BK-IN)

V prihodnosti bo dodanih več funkcij, kmalu možnost prvega preseta dati na ponavljanje (klasična papiga za CQ - nastavljiv bo bil tudi razmik med ponavljanji).

73 in lep pozdrav vsem
DE S57AP


Hvala tudi tebi za sodelovanje.

Sem pa v shemi opazil manjši napako:
Na shemi si narisal, da je kabel V- ozemljen zunaj postaje ali napajalnika. Te povezave ni potrebno narediti. Če boste uporabljali samo mikrokrmilnik se V- poveže na GND mikrokrmilnika. Če pa uporabljate PCB povežete kabla za taster samo na vhod in izhod optosklopnika.

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 25 Avg 2024, 08:44
Napisal/-a MaliMedo
Lovro7 je napisal/-a:
MaliMedo je napisal/-a:Pozdravljen Lovro,

hvala še enkrat za sodelovanje z menoj in Majem, iskreno super narejeno delo, narejeno v 1 dnevu in pol.

Za tiste, ki bi se projekta lotili, dodajam še shemo, kako povezati keyer s katerokoli radijsko postajo, ki ima key vtičnico, s katero sklenjuješ stik pina GND in TIP (Konektor 3,5mm ali 6,33mm - Kot za slušalke :-) )
V besedah se Arduinotova pina poveže vzporedno s katerimkoli tasterjem, če je pa tisti polavtomatski, pa samo s TIP od priključka- shema je priložena.

Presete, ki jih lahko vidite v python programu, se flash-a v Arduino, najde se jih v .cpp datoteki. Definirani so na zečtku programa kot #define btn1_content, btn2_content... V narekovaje le napišemo, kaj hočemo da se pošlje v postajo. V tej verziji morajo črke biti samo male, velikih ne bo registriralo

Pin, ki ga arduino kratkostiči z maso, definira v vrstici #define PIN_MORSE[številka uporabljenega pina], na vrhu datoteke main.cpp.

Bolj priročno je, da ima postaja Break-in način dela (BK-IN)

V prihodnosti bo dodanih več funkcij, kmalu možnost prvega preseta dati na ponavljanje (klasična papiga za CQ - nastavljiv bo bil tudi razmik med ponavljanji).

73 in lep pozdrav vsem
DE S57AP


Hvala tudi tebi za sodelovanje.

Sem pa v shemi opazil manjši napako:
Na shemi si narisal, da je kabel V- ozemljen zunaj postaje ali napajalnika. Te povezave ni potrebno narediti. Če boste uporabljali samo mikrokrmilnik se V- poveže na GND mikrokrmilnika. Če pa uporabljate PCB povežete kabla za taster samo na vhod in izhod optosklopnika.


Res je, GND priključka za key in splošna masa na postaji ne rabijo biti povezani. Povezani motata biti le masa priključka in masa arduina.

Lp

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 25 Avg 2024, 11:11
Napisal/-a MaliMedo
Dodatna opomba:
če opazite, da vam oddaja obratno (torej, ko so pavze oddaja in ko bi moralo oddajat so pavze) zamenjajte PIN_LED z PIN_MORSE [tukaj napišite številko pina].

Za dodatna vprašanja smo na voljo: tukaj, na ZS, e-mail itd. ni važno. Lahko kontaktirate Lovrota ali pa mene.

EXE je varna, preizkušena na mojem lastnem računalniku.

V vsakem primeru lahko uporabite samo .py python datoteko za zagon aplikacije, vendar potrebujete python inštaliran.


Lp in 73

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 25 Avg 2024, 11:22
Napisal/-a airwolf
Dodajam še STL datoteke za tisk ohišja.
Datoteke so identične ko smo jih uporabili na Mašunu.
Avtor datotek je @maj še se prav spomnim.
Tiskali smo z ABS materialom, za črke pa smo print zaustavili, zamenjali filament in nato nadaljevali.

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 25 Avg 2024, 11:38
Napisal/-a MaliMedo
Še ena opomba
(jih bomo združili in morda avtomatizirali v prihosnosti)
Ko sem vpisoval simbole, sem pozabil napisati po special karakterjih (pike, vejice, podpičja itd.) m_pause.
To se popravi tako da se med zadnjim znakom (line ali dot) in pred break; napiše dodatno vrstico m_pause();

To zgleda takole:

--------------------------------------------

case '?':
dot();
dot();
line();
line();
dot();
dot();
m_pause();
break;

---------------------------------------------------

To se naredi za vse simbole, zadnji je / (poševnica)



Naj dodam še, da je potrebno po vsakem presetu dodati presledek pred zadnjim dvojnim narekovajem, saj se če ne to prehitro zaključi

Primer:
Pravilno:

#define btn1_content "s57ap "

Nepravilno:

#define btn1_content "s57ap"

73 in lp

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 25 Avg 2024, 19:55
Napisal/-a maj
Pozdravljeni,
pišem z zamudo ampak se zelo zahvaljujem vsem mentorjem za pomoč in spodbudo pri izdelavi keyer-ja ter kolegoma @lovro7 @MaliMedo za sodelovanje pri izdelavi.
Lp Maj

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 26 Avg 2024, 10:33
Napisal/-a ivor
Kako je pa vse skupaj izvedeno in povezano? Mogoče kaka blok shema celotnega sklopa. Kako se sploh vnaša besedilo, ki se ga želi oddajati preko postaje?
Zanimivo bi bilo, če bi objavili kako sliko končanega izdelka (škatlo) in posameznih sestavnih delov, če je kdo poslikal pri izdelavi. :?:

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 26 Avg 2024, 11:24
Napisal/-a Lovro7
Tukaj je delovanje programa:
Ko program odpremo se nam odpreta 2 okna. Eno je prazno, na drugem pa je izbiranje serijskega porta. Ko izberemo port se pojavi gumb “Zaženi aplikacijo”. Ko pritisnemo ta gumb bo računalnik poslal “#start_transmition” + ‘\n’ v izbran serijski port. Mikrokrmilnik čaka dokler ne dobi podatkov na serisjki vhod. Ko dobi podatke jih prebere do ‘\n’. Prebrane podatke shrani kot string. Potem pa ima if statmente. Če je input_text == “#stsrt_transmition” bo poslal podatke o vsebini gumbov. Podatki se vpišejo na vrhu cpp kode.
Ko računalnik dobi vse podatke v prazno okno vpiše vse elemente.

Ko pritisnemo gumb računalnik pošlje “#btn1_pressed” mikrokrmilnik to prebere in pride v določen if stavek. Tam nastavi string_to_converte v btn1_content, ki je definiran na začetku kode.
Mikrokrmionik ta string pretvori v karakterje in jih izpiše v morsejevi abecedi. Ta string nato izprazni.

Ko prestavimo hitrost na zgornjem slide baru in pritisnemo posodobi vrednost bo računalnik poslal “#speed_set”. Ko mikrokrmilnik zazna ta string gre v while(1) zanko, kjer na vsakih 10mS preveri, ali je kak podatek dostopen na serijskem portu. Ko mikrokrmionik zazna podatek ga sprejme. Nato osdtrani # in ga premeni v int. Ta int shrani pod spremenljivko DOT.

Ko vpišete nekaj v terminal in pritisnete “Pošlji besedilo” bo to besedilo poslano brez #. V prejšnjih verzijah je bil samo else. To pomeni, da če ni poslan string enak kateremu od definiranih stringiv ga bo mikrokrminlik razumel kot string za poslati. V verziji v1.1.0 sem dodal # kot dodatni varnostni ukrep.


Funkcija ponavljanja pa se izvaja poplonoma na računalniku. Na določen čas pošlje “btn12_pressed”.

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 26 Avg 2024, 15:40
Napisal/-a MaliMedo
Pozdrav ivor,

z uporabniškega vidika pa bi to zgledalo takole:

Ko zaženemo program, se pokažeta dve okni, v manjšem kliknemo puščico navzdol (slika 1)
Izberemo COM port, v katerega smo priklopili arduimo (Vrata com se da pogledati v Device manager oz upravitelj naprav) in kliknemo gumb "Zaženi aplikacijo". (Slika "Menu" in Slika 2)
Če smo Arduino priiklopili na računalnik po zagonu programa, kliknemo gumb "poskusi ponovno, ki bo osvežil listo com port-ov.

Ko je aplikacija zagnana, počakamo trenutek, ko se vsi gumbi istočasno prikažejo v oknu. Če je vse prav skonfigurirano, bi program moral izgledati, kot na Sliki 3.

Ko hočemo poslati določeno poved v postajo, To napišemo v polje za besedilo, in kliknemo gumb "Pošlji besedilo" (Slika 4)
Če hočemo poslati enega od 12 možnih preset-ov, kliknemo ujemajoče gumbe na tipkovnici od F1 - F12. To lahko naredimo tudi ročno z miško, s tem da kliknemo na gumb v katerem je preset, ki ga želimo poslati. (Slika 5)
(Žal je to vse skupaj toliko simple, da ni možnosti sredi stavka prekiniti oddaje, za to upeljati bomo rabili še malo časa :-) )

Hitrost se nastavlja z drsnikom "Dolžina pike (ms)". Žal ne znamo pretvarjati iz ms v klasične WPM, ampak enkrat ko poizkusiš kako kaj zveni, se hitro orientiraš. (Slika 6)
Ko željeno hitrost nastaviš, klikneš na gumb "posodobi časovno vrednost", če pa hočeš ponastavit hitrost na začetno vrednost, klikneš na "Ponastavi časovno vrednost". (Slika 6)

Če želimo uporabit tipko F12 kot papigo (npr za avtomatsko klicanje CQ) Moramo v kvadratek "Vpišite število ponovitev" vpisati to število. Maksimum je 99. (Slika 7)
Ko nastavimo število ponovitev kliknemo gumb "Začni pošiljanje gumba 12" (Slika 7)
Ko želimo ponavljanje ustaviti, kliknemo "Ustavi ponavljanje gumba 12". (Slika 7)

Kako zgleda povezava tasterja v praksi lahko vidimo na sliki 8.

Slike so v priponkah.

Z slike izdelave pa bi bilo treba vprašati mentorje, mi jih nismo delali :-)

73 in Lp

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 26 Avg 2024, 15:44
Napisal/-a MaliMedo
Kaj je kak limit za priponke, ali jih jaz samo ne vidim vse?

Dodal sem 10 slik, vidi se jih samo 8.

Dodam še tukaj preostali.

73

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 26 Avg 2024, 16:44
Napisal/-a maj
Pozdravljeni,
tu je novejša verzija škatle in pokrova za keyer, kjer so popravljene mere in tolerance.
Lp Maj

Re: Keyer MašunKey-prevajalnik v morsejevo abecedo

OdgovorObjavljeno: 05 Sep 2024, 00:40
Napisal/-a Lovro7
Vezja so prispela.
Če kdo potrebuje sta na voljo še 2 vezja.

Tukaj so navodila za uporabo in razporeditev komponent: