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

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

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

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

image0

Важно

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