Автор Тема: Декодер кода Морзе на микроконтроллере  (Прочитано 335 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GM

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Коллеги,

Предлагаю испытать программу для микроконтроллера ATtiny861A, позволяющую принимать и декодировать код Морзе.

Входной сигнал подается на 9 ножку (РВ6), декодированный сигнал выдается на 20 ножку микросхемы в виде последовательного кода rs-232 на скорости 230400 бод. МК работает от внешнего кварца 16 МГц.

В ходе приёма элементов знака программа автоматически настраивается на любую скорость передачи кода Морзе от 10 до 500 знаков в минуту.

Хотя номинал частоты кварца для декодера и не принципиален, но поскольку в данном МК нет последовательного канала, канал реализован программно, используя временные задержки.
« Последнее редактирование: 03 Декабрь 2017, 19:49:41 от GM »

Оффлайн GM

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: Декодер кода Морзе на микроконтроллере
« Ответ #1 : 03 Декабрь 2017, 20:40:53 »
1) Пример декодированного текста, принятого терминальной программой RealTerm

2) Вот что подается на вход МК от кодогенератора - желтый луч, и выход генератора 1 кГц - голубой луч.

3) То же, что и п.2 - более крупным масштабом по времени.

Как говорилось ранее, можно генерить сразу синус в диапазоне 136 кГц. Частота выборки fS=2000 кГц.
« Последнее редактирование: 03 Декабрь 2017, 20:47:19 от GM »

Оффлайн GM

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
К вопросу о некоторых знаках морзянки
« Ответ #2 : 07 Декабрь 2017, 18:53:12 »
Вопросы к специалистам и практикам.

1) Используется ли на практике знак # (номер) [  _ . . _ . ]?

2) Был введен знак @ (at commercial) [ .  _ _  . _ . ]. Кто-нибудь его применяет или это экзотика?

3) Каков печатный символ знака "раздел"  [  _ . .  . _  ]? В интернете есть разночтения.

4) Как на практике различают латинский и русский (национальный) алфавиты при проведении связи. Или их не смешивают?

5) Между элементами знака пауза равна длительности "точки". Между знаками - три "точки". А вот пауза между словами составляет либо пять либо семь "точек", как правильно? В интернете есть разночтения.
« Последнее редактирование: 07 Декабрь 2017, 18:58:39 от GM »

Оффлайн R6LDD

  • Ветеран
  • *****
  • Сообщений: 1090
    • Просмотр профиля
    • E-mail
Re: Декодер кода Морзе на микроконтроллере
« Ответ #3 : 07 Декабрь 2017, 21:28:29 »
Как на практике различают латинский и русский (национальный) алфавиты при проведении связи. Или их не смешивают?
Я пишу все латинскими. Привычка со времен обучения. Если тренировочный русский, или смысловой - на русском. QSO открытым текстом в основном не ведут. Q-коды. Да и по смыслу мозги перестраиваются сами. Да и не помню, что -бы предавали  " имя, мое имя". My name - короче.
Каков печатный символ знака "раздел"  [  _ . .  . _  ]? В интернете есть разночтения.
-...-  рааз-де-ли-те-каа


п.с. Не претендуя на истину.:)
Немного оффтопа.
п.п.с. наверное коды для русских букв Ш, Щ писались с учетом сложности написания буквы?
п.п.п.с. Интересно, существует ли китайский национальный код морзе с их немерянным количеством иероглифов?:)
Per aspera ad astra.

Оффлайн Sergej

  • Старожил
  • ****
  • Сообщений: 301
    • Просмотр профиля
Re: Декодер кода Морзе на микроконтроллере
« Ответ #4 : 08 Декабрь 2017, 00:49:33 »
1) Используется ли на практике знак # (номер) [  _ . . _ . ]?

Не используется, хотя код решетки какой-то другой, вы указали знак дроби (слитно DN).

Еще есть нестандартные словосочетания, которые любят "для понту" слитно передавать, например:
VA , аналог  S K - конец связи.

Cлитная передача AR, AS, SN - это тоже радиолюбительский код: "конец передачи", "подожди" и  "принял, понял".

Знак "собаку" - редко передают, кто работает открытым текстом и передает адрес почты.

Какой символ знаку раздела дать - может быть перевод строки, по логике и смыслу? (если имеется в виду при конвертации в ASCII символы) А обычно - это знак равно.

Алфавиты не различают, кто как выучил по бумажке азбуку русскими или латинскими буквами.

Сейчас латинскими практичней, т.к. все компьютерные программы логов пишут позывные на латинице.
Всем, кто только начинает учить - только так и рекомендую, ибо кириллическая запись (на бумагу или в комп) принятой информации в любительской связи можно сказать отжила.

Паузу между словами - кто как может так и передает,  нормальные телеграфисты поймут друг друга, это не проф. тлг связь.
« Последнее редактирование: 08 Декабрь 2017, 00:51:17 от Sergej »

Оффлайн GM

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: Декодер кода Морзе на микроконтроллере
« Ответ #5 : 09 Декабрь 2017, 20:53:38 »
"мое имя". My name - короче
Не короче, а столько же :-).

Поисследовал знак раздела в сети. Здесь http://www.rlocman.ru/shem/schematics.html?di=43041 знак раздела представлен так [ -...- . ]. Однако, когда добрался до первоисточника знак раздела представлен как у вас -...-] (Е.Григорьев Словесные выражения кода морзе, Радио-1977-12-46)

наверное коды для русских букв Ш, Щ писались с учетом сложности написания буквы?
Мне кажется, код Щ эквивалентен коду Q, или вы меня подкалываете :-)?

Оффлайн GM

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: Декодер кода Морзе на микроконтроллере
« Ответ #6 : 09 Декабрь 2017, 21:27:06 »
Sergej, у вас есть нормальная проверенная годами и практикой таблица кода Морзе для латинского алфавита и для русского алфавита?

Я написал программу декодирования, но она может быть основана на частично непроверенных кодах. Также и с паузами. Микроконтроллеру нужно указать, когда передаются буквы одного слова, и когда одно слово следует отделить от другого слова.

Оффлайн Sergej

  • Старожил
  • ****
  • Сообщений: 301
    • Просмотр профиля
Re: Декодер кода Морзе на микроконтроллере
« Ответ #7 : 10 Декабрь 2017, 19:04:23 »
Таблица алфавита, т.е. для обычных 26 букв (латиница) и для кириллицы - она одна, можно в любом справочнике глянуть. Только в кириллице еще добавлены буквы Ч,Ш,Э,Ю,Я,Ъ.
В остальном - полностью соответствует и наверно понятно, что к примеру Ж=V, Щ=Q, Ы=Y, Ь=Х(икс).
В "вике" вроде бы правильно всё указано.

Паузу подберите экспериментально, ну как будет лучше выглядеть принятый текст по смыслу. Наверно можно словить в эфире или найти записи работы служебных станций группами - там пауза должна быть выбрана как по всем общепринятым нормам, кажется равная 7 точкам.

Оффлайн rn3aus

  • Ветеран
  • *****
  • Сообщений: 2036
    • Просмотр профиля
Re: Декодер кода Морзе на микроконтроллере
« Ответ #8 : 10 Декабрь 2017, 21:12:08 »

Паузу подберите экспериментально, ну как будет лучше выглядеть принятый текст по смыслу. Наверно можно словить в эфире или найти записи работы служебных станций группами - там пауза должна быть выбрана как по всем общепринятым нормам, кажется равная 7 точкам.
Пауза между буквами 3 точки, словами 5 точек, между предложениями 7 точек. Это по стандарту, на практике не всегда это выдерживается.

Оффлайн GM

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: Декодер кода Морзе на микроконтроллере
« Ответ #9 : 11 Декабрь 2017, 17:54:13 »
Пауза между буквами 3 точки, словами 5 точек, между предложениями 7 точек. Это по стандарту

Что за стандарт, где можно посмотреть? Вообще-то, я так и сделал в программе. На картинке по-другому, поскольку кодер Морзе у меня самопальный, там просто в буфер набита известная всем фраза, содержащая все буквы английского алфавита, а кодер пропускает пробелы. Подобная фраза есть и на русском. Но как программа может различить язык передачи? Пока не знаю, как это реализовать.

Вот пример. Передаётся текст. "Somebody pinched it. And what I say is: them as pinched it done her in. В чащах юга жил-был цитрус да но фальшивый экземпляр..." Как декодировать правильно?

Оффлайн rn3aus

  • Ветеран
  • *****
  • Сообщений: 2036
    • Просмотр профиля
Re: Декодер кода Морзе на микроконтроллере
« Ответ #10 : 11 Декабрь 2017, 20:14:50 »
Пауза между буквами 3 точки, словами 5 точек, между предложениями 7 точек. Это по стандарту

Что за стандарт, где можно посмотреть? Вообще-то, я так и сделал в программе. На картинке по-другому, поскольку кодер Морзе у меня самопальный, там просто в буфер набита известная всем фраза, содержащая все буквы английского алфавита, а кодер пропускает пробелы. Подобная фраза есть и на русском. Но как программа может различить язык передачи? Пока не знаю, как это реализовать.

Вот пример. Передаётся текст. "Somebody pinched it. And what I say is: them as pinched it done her in. В чащах юга жил-был цитрус да но фальшивый экземпляр..." Как декодировать правильно?
Стандарт из армии наверное - так учат на курсах радиотелеграфистов.
Язык, думаю, не надо переключать автоматически. Печатать латинскими буквами, а те символы, что не имеют латинского аналога (Ш, Ч, Ю, Я) - на русском.  И все заглавными буквами.

Оффлайн Sergej

  • Старожил
  • ****
  • Сообщений: 301
    • Просмотр профиля
Re: Декодер кода Морзе на микроконтроллере
« Ответ #11 : 12 Декабрь 2017, 13:33:20 »
Если есть желание - можно сделать переключение РУС/ЛАТ клавишей, а по умолчанию пусть латиницей выдает.
Можно пойти дальше, скажем анализировать выражения, такие как Q-код и прочие любительские стандартные коды (как BK, AS, SK, DE, GM, GN, GE, CUL, CUAGN и прочее) и их всегда латиницей выводить, даже при вкл РУС.