Передача данных на бортовой контроллер — КиберПедия 

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Передача данных на бортовой контроллер

2022-07-06 11
Передача данных на бортовой контроллер 0.00 из 5.00 0 оценок
Заказать работу

 

Теперь передадим данные на другой микроконтроллер, который будет находиться на борту квадрокоптера. Для этой цели будут использоваться два модуля nRF24L01. Это модули радиосвязи, работающие на частоте 2,4 ГГц и имеющие встроенную библиотеку для платформ Arduino и RaspberryPI. Модули могут передавать сигнал на расстоянии до 100 м наскорости до 2 Мб/с. Модуль взаимодействует с контроллером с помощью интерфейса SPI.

Кроме ножек питания, модуль имеет следующие выводы:

·   SCK (Serial ClocK) - тактирование (синхронизация).

·   MOSI / MI (Master Out Slave In) - входданных.

·   MISO / MO (Master In Slave Out) - выходданных.

·   CE/SS - Выбор ведомого на шине SPI из нескольких устройств.

·   SCN - выбор режима приема/передача, фактически тот же CE.

·   IRQ - выход прерывания,чаще всего не используется. Необходим для немедленной реакции микроконтроллера при приеме нового пакета данных.

В код для Arduinoкак на приемной, так и на передающей стороне, необходимо импортировать библиотеки SPI.h, nRF24L01.h и RF24.h, а также инициализировать несколько объектов и переменных и запустить определенные методы.

Сначала создадим объект radioкласса RF24, в качестве аргументов он принимает номера выводов Arduino, через которые идет передача данных. Далее следует объявить массив адресов типа byte, в этом массиве хранится информация о наименованиях так называемых «труб» - каналов по которым модуль производит передачу.

В функции setup нужно активировать модуль методом.begin, затем задать режим подтверждения приема на случай, если понадобится отправлять данные с борта на землю методом. Затем методомsetRetries устанавливается количество попыток передать пакет данных и время между ними. Метод enableAckPayloadразрешает отсылку данных в ответ на входящий сигнал.setPayloadSize устанавливает размер пакета в байтах, (в нашем случае 6 байт).

openReadingPipe включает для прослушивания «трубу» спредварительно объявленным номером Adress. setChannel используется для выбора канала в шестнадцатиричной системе счисления (можно выбрать любой, но на некоторых частотах могут присутствовать шумы) setPALevelустанавливаетуровень мощности передатчика. Аргументами могут быть RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH или RF24_PA_MAX. Метод setDataRateпозволяет выбрать максимальную скорость обмена информацией. Выбираем 250 кбит/с, так как при небольшой скорости передачи наблюдается максимальная чувствительность и дальность. Метод powerUp сигнализирует о начале работы модуля. Так же для приемника необходимо прописать метод startListening, а для передатчика - stopListening.

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

В прил. 1 приведен полный код программы для распознавания жестов, в прил. 2 - код программы для передатчика и приемника на платформе Arduino.

 


 

Заключение

 

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

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

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

Разработка устройства потребовала навыки в областях радиофизики, программирования, обработки сигналов, робототехники, электроники и аэродинамики.

 



Поделиться с друзьями:

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

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

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.007 с.