zname_mk mk_z33t zname_mk

АВТОМАТСКИ ПРОГРАМАБИЛЕН CW РАДИО-ФАР СО АРДУИНО


I Z33T home page I страници на македонски јазик I


Ова е текст за изработка на радиоаматерски CW-Радио-фар кој може автоматски да емитува повторувачка порака со морзеови знаци во фреквенциско подрачје од 4 kHz до 225 MHz

Радио-фар (radio beacon) претставува радиопредавател поставен на позната локација, кој автоматски емитува радио сигнали со определена намена. Во минатото, радио-фаровите масовно се користеле за навигација на воени и цивилни воздухоплови и морски пловила, но денес, со развојот на технолошки многу понапредната и попрецизна сателитска навигација, нивната употреба за оваа намена полека, но сигурно се потиснува.

p1

Радиоаматерите поставуваат радио-фарови и ги користат за испитување на пропагациите, односно условите за простирање на радиобрановите со определени фреквенции. Во светот има голем број аматерски радио-фарови изработени и поставени од радиоаматерски организации или поединци од целиот свет, кои емитуваат сигнали на радиоаматерски фреквенции, а со тоа придонесуваат за испитување на пропагациите на радиобрановите. Радио-фаровите можат да се користат и за определување на дијаграмот на зрачење и засилување на изработените антени, нагодување на радиоприемници кои сами сме ги изработиле и слично.

Радиоаматерските радио-фарови најчесто емитуваат радио-сигнали со немодулирана телеграфија (CW), во радиоаматерските фреквенциски подрачја, на некоја од фреквенциите определени за тоа.
Радио-фарот се состои од радиопредавател со соодветна антена, приклучен на електронски склоп кој автоматски го вклучува и исклучува емитувањето на радиопредавателот во ритам на морзеовите знаци од кои е составена пораката која се емитува. Пораката што ја емитува радиоаматерскиот радио-фар се состои од знак за идентификација, координати на локацијата и слично. На крајот на пораката се емитува едноличен тон во траење од десетина секунди, по што повторно се емитува пораката од почеток. Целиот овој циклус се повторува постојано, без престанок, се додека е вклучен радио-фарот, 365 денови во годината.
Овој радио-фар го изработив со Arduino Nano и РФ-генераторот Si5351. Ардуиното е искористено за управување со РФ-генераторот Si5351 и за формирање на телеграфските, односно морзеовите знаци. Во овој случај, употребено е Arduino Nano, но без никаква измена, може да се употреби и Arduino UNO.

schematic

Кликнете на горнава слика за да ја видете во поголема резолуција

 

Еве неколку фотографии од прототипот на радио-фарот:

p2s

Кликнете на горнава слика за да ја видете во поголема резолуција

 

p3s

Кликнете на горнава слика за да ја видете во поголема резолуција

 

p4s

Кликнете на горнава слика за да ја видете во поголема резолуција

 

На YоuTube поставив видео на кое можете да видете како работи овој радио-фар направен на монтажна плочка. Видеото се наоѓа ОВДЕ.

Излезното РФ-ниво на сигналот кој се добива на излезот од РФ-генераторот Si5351 изнесува околу 5 mW/50 оми, што е релативно малку. За да може да се користи, треба да се засили со еден РФ-засилувач, а потоа да се приклучи на соодветна антена. Се разбира, претходно треба да се побара и добие одобрение за поставување на радио-фар од Агенцијата за електронски комуникации.

bd_s

Кликнете на горнава слика за да ја видете во поголема резолуција

 

На излезот од РФ-генераторот Si5351 се добива РФ-сигнал со правоаголен облик, кој е богат со хармонични фреквенции. За да се отстранат повисоките хармонични фреквенции, веднаш по колото Si5351 се додава нископропусен филтер, а потоа може да следи РФ-засилувач, па уште еден нископропусен РФ-филтер и на крајот засилениот сигнал се носи во антената, како на горниов блок-дијаграм
Во продолжение е комплетниот код, прикажан во три прозорци од софтверот. Содржината во прозорците се преклопува, за поголема прегледност:

sk1_s

Кликнете на горнава слика за да ја видете во поголема резолуција

 

sk2_s

Кликнете на горнава слика за да ја видете во поголема резолуција

 

sk3_s

Кликнете на горнава слика за да ја видете во поголема резолуција

 

Kомплетниот код заедно со дополнителните датотеки можете да го симнете од ОВДЕ

 

Еве го сега кодот прикажан и вака:

// 2.11.2018, Arduino IDE v1.8.7, v0.2
// CW Beacon using Si5351, LZ2WSG, KN34PC, прилагодено од Z33T
//---------------------------------------------------------------------------------------------------------
#include "si5351.h"

#define PIN_SP 10
#define PIN_TX 13

Si5351 si5351(0x60);

uint16_t duration = 75;    // Брзина на куцање на морзеовите знаци во милисекунди - поголема бројка значи побавно куцање
uint16_t hz = 750;         // Висина на тонот доколку се приклучи високоомски звучник за контрола на работата
String cw_message = "VVV de Z33T/B = LOCATOR IS KN11CR = PWR IS 10mW = ANT IS VERTICAL DIPOLE"; // Текст на пораката
uint32_t tx = 144480000;   // Излезна Фреквенција на радио-фарот во херци
//---------------------------------------------------------------------------------------------------------
void setup() {
pinMode(PIN_TX, OUTPUT);

si5351.init(SI5351_CRYSTAL_LOAD_8PF, 25002152, 0);
si5351.set_freq(tx * SI5351_FREQ_MULT, SI5351_CLK0);
si5351.output_enable(SI5351_CLK0, 0);
}
//---------------------------------------------------------------------------------------------------------
void loop() {
cw_string_proc(cw_message);
delay(500);                           // Времетраење на паузата на крајот пред долгиот сигнал - во милисекунди

cw(true);
delay(10000);                         // Времетраење на долгиот сигнал на крајот - во милисекунди

cw(false);
delay(1000);                          // Времетраење на пауза на крајот по долгиот сигнал - во милисекунди
}
//---------------------------------------------------------------------------------------------------------
void cw_string_proc(String str) {              // processing string to characters
for (uint8_t j = 0; j < str.length(); j++)
cw_char_proc(str[j]);
}
//---------------------------------------------------------------------------------------------------------
void cw_char_proc(char m) {          // processing characters to Morse code symbols
String s;

if (m == ' ') {                                      // Пауза помеѓу зборовите
word_space();
return;
}

if (m > 96)                                          // ACSII, case change a-z to A-Z
if (m < 123)
m -= 32;

switch (m) {                                         // Morse code
case 'A': s = ".-#";     break;
case 'B': s = "-...#";   break;
case 'C': s = "-.-.#";   break;
case 'D': s = "-..#";    break;
case 'E': s = ".#";      break;
case 'F': s = "..-.#";   break;
case 'G': s = "--.#";    break;
case 'H': s = "....#";   break;
case 'I': s = "..#";     break;
case 'J': s = ".---#";   break;
case 'K': s = "-.-#";    break;
case 'L': s = ".-..#";   break;
case 'M': s = "--#";     break;
case 'N': s = "-.#";     break;
case 'O': s = "---#";    break;
case 'P': s = ".--.#";   break;
case 'Q': s = "--.-#";   break;
case 'R': s = ".-.#";    break;
case 'S': s = "...#";    break;
case 'T': s = "-#";      break;
case 'U': s = "..-#";    break;
case 'V': s = "...-#";   break;
case 'W': s = ".--#";    break;
case 'X': s = "-..-#";   break;
case 'Y': s = "-.--#";   break;
case 'Z': s = "--..#";   break;

case '1': s = ".----#";  break;
case '2': s = "..---#";  break;
case '3': s = "...--#";  break;
case '4': s = "....-#";  break;
case '5': s = ".....#";  break;
case '6': s = "-....#";  break;
case '7': s = "--...#";  break;
case '8': s = "---..#";  break;
case '9': s = "----.#";  break;
case '0': s = "-----#";  break;

case '?': s = "..--..#"; break;
case '=': s = "-...-#"; break;
case ',': s = "--..--#"; break;
case '/': s = "-..-.#";  break;
}

for (uint8_t i = 0; i < 7; i++) {
switch (s[i]) {
case '.': ti();  break;                          // TI
case '-': ta();  break;                         // TA
case '#': char_space(); return;                  // end of Morse code symbol
}
}
}
//---------------------------------------------------------------------------------------------------------
void ti() {
cw(true);                                            // TX TI
delay(duration);

cw(false);                                           // stop TX TI
delay(duration);
}
//---------------------------------------------------------------------------------------------------------
void ta() {
cw(true);                                            // TX TA
delay(3 * duration);

cw(false);                                           // stop TX TA
delay(duration);
}
//---------------------------------------------------------------------------------------------------------
void char_space() {                                // 3x, пауза помеѓу буквите
delay(2 * duration);                                 // 1 from element-end + 2 new
}
//---------------------------------------------------------------------------------------------------------
void word_space() {                                    // 7x, пауза помеѓу зборовите
delay(6 * duration);                                 // 1 from element-end + 6 new
}
//---------------------------------------------------------------------------------------------------------
void cw(bool state) {                                  // TX-CW, TX-LED, 750 Hz sound
if (state) {
si5351.output_enable(SI5351_CLK0, 1);
digitalWrite(PIN_TX, HIGH);
tone(PIN_SP, hz);
}
else {
si5351.output_enable(SI5351_CLK0, 0);
digitalWrite(PIN_TX, LOW);
noTone(PIN_SP);
}
}

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

 

Текст пораката која автоматски се емитува преку радио-фарот може да се менува во кодот, како што е прикажано на долната фотографија, потцртано со црвена линија:

s_poraka_s

Кликнете на горнава слика за да ја видете во поголема резолуција

 

Овој радио-фар може да се нагоди да емитува на било која фреквенција од 4 kHz до 225 MHz. Саканата фреквенција може да се промени во кодот, така што ќе се внесе излезната фреквенција во Hz, како на сликата подолу, (144,800 MHz = 144800000) потцртано со црвена линија:

s-frekv_s

Кликнете на горнава слика за да ја видете во поголема резолуција

 

Брзината со која ќе се емитуваат телеграфските знаци може да се менува со промена на бројката во кодот, како на долнава слика, потцртана со црвена линија. Во мојов случај, брзината изнесува “75”. Притоа, помала бројка значи поголема брзина и обратно, поголема бројка означува помала брзина:

s_brzina_s

Кликнете на горнава слика за да ја видете во поголема резолуција

 

Фреквенцијата на која емитува овој радио-фар е стабилна и е контролирана со референтниот кварцен осцилатор во колото на Si5351. Кварцниот кристал во Si5351 има вредност од 25 MHz, но како и секој кварцен кристал и овој има мали отстапувања, па затоа, излезната фркевенција која сме ја дефинирале претходно, не е апсолутно точна, и може да се разликува за неколку десетина или стотина херци од цифрата  која сме ја внеле во кодот. За да биде фреквенцијата речиси апсолутно точна во херци, треба со еден точно избаждарен приемник (може и некој точно калибриран СДР-приемник) да ја измериме фреквенцијата на која работи референтниот кварцен осцилатор во Si5351 колото. Тоа се прави така што на влезот од СДР-приемникот приклучиме коаксијален кабел од неколку метри, а на другиот крај од коаксијалниот кабел приклучиме парче бакарна жица со должина од неколку сантиметри. Оваа жичка (антена) ја приближиме до кварцниот кристален осцилатор во колото Si5351 и на СДР-приемникот ја пронајдеме точната фреквенција. Потоа оваа фреквенција (изразена во херци) ја внесеме во кодот на ардуиното, каде е дефинирана фреквенцијата на референтниот осцилатор. Тоа може да се види на следнава слика, каде што фреквенцијата е потцртана со црвена линија. Во мојот случај, наместо фреквенцијата од 25000000 Hz, јас ја внесов точната измерена фреквенција на кварцниот кристал во референтниот осцилатор на Si5351 колото, која кај мене изнесуваше 25002152 Hz:

s_f_korekcija_s

Кликнете на горнава слика за да ја видете во поголема резолуција

 

На овој начин, фреквенцијата која ќе ја искуцаме во делот на кодот каде се дефинира излезната фреквенција, ќе ни биде речиси апсолутно точна (до еден херц), а радио-фарот, ќе ни емитува точно на саканата фреквенција.


Миле Кокотов (2019 година)

Авторот е магистер по технички науки, со искуство од речиси 40 години во РФ-техниката и е Претседател на Радиоаматерскиот сојуз на Македонија

Разгледајте ги и другите написи и проекти на неговата веб-страница


I Z33T home page I страници на македонски јазик I