Проект Geoscan Base. Работа с гироскопом и led-матрицей.

! Тема урока: Работа с гироскопом и светодиодной матрицей.

! Необходимые компоненты: базовая плата квадрокоптера, «Модуль LED», аккумулятор, usb-кабель.

! Цель урока: создание игры по сбору меток в пределах матрицы светодиодов.

image0

Важно

«Модуль 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()