• Название: EV3 Basic
  • Автор: StepanovAV

Справочник по командам EV3 Бейсик
Перевод: Андрей Степанов, «Карандаш и Самоделкин»

Assert
Тестовая функция утверждения помогает проверить на корректность твой код. Добавив
утверждение ты сможешь проще найти ошибки в программе. Например, когда часть
программы зависит от переменной А, имеющей положительное значение, ты можешь
вызвать Assert.Greater(A,0,"A должна быть > 0!"). В случае, если в этом месте программы
переменная А будет меньше нуля, выведется указанное тобой предупреждение.

Assert.Failed (сообщение)
Вывести предупреждение на экран. Используй эту функцию только если наблюдаешь
ошибки в программе и тебе нужно их найти.
Сообщение: Сообщение, которое будет выведено на экран

Assert.Equal(А, B, сообщение)
Утверждаем, что два значения равны. проверяется полное совпадение, даже "True" и
"tRue" считаются различными выражениями.
А: Первый параметр
B: Второй параметр
Сообщение: Сообщение, которое будет выведено, если утверждение ошибочно

Assert.NotEqual(А, B, сообщение)
Утверждаем, что два значения не равны. проверяется полное совпадение, даже "True" и
"tRue" считаются различными выражениями.
A: Первый параметр
B: Второй параметр
Сообщение: Сообщение, которое будет выведено, если утверждение ошибочно

Assert.Less(А, B, сообщение)
Утверждаем, что первое число меньше второго.
A: Первый параметр
B: Второй параметр
Сообщение: Сообщение, которое будет выведено, если утверждение ошибочно

Assert.Greater(А, B, сообщение)
Утверждаем, что первое число больше второго.
A: Первый параметр
B: Второй параметр
Сообщение: Сообщение, которое будет выведено, если утверждение ошибочно

Assert.LessEqual(А, B, сообщение)
Утверждаем, что первое число меньше или равно второму.
A: Первый параметр
B: Второй параметр
Сообщение: Сообщение, которое будет выведено, если утверждение ошибочно

Assert.GreaterEqual(А, B, сообщение)
Утверждаем, что первое число больше или равно второму.
A: Первый параметр
B: Второй параметр

Сообщение: Сообщение, которое будет выведено, если утверждение ошибочно

Assert.Near(А, B, сообщение)
Утверждаем, что числа почти равны. Это может быть полезно при сравнении двух
дробных чисел с большим количеством знаков после запятой, а их округление может
вызвать немного различные результаты
A: Первый параметр
B: Второй параметр
Сообщение: Сообщение, которое будет выведено, если утверждение ошибочно

Buttons
Прочитать состояния и нажатия (включая щелчки) кнопок на блоке EV3. Кнопки
обозначаются с использованием следующих символов:
U
D
L
R
E

Вверх
Вниз
Влево
Вправо
Центр

Buttons.GetClicks()
Проверяет какие кнопки были нажаты с момент последнего вызова GetClicks и возвращает
текст, содержащий соответствующие им символы. Состояние кнопок при этом очищается.
Также издает звук, когда зафиксировано нажатие кнопок.
Возвращает: Текст, содержащий символы нажатых кнопок (может быть пустым, если
ничего не нажато)

Buttons.Wait ()
Ждать, пока одна из кнопок на блоке не будет нажата.

Buttons.Flush ()
Очистить состояние нажатых кнопок. Последующие вызовы GetClicks покажет только те
кнопки, которые были нажаты после очистки.

Buttons.Current
Кнопки, которые в данный момент нажаты. Содержит текст с символами,
соответствующим всем кнопкам, нажатым в данный момент.

EV3File
Доступ к файловой системе блока EV3 для чтения или записи данных. К именам файлов
домет быть добавлен абсолютный путь начиная с '/' для доступа к любому файлу в
файловой системе или относительный, начиная с папки prjs.

EV3File.OpenWrite(имя_файла)
Открывает файл для записи. если файл уже существует, он будет перезаписан.
имя_файла: Имя файла для записи/перезаписи
Возвращает: Номер, идентифицирующий данный открытый файл (file handle)

EV3File.OpenAppend(имя_файла)
Открывает файл для добавления в него данных. Если файл не существует, он будет
создан.
имя_файла: Имя файла для создания/добавления данных
Возвращает: Номер, идентифицирующий данный открытый файл (file handle)

EV3File.OpenRead(имя_файла)
Открывает файл для чтения. Если файл не существует, возвращает 0.
имя_файла: Имя файла для чтения
Возвращает: Номер, идентифицирующий данный открытый файл (file handle) или 0, если
файл не существует

EV3File.Close(идентификатор)
Закрывает открытый файл.
Идентификатор: Идентификатор файла (file handle), полученный в момент открытия
файла

EV3File.WriteLine(идентификатор, текст)
Записывает текстовую строку в файл. Строка будет записана в кодировке ISO-8859-1 и
оканчиваться символом перевода строки (код 10).
Идентификатор: Идентификатор файла (file handle), полученный в момент открытия
файла
Текст: Текст для записи в файл

WriteByte(идентификатор, число)
Записывает один байт данных в файл.
Идентификатор: Идентификатор файла (file handle), полученный в момент открытия
файла
Число: Один байт для записи (значение от 0 до 255).

EV3File.ReadLine(идентификатор)
Прочитать текстовую строку из файла. Строка будет прочитана в кодировке ISO-8859-1 и
должна оканчиваться символом перевода строки (код 10).
Идентификатор: Идентификатор файла (file handle), полученный в момент открытия
файла
Возвращает: Текстовая строка, прочитанная из текущей строки файла

EV3File.ReadByte(идентификатор)
Прочитать один байт из файла.
Идентификатор: Идентификатор файла (file handle), полученный в момент открытия
файла
Возвращает: Следующий по счету байт из файла (число)
EV3File.ReadNumberArray(идентификатор, размер)
Читает массив чисел из бинарного файла. Числа будт раскодированы с использованием
кодировки IEEE как тип Float с одинарной точностью
Идентификатор: Идентификатор файла (file handle), полученный в момент открытия
файла
Размер: Размер массива, который будет прочитан
Возвращает: Массив чисел указанного размера

EV3File.ConvertToNumber(текст)
Конвертация текста в число.
Текст: Текст, содержащий числа, может содержать также дробную часть числа
Возвращает: Число

EV3File.TableLookup(имя_файла, байт_в_строке, строка, столбец)
Функция предназначена для чтения байт из потенциально огромных файлов, которые
слишком велики, чтобы быть переданы в память в целом. Поскольку файл может быть
настолько большой, что численной адресации будет недостаточно, вводятся параметры
строка/столбец
имя_файла: Имя файла
байт_в_строке: Если файл имеет структуру строк/столбцов, в параметре указывается
число байт в строке, иначе указывай 1
строка: Какую строку читать (начиная с 0)
столбец: Какой столбец читать (начиная с 0)
Возвращает: Байт из указанной позиции

LCD
Управление ЖК-экраном на блоке EV3. EV3 имеет черно-белый дисплей с разрешением
178x128 точек. Координаты отсчитываются от левого верхнего угла экрана, имеющего
координаты 0,0

LCD.StopUpdate()
Начинать запоминать всю выводимую экран информацию без ее отображения. При
следующем вызове Update() все накопленные изменения наконец-то отобразятся. Вы
можете использовать эту функцию, чтобы предотвратить мерцание или для ускорения
рисования сложных изображений в ЖК-дисплее.

LCD.Update()
Вывести на экран все изменения, которые произошли с момента последнего вызова
StopUpdate().

LCD.Clear()
Очистка экрана. Все пиксели закрашиваются в белый цвет.

LCD.Pixel(цвет, x, y)
Вывод на экран одиночного пикселя указанного цвета.
Цвет: 0 (белый) или 1 (черный)
X: Координата X по горизонтали
Y: Координата Y по вертикали

LCD.Line (цвет, x1, y1, x2, y2)
Вывод на экран линии указанного цвета.
Цвет: 0 (белый) или 1 (черный)
x1: Координата X начальной точки
y1: Координата Y начальной точки
x2: Координата X конечной точки
y2: Координата Y конечной точки

LCD.Circle (цвет, x, y, радиус)
Рисует не закрашенный круг указанного размера.
Цвет: 0 (белый) или 1 (черный)
X: Координата X центра круга
Y: Координата Y центра круга
Радиус: Радиус круга

LCD.Text (цвет, x, y, размер_шрифта, текст)
Напечатать заданный текст или числа на экране.
Цвет: 0 (белый) или 1 (черный)
X: Координата X начала печати
Y: Координата Y начала печати
Размер_шрифта: Размер шрифта: 0 (маленький), 1 (средний), 2 (большой)
Текст: Текст или числа для вывода на дисплей

LCD.Write (x, y, текст)
Напечатать заданный текст черным цветом на экране. Если нужно выводить текст с
выбором цвета и размера, используй LCD.Text
X: Координата X начала печати
Y: Координата Y начала печати
Текст: Текст или числа для вывода на дисплей

LCD.FillRect (цвет, x, y, ширина, высота)
Рисует закрашенный заданным цветом прямоугольник.
Цвет: 0 (белый) или 1 (черный)
X: Координата X левой стороны прямоугольника
Y: Координата Y верхней стороны прямоугольника
Ширина: Ширина прямоугольника
Высота: Высота прямоугольника

LCD.Rect (цвет, x, y, ширина, высота)
Рисует не закрашенный прямоугольник с границей заданного цвета.
Цвет: 0 (белый) или 1 (черный)
X: Координата X левой стороны прямоугольника
Y: Координата Y верхней стороны прямоугольника
Ширина: Ширина прямоугольника
Высота: Высота прямоугольника

LCD. InverseRect (цвет, x, y, ширина, высота)
Инвертирует все пиксели в границах прямоугольника.
Цвет: 0 (белый) или 1 (черный)
X: Координата X левой стороны прямоугольника
Y: Координата Y верхней стороны прямоугольника
Ширина: Ширина прямоугольника
Высота: Высота прямоугольника

LCD. FillCircle(цвет, x, y, радиус)
Рисует закрашенный круг указанного размера.
Цвет: 0 (белый) или 1 (черный)
X: Координата X центра круга
Y: Координата Y центра круга
Радиус: Радиус круга

LCD.BmpFile (цвет, x, y, имя_файла)
Вывести файл заданным цветом на экран. Поддерживаются только файлы в формате .rgf
Цвет: 0 (белый) или 1 (черный)
X: Координата X левой стороны изображения
Y: Координата Y верхней стороны изображения
Имя_файла: имя файла без расширения .rgf. Может содержать относительный путь от
папки 'prjs' или абсолютный, начинаясь с '/').

EV3
Полезные функции блока EV3.

EV3.SetLEDColor (цвет, эффект)
Установить цвет подсветки кнопок блока EV3 и ее эффекты. Подсветка: OFF - выключена,
GREEN - зеленая, RED - красная, ORANGE - оранжевая. Эффекты: NORMAL - гореть
постоянно, FLASH - вспыхивать, PULSE - пульсировать.
Цвет: Может быть "OFF", "GREEN", "RED", "ORANGE"
Эффект: Может быть "NORMAL", "FLASH", "PULSE"

EV3.SystemCall (системная_команда)
Запустить одну системную команду в операционной системе EV3 Linux. Выполняемая
программа будет ждать, пока запущенная в операционной системе программа не завершит
работу.
системная_команда: Системная команда. Статус завершения запущенной команды

EV3.QueueNextCommand()
Повышение производительности при работе в режиме "ПК". Не посылать следующую
команду на блок сразу же, а подождать, поставив ее в очередь. В режиме запуска
программы на блоке не имеет смысла.

EV3.Time
Время в миллисекундах, прошедшее с момента запуска программы.

EV3.BatteryLevel
Возвращает текущий заряд батарей, от 0 до 100.

Motor
Управление моторами, подлеченными к блоку EV3. Для функции Motor необходимо
указать один или несколько портов, к которым подключены моторы, например "A", "BC",
"ABD". Для блоков, подключенных к главному блоку по USB порты указываются так:
3BC", "2A". В этом режиме только двигатели одного блока доступны в одной команде.
Скорость и Мощность - разные понятия. При вызове команды для вращения мотора с
постоянной скоростью, электрическая мощность, подаваемая на него будет автоматически
регулироваться, чтобы поддерживать заданную скорость. При вызове команды для
вращения мотора с постоянной мощностью, его скорость будет зависеть от
сопротивления, которое он испытывает во время работы.

Motor.Stop (порты, торможение)
Остановить один или несколько моторов. Команда завершает так же все запланированные
или незавершенные команды управления этими моторами.

Порты: Порт(ы) моторов
Торможение: "True", если необходимо удерживать положение после останови моторов

Motor.Start (порты, скорость)
Запустить один или несколько моторов с указанной скоростью или изменить скорость уже
запущенных моторов на указанную.
Порты: Порт(ы) моторов
Скорость: Скорость от -100 (полный назад) до 100 (полный вперед).

Motor.StartPower (порты, мощность)
Запустить один или несколько моторов с указанной мощностью или изменить мощность
уже запущенных моторов на указанную.
Порты: Порт(ы) моторов
Мощность: Мощность от -100 (полный назад) до 100 (полный вперед).

Motor.StartSync (порты, скорость1, скорость2)
Синхронно запустить два мотора с указанными скоростями в режиме контроля за их
вращением. Если один мотор будет испытывать нагрузку, которая замедлит его скорость,
второй мотор пропорционально замедлится, чтобы сохранить траекторию движения.
Порты: Имена двух портов для моторов (например "AB" или "CD").
Скорсоть1: Скорость от -100 (полный назад) до 100 (полный вперед) мотора с младшим
по алфавиту номером порта
Скорость2: Скорость от -100 (полный назад) до 100 (полный вперед) мотора со старшим
по алфавиту номером порта

Motor.GetSpeed (порт)
Запросить текущую скорость мотора
Порт: Порт мотора
Возвращает: Текущая скорость в диапазоне от -100 до 100

Motor.IsBusy (порты)
Проверить один или несколько моторов на занятость.
Порты: Порты моторов
Возвращает: "True" если хотя бы один из моторов запущен, "False" в противном случае.

Motor.Schedule (порты, скорость, зона1, зона2, зона3, торможение)
Запустить один или несколько моторов с указанной скоростью с возможностью плавного
старта и плавного замедления. Скорость может регулироваться в пределах общего угла
поворота, в зоне1 двигатель разгоняется до указанной скорости, в зоне 2 поддерживает ее,
в зоне 3 - замедляется до полной остановки. Полный угол, на который повернется мотор это сумма углов поворота зона1 + зона2 + зона3. Команда передает управление в
программу сразу, не ждет, пока мотор повернется. Чтобы отследить окончания отработки
команды, используйте IsBusy(). Чтобы дождаться конца, пока мотор закончит отработку
команды - используйте Wait().
Порты: Порты моторов
Скорость: Скорость от -100 (полный назад) до 100 (полный вперед)
зона1: часть общего угла поворота мотора, в пределах которой мотор разгоняется
зона2: часть общего угла поворота мотора, в пределах которой мотор поддерживает
указанную скорость
зона3: часть общего угла поворота мотора, в пределах которой мотор плавно замедляется
до полной остановки
Возвращает: "True", если необходимо удерживать положение после останови моторов

Motor.SchedulePower (порты, мощность, зона1, зона2, зона3, торможение)
Запустить один или несколько моторов с указанной мощностью с возможностью плавного
старта и плавного замедления. Мощность может регулироваться в пределах общего угла
поворота, в зоне1 двигатель плавно наращивает мощность до указанной, в зоне 2
поддерживает ее, в зоне 3 - плавно уменьшает подаваемую мощность до полной
остановки. Полный угол, на который повернется мотор - это сумма углов поворота зона1
+ зона2 + зона3. Команда передает управление в программу сразу, не ждет, пока мотор
повернется. Чтобы отследить окончания отработки команды, используйте IsBusy(). Чтобы
дождаться конца, пока мотор закончит отработку команды - используйте Wait().
Порты: Порты моторов
Мощность: Мощность от -100 (полный назад) до 100 (полный вперед)
зона1: часть общего угла поворота мотора, в пределах которой мотор разгоняется
зона2: часть общего угла поворота мотора, в пределах которой мотор поддерживает
указанную скорость
зона3: часть общего угла поворота мотора, в пределах которой мотор плавно замедляется
до полной остановки
Возвращает: "True", если необходимо удерживать положение после останови моторов

Motor.ScheduleSync (порты, скорость1, скорость2, угол, торможение)
Поворачивает два мотора синхронно на определенное количество градусов. Синхронная
работа двигателей означает, что когда один двигатель нагружен и что-то препятствует его
вращению, второй двигатель пропорционально замедлится или даже вообще остановится.
Это команда особенно полезна для колесных роботов - для возможности сохранить
траекторию движения. Угол, на который будет повернуты моторы относится к мотору с
наибольшей скоростью вращения, угол поворота второго мотора будет рассчитан
пропорционально его скорости. Команда передает управление в программу сразу, не ждет,
пока мотор повернется. Чтобы отследить окончания отработки команды, используйте
IsBusy(). Чтобы дождаться конца, пока мотор закончит отработку команды - испольузйте
Wait().
Порты: Имена двух портов для моторов (например "AB" или "CD")
Скорость1: Скорость от -100 (полный назад) до 100 (полный вперед) мотора с младшим
по алфавиту номером порта
Скорость2: Скорость от -100 (полный назад) до 100 (полный вперед) мотора со старшим
по алфавиту номером порта
Угол: Угол поворота (мотора с наибольшей скоростью)
Возвращает: "True", если необходимо удерживать положение после останови моторов

Motor.ResetCount (порты)
Сбросить счетчик оборотов одного или несколько моторов в 0.
Порты: Порты моторов

Motor.GetCount (порт)
Запросить данные счетчика оборота с указанного мотора. Счетчик оборотов работает даже
если мотор вращается не по командам блока EV3, а путем приложения внешней силы.
Порт: Порт мотора
Возвращает: Текущее значение счетчика оборотов мотора в градусах

Motor.Move (порты, скорость, угол, торможение)
Поворачивает один или несколько моторов с заданной скоростью на указанный угол (в
градусах). Программа не будет переходить к выполнению следующих команд до тех пор,
пока моторы не повернутся на требуемый угол. Если тебе нужно больше возможностей по

управлению моторами, например плавный старт и замедление, используй команду
Motor.Schedule
Порты: Порты моторов