Українська   English
ДонНТУ   Портал магистров

Реферат по теме выпускной работы

Содержание

Введение

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

1. Актуальность темы

Основным недостатком мультироторных систем является высокое потребление тока, однако в обозримом будущем данная проблема будет решена благодаря использованию более энергоемких элементов питания. Нерешенным остается вопрос с поддержанием постоянной беспроводной связи с объектом, особенно это касается тех ситуаций, когда объект будет удаляться на большое расстояние. Конечно, можно задавать маршрут движения по контрольным точкам, и объект будет двигаться от точки к точке, используя современные способы навигации, но что если на половине пути оператору понадобится совершить аварийную посадку или изменить маршрут движения? Каким способом получить доступ к объекту и обеспечить возможность управления им? Такую возможность может обеспечить только качественная радиосвязь. Таким образом, наряду с проблемой высокого энергопотребления, стает проблема бесперебойного удаленного управления объектом.

2. Цель и задачи исследования, планируемые результаты

Целью данной работы является поиск способов обеспечения беспроводной связи с объектом и построение передатчика, способного обеспечивать приемлемое качество связи с объектом. Для достижения поставленной цели необходимо решить ряд задач, а именно:

  1. Изучить доступные способы и технологии беспроводной передачи данных;
  2. Определить наиболее подходящие способы передачи данных;
  3. Определить необходимые комплектующие для реализации беспроводной передачи данных;
  4. Провести анализ рынка и доступность данных элементов;
  5. Построение действующего прототипа приемника и передатчика;
  6. Программирование и отладка проектируемых устройств.

Планируемые результаты проделанной работы:

3. Обзор литературных источников

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

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

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

Для начала, нужно разобраться, что такое радиоволна?

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

В широком смысле радиоволнами являются всевозможные волновые процессы электромагнитного поля в аппаратуре (например, в волноводных устройствах, в интегральных схемах СВЧ и др.), в линиях передачи и, наконец, в природных условиях, в среде, разделяющей передающую и приемную антенны[5].

Радиоволны, являясь электромагнитными волнами, распространяются в свободном пространстве со скоростью света. Естественными источниками радиоволн являются вспышки молний и астрономические объекты. Искусственно созданные радиоволны используются для стационарной и мобильной радиосвязи, радиовещания, радиолокации, радионавигации, спутниковой связи, организации беспроводных компьютерных сетей и в других бесчисленных приложениях.

Cхема излучения радиоволн

Cхема излучения радиоволн (анимация: 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; // Сброс флага маркера начала пакета
sp_stopMarkerStatus = 0; // Сброс флага маркера конца пакета
sp_dataLength = 0; // Сброс флага принимаемых данных
sp_packetAvailable = false; // Сброс флага завершения приема пакета
}

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())
{
// Если после прочтения очередного байта маркера, длина маркера совпала, то сбрасываем все флаги (готовимся к приему нового пакета)
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 свободный.