Русский   English
ДонНТУ   Портал магістрів

Реферат за темою випускної роботи

Зміст

Вступ

За останнє десятиліття технології зробили великий стрибок, більшість систем великого і малого електроприводу змінилися, отримавши тим самим нові напрямки діяльності. Так, малий електропривод, основну частину якого складали колекторні двигуни постійного струму, поповнився безколекторними двигунами. Дані двигуни стали «панацеєю» в побудові мультіроторних систем і систем стабілізації. Ці двигуни надають дуже гарный момент і мають високі перевантажувальні здібності, а також, в залежності від цілей, можуть забезпечити високу плавність і точність рухів. Такі системи дуже важливі в перспективному майбутньому, оскільки дозволять транспортувати по повітрю різного роду вантажі, а також створювати на їх основі біонічні протези. Якщо у випадку з протезами, управління двигуном, а саме передача даних керуючому контролеру, можна здійснити за допомогою дротів, то в мультіроторних системах забезпечувати постійний зв'язок з пристроєм можливо тільки по бездротовому зв'язку.

1. Актуальність теми

Основним недоліком мультіроторних систем є високе споживання струму, проте в осяяному майбутньому дана проблема буде вирішена завдяки використанню більш енергоємних елементів живлення. Невирішеним залишається питання з підтриманням постійної бездротового зв'язку з об'єктом, особливо це стосується тих ситуацій, коли об'єкт буде віддалятися на велику відстань. Звичайно, можна задавати маршрут руху по контрольним точкам, і об'єкт буде рухатися від точки до точки, використовуючи сучасні способи навігації, але якщо раптом на половині шляху оператору знадобиться здійснити аварійну посадку або змінити маршрут руху? Яким способом отримати доступ до об'єкта і забезпечити керувати ним? Таку можливість може забезпечити тільки якісний радіозв'язок. Таким чином, поряд з проблемою високого енергоспоживання, стає проблема безперебійного бездротового управління об'єктом.

2. Мета і задачі дослідження, заплановані результати

Метою даної роботи є пошук способів забезпечення бездротового зв'язку з об'єктом і побудова передавача, здатного забезпечувати прийнятну якість зв'язку з об'єктом. Для досягнення поставленої мети необхідно вирішити ряд завдань, а саме:

  1. Вивчити доступні способи і технології бездротового зв'язку;
  2. Визначити найбільш підходящі способи передачі даних;
  3. Визначити потрібні комплектуючі для реалізації бездротової передачі даних;
  4. Провести аналіз ринку і доступність даних елементів;
  5. Побудова діючого прототипу приймача і передавача;
  6. Програмування та налагодження спроектованих пристроїв.

Заплановані результати виконаної роботи:

3. Огляд літературних джерел

3.1 Основи радіохвильових технологій

Бездротову передачу даних можна здійснювати за допомогою інфрачервоного, лазерного і радіохвильового випромінювання.

Для досягнення стабільного, і, що не менш важливо, потужного сигналу, який дозволяє здійснювати передачу даних на десятки метрів, найкраще підходить третій спосіб, а саме передача даних за допомогою радіохвиль, оскільки даний спосіб має ряд переваг, а саме:

Для початку, потрібно розібратися, що таке радіохвиля?

Радіохвилі – це електромагнітні хвилі, частоти яких умовно обмежені частотами нижче 3000 ГГц, що поширюються в просторі без штучного хвилеводу[1][2]. Радіохвилі в електромагнітному спектрі розташовуються від вкрай низьких частот до інфрачервоного діапазону. З урахуванням класифікації Міжнародним союзом електрозв'язку[3][4] радіохвиль за діапазонами, до радіохвиль відносять електромагнітні хвилі з частотами від 0.03 Гц до 3 ТГц, що відповідає довжині хвилі від 10 млн. кілометрів до 0,1 міліметра.

У широкому сенсі радіохвилями є всілякі хвильові процеси електромагнітного поля в апаратурі (наприклад, в хвилеводних пристроях, в інтегральних схемах НЧ та ін.), в лініях передачі і, нарешті, в природних умовах, в середовищі, що розділяє передавальну і приймальну антени[5].

Радіохвилі, будучи електромагнітними хвилями, розповсюджуються у вільному просторі зі швидкістю світла. Природними джерелами радіохвиль є спалахи блискавок і астрономічні об'єкти. Штучно створені радіохвилі використовуються для стаціонарного та мобільного радіозв'язку, радіомовлення, радіолокації, радіонавігації, супутникового зв'язку, організації бездротових комп'ютерних мереж і в інших незліченних застосуваннях.

Схема випромінювання радіохвиль

Схема випромінювання радіохвиль (анімація: 8 кадрів, 10 циклів, 91.1 кілобайт)

Залежно від значення частоти (довжини хвилі) радіохвилі відносять до того чи іншого діапазону радіочастот (діапазону довжин хвиль). Ці діапазони можна класифікувати наступним чином[6]:

Діапазон частот Назва частот Довжини хвиль Назва хвиль Застосування
3 – 30 Гц Крайньо низькі (ВНЧ) 100 Мм – 10 Мм Декамегаметрові Зв'язок з підводними човнами, геофізичні дослідження
30 – 300 Гц Наднизькі (ННЧ) 10 Мм – 1 Мм Мегаметрові Зв'язок з підводними човнами, геофізичні дослідження
300 – 3000 Гц Інфранизькі (ІНЧ) 1000 км – 100 км Гектокілометрові Зв'язок з підводними човнами
3 – 30 кГц Дуже низькі (ДНЧ) 100 км – 10 км Міріаметрові Служба точного часу, радіозв'язок з підводними човнами
30 – 300 кГц Низькі (НЧ) 10 км – 1 км Кілометрові Радіомовлення, радіозв'язок земною хвилею, навігація
300 – 3000 кГц Середні (СЧ) 1000 м – 100 м Гектометрові Радіомовлення і радіозв'язок земною хвилею
3 – 30 МГц Високі (ВЧ) 100 м – 10 м Декаметрові Радіомовлення і радіозв'язок іоносферних, загоризонтної радіолокація, рації
30 – 300 МГц Дуже високі (ДВЧ) 10 м – 1 м Метрові Телебачення, радіомовлення, радіозв'язок тропосферною і прямою хвилею, рації
300 – 3000 МГц Ультрависокі (УВЧ) 1000 мм – 100 мм Дециметрові Телебачення, радіозв'язок тропосферний і прямою хвилею, мобільні телефони, рації, УВЧ-терапія, мікрохвильові печі, супутникова навігація.
3 – 30 ГГц Надвисокі (НВЧ) 100 мм – 10 мм Сантиметрові Радіолокація, інтернет, супутникове телебачення, супутниковий- та радіозв'язок прямою хвилею, бездротові комп'ютерні мережі.
30 – 300 ГГц Вкрай високі (ВВЧ) 10 мм – 1 мм Міліметрові Радіоастрономія, високошвидкісний радіорелейний зв'язок, радіолокація (метеорологічна, управління озброєнням), медицина, супутниковий радіозв'язок.
300 – 3000 ГГц Гіпервисокі (ГВЧ) 1 мм – 0,1 мм Децімілліметровие Експериментальна «терагерцова камера», яка реєструє зображення в довгохвильовому ІК

Для даного проекту цілком можуть підійти метрові, дециметрові і сантиметрові хвилі. Варто також відмітити, що чим більше довжина хвилі, тим більшу відстань вона може подолати, однак швидкість передачі даних в цьому випадку зменшується, прямо пропорційно збільшенню довжини хвилі.

Таким чином, для діапазону частот 136 – 174 МГц швидкість передачі даних буде досягати 19,2 Кбіт/с, при дальності передачі 50– 70 км, а для діапазону частот 2.4 ГГц швидкість передачі значно збільшиться, і буде досягати 54 Мбіт/с, проте дальність передачі при цьому істотно зменшиться.[7][8]

На основі вищезазначеного, найбільш оптимальним рішенням для досягнення поставлених завдань буде використання діапазону ультрависоких частот. Але використовувати будь-яку частоту з цього діапазону не можна, оскільки основна частина діапазону виділена під спеціальні потреби життєдіяльності, а саме:

До дозволених, спеціально виділених для використання під цивільні потреби, відносяться наступні частоти:

Назва Діапазон частот Опис
«11-метровий», Сі-Бі, Citizens’ Band – цивільний діапазон 27 МГц З дозволеної вихідною потужністю передавача до 1000 мВт
«70 см», LPD, LowPowerDevice – малопотужні пристрої 433 МГц Виділено 69 каналів для переносних радіостанцій з вихідною потужністю не більше 10 мВт
PMR, Personal Mobile Radio – персональні рації 446 МГц Виділено 8 каналів для переносних радіостанцій з вихідною потужністю не більше 0,5 Вт

Також, в цивільних цілях, можна використовувати вузький спектр частот, починаючи з 2.4 ГГц.

У даний час, основна частина радіоапаратури використовує частоти цього спектру, однак, на частоті 2.4 ГГц радіохвилі сильно схильні до викривлення навколишнім середовищем, так на хвилі може впливати матеріал, з якого зроблені стіни приміщення, тому при використанні даної частоти бажано забезпечити пряму «видимість» між приймачем і передавачем.

3.2 Огляд радіоприймача FlySky FS-iA10B і радіопередавача FlySky FS-i6X

Розроблювальний пристрій буде базуватися на принципі роботи вже існуючих пристроїв. У якості еталонного радіопередавача буде використана радіоапаратура фірми FlySky, модель FS-i6X. Дана апаратура має наступні параметри:

Радіоапаратура FlySky FS-i6X

Радіоапаратура FlySky FS-i6X

Радіоапаратура має 2 стіки управління, які в свою чергу керують 4 каналами. Фізично, стик представляє собою два змінних резистора, з'єднаних в наступну конструкцію:

Стік, конструкція

Стік, конструкція

Змінні резистори мають маркування b5k-60, кут повороту обмежений 60 градусами і опір 5 кОм.

Конструктивне виконання апаратури управління має наступний вигляд:

Радіоапаратура FlySky FS-i6X конструкція

Радіоапаратура FlySky FS-i6X конструкція

Командним центром даної апаратури виступає мікроконтролер STM32F072, який обробляє дані з стіків і перемикачів, кодує і пересилає їх у вигляді пакетів даних через радіомодуль(на фото він екранований металевою пластиною) приймача. Радіомодуль оснащений двома антенами, розташованими перпендикулярно. Таке технічне рішення обґрунтоване можливістю сигналу від передавача покривати більшу площу простору. Дані антени мають вигляд штиря з чвертьхвильовим стаканом.

Конструкція штирьовий антени з четвертьволновим стаканом

Конструкція штирьовий антени з четвертьволновим стаканом

Наявність четвертьволнового сімметрірующего стакану дозволяє домогтися повного узгодження антени з кабелемі позбутися від надлишкового електричного струму ВЧ в обплетенні кабелю, що підвищує ККД.[9]

В якості еталонного радіоприймача буде використовуватися приймач фірми FlySky модель FS-iA10B. Приймач має наступний вигляд:

Радіоприймач FlySky FS-iA10B

Радіоприймач FlySky FS-iA10B

Функцією радіоприймача є прийом і перетворення отриманих даних в PWM сигнал, який згодом передається на контролер мультіроторного пристрою. Даний радіоприймач також має на борту дві штирові антени і їх взаємне розташування також бажано зробити перпендикулярним.

3.3 Аналіз ринку можливих комплектуючих

Для реалізації даного проекту необхідно спроектувати і зібрати апаратуру управління і радіоприймач, для цього необхідний наступний мінімум електронних компонентів:

  1. Микроконтроллер;
  2. Радіомодуль;
  3. 4 змінних резистора.

В якості мікроконтролера для апаратури управління і приймача виступає ArduinoProMini, оскільки дана плата має компактні розміри і порівняно просту структуру побудови програм в оболонці AdruinoIDE. Надалі даний мікроконтролер буде замінений на більш потужний для збільшення обчислювальної здібності.

ArduinoProMini

ArduinoProMini

В якості радиомодуля на 2.4 ГГц можна використовувати популярний модуль nRF24L01 або його посилену версію nRF24L01+PA.

nRF24L01 nRF24L01+PA

Радіомодулі nRF24L01 і nRF24L01+PA

Зазначений радіомодуль здатний розвивати потужність випромінювання в 18 dBm. Версія без антени здатна покривати відстань прямої видимості в межах ста метрів, версія з підсилювачем і антеною здатна покривати відстань прямої видимості в межах до 1 кілометра.

Однак, при появі перешкоди на шляху проходження сигналу від передавача до приймача, характеристики даних модулів сильно погіршуються.

В якості радиомодуля можна також використати модулі на частоті в 433 МГц. Такі модулі більш стабільні при роботі в умовах «поганої» видимості і здатні покривати відстань, більшу, ніж модулі з частотою 2.4 ГГц.

ООдним з можливих варіантів є модуль HC-12 на мікросхемі SI4463. Він має наступні переваги:

Радіомодуль HC-12

Радіомодуль HC-12

Цей радіомодуль за своїми характеристиками і функціоналом найбільш прийнятний до використання.

В якості змінних резисторів не обов'язково використовувати резистори з кутом в 60 градусів, підійдуть і звичайні змінні резистори на 5 кОм, різницю кута опору легко можна буде змінити в програмному коді.

На момент написання магістерської роботи, мінімальна ціна на дані компоненти з сайту AliExpress становить:

4. Спосіб установки зв'язку між передавачем і приймачем за допомогою мікроконтролера на платі Arduino

Схема підключення радіо модуля HC-12 до плати Arduino має наступний вигляд:

Схема підключення радіо модуля HC-12 до плати Arduino

Схема підключення радіо модуля HC-12 до плати Arduino

Для створення зв'язку і передачі даних між модулями HC-12 досить простого коду[10]:

                   ///// Код для передавача /////


char val = 0;
void setup () {
Serial.begin(9600);// Ініціалізація послідовного порту
pinMode (13, OUTPUT); // Призначення 13 піну Arduino виходом
}

void loop () {
Serial.print(val);// Вивід значення змінної val в послідовний порт
delay(500);
val = 'A';
Serial.print(val);// Вивід значення змінної val в послідовний порт
delay(500);
val = 'B';
}
                   ///// Код для приймача /////


char val = 0;
void setup () {
Serial.begin(9600);// Ініціалізація послідовного порту
pinMode (13, OUTPUT); // Призначення 13 піну Arduino виходом
}

void loop () {
char val = Serial.read();// Зчитуємо дані з послідовного порту
switch (val) {
case ‘A’:// Якщо val=A, то
  digitalWrite (13, LOW); // Вимикаємо світлодіод
  break;
case ‘B’:// Якщо val=B, то
  digitalWrite (13, HIGH); // Вмикаємо світлодіод
  break;
  }
}

Така простота пов'язана з тим, що радіомодуль має інтерфейс UART, всі передані/прийняті дані відправляються по шині UART до мікросхемі STM8, яка приймає на себе роботу по ініціалізації радиомодуля і передачі даних. Однак для безпечної передачі даних необхідно:

  1. Шифрувати дані;
  2. Формувати і передавати дані по протоколу.

Якщо шифровка є скоріш рекомендованою, ніж обов'язковою умовою, то використання протоколу пакетної передачі є обов'язковою умовою стабільної передачі даних, оскільки в цьому випадку можна практично виключити можливість прийому старих або неповних даних приймачем.

Пакетна передача даних являє собою обрамлення даних що передаються в певні рамки/межі, за допомогою яких можна визначити де закінчився попередній пакет даних і де розпочався наступний.

Реалізація простого протоколу пакетної передачі даних описана в наступному коді[11]:

                   ///// Код для приймача /////


String sp_startMarker; // Змінна, яка містить маркер початку пакета
String sp_stopMarker; // Змінна, яка містить маркер кінця пакету
String sp_dataString; // Тут будуть зберігатися дані, що приймаються
int sp_startMarkerStatus; // Індикатор стану маркера початку пакета
int sp_stopMarkerStatus; // Індикатор стану маркера кінця пакету
int sp_dataLength; // Індикатор стану прийнятих даних
boolean sp_packetAvailable; // Індикатор завершення прийому пакета

void sp_SetUp()
{
sp_startMarker = "<bspm>"; // Так буде виглядати маркер початку пакета
sp_stopMarker = "<espm>"; // Так буде виглядати маркер кінця пакету
sp_dataString.reserve(64); // Резервуємо місце під прийом строки даних
sp_ResetAll(); // Повний сброс протоколу
}

void sp_ResetAll()
{
sp_dataString = ""; // Обнуляємо буфер прийому даних
sp_Reset(); // Частковий сброс протоколу
}

void sp_Reset()
{
sp_startMarkerStatus = 0; // Сброс iндикатора маркера початку пакета
sp_stopMarkerStatus = 0; // Сброс iндикатора маркера кінця пакету
sp_dataLength = 0; // Сброс iндикатора прийнятих даних
sp_packetAvailable = false; // Сброс iндикатора завершення прийому пакета
}

void serialEvent()
{
sp_Read(); // Виклик «читалки» прийнятих даних
if(sp_packetAvailable) // Якщо після виклику «читалки» пакет повністю прийнятий
{
ParseCommand(); // Обробляємо прийняту інформацію
sp_ResetAll(); // Повний сброс протоколу.
}
}

void sp_Read()
{
while(Serial.available() && !sp_packetAvailable) // Поки в буфері є що читати і пакет не є прийнятим
{
int bufferChar = Serial.read(); // Читаємо черговий байт з буфера
if(sp_startMarkerStatus < sp_startMarker.length()) // Якщо стартовий маркер не сформований (його довжина менша від тієї, яка повинна бути)
{
if(sp_startMarker[sp_startMarkerStatus] == bufferChar) // Якщо черговий байт з буфера збігається з черговим байтом в маркері
{
sp_startMarkerStatus++; // Збільшуємо лічильник збіглих байт маркера
}
else
{
sp_ResetAll(); // Якщо байти не співпали, то це не маркер.
}
}
else
{
// Стартовий маркер прочитаний повністю
if(sp_dataLength <= 0) // Якщо довжина пакета не встановлена
{
sp_dataLength = bufferChar; // Значить цей байт містить довжину пакета даних
}
else // Якщо прочитана з буфера довжина пакета більше нуля
{
if(sp_dataLength > sp_dataString.length()) // Якщо довжина пакета даних менша від тієї, яка повинна бути
{
sp_dataString += (char)bufferChar; // Додаємо отриманий байт до рядка пакета
}
else // Якщо з довжиною пакета даних все нормально
{
if(sp_stopMarkerStatus < sp_stopMarker.length()) // Якщо прийнята довжина маркера кінця пакету менше фактичної
{
if(sp_stopMarker[sp_stopMarkerStatus] == bufferChar) // Якщо черговий байт з буфера збігається з черговим байтом маркера
{
sp_stopMarkerStatus++; // Збільшуємо лічильник вдало знайдених байт маркера
if(sp_stopMarkerStatus == sp_stopMarker.length())
{
// Якщо після прочитання чергового байта маркера, довжина маркера збіглася, то скидаємо всi iндикатори (готуємося до прийому нового пакета)
sp_Reset();
sp_packetAvailable = true;// І встановлюємо прапор готовності пакета
}
}
else
{
sp_ResetAll();// Інакше це не маркер. Повний сброс.
}
}
//
}
}
}
}
}


void setup()
{
Serial.begin(9600); // Ініціалізіруем послідовний інтерфейс
sp_SetUp(); // Ініціалізіруем протокол.
pinMode (13, OUTPUT);
}

void loop()
{
delay(1000);
}

void ParseCommand()
{
if(sp_dataString == "onLED") // Якщо була прийнята строка «onLED»
{
digitalWrite (13, HIGH); //Подаємо живлення на світлодіод
} else if(sp_dataString == "offLED") // Якщо була прийнята строка «offLED»
{
digitalWrite (13, LOW); //Знімаємо живлення зі світлодіода
}

}
                   ///// Код для передатчика /////


String sp_startMarker; // Змінна, яка містить маркер початку пакета
String sp_stopMarker; // Змінна, яка містить маркер кінця пакету
String sp_dataString; // Тут будуть зберігатися дані, що приймаються

void sp_SetUp()
{
sp_startMarker = "<bspm>"; // Так буде виглядати маркер початку пакета
sp_stopMarker = "<espm>"; // Так буде виглядати маркер кінця пакету
sp_dataString.reserve(64); // Резервуємо місце під прийом строки даних
sp_ResetAll(); // Повний сброс протоколу
}

void setup(){

Serial.begin(9600);// Ініціалізіруем послідовний інтерфейс
sp_SetUp();// Ініціалізіруем протокол.
}
void loop(){
sp_Send("onLED"); // Відправляємо команду на включення світлодіода
delay(1000);
sp_Send("offLED"); // Відправляємо команду на вимикання світлодіода
delay(1000);
} void sp_Send(String data)
{
Serial.print(sp_startMarker); // Відправляємо маркер початку пакета
Serial.write(data.length());// Відправляємо довжину даних що передаються
Serial.print(data); // Відправляємо дані
Serial.print(sp_stopMarker); // Відправляємо маркер кінця пакету
}

Даний код дозволяє передавати дані такого вигляду:

<beginPacket>(numData)data<endPacket>

де, beginPacket – маркер який вказує на початок;

       endPacket – маркер який вказує на кінець пакета;

       data – дані що передаються;

       numData – кількість переданих символів data;

Для реалізації більш надійної передачі даних рекомендується використовувати в якості маркерів початку і кінця пакету унікальні комбінації символів або байт, наприклад, 0x7E 0x0E.

Список джерел

  1. Регламент радиосвязи. Статьи. – Швейцария, Женева: МСЭ, 2012. Статья 1.5.
  2. ГОСТ 24375-80 Радиосвязь. Термины и определения [Электронный ресурс] – Режим доступа: ГОСТ свободный.
  3. Рекомендация ITU-R V.431-7. Номенклатура диапазонов частот и длин волн, используемых в электросвязи. 2005.
  4. Геннадиева Е. Г., Дождиков В. Г., Кульба А. В. и др. Краткий энциклопедический словарь по радиоэлектронике и радиопромышленности / Под ред. В. Н. Саблина. М.: Диво, 2006. С. 276.
  5. В. В. Никольский, Т. И. Никольская. Электродинамика и распространение радиоволн. М.: Наука, 1989. С. 467.
  6. Радиоволны // Википедия, статья [Электронный ресурс] – Режим доступа: ru.wikipedia.org свободный.
  7. Практика радиосвязи как она есть.[Электронный ресурс] – Режим доступа: Хабрахарб свободный.
  8. Диапазоны частот беспроводной передачи данных [Электронный ресурс] – Режим доступа: Tadviser свободный.
  9. Ремонт и изготовление новой антенны аппаратуры РУ на 2,4 ГГц.[Электронный ресурс] – Режим доступа: Паркфлаер свободный.
  10. Arduinolab. Радиомодули на 433Мгц c UART интерфейсом [Электронный ресурс] – Режим доступа: HC-12 свободный.
  11. Пакетная передача данных Arduino & PC [Электронный ресурс] – Режим доступа Robocraft свободный.