гих, ему присваивается имя. Примерами имен могут быть: "сумма", “переменная” или "Х".
При создании алгоритма вручную в выборе имен для обозначения переменных нет ограничений. Но когда алгоритм реализуется на языке программирования, должны быть соблюдены определенные правила и ограничения. Для этого лучше обратиться к документации по программному обеспечению, которое используется для программирования.
В процессе программирования можно столкнуться с ситуациями, когда нужно выполнить одну или другую последовательность шагов, в зависимости от конкретного параметра. Например, когда необходимо, чтобы мобильный робот не сталкивался с препятствиями или объезжал их. Он будет продолжать движение (например, прямолинейное) пока не «увидит» препятствие и не остановится или не совершит объезд препятствия. Это называется ветвлением программы. То есть робот на основе результата сравнения с заданным параметром (в приведенном выше примере будет постоянно измеряться и сравниваться расстояние до препятствия) «решает» какие действия он будет совершать.
Сравнение данных основано на простых математических операциях и операциях логической алгебры. Результаты сравнения представляют собой простые ответы "правда" или "ложь". Для сравнения данных выполняются операции "больше", "меньше", "равно" или их комбинации "меньше или равно" и "больше или равно". Например:
Начальные назначения a = 5; b = 6; c = 7 и d =" Привет" (правильно заменить значение переменных в вопросах, чтобы определить, верны они или нет):
◦Вопрос: Является ли переменная a больше 3? Ответ: Правда
◦Вопрос: Является ли переменная b меньше 3? Ответ: Ложь
◦Вопрос: переменная c равна 7?
Ответ: Правда
◦ Вопрос: переменная b не равна a? Ответ: Правда
81
◦Вопрос: Является ли переменная d такой же, как текст “при-
вет”?
Ответ: Ложь
Потому что переменная d содержит “Привет” с заглавной буквы “П”, что делает ее другой.
Способ запроса может быть более сложным, с помощью операций, выполняемых в вопросе.
◦Вопрос: Является ли переменная a, умноженная на -1, больше
3?
Ответ: Ложь
◦Вопрос: Является ли переменная b разделенной на переменную c меньше 3?
Ответ: Правда
◦Вопрос: переменная b, умноженная на переменную a, отличается от переменной a, умноженной на переменную b?
Ответ: Ложь
◦Вопрос: Является ли переменная d, прикрепленная к тексту "_папа", такой же, как текст "Привет_папа"?
Ответ: Правда С помощью таких вопросов можно задавать ветвления в алго-
ритме. По своей роли они называются "решение" или "условие".
В Scratch вопрос задается специальными блоками секции операторов, которые имеют удлиненную форму и значение результата которых интерпретируется как истинное или ложное (если …, то …; иначе …). Или это может быть зеленый блок секции шестиугольной формы с уже вписанным вопросом как на рисунке 19. То есть условия позволяют алгоритму выбирать направление в очень конкретной ситуации.
Конечный блок программы также из желтого раздела с той разницей, что к нему может приходить только один блок (выемка сверху блока прямоугольника, указывающая на конец алгоритма), и имеющий название «остановить скрипт» или «остановить все». Возможно,
вобширном и сложном алгоритме существует несколько способов завершения (например, «зацикливание»), но это не значит, что необ-
82
ходимо указывать несколько окончаний программы. Для алгоритма должен существовать только один выход (завершение программы).
Графические алгоритмы могут быть довольно масштабными изза большого количества необходимых блоков в сложных алгоритмах. Тем не менее, их легче интерпретировать, поскольку они не вызывают сомнений в том, какой следующий шаг должен быть сделан, в то время как текстовые алгоритмы могут зависеть от интерпретации каждого читателя. Создавая проекты путем графического блочного программирования обучающиеся одновременно развивают важные академические навыки в математике, вычислениях, системном мышлении, совместной работе, решении проблем и т.д.
Другой популярной визуальной средой программирования в образовательной робототехнике является Lego Mindstorms EV3 разработанная компанией National Instruments. В ее основе лежит среда инженерного программирования LabVIEW на графическом языке «G».
Данная среда программирования включает следующие основные компоненты: панель инструментов программирования, в которой размещены инструменты для работы с программой; палитры программирования, в которой размещены блоки программирования; область программирования, где и располагается программа; а также редактор контента и страница аппаратных средств. Несмотря на свои внешние различия по сравнению со Scratch, основные принципы графического программирования остаются неизменными, как и многие инструменты и функции.
Блоки в Lego Mindstorms EV3 также разделены по функциям, которым соответствуют определенные цвета: зеленый – блоки действий (моторы, изображения и звуки); оранжевый – блоки выполнения программ (блок запуска программы, задержка времени, цикл, ветвление); желтый – блоки датчиков; красный – блоки операций над данными (числовыми, логическими или текстовыми); синий – блоки модернизации (работа с файлами, связь по Bluetooth и др.) (рис. 20).
Для построения программы управления роботом нужно также соединять блоки с командами, начиная с блока запуска программы, одновременно внося определенные их параметры. Схема представля-
83
ет собой последовательность блоков, которые располагаются сверху вниз или слева направо в порядке их выполнения.
Более простые программы имеют линейную структуру. В более сложных, использующих блоки циклов и ветвлений, структура становится громоздкой, что доставляет некоторые неудобства (рис. 21).
Рисунок 20. Блоки программирования в Lego Mindstorms EV3
Уменьшению площади записи программы, повышению ее читабельности и простоте восприятия способствует использование блоков подпрограмм. Они представляют собой поименованные или иным образом идентифицированные части компьютерной программы, содержащие описание определённого набора действий.
84
Для того чтобы программист и робот понимали друг друга, роботу необходимо уметь подавать некоторые сигналы. Они служат сообщением о том, что робот выполнил или не выполнил то или иное действие. В EV3 такими сигналами служат звуковые сообщения, которые может воспроизводить встроенный динамик микроконтроллера. Сообщение также может быть выведено в виде текста или изображения на дисплее микроконтроллера.
Рисунок 21. Пример записи линейной и разветвленной программы в Lego Mindstorms EV3
Среда Lego Mindstorms EV3 удобна и легка в освоении. Но для создания серьезных и сложных проектов она не подойдет из-за своих недочетов и ограничений, самые значимые из которых это использование только глобальных переменных, медленная работа и сбои среды программирования при большом объеме программы.
Чтобы обойти эти ограничения и расширить функционал потребуется ev3dev - операционная система на основе Debian Linux, которая работает на нескольких Lego Mindstorms-совместимых платфор-
85