Бортовой модуль навигации в помещении¶

Модуль входит в комплект системы навигации в помещении вместе с блоком управления и четырьмя ультразвуковыми излучателями. Он монтируется на основной плате «Пионера» сверху с помощью 4-х винтов М3.
Модуль оснащен двумя микрофонами, которые позволяют контроллеру оценивать время прихода и разность фаз сигналов с излучателей. Далее происходит синхронизация с блоком управления по радиоканалу и определяется точное положение квадрокоптера в пространстве, а также его скорость.
Для работы модуля необходимо расположить включенный квадрокоптер в зоне действия ультразвуковых излучателей.
Дополнительно: Система навигации в помещении Геоскан Локус
Пример¶
Полет в системе навигации может осуществляться как в ручном режиме, так и по заранее загруженной программе. Пример такой программы - ниже. Выполняя её, «Пионер» взлетает, набирает высоту 1.2 м, затем летит в точку с координатами (1:1) и приземляется. Чтобы загрузить программу на «Пионер», используйте Pioneer Station.
-- Упрощение вызова функции распаковки таблиц из модуля table
local unpack = table.unpack
-- Количество светодиодов на базовой плате
local ledNumber = 4
-- Создание порта управления светодиодами
local leds = Ledbar.new(ledNumber)
-- Функция смены цвета светодиодов
local function changeColor(color)
-- Поочередное изменение цвета каждого из 4-х светодиодов
for i=0, ledNumber - 1, 1 do
leds:set(i, unpack(color))
end
end
-- Таблица цветов в формате RGB для передачи в функцию changeColor
local colors = {
{1, 0, 0}, -- красный
{0, 1, 0}, -- зеленый
{0, 0, 1}, -- синий
{1, 1, 0}, -- желтый
{1, 0, 1}, -- фиолетовый
{0, 1, 1}, -- бирюзовый
{1, 1, 1}, -- белый
{0, 0, 0} -- черный/отключение светодиодов
}
-- Таблица точек полетного задания в формате {x,y,z}
local points = {
{0, 0, 0.7},
{0, 1, 0.7},
{0.5, 1, 0.7},
{0.5, 0, 0.7}
}
-- Счетчик точек
local curr_point = 1
-- Функция, изменяющая цвет светодиодов и выполняющая полет к следующей точке
local function nextPoint()
-- Текущий цвет. % - остаток от деления, # - размер таблицы. Такая конструкция использована,
-- чтобы цвета продолжали меняться, даже если точек больше, чем цветов в таблице
curr_color = ((curr_point - 1) % (#colors - 2)) + 1
-- Изменение цвета светодиодов
changeColor(colors[curr_color])
-- Полет к текущей точке, если её номер не больше количества заданных точек
if(curr_point <= #points) then
Timer.callLater(1, function()
-- Команда полета к точке в системе позиционирования
ap.goToLocalPoint(unpack(points[curr_point]))
-- Инкрементация переменной текущей точки
curr_point = curr_point + 1
end)
-- Посадка, если номер текущей точки больше количества заданных точек
else
Timer.callLater(1, function()
-- Команда на посадку
ap.push(Ev.MCE_LANDING)
end)
end
end
-- Функция обработки событий, автоматически вызывается автопилотом
function callback(event)
-- Когда коптер поднялся на высоту взлета Flight_com_takeoffAlt, переходим к полету по точкам
if(event == Ev.TAKEOFF_COMPLETE) then
nextPoint()
end
-- Когда коптер достиг текущей точки, переходим к следующей
if(event == Ev.POINT_REACHED) then
nextPoint()
end
-- Когда коптер приземлился, выключаем светодиоды
if (event == Ev.COPTER_LANDED) then
changeColor(colors[8])
end
end
-- Предстартовая подготовка
ap.push(Ev.MCE_PREFLIGHT)
-- Зажигание светодиодов белым цветом
changeColor(colors[7])
-- Таймер, через 2 секунды вызывающий функцию взлета
Timer.callLater(2, function() ap.push(Ev.MCE_TAKEOFF) end)
Прошивка модуля навигации¶
Для обновления прошивки модуля навигации на вашем компьютере должна быть установлена программа Pioneer Station и загружен файл с прошивкой.
Актуальную версию прошивки модуля USNav можно скачать по ссылке - Модуль USNav
Выполните следующие действия для успешного обновления прошивки модуля навигации USNav.
- Отключите плату подключения дополнительных модулей если она установлена на Pioneer. Для этого достаточно отключить оба шлейфа. В противном случае, помощник по прошивке не обнаружит модуль навигации.
- Установите модуль навигации на Pioneer.
- Зажмите кнопку «Старт» на плате автопилота и удерживая её подключите аккумулятор. Таким образом обе платы (автопилот и модуль навигации) перейдут в режим загрузчика. Все светодиоды на плате автопилота и модуле навигации должны гореть постоянно.
Важно
Ввод в режим бутлоадера должен происходить с помощью аккумулятора. Запуск загрузчика с помощью USB не приведёт к должному результату.
- При помощи USB-кабеля подключите плату автопилота к компьютору.
- Запустите Pioneer Station и нажмите на значок квадрокоптера в левом верхнем углу окна программы. В выпадающем меню нажмите «обновление прошивки» и следуйте инструкциям помощника.
- При переходе к пункту «Выбор устройства» в списке будет отображаться не только базовая плата квадрокоптера PioneerBase, но и модуль навигации ModuleUSNav. Поставьте галочку напротив модуля и нажмите «Далее».

- При выборе источника прошивки рекомендуется выбрать пункт «Из файла», и указать путь к предварительно скачанной прошивке. Дождитесь окончания прошивки. После этого квадрокоптер перезагрузится в обычный режим.