• Тем, кто привык ходить в цирк Монти Пайтона — за «волшебством», «магией», леденцовыми петушками из синтаксического сахара и прочей попсой, — в серьезном программировании будет очень трудно.

Пример работы с блоком Lego EV3

Программа выводит текст и фигуры на LCD экране блока Lego EV3, обрабатывает нажатия кнопок, включает подсветку кнопок и проигрывает звуки.

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

LCD.Clear()

LCD.Write(15, 55, "Press buttons other")

LCD.Write(40, 70, "than 'Back'")

While "True" ' бесконечный цикл

    Program.Delay(200) ' Проверяем пять раз в секунду какие кнопки нажаты

    click = Buttons.GetClicks() ' переменная 'click' содержит символы кнопок, нажатых и отпущенных с момент последнего вызова этой функции

    If click <> "" Then ' Очищаем экран если нажата любая кнопка

        LCD.Clear()

    EndIf

    If Text.IsSubText(click, "U") then ' Если в строке есть символ "U" - была нажата кнопка "Вверх"

        LCD.Write(0, 0, "This is written at")

        LCD.Write(0, 10, "(0,0) using LED.Write")

        EV3.SetLEDColor("OFF", "Normal")

        Speaker.Tone(100, 500, 400) ' Играем 500 Гц тон 0.4 секунды на полной громкости

    ElseIf Text.IsSubText(click, "D") then ' если была нажата кнопка "Вниз"

        LCD.Text(1, 0,12, 0, "This is written at")

        LCD.Text(1, 0,24, 0, "(0,12) using LED.Text")

        LCD.Text(1, 0,36, 0, "in size 0 (small).")

        EV3.SetLEDColor("RED", "Flash")

        Speaker.Note(50, "D2", 400) ' Играем ноту "D2" 0.4 секунды на 50% громкости

    ElseIf Text.IsSubText(click, "L") then

        LCD.Text(1, 0, 12, 1, "This is written at")

        LCD.Text(1, 0, 24, 1, "(0,12) using LED.Text")

        LCD.Text(1, 0, 36, 1, "in size 1 (medium).")

        EV3.SetLEDColor ("GREEN", "Pulse") ' Включаем зеленую пульсирующую подсветку

    ElseIf Text.IsSubText(click, "R") then

        LCD.Text(1, 0, 20, 2, "This is")

        LCD.Text(1, 0, 40, 2, "made using")

        LCD.Text(1, 0, 60, 2, "LED.Text in")

        LCD.Text(1, 0, 80, 2, "size 2")

        LCD.Text(1, 0, 100, 2, "(large).")

        EV3.SetLEDColor ("ORANGE", "Normal") ' Включаем красную подсветку

    ElseIf Text.IsSubText(click,"E") then

        LCD.Write(0, 0, "Circle(1,50,70,30)")

        LCD.Circle(1, 50, 70, 30) ' рисуем окружность. параметры: color, x, y, radius

        LCD.Write(0, 12, "FillRect(1,90,80,60,40)")

        LCD.FillRect (1, 90, 80, 60, 40) ' рисуем прямоугольник. параметры: color, x, y, width, height

        LCD.Write(0, 24, "Line(1,100,50,160,60)")

        LCD.Line(1,100,50,160,60) ' рисуем линию. параметры: color, x1, y1, x2, y2

        for i=1 to 3

            EV3.SetLEDColor ("RED", "Normal")

            Program.Delay(500) ' ждём 0.5 секунды (500 миллисекунд)

            EV3.SetLEDColor ("Green", "Normal")

            Program.Delay(500)

            EV3.SetLEDColor ("Orange", "Normal")

            Program.Delay(500)

        Endfor

    Endif

EndWhile



Поделиться: