цифровая электроника
вычислительная техника
встраиваемые системы

 



Управляем квадрокоптером с помощью Arduino

Автор: Mike(admin) от 21-12-2013, 07:32

Управлять квадрокоптером – это веселое и интересное занятие. Интереснее может быть только создание своей системы управления такой игрушкой на базе какой-нибудь популярной платформы, например, Arduino. Чем и занялся энтузиаст под ником Dzl. Первым делом он разобрал пульт дистанционного управления для того, чтобы посмотреть, какая радиосистема в нем используется.


Пульт управления квадрокоптером

Внутри, как и ожидалось, была пара дешевых печатных плат с небольшим количеством компонентов на них.


Плата управления квадрокоптером

Радиосвязь обеспечивалась небольшим дискретным радиомодулем. После дополнительного анализа и поиска в интерненте выяснилось, что модуль основан на микросхеме передатчика BK2421, работающего в диапазоне 2.4 ГГц. Сегодня, в принципе, большинство дешевых игрушек с радиоуправлением основаны на этом модуле.


Модуль управления квадрокоптером

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


Пульт управления квадрокоптером

Благодаря «прослушке» с помощью Arduino UNO стал понятен порядок инициализации и режим связи. Здесь имеется порядок инициализации.


Не вдаваясь в подробности низкоуровневой коммуникации, при включении пульта и квадрокоптера происходит следующее:


1. Пульт передает свой уникальный сетевой адрес или ID


2. Квадрокоптер принимает эту передачу, подтверждает ее и начинает прослушивать канал с данными от этого ID


3. После подтверждения пульт начинает передавать пакеты данных каждые 20 мс


Можно управлять одновременно несколькими квадрокоптерами, назначив им разные адреса. Передача ID проходит по одному фиксированному каналу, и данные передаются по одному из 12 случайных каналов. Квадрокоптеры автоматически сканируют радиоканалы, пока не найдут данные.


Данные передаются в пакете, состоящем из 8 байт, в следующем формате:


Байт 0 = throttle (газ) 0-255
Байт 1 =Yaw (рыскание) 0-255
Байт 2 =Yaw_trim (подстройка Yaw) 0-128
Байт 3 = Pitch (тангаж) 0-255
Байт 4 = Roll (крен) 0-255
Байт 5 = Pitch_trim (подстройка Pitch) 0-128
Байт 6 = Roll_trim (подстройка Roll) 0-128
Байт 7 = Fly/run 0=fly, 16=run


Модуль управления квадрокоптером

Затем была создана базовая станция, которая должна связываться квадрокоптерами. В качестве модулей использовались RFM-70, содержащие ту же микросхему BK2421. Следует отметить, что выводы BK2421 толерантны к 5 В, поэтому дополнительные резисторы для 3.3 В можно не ставить.


Модуль управления квадрокоптером и Arduino Uno

Для подключения одного и более квадрокоптеров к Arduino была написана специальная библиотека. Эта библиотека должна работать с любыми платами Arduino на базе чипов ATMEGA88 - ATMEGA328P. И в конце видео работы:





Перевод © digitrode.ru


<Источник>


Теги: Arduino, пульт ДУ, квадрокоптер




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий