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