Прошивка для контролера магнітної петліПрограмне забезпечення для контролера написано на більш-менш простому C з використанням середовища Arduino, з розширеннями Teensy, доступними тут:
Мікропрограмне забезпечення є безкоштовним програмним забезпеченням, випущеним згідно з
GNU General Public License . Повний вихідний код і 3 попередньо скомпільовані файли HEX доступні внизу цієї веб-сторінки, див. ML_vXXX.zip.Зауважте, що певні функції мікропрограми можна налаштувати шляхом зміни параметрів у файлі
ML.h , включеному до вихідного коду мікропрограми.Вихідний код мікропрограми коментується, і, сподіваємося, його буде відносно легко зрозуміти/змінити/розширити/адаптувати тими, хто бажає зробити внесок у цей проект. Функціональність і особливості мікропрограмиКонтролер можна описати як менеджер збережених в пам’яті позицій конденсатора, використовуючи інформацію про частоту з радіоприймача для обчислення відповідної позиції між будь-якими двома збереженими частотою/позиціями. Кожна пам’ять містить пару частота/позиція, частота зберігається з роздільною здатністю 1 Гц, позиція зберігається з роздільною здатністю 1600 позицій на повний оберт, у діапазоні до тисячі обертів (на випадок, якщо ви трапитеся у вас є конденсатор на 1000 витків
200 пар частота/позиція можна запам’ятати, але вам не потрібно буде зберігати більше 10-15.Контролер використовує послідовне з’єднання з радіо (рівні TTL або RS232) , щоб раз на секунду запитувати, на яку частоту налаштовано радіо. USB-порт числиться як другий віртуальний послідовний порт. Якщо налаштовано на послідовний<==>прохідний режим USB, цей порт можна використовувати для комп’ютерного керування радіо. Якщо не в режимі пропуску, доступні кілька команд USB. Перегляньте список команд USB нижче на сторінці.Поворотний кодер (діє як ручка VFO) і перемикачі вгору/вниз можна використовувати для початкового налаштування конденсатора під час збереження попередніх налаштувань або під час виконання будь-яких постфактум налаштувань. Комбінація поворотного енкодера/перемикача також використовується для навігації по меню функцій, таких як збереження/керування/видалення позицій пам’яті та параметрів налаштування; наприклад, вибір протоколу та рівнів послідовного радіозв’язку, увімкнення/вимкнення компенсації люфту/нахилу, кількість мікрокроків тощо...Під час компіляції функцію End Stop можна налаштувати трьома способами, див. конфігурацію у файлі
ML.h :
- М'які кінцеві упори. Вакуум змінний, без кінцевих вимикачів. У цьому випадку слід подбати про те, щоб кроковий двигун був достатньо потужним, щоб обертати конденсатор, але не надмірно. Перемикачі вгору/вниз не працюватимуть за межами найнижчої/найвищої збереженої частоти/положення, а радіо не зможе налаштувати конденсатор за межі найнижчої/найвищої збереженої позиції. Щоб вийти за межі вже «перевіреного» діапазону, потрібно повернути конденсатор, повертаючи кодер, і зберегти нову частоту/положення для розширення діапазону. Недоліком цього методу є те, що він працює лише за умови введення частоти з радіо («розумний» режим).
- Жорсткі кінцеві зупинки. Змінний вакуум, кінцеві вимикачі. Усе як 1), за винятком відсутності програмного «інтелекту» для запобігання використанню кнопок «Вгору/Вниз» або налаштування за межі вже «перевіреного діапазону». Може використовуватися в «розумному» режимі з введенням частоти з радіо або в «німому» режимі без введення частоти.
- Без кінцевих зупинок. Конденсатор метелик. В іншому випадку те саме, що 2).
Вимірювач потужності/КСВ + автоналаштування КСВ можна ввімкнути, установивши #define PSWR_AUTOTUNE як 1 у ML.h. Якщо ви плануєте застосувати цей параметр, вам також може знадобитися адаптувати інші #define
до мосту VSWR, який ви використовуєте. Див. #define BRIDGE_COUPLING і VALUE_R15, VALUE_R17.
Меню конфігурації(Завдання: потрібно оновити діаграму меню конфігурації нижче. Кілька нових пунктів меню було додано після версії мікропрограми 2.07, зокрема:
Вибір адреси ICOM CI-V
Режим пропуску послідовного порту
SWR Tune Threshold рівень
Шкали вимірювання потужності/КСВ
Період PEP вимірювача потужності/КСВ
Налагодити серійний номер на РК-дисплеї
Нові трансивери - Yaesu FT-747GX, Yaesu FT-990, Yaesu FT-1000MP, Yaesu FT-1000MPmkV
)
- Visio_drawings_MagneticLoopControllerMenus_rev103-page1.png (203.63 Кіб) Переглянуто 5068 разів
- Visio_drawings_MagneticLoopControllerMenus_p2_rev2.png (84.18 Кіб) Переглянуто 5068 разів
Робота контролера магнітного контуру, включаючи функції меню:У наведеному нижче описі передбачається, що використовується режим Soft End Stop. Якщо не плавні кінцеві зупинки, перемикачі вгору/вниз завжди будуть активними, якщо кінцеві вимикачі не закриті. Налаштуйтеся за допомогою поворотного регулятора або перемикачів вгору/вниз. У режимі плавної кінцевої зупинки перемикачі вгору/вниз не працюватимуть, якщо вони не перебувають у межах уже налаштованого діапазону збережених позицій пам’яті.Тривале натискання перемикача Menu/Enact перемикає меню з 12 до 17 варіантів (залежно від вибору параметрів), які можна вибрати обертанням поворотного регулятора.
- Зберігати поточну пару частота/позиція (доступно до 200 спогадів)
- Керуйте збереженими парами частота/позиція. Тут ви можете прокручувати раніше збережені спогади та перезаписувати будь-яку пам’ять за вибором. Спогади відсортовані в порядку зростання частоти.
- Видалити збережену пару частота/позиція. Перейдіть до того, який ви хочете видалити, і натисніть перемикач Enact або вийдіть.
- Очистити все. Дві опції підменю: Так/Ні.
- Параметри крокового кроку, 3 варіанти підменю: Stepper Rate, Variable Rate і Microstep Resolution.
- Компенсація крокового люфту: увімкнено або вимкнено.
- Трансивер. Виберіть відповідний протокол послідовного зв’язку для трансивера.
- Адреса ICOM CI-V. Використовується лише з трансиверами ICOM
- Режим послідовного порту. Виберіть режим TTL або режим RS232.
- Послідовна швидкість передачі даних, 1200 - 115200 біт/с.
- Серійний номер налагодження. Перегляньте зв’язок між радіо та контролером на РК-дисплеї. Не дуже корисно, краще використовувати команду $trxdebug через послідовне з’єднання USB.
- Не дуже важливий вибір меню - поверніться з меню
Ці додаткові пункти меню доступні, якщо реалізовано параметри вимірювача потужності та КСВ:
- Поріг налаштування КСВ. Виберіть максимальний SWR для успішної настройки SWR.
- Вибір шкали Power Meter. Дивіться сторінки вимірювача потужності/КСВ.
- Калібрування вимірювача потужності. Передайте відомий рівень потужності, налаштуйте зчитування за допомогою кодувальника та Push. Тепер ваш глюкометр відкалібровано.
- Виберіть період PEP тривалістю 1, 2,5 або 5 секунд для зчитування вимірювача потужності.
- Якщо вибрано параметр AD8307, тоді є пункт меню для Power Meter Awake Sense.
Спогади можна зберігати в будь-якому порядку, вони будуть автоматично відсортовані від найнижчого до найвищого. Після того, як ви збережете пару чи більше спогадів, у вас буде робочий діапазон, у межах якого конденсатор автоматично налаштовуватиметься відповідно до частотних даних з радіо. Якщо ви налаштуєте радіо за межами найнижчої/найвищої пам’яті, контролер не намагатиметься налаштуватися. Ви завжди можете точно налаштувати позицію, повертаючи енкодер (або перемикачі вгору/вниз). Зсув точного налаштування (дельта) буде продовжувати діяти, коли змінюється вхідна частота, іншими словами, нове автоматично налаштоване положення зберігатиме той самий зсув. Якщо ви хочете постійно ввести зміщення щодо всіх збережених пам’яті, коротко натисніть перемикач Enact.Щоб отримати детальний опис того, як відкалібрувати контролер, зверніться до одного з PDF-документів, доступних у нижній частині цієї веб-сторінки. Робота з функцією компенсації люфту або нахилу:При регулюванні конденсатора з точністю під градус будь-який люфт або нахил у механізмі з’єднання призведе до величезних неточностей залежно від того, вгору чи вниз налаштовано конденсатор. Щоб боротися з цим, можна ввімкнути функцію компенсації люфту. Я б рекомендував використовувати функцію компенсації люфту для підвищення надійності позиціонування, без неї точність позиціонування конденсатора буде досить низькою. Функція люфту працює таким чином: Коли контролер отримує від радіостанції інформацію про частоту, нижчу за останню попередню інформацію про частоту, він:
- Перейдіть на нове положення
- Налаштуйтеся далі на встановлений кут, а потім, нарешті, налаштуйтеся назад на той самий кут. Користувач може регулювати кут нахилу від 0 до 400 кроків.
Нешкідливий, але дивний побічний ефект функції компенсації люфту полягає в тому, що щоразу, коли ви налаштовуєте VFO повільно, люфт буде запускатися щоразу, коли нова частотна інформація буде отримана від радіо. Це виглядає трохи тривожно, але насправді працює дуже добре.З увімкненою функцією компенсації люфту та під час використання перемикача вниз для точного налаштування резонансу це найкраще зробити короткими пульсаціями перемикача. Швидкість налаштування змінного конденсатора:Щоб скоротити час, необхідний для налаштування, особливо під час перемикання між діапазонами частот, контролер реалізує змінну швидкість налаштування конденсатора на основі відстані шляху.Максимальна швидкість встановлюється в чотири рази більше звичайної швидкості, але може бути визначена інакше за допомогою функції меню «Налаштування 5 кроків». Більш детальний опис наведено в одному з PDF-файлів, доступних внизу цієї веб-сторінки. Пропонований перший тест:Контролер увімкнено та на РК-дисплеї відображається частота радіоприймача.
- Перемістіть степпер у якесь конкретне та помітне положення, повертаючи енкодер.
- Тривале натискання перемикача Enact потрапить у меню налаштувань, причому «Нова позиція» буде першим зазначеним вибором у РК-меню (якщо ні, поверніть кодер, щоб вибрати).
- Коротке натискання перемикача Enact, і положення буде збережено.
- Тепер налаштуйте трансивер на іншу частоту, скажімо, на 100 кГц вище.
- Поверніть кодер, щоб кроковий крок повернувся, скажімо, на два оберти за годинниковою стрілкою.
- Збережіть це положення.
Тепер, коли ви зменшуєте частоту трансивера VFO на 25 кГц, степер повертатиметься проти годинникової стрілки на півоберту... тощо... Деякі зауваження щодо LCD:Верхній рядок «Радіо:» вказує інформацію про частоту, отриману від радіо.Другий рядок «Tuned:» вказує на розраховану частоту найближчого відповідного положення крокового двигуна. Роздільна здатність, яку ви бачите в розділі «Налаштована частота», відповідає крокам налаштування крокового двигуна. 1600 кроків на повний оберт. Якщо ви бачите стрибки 250 Гц на крок, то повний оборот становить 1600 * 250 Гц = 400 кГц. Щоб подати це в перспективу, з моїм 24-футовим контуром, використовуючи конденсатор на 16 обертів 5 - 465 пФ; між 3,5 і 3,6 МГц. Я бачу роздільну здатність кроку 157 Гц.Третій рядок показує обчислену позицію на основі частоти, отриманої від радіостанції, і фактичну поточну позицію. Вони можуть відрізнятися, якщо для точного налаштування резонансу використовувалися перемикачі Encoder або Up/Down. Четвертий рядок показує активний діапазон (між якими двома збереженими парами частота/положення ми знаходимося) і чи активний кроковий двигун чи вимкнено. Кроковий двигун автоматично вимикається через 5 секунд після кожного використання. Команди USB:Якщо USB-порт контролера під’єднано до ПК, він числиться як послідовний (COM) порт. Цей послідовний порт має два режими для вибору (пункт меню 8, Режим послідовного порту):
- У звичайному режимі доступна низка команд USB
- Прохідний режим можна використовувати для комп'ютерного керування радіо.
Нижче наведено приклад команд, доступних у режимі не наскрізний (прошивка версії 4.03). Список команд продовжує поповнюватися новими версіями прошивки.
Команди USB нечутливі до регістру та можуть закінчуватися символом <cr> <lf> або ';' - наприклад:
$HeLp;
щоб отримати наведений нижче список.
Доступні команди USB:
$frqget Отримати робочу частоту.
$frqset mmkkkhhh Оновити робочу частоту (еквівалентно послідовному входу трансивера).
Частота вводиться в Гц, наприклад, 14100000 дорівнює 14,1 МГц.
$memoryget Отримати всі попередні налаштування пам'яті.
Формат отриманих значень:
А ФФФФФФФ ППППППП
де
А – позиція пам’яті
F — частота в Гц
P - положення крокового двигуна (відносне значення)
напр
0 14000000 1000000
1 14100000 1000100
2 14200000 1000200
...
$memoryset A FFFFFFFF PPPPPPP
Введіть нові налаштування пам'яті.
Формат такий самий, як і в $memoryget, але лише один пресет
вводиться за один раз. Попередні налаштування ПОВИННІ бути введені за допомогою
Частота запам'ятовування в порядку зростання і найвища
введена пам'ять попереднього налаштування ПОВИННА бути не вищою за максимум
кількість доступних пресетів.
$version Повідомити про версію та дату мікропрограми.
Команди для керування налаштуванням SWR через USB:
$swrtune Запит на налаштування КСВ.
$swrtuneup Запит на підвищення КСВ.
$swrtunedown Запит на зниження КСВ.
$swrtunestatus Запит результату останньої команди SWR Tune.
Результати: Триває налаштування SWR
Налаштування КСВ не вдалось
Налаштування SWR не вдалось, немає живлення
SWR Tune успіх
$toggleautotune Увімкнути або вимкнути автоналаштування КСВ
$recalibrate Позиція Перекалібрувати
Команди, пов’язані з вимірювачем потужності та КСВ (якщо ввімкнено під час компіляції):
$ppoll Опитування для одного звіту про послідовний порт USB, миттєве живлення (неформатований).
$pinst Опитування для одного звіту про послідовний порт USB, миттєве живлення (читається людиною).
Опитування $ppk для одного звіту про послідовний USB-порт, 100 мс пікової потужності (читається людиною).
$ppep Опитування для одного звіту про послідовний USB-порт, потужність бадьорості (читається людиною).
$plong Опитування для одного звіту про послідовний порт USB, фактична потужність (миттєва, бадьорість і середня)
а також потужність вперед, відбита потужність і КСВ (довга форма).
$pcont Послідовний звіт USB у безперервному режимі, 10 разів на секунду.
$ppoll, $pinst, $ppk, $ppep або $plong, введені після $pcont,
повернутися в режим одиночної зйомки.
$sleeppwrset x Потужність вище зазначеного тут рівня переведе дисплей у режим вимірювання.
x = 0,001, 0,01, 0,1, 1 або 10 мВт (міліват).
$sleeppwrget Повертає поточне значення.
$tuneset x x = від 1,1 до 4,0. Поріг налаштування КСВ.
$tuneget Повертає поточне значення.
$pepperiodget x x = 1, 2,5 або 5 секунд. Період відбору проб PEP.
$pepperiodset Повертає поточне значення.
$calset cal1 AD1-1 AD2-1 cal2 AD1-2 AD2-2
Запишіть нові значення калібрування в глюкометр.
$calget Отримати значення калібрування.
Формат значень калібрування:
кал1 AD1-1 AD2-1 кал2 AD1-2 AD2-2
де:
cal1 і cal2 — задані значення 1 і 2 калібрування в 10x дБм
і
ADx-1 і ADx-2 є відповідними значеннями AD для
AD1 (прямий напрямок) і AD2 (зворотний напрямок).
(
зазвичай значення AD1 і AD2 для кожного заданого значення будуть однаковими,
однак, виконавши зворотне калібрування за допомогою функцій меню контролера
можна збалансувати будь-які невеликі відмінності, які можуть бути між
два виходи AD8307.
Зауважте, що я не вважаю це необхідним взагалі
)
$scaleget Отримати визначені користувачем діапазони масштабу.
$scaleset Записати нові діапазони масштабу.
Діапазони шкали визначаються користувачем, до 3 діапазонів на десятиліття,
наприклад, 6, 12 і 24 дає:
... 6 мВт, 12 мВт, 24 мВт, 60 мВт ... 1,2 Вт, 2,4 Вт, 6 Вт 12 Вт 24 Вт 60 Вт 120 Вт ...
Якщо всі три значення встановлено як «2», то
... 2 Вт, 20 Вт, 200 Вт ...
Третє і найбільше значення має бути менше ніж у десять разів більше першого значення.
Усі наведені нижче допоміжні команди зневадження вимкнено за умовчанням:
$debug Це може дати несподівані результати !!! :-)
$swrdebug Перемикач (Увімк./Вимк.) Друк/налагодження останніх 32 вимірювань КСВ, знайдених у разі успіху налаштування КСВ.
$trxdebug Перемикач (Увімк./Вимк.) Налагодження послідовних радіозв'язків, ASCII - надсилання на USB.
$hexdebug те саме, що й вище, HEX.
$addebug читає необроблений вхід AD - також працює з $pcont, так само, як $ppoll тощо...
Ці два корисні, щоб встановити, чи є послідовний зв’язок у напрямку від контролера
до трансивера працюють:
Прийомопередавач команд $settx у режим передачі.
Прийомопередавач команд $setrx у режим прийому.
Виберіть активний профіль трансивера, може бути корисним для віддаленого керування:
$profileset x Виберіть активний профіль налаштування трансивера, де x дорівнює від 1 до 4.
$profileget Отримати активний профіль налаштування трансивера.
$memoryclear очистити всі пам’яті частоти/положення, так само, як команда меню (4).
$memorywipe повне стирання EEPROM - скидання всіх пам’яті frq/pos і всіх налаштувань до типових.
$help Відобразити наведені вище інструкції.
Унизу цієї сторінки є zip-файл, що містить кілька дуже простих сценаріїв командного рядка Windows (працюють у cmd.exe), які можна використовувати для спілкування з контролером:
- 'readmagloopmemories' використовується для резервного копіювання всіх налаштувань частоти/положення з контролера. Налаштування зберігаються у файлі з назвою «magloopmemories.txt».
- 'writemagloopmemories' призначений для відновлення налаштувань частоти/положення з файлу в контролер. Обов’язково видаліть усі дані frq/pos у контролері перед відновленням, інакше ви можете отримати конфліктні налаштування frq/pos.
Під час запуску обидва сценарії починаються зі списку всіх відомих COM-портів. Введіть COM-порт, який відповідає контролеру, наприклад «COM20».
Функції резервного копіювання/відновлення не працюватимуть, якщо вибрано режим пропуску. Відео контролера на Youtube:
Ось посилання на шість з половиною хвилин відео на Youtube про контролер магнітного контуру.
https://www.youtube.com/watch? v=r3BIlnZ68R4
Перші 50 секунд показують, що 13,5 МГц і 29,999 МГц досягають максимального рівня шуму та зберігаються як крайні позиції. Це включає в себе багато ручного запуску кодувальника.
Хвилина 0:50 - 1:40 показує 3 позиції, які автоматично настроюються та зберігаються в 20-метровому діапазоні.
Хвилина 1:40–2:00 показує, що частота 18,069 МГц не піддається автоматичному налаштуванню КСВ (за замовчуванням це режим пошуку – налаштування навколо центральної точки), а потім успішно виконується автоналаштування під час підвищення.
Хвилина 2:00 - 4:25 показує решту процесу автоналаштування та збереження, запам’ятовуючи позиції в діапазонах 17, 15, 12 і 10 метрів.
Хвилини 4:25 - 6:00 показують основну функцію контролера, автоматично відстежуючи трансивер без необхідності налаштування на мінімальний КСВ.
Ось демонстрація перемикання діапазонів і переміщення VFO на різні частоти та передачі, завжди з хорошим КСВ (добре, антена має досить поганий КСВ на 15 м, але це не має нічого спільного з контролером
Хвилина 6:00 - 6:20 показує налаштування антени від 20м до 15м, а потім назад.
Хвилина 6:25 до кінця показує 2x автоналаштування SWR.
Так, я вмикаю 200 Вт в антену — я впевнений, не дуже здорова, висить на книжковій шафі лише за 3 метри від мене. Однак автонастроювання наказує трансиверу видавати лише приблизно 3,5 ВтЩоб побудувати 24-футову магнітну петлю:
Конденсаторне пристосування (див. Малюнок 4 вище) було сконструйовано для встановлення в 3-дюймову ПВХ-трубку, яка також виконує роль щогли. Як видно на деяких зображеннях нижче, ПВХ-трубка була пофарбована в чорний колір для естетики.
Рисунок 13 (клацніть на зображенні, щоб збільшити)
Кріплення конектора. Подача петлі виконується за допомогою шпильки/гамма-збігу. Дивіться мою веб-сторінку «
Вправи з магнітною рамковою антеною », щоб отримати зображення каналу:
Готовий до складання:
Малюнок 15 (клацніть на зображенні, щоб збільшити)
Малюнок 16 (клацніть на зображенні, щоб збільшити)
Петля з 12 футів і нова петля з 24 футів поруч. Це, звісно, надто близько для комфорту, існує значна взаємодія між двома антенами. Пізніше розберуться
Малюнок 17 (клацніть на зображенні, щоб збільшити)
Нові 24 фут-лупи підлаштовуються від частот нижче 3,5 МГц до 14,350 МГц, що було невеликим сюрпризом - це вказує на те, що мінімальне значення конденсатора фактично падає нижче 2,5 пФ. Звичайно, на частоті 14 МГц (діапазон 20 м), окружність петлі становить 1/3 довжини хвилі, антена більше схожа на укорочену петлю Quad.
На частотах 3,5 і 7 МГц антену, встановлену на ротаторі, дуже ефективно боротися з QRN. Спостерігалося зниження рівня шуму до 3 одиниць S при обертанні петлі.