Скетч AFP-FSK модема c приёмным трактом Уивера.

Публичный вариант скетча
AFP-FSK модема c приёмным трактом Уивера.

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

Но.

Чтобы не запоминать множество комбинаций, сотворено «основное меню» с простым управлением всем, что необходимо, причём минимальным количеством кликов. И несколько редко используемых тематических меню с иерархической структурой, в которых логика нажатий кнопок совсем другая.

Функциональная клавиша в режиме «Основное меню»:

Нажатие Действие по нажатию средней (функциональной) кнопки
Основное меню.
[3.579] Индикация частоты настройки ⇒
[ch.--] Индикация каналов ⇒
[r.b. ] RIT ⇒
[t.b. ] XIT ⇒ [3.579]
Погасить или зажечь индикатор.

Основное меню.

Нажатие Левая кнопка Правая кнопка
[3.579] Индикация частоты настройки.
-1 kHz +1 kHz
-10 kHz +10 kHz
● ▬ -100 kHz +100 kHz
● ● ▬ -1 MHz. +1 MHz.
● ● ● SSB = LSB SSB = USB
● ● Частоту и LSB/USB из памяти. Частоту и LSB/USB в память.
● ● ● ▬ Сканирование вниз по частоте. Сканирование вверх по частоте.
Остановка сканирования - любое нажатие (● или ▬) правой или левой кнопкой.
[ch.--] Индикация каналов.
Предыдущий канал. Следующий канал.
-10 каналов +10 каналов
● ▬ К каналу CH.01 К каналу CH.50
● ● Настроить приёмник, как записано в канале.
● ● ● Удаление текущего канала. Запомнить частоту, USB/LSB и полосу пропускания приёмного тракта в выбранный канал.
● ● ● ▬ Сканирование вниз по каналам. Сканирование вверх по каналам.
Остановка сканирования - любое нажатие (● или ▬) правой или левой кнопкой.
[r.b. ] Receiver Bias, RIT (-999 +999 Hz)
-1 Hz +1 Hz
-10 Hz +10 Hz
● ▬ -100 Hz +100 Hz
[t.b. ] Transmitter Bias, XIT (-999 +999 Hz)
-1 Hz +1 Hz
-10 Hz +10 Hz
● ▬ -100 Hz +100 Hz

Нажатия функциональной клавиши для перехода из основного меню в иерархическое:

Настройка передатчика.
● ● [P. wt] Задание выходной мощности в mW ⇔
[P. Pt] Задание выходной мощности в Points ⇔
[S. --] SWR-meter
CW режим и маяки.
● ● ● [Cont] CW режим ⇔
[horn] режим маяков, открывает подменю:
   [UP ] возврат в [horn]
   [modE] тип маяка FSQ/CW/QRSS/QRSSI ⇔
   [no.--] номер сообщения, от 01 до 50 ⇔
   [bAUd] or [PACE] скорость передачи в Baud или WPM ⇔
   [ LAP] цикл маяка в минутах
Настройки приёмного тракта.
● ▬ [bELL] Включение / отключение встроенного динамика ⇔
[br.LO] Нижняя частота полосы пропускания (100-2500 Hz) ⇔
[br.HI] Верхняя частота полосы пропускания (300-2700 Hz) ⇔
[F.r.LO] Минимальная частота приёмного тракта ⇔
[F.r.HI] Максимальная частота приёмного тракта
Настройки передающего тракта.
● ● ▬ [tonE] Смещение несущей от сетки (настройка, CW) 300-2700 Hz ⇔
[t.SEt] Источник НЧ сигнала (SoundCardLeft/«джек» смартфона) ⇔
[ Ptt] Выбор командного протокола (RTS/DTR/VOX/CAT) ⇔
[F.t.LO] Минимальная частота передающего тракта ⇔
[F.t.HI] Максимальная частота передающего тракта ⇔
[Port] Монитор порта (Arduino IDE)
Вспомогательные настройки девайса.
● ● ● ▬ [Uolt] Индикация напряжения батареи ⇔
[ LEd] Управление яркостью индикатора ⇔
[baud] Скорость CAT интерфейса (1200/2400/4800/9600 Бод) ⇔
[Corr] Калибровка модуля Si5351, открывает подменю:
   [UP ] возврат в [Corr]
   [F.cor.] коэффициент поправки частоты ⇔
   [C.cor.] выбор ёмкости нагрузки кварца

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

Нажатие Действие по нажатию средней (функциональной) кнопки
Любое иерархическое меню.
Вход в этот пункт меню ⇔ Выход оттуда
Возврат из иерархического в основное меню.
При возврате в основное меню текущая позиция запоминается.
При повторном входе в иерархическое меню мы окажемся в этом же пункте.

Перемещаться по пунктам иерархического меню можно кнопками «Влево» и «Вправо». После входа в пункт меню там может оказаться либо регулировка какого-то параметра, либо ещё одно, вложенное меню, с таким же назначением оперативных и функциональной кнопок.

При входе в пункт иерархического или вложенного в него меню оперативные кнопки начинают понимать сложные нажатия, посредством которых настраивается тот или иной параметр. Вот эти нажатия:

Настройка передатчика.

Нажатие Левая кнопка Правая кнопка
[P. wt] Задание выходной мощности в mW [1-3000]
-1 mW +1 mW
-10 mW +10 mW
● ▬ -100 mW +100 mW
● ● ▬ -1 W +1 W
● ● Вспомнить мощность из памяти. Запомнить мощность в память.
● ● ● Выключить тюнер. Включить тюнер.
Тюнер приводит мощность передатчика к заданной, либо к ближайшему достижимому значению, после чего передатчик автоматически выключается.
Реально достигнутая мощность в mW остаётся на дисплее.
[P. Pt] Задание выходной мощности в Points [0-4095].
-1 Point +1 Point
-10 Points +10 Points
● ▬ -100 Points +100 Points
● ● ▬ -1000 Points +1000 Points
● ● Вспомнить Points из памяти. Запомнить Points в память.
● ● ● Выключить тюнер. Включить тюнер.
Тюнер приводит мощность передатчика к заданной, либо к ближайшему достижимому значению. Передатчик не выключается.
На дисплее отображается мощность в Ваттах.
[S. --] SWR-meter.
SWR/Reflect points SWR/Forward points
● ● ● Выключить тюнер. Включить тюнер.

CW режим.

Нажатие Левая кнопка Правая кнопка
[Cont] режим CW, на индикаторе высвечивается [CLEF]
Выключить режим CW. Включить передатчик в режим CW
CW манипуляция осуществляется по входу D34 Ардуины замыканием на массу.

Режим маяков.

Нажатие Левая кнопка Правая кнопка
[modE] тип маяка, FSQ/Cw/QRSS/QRSSI
● or ▬ ⇐ FSQ ⇐ Cw ⇐ QRSS ⇐ QRSSI ⇐ ⇒ FSQ ⇒ Cw ⇒ QRSS ⇒ QRSSI ⇒
● ● Взять тип маяка из памяти. Сохранить тип маяка в память.
[no.--] номер сообщения маяка, 01-50
-1 number +1 number
-10 number +10 number
● ● Взять номер маяка из памяти. Сохранить номер текущего маяка.
● ● ● Остановить маяк. Запустить маяк.
[PACE] Скорость CW маяка, от 5 до 30 WPM.
-1 WPM +1 WPM
-10 WPM +10 WPM
● ● Вспомнить скорость CW маяка. Запомнить скорость CW маяка.
[bAUd] Скорость FSQ маяка, от 1.5 до 6 baud.
● or ▬ FSQ 1.5 ⇐ 2 ⇐ 3 ⇐ 4.5 ⇐ 6 baud FSQ 1.5 ⇒ 2 ⇒ 3 ⇒ 4.5 ⇒ 6 baud
● ● Вспомнить скорость FSQ маяка. Запомнить скорость FSQ маяка.
[ LAP] Установка периода цикла маяков от 1 до 90 мин.
-1 min +1 min
-10 min +10 min
● ● Вспомнить длительность цикла. Запомнить длительность цикла.
Цикл можно выставить в ноль, тогда маяк прозвучит однократно.

QRSS и QRSSI - медленные моды, сообщение маяка может не уложиться в одну минуту, поэтому период повторения для этих мод необходимо ставить побольше.

Настройки приёмного тракта.

Нажатие Левая кнопка Правая кнопка
[bELL] Включение / отключение встроенного динамика.
Включить встроенный динамик Выключить встроенный динамик
● ● Вспомнить состояние динамика Запомнить состояние динамика
Динамик коммутируется через MOSFET с выхода D36 Ардуины.
[br.LO] Нижняя частота полосы пропускания (100-2500 Hz).
● or ▬ -100 Hz +100 Hz
● ● Вспомнить нижнюю частоту среза Запомнить нижнюю частоту среза
[br.HI] Верхняя частота полосы пропускания (300-2700 Hz).
● or ▬ -100 Hz +100 Hz
● ● Вспомнить верхнюю частоту среза Запомнить верхнюю частоту среза
При невозможности реализации выбранной полосы пропускания диапазон изменения параметра ограничивается.
[F.r.LO] Минимальная частота приёмного тракта F.RX
-1 kHz +1 kHz
-10 kHz +10 kHz
● ▬ -100 kHz +100 kHz
● ● ▬ -1 MHz. +1 MHz.
● ● Вспомнить минимальную F.RX Запомнить минимальную F.RX
[F.r.HI] Максимальная частота приёмного тракта F.RX
-1 kHz +1 kHz
-10 kHz +10 kHz
● ▬ -100 kHz +100 kHz
● ● ▬ -1 MHz. +1 MHz.
● ● Вспомнить максимальную F.RX Запомнить максимальную F.RX

Настройки передающего тракта.

Нажатие Левая кнопка Правая кнопка
[tonE] Смещение несущей относительно сетки (настройка, CW) 300-2700 Hz.
-1 Hz +1 Hz
-10 Hz +10 Hz
● ▬ -100 Hz +100 Hz
● ● ▬ -1 kHz. +1 kHz.
● ● Вспомнить смещение CW Запомнить смещение CW
[t.SEt] Выбор источника звука (SoundCard, звук смартфона).
● or ▬ Line ⇐ SoundCard Left [SC-L] Line ⇒ SoundCard Left [SC-L]
● ● Вспомнить вход из памяти. Запомнить вход в память.
[ Ptt] Выбор командного протокола (RTS/DTR/VOX/CAT).
● or ▬ RTS ⇐ DTR ⇐ VOX ⇐ CAT RTS ⇒ DTR ⇒ VOX ⇒ CAT
● ● Вспомнить протокол из памяти. Запомнить протокол в память.
[F.t.LO] Минимальная частота передающего тракта F.TX
-1 kHz +1 kHz
-10 kHz +10 kHz
● ▬ -100 kHz +100 kHz
● ● ▬ -1 MHz. +1 MHz.
● ● Вспомнить минимальную F.TX Запомнить минимальную F.TX
[F.t.HI] Максимальная частота передающего тракта F.TX
-1 kHz +1 kHz
-10 kHz +10 kHz
● ▬ -100 kHz +100 kHz
● ● ▬ -1 MHz. +1 MHz.
● ● Вспомнить максимальную F.TX Запомнить максимальную F.TX
[Port] Монитор порта (можно использовать Arduino IDE).
● ● Выход из монитора порта. Вход в монитор порта.
Через монитор порта осуществляется просмотр и редактирование настроек каналов и сообщений маяков. Скорость порта должна быть установлена, как задано тут.

Вспомогательные настройки девайса.

Нажатие Левая кнопка Правая кнопка
[Uolt] Индикация напряжения батареи.
-0.01 V +0.01 V
-0.10 V +0.10 V
● ▬ -1.00 V +1.00 V
● ● Считать выставленное напряжение верным (калибровка).
[ LEd] Управление яркостью индикатора (10 градаций).
● or ▬ Уменьшить яркость индикатора. Увеличить яркость индикатора.
● ● Вспомнить яркость индикатора. Запомнить яркость индикатора.
[baud] Скорость CAT интерфейса (1200/2400/4800/9600 Бод).
● or ▬ 1200 ⇐ 2400 ⇐ 4800 ⇐ 9600 1200 ⇒ 2400 ⇒ 4800 ⇒ 9600
● ● Вспомнить скорость интерфейса. Запомнить скорость интерфейса.

Калибровка частоты синтезатора.

Нажатие Левая кнопка Правая кнопка
[F.cor.] Калибровка модуля SI5351, коэффициент поправки частоты.
-1 point. +1 point.
-10 points. +10 points.
● ▬ -100 points. +100 points.
● ● ▬ -1000 points. +1000 points.
● ● Вспомнить поправку частоты. Запомнить поправку частоты.
[C.cor.] Выбор ёмкости нагрузки кварца модуля SI5351.
● or ▬ 6 ⇐ 8 ⇐ 10 [pF] 6 ⇒ 8 ⇒ 10 [pF]
● ● Вспомнить нагрузочную ёмкость. Запомнить нагрузочную ёмкость.