Плата подключения дополнительных модулей

Используйте эту плату, чтобы подключать больше модулей к «Пионеру».

../_images/modules_board.png

При установке ориентируйте плату так, чтобы стрелка на ней указывала в ту же сторону, что и стрелка на основной плате квадрокоптера. Плата крепится на нижнюю часть квадрокоптера вместо крышки отсека аккумулятора через стойки винтами М3.

Сверху на плате расположены два разъема. Используйте их, чтобы подключать шлейфы, идущие от базовой платы. На нижней поверхности - два разъема для подключения модулей. Модули подключаются «насквозь» через плату.

Также плата подключения дополнительных модулей оснащена лазерным дальномером. Он позволяет точно определять высоту над уровнем пола в пределах 0 - 1,5 м. Дальномер активируется в режиме удержания высоты. При этом «Пионер» будет сохранять одинаковое расстояние от поверхности, даже если она неровная. Пролетая над препятствием или впадиной, квадрокоптер будет менять высоту. Если закрыть датчик рукой или другим предметом, «Пионер» будет набирать высоту до тех пор, пока расстояние до препятствия не вернется к прежнему значению, или пока квадрокоптер не упрется в потолок.

Данные с дальномера можно считывать и использовать для управления квадрокоптером. В качестве примера приведена программа, меняющая цвет светодиодов на «Пионере» в зависимости от расстояния до земли. Используйте Pioneer Station, чтобы загрузить программу на «Пионер».

Примечание

Дальномер неактивен в режиме полета по GPS. Если программа не работает, откройте вкладку «параметры автопилота » в Pioneer Station и выберите набор параметров «LPS» или «OPT». Также можно вручную поменять значение параметра BoardPioneer_modules_gnss на 0,0.

-- https://learnxinyminutes.com/docs/ru-ru/lua-ru/ ссылка для быстрого ознакомления с основами языка LUA
-- упрощаем вызов функции получения расстояния с лазерного дальномера
local range = Sensors.range
-- количество светодиодов на основной плате пионера
local ledNumber = 4
-- создание порта управления светодиодами
local leds = Ledbar.new(ledNumber)

-- функция смены цвета светодиодов
local function changeColor(red, green, blue)
        -- меняет поочередно цвета каждого из 4-х светодиодов
    for i = 0, ledNumber - 1, 1 do
        leds:set(i, red, green, blue)
    end
end

function callback(event)
end

-- создаем таймер, который будет каждую десятую секунды считывать расстояние до пола
timerRangeRead = Timer.new(0.1, function ()
    -- считываем показания в метрах с лазерного дальномера (он идет 1-м в списке) подключенного датчика расстояния
    distance = range()
    r, g, b = 0, 0, 0
    -- при превышении допустимого расстояния лазерного дальномера датчик выдает константу 8.19 м
    if (distance >= 8.19) then
        -- в таком случае светодиоды загораются красным
        r = 1
    else
        -- меняем яркость светодиодов в зависимости от расстояния (~1.5 - максимальное расстояние для лазерного дальномера на плате адаптере)
        g = math.abs(distance / 1.5)
    end
    -- меняем цвет светодиодов на посчитанные значения
    changeColor(r, g, b)
end)
-- запускаем таймер
timerRangeRead:start()