Проект 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() |