Проект Geoscan Base. Работа с гироскопом и led-матрицей.¶
! Тема урока: Работа с гироскопом и светодиодной матрицей.
! Необходимые компоненты: базовая плата квадрокоптера, «Модуль LED», аккумулятор, usb-кабель.
! Цель урока: создание игры по сбору меток в пределах матрицы светодиодов.
Важно
«Модуль LED» работает только при подключённом к базовой плате аккумуляторе.
Работа с гироскопом¶
К гироскопу на квадрокоптере мы обращаемся через класс Sensors() и получаем от него три параметра, а именно углы отклонения по тангажу, крену, а также рысканью:
roll, pitch, yaw = Sensors.orientation()
Работа с LED модулем¶
На модуле находится 25 адресных светодиодов, в программе их адрес задаётся после основных четырёх светодиодов, т.е. с 4 по 28 включительно.
Создание игры¶
Если с управлением в игре при помощи гироскопа всё более менее понятно, то вот с созданием границ у матрицы всё сложнее. Ведь персонаж «сборщик» при максимальном смещении должен упираться в стенку, а не переходить на другой ряд матрицы.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | function callback( event )
end
-- 6 14 18 26
k=16
leds = Ledbar.new(29)
leds:set(k, 0, 0.2, 0)
function main_program()
roll, pitch, yaw = Sensors.orientation()
if roll < -20 then
kold=k
k=k-1
elseif roll > 20 then
kold=k
k=k+1
elseif pitch < -20 then
kold=k
k=k-5
elseif pitch > 20 then
kold=k
k=k+5
end
leds:set(k, 0, 0.2, 0)
leds:set(kold, 0, 0, 0)
Timer.callLater(0.3, function () main_program() end)
end
main_program()
|