• Требовать и эффективности, и гибкости от одной и той же программы — все равно, что требовать академического интеллекта от красавицы-блондинки.

Управление моторами с блока Lego EV3

Примеры использования кнопок блока Lego EV3 для управления моторами. Буквой имени порта обозначается мотор, подключенный к порту с этим именем.

Вы можете скопировать указанный ниже код в IDE MS Small Basic с установленной библиотекой EV3 и подключенным блоком Lego EV3 и запустить:

LCD.Clear() ' очищаем экран блока

LCD.Text(1, 0,30, 1, "Control motors with")

LCD.Text(1, 0,45, 1, "directional buttons:")

LCD.Text(1, 0,70, 1, "Left/Right - Motor B")

LCD.Text(1, 0,85, 1, "Up/Down - Motor C")

while "True" ' Так как тут условие цикла - всегда истина, то этот цикл бесконечен

    K = Buttons.Current ' считываем состояние кнопок

    SB = 0 ' устанавливаем скорость мотора B в 0

    SC = 0 ' устанавливаем скорость мотора C в 0

    If Text.IsSubText(K, "L") then ' проверяем, нет ли в строке состояния кнопок символа L, (кнопка "Влево")

        SB = -40 ' задаём скорость мотора B назад (-40)

    elseif Text.IsSubText(K, "R") then ' проверяем нет ли в строке состояния кнопок символа R, (кнопка "Вправо")

        SB = 40 ' задаём скорость мотора B вперёд (40)

    endif

    If Text.IsSubText(K, "U") then ' проверяем, нет ли в строке состояния кнопок символа U, (кнопка "Вверх")

        SC = 40 ' задаём скорость мотора С вперёд (40)

    elseif Text.IsSubText(K, "D") then ' проверяем, нет ли в строке состояния кнопок символа D, (кнопка "Вниз")

        SC = -40 ' задаём скорость мотора С назад (-40)

    endif

    Motor.Start("B", SB) ' запускаем мотор B с заданной скоростью

    Motor.Start("C", SC) ' запускаем мотор С с заданной скоростью

    Program.Delay(100) ' ждем 100 миллисекунд, чтобы не сильно нагружать опросом кнопок блок EV3

Endwhile



Поделиться: