www.kn34pc.com

Форум на силистренските радиолюбители
Дата и час: 04 Юли 2020, 01:50

Часовете са според зоната UTC + 2 часа [ DST ]




Напиши нова тема Отговори на тема  [ 11 мнения ] 
Автор Съобщение
МнениеПубликувано на: 03 Авг 2018, 16:39 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1087
Местоположение: Силистра
Към самоделно (само CW?) QRP (засега еднообхватно) трансиверче се опитвам да добавя електронен ключ.

Наред с управлението на синтезаторния блок с индикация и при това, че извествен ресурс на микроконтролера остава свободен (Arduino NANO), ми се ще да добавя и програмен CW ел. ключ. Вариантът с реализация на манипулация директно върху изходната честота е огромна предпоставка за опростяване на схемата на трансиверчето.

Та отделно синтезатор, енкодер, индикация (и др.?) при мен вече си работят, и отделно CW ел. ключ (с памет на последния знак) си работи (мисля има все още "трески за дялкане" по алгоритъма, но "ще стане ... някой ден" :crazy ).

Реализацията на желани "екстри" на електронния ключ от миналото като регулатор на скорост (с потенциометър/енкодер), с/без индикатор, QSK управление, смяна на манипулатора точка/тире (за левичари :rolleyes), звуков сигнал (600-800 Hz), памет на последния знак са ако не лесни за добавяне, то поне с желание и целеустременост, с Arduino за някакъв период от време, ще са реализируеми прогамно.

Управление от компютър (през виртуален сериен порт?) с изпращане на букви, фрази и изречения, също е изпълнено.

:help

Имам "проблем" с алгоритъма за запаметяване на няколко CW фрази. ("Твърдото" запаметяване, в програмата, преди зареждането в Ардуино е лесно, но после не може да се коригира. Говорим за "динамично" записване "по желание" без наличие на компютър (примерно с няколко хардуерни бутончета с памет М1, М2, М3 ...)
--------------------------
Мисли по този повод:
М1. Запис на цялата поредица точки, тирета и паузи, както върви CW потока. Предвид възможните удължени паузи на CW оператора предвиждам голяма "консумация" на памет.

М2. Също като 1., но с последващ "анализ": паузите да се сведат до пауза между символите / буквите / думите. Така ще се "компресира" записваната поредица някак си.

М3. Анализ на "символи в движение" и последващо записване на цялата поредица "разпознати символи". Намалена "консумация" на памет, сложнен алгоритъм :sad

Имам неудовлетворителни опити по моделите по-горе.

М4. други варианти ... :pleasantry
--------------------------
Въпроси:
В1: работещ алгоритъм, който да използвам?
В2: брой необходими запаметени фрази / и бутони ПАМЕТ ("колкото повече, толкова по-добре", но все пак колко е пределния минимум)?


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 31 Май 2020, 21:18 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1087
Местоположение: Силистра
:clapping UP

Мисли са сведени до тестов М2.
В2 остава.


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 01 Юни 2020, 14:43 
Offline
Аватар

Регистриран на: 20 Мар 2020, 10:31
Мнения: 3
LZ2WSG написа:
...
М4. други варианти ... :pleasantry
...

Друг вариант. Възможно е да се четат символи от EEPROM. Можете да редактирате посочените символи, като използвате софтуера на компютъра. Свържете се чрез UART. USB-UART конверторът се предлага в Arduino. Програмата ще бъде много проста. Това беше реализирано в индикатора за мощност на LCD 2004. Темата с дискусия е на cqham.ru.

Сега работя и върху синтезатор за HF приемо-предавател (SI53551 + Arduino). В Ардуино има достатъчно свободна памет. Искам да добавя електронен ключ за телеграф. Тази тема също е интересна. Ще се опитам да се свържа с вас чрез лично съобщение на форума.

Google машинен превод :comp


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 01 Юни 2020, 15:51 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1087
Местоположение: Силистра
Да, добър вариант, но го оставям като друга опция.
Ключът искам да може да се управлява без компютър при работа на полето, в гората, на тавана ... :wink


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 25 Юни 2020, 15:40 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1087
Местоположение: Силистра
При подготовката на данни за запис към един или няколко бутона (повикване, инициал, други) възниква следния въпрос:

Избирам за записване на съобщение 1 да бъде върху 1-ви бутон (засега е само един).
Натискам, държа 2 сек, ключът ми пее ROGER (R).
Телеграфирам съобщението за запис. Състои се от 25 точки и тирета, с необходимите паузи. Готово е.
Натискам 1 бутон дълго, получавам К. Едно съобщение е готово. (Нататък го ще записвам в EEPROM).

Например:
стрингът m_str става равнен на 1010c1101w1010c1101w100c0

където:
1 е тире
0 е точка
c e пауза между буквите
w е пауза между думите

Прекарвам m_srt през филтър за анализ до символ и получавам: CQ CQ DE.

Ако запиша 1010c1101w1010c1101w100c0, са ми нужни 25 байта, а с CQ CQ DE са 8 байта.

До тук добре, пропуск няма в анализа, независимо от няколко затруднеия с установяване на нужните флагове и премахването на излишни паузи, взели се от нищото.
---
Притеснението: ако телеграфистът си манипулира известните букви и цифри и някои знаци (A..Z, 0..9, ?, запетая, /), няма проблем, Arduino ще ги запише след анализа. Но ако вземе да телеграфира примерно някъде 7 точки или нещо непредвидено, нищо не се записва (пропуска неясните манипулации, а правилно анализираните знаци ще се запишат).

Колко често и какви други символи се използват в ежедневните връзки? Или да записвам "поточно", без анализ до буква? (заема много EEPROM памет). (Почти игнорирам кирилицата с този метод на запис, но кой я използва?)


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 26 Юни 2020, 09:44 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1087
Местоположение: Силистра
Засега дотук:
Прикачени файлове:
arduino_cw_w.gif
arduino_cw_w.gif [ 28.22 KiB | Прегледано 103 пъти ]

TX: CW линия, напр. за манипулация в драйвера
CW: CW-VOX или CW-QSK линия, в зависимост от времето, зададено в програмата - превкл. приемник/предавател

TODO :
1. Още бутони памет със запаметени съобщения: 2..3..4..?
2. Запис в EEPROM. Външна ИС може би?
3. Да изместя TX линията от 13 извод. При включване (в зависимост от типа bootloader) на 13 извод се появяват множество импулси, в случая са вредни.
4. (незадължително, идейно само): зареждане на съобщенията по сериен канал

Напр. през Serial на Arduino:
M1 CW CQ CQ DE ...
M2 ...
M3 ...
...


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 26 Юни 2020, 20:13 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1087
Местоположение: Силистра
След петъчната среща, внасям добавка от LZ2CH и компания (tnx! :wink ):
AR = .-.-. край на предаване
BT = -...- разделителна (Break in Text?)


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 26 Юни 2020, 22:08 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1087
Местоположение: Силистра
Ако не въведа всички, рискувам да не записвам коректно и "поточно записване на точки и тирета" ще е по-редно. А "яде" памет.

Pro-signs have been underlined. There are three in general use: AR signifies the end of the message, KN marks the end of your transmission and an invitation to the other station to reply, and SK says it’s the end of the contact and your last transmission to that station.

Сложнотия ... , още има. KN, SK и те ли са сляти? Как да ги обознача със char :) в сравнението:
Код за потвърждение:
  if (ms == "01") ch = 'A';
  else if (ms == "1000") ch = 'B';
  else if (ms == "1010") ch = 'C';
  else if (ms == "100")  ch = 'D';
...

Хем тъй, ама хем тъй ... кои 4 символа да използвам да кодирам Pro-signs, които няма да се срещнат в CW текста:


Прикачени файлове:
397-3973028_images-ascii-table-ascii-table-printable-hd-png.png
397-3973028_images-ascii-table-ascii-table-printable-hd-png.png [ 149.13 KiB | Прегледано 94 пъти ]
Върнете се в началото
 Профил  
 
МнениеПубликувано на: 27 Юни 2020, 14:29 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1087
Местоположение: Силистра
Код от интернет (keyer_rx3qfm.asm):
(само специалните символи са по-долу, без букви-цифри)
Код за потвърждение:
#define CW_CHR_SEPAR b'00110001'  ; '='  (-...-)  this is the "official" separator
#define CW_CHR_SEPA2 b'01100001'  ; '-'  (-....-) but this is also frequenty used
#define CW_CHR_POINT b'01010101'  ; '.'  (-.-.-.)
#define CW_CHR_SLASH b'00110010'  ; '/'  (-..-.)
#define CW_CHR_?     b'01001100'  ; '?'  (..--..)
#define CW_CHR_AR    b'00101010'  ; 'AR' (.-.-.)
#define CW_CHR_SK    b'01000101'  ; 'SK' (...-.-)
#define CW_CHR_KA    b'00110101'  ; 'KA' (-.-.-)
#define CW_CHR_KN    b'00110110'  ; 'KN' (-.--.)
#define CW_CHR_EOM   b'01011111'  ; 'EOM' (.-----) used for "partitions" of msg
#define CW_CHR_NNN   b'01101010'  ; 'NNN' (-.-.-.) replaced by serial number
#define CW_CHR_ANN   b'01011010'  ; 'ANN' (.--.-.) advance to next number


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 27 Юни 2020, 14:34 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1087
Местоположение: Силистра
И още:
Из "CW Decoder made by Hjalmar Skovholm Hansen OZ1JHM VER 1.01"
(само специалните символи са по-долу, без букви-цифри)
Код за потвърждение:
...
  if (strcmp(code, "..--..") == 0) printascii(63);  // ?
  if (strcmp(code, ".-.-.-") == 0) printascii(46);  // .
  if (strcmp(code, "--..--") == 0) printascii(44);  // ,
  if (strcmp(code, "-.-.--") == 0) printascii(33);  // !
  if (strcmp(code, ".--.-.") == 0) printascii(64);  // @
  if (strcmp(code, "---...") == 0) printascii(58);  // :
  if (strcmp(code, "-....-") == 0) printascii(45);  // -
  if (strcmp(code, "-..-.") == 0) printascii(47);   // /

  if (strcmp(code, "-.--.") == 0) printascii(40);   // (
  if (strcmp(code, "-.--.-") == 0) printascii(41);  // )
  if (strcmp(code, ".-...") == 0) printascii(95);   // _
  if (strcmp(code, "...-..-") == 0) printascii(36); // $
  if (strcmp(code, "...-.-") == 0) printascii(62);  // >
  if (strcmp(code, ".-.-.") == 0) printascii(60);   // <
  if (strcmp(code, "...-.") == 0) printascii(126);  // ~
  //////////////////
  // The specials //
  //////////////////
  if (strcmp(code, ".-.-") == 0) printascii(3);
  if (strcmp(code, "---.") == 0) printascii(4);
  if (strcmp(code, ".--.-") == 0) printascii(6);


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 01 Юли 2020, 11:15 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1087
Местоположение: Силистра
След тези два материала си мисля ... да не записвам никакви спец. знаци, т.е. никаква "компресия" да не правя :smile.
(да се върна на "поточно записване "). :crazy.

https://en.wikipedia.org/wiki/Prosigns_for_Morse_code
http://www.arrl.org/files/file/Public%2 ... PG304A.pdf


Върнете се в началото
 Профил  
 
Покажи мненията от миналия:  Сортирай по  
Напиши нова тема Отговори на тема  [ 11 мнения ] 

Часовете са според зоната UTC + 2 часа [ DST ]


Кой е на линия

Потребители, разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
cron
Форумът се задвижва от phpBB® Forum Software © phpBB Group
Преведено от yarnaudov.com