Встреча Моторы вперед!



Pdf көрінісі
бет1/4
Дата11.02.2022
өлшемі7,57 Mb.
#131446
  1   2   3   4
Байланысты:
01. Практика




ОГЛАВЛЕНИЕ 
ПРЕДИСЛОВИЕ
....................................................................................................................................... 4 
ВВЕДЕНИЕ
..................................................................................................................................................... 6 
Встреча 1. Моторы вперед!
...................................................................................................................... 7 
Отступление 1. Жесты мышью
....................................................................................................... 11 
Задания для закрепления материала
.............................................................................................. 12 
Встреча 2. Робот на связи
...................................................................................................................... 15 
Задания для закрепления материала
.............................................................................................. 18 
Встреча 3. Моторы вперед-2
.................................................................................................................. 19 
Отступление 2. Ещё больше возможностей
................................................................................. 20 
Задания для закрепления материала
.............................................................................................. 21 
Встреча 4. Впереди стена
....................................................................................................................... 22 
Отступление 3. Объемный мир
........................................................................................................ 24 
Задания для закрепления материала
.............................................................................................. 25 
Встреча 5. Подпрограмма – это маленькая программа
................................................................... 26 
Задания для закрепления материала
.............................................................................................. 27 
Встреча 6. Лабиринт
............................................................................................................................... 28 
Отступление 4. Непостоянное время
............................................................................................. 29 
Задания для закрепления материала
.............................................................................................. 30 
Встреча 7. Бег по кругу
.......................................................................................................................... 31 
Задания для закрепления материала
.............................................................................................. 32 
Встреча 8. Разноцветная дорога
........................................................................................................... 33 
Отступление 5. Раздвигаем горизонты
........................................................................................... 33 
Отступление 6. Графики значений датчиков
................................................................................ 34 
Задания для закрепления материала
.............................................................................................. 36 
Встреча 9. Познакомимся с неизвестными
........................................................................................ 37 
Отступление 7. Дело случая
.............................................................................................................. 40 
Задания для закрепления материала
.............................................................................................. 41 
Встреча 10. Кегельринг
.......................................................................................................................... 42 
Задания для закрепления материала
.............................................................................................. 44 
Встреча 11. Что, если?
............................................................................................................................ 45 
Отступление 8. Посчитаем кнопки
................................................................................................ 46 
Отступление 9. Где логика?
.............................................................................................................. 47 
Задания для закрепления материала
.............................................................................................. 48 
Встреча 12. Исправление ошибок
........................................................................................................ 49 
Отступление 10. Алгоритм «математического» сглаживания
................................................ 50 
Задания для закрепления материала
.............................................................................................. 51 



Встреча13. Движение вдоль стены. Объезд предметов
.................................................................... 52 
Задания для закрепления материала
.............................................................................................. 54 
Встреча 14. Движение по линии
........................................................................................................... 55 
Задания для закрепления материала
.............................................................................................. 57 
Встреча 15. Манипуляторы
................................................................................................................... 58 
Задания для закрепления материала.
............................................................................................. 60 
Встреча 16.Таблицы и массивы
........................................................................................................... 61 
Отступление 11. Золотая середина
................................................................................................. 62 
Задания для закрепления материала
.............................................................................................. 64 
Встреча 17. Камера контроллера ТРИК
............................................................................................. 65 
Отступление 12. Небольшой, но компьютер.
................................................................................ 68 
Отступление 13. Мультимедиа
........................................................................................................ 68 
Отступление 14. Консоль робота
.................................................................................................... 69 
Задания для закрепления материала
.............................................................................................. 70 
Встреча 18. Параллельным курсом
..................................................................................................... 71 
Задания для закрепления материала
.............................................................................................. 73 
Встреча 19. Исследователь
.................................................................................................................... 74 
Задания для закрепления материала
.............................................................................................. 76 
Встреча 20. Мастерская художника
..................................................................................................... 77 
Задания для закрепления материала
.............................................................................................. 81 
Встреча 21. Мы вместе
........................................................................................................................... 82 
Отступление 15. Сохраним информацию
....................................................................................... 82 
Задания для закрепления материала
.............................................................................................. 84 
Встреча 22. Гироскоп, акселерометр
................................................................................................... 85 
Задания для закрепления материала
.............................................................................................. 88 
Встреча 23. Дистанционное управление
............................................................................................. 89 
ЗАКЛЮЧЕНИЕ
....................................................................................................................................... 93 
Литература
................................................................................................................................................. 94 



М.М.Киселев 
М.М.Киселев 
Сборник задач по программированию 
механизмов и роботов 
Препринт 
Санкт-Петербург 
2016 



ПРЕДИСЛОВИЕ 
Данная методическая разработка представляет собой актуальный, научно 
обоснованный и практически апробированный вариант серьезно спланированной работы с 
учащимися, как в рамках урочной деятельности, так и в системе дополнительного 
образования.
Ещё много лет назад знаменитый американский психолог С. Пейперт из MIT 
заметил, что при обучении юных программистов нужно иметь быструю и, главное, 
видимую обратную связь, когда обучаемый немедленно видит, именно видит в наглядной 
форме, а не получает ответ в виде каких-то чисел, результаты работы своей программы. 
Воплощая эту идею, С. Пейперт придумал «черепашку» – объект, который ползает по 
экрану, оставляя след, в соответствии с программой пользователя. Созданный им 
программный продукт Лого популярен до сих пор. Я много раз видел, когда дети, получив 
задание нарисовать, скажем, дом, видели, что окно или дверь оказывались вне дома, 
удивлялись, но быстро находили ошибку. 
Сейчас уже немногие помнят, что С. Пейперт пошёл дальше и в дополнение к 
«черепашке» сконструировал и настоящего робота, управляемого теми же программами, 
что и Лого, справедливо полагая, что реальный объект воспринимается лучше любой 
модели. Но состояние элементной базы на тот момент не позволило сделать этот продукт 
дешёвым и массовым. Сегодня уже возможно выпускать контроллеры (в каком-то смысле 
«мозг» робота) массово и по доступной цене. 
Собственно, контроллер – это обычный компьютер, часто весьма мощный. 
Единственное отличие от обычных ЭВМ состоит в наличии большого количества 
разъёмов для различных датчиков: расстояния, касания, цвета, температуры и т.п. и 
управляющих устройств: моторов, звуковых динамиков, электронных выключателей и т.п. 
Но именно это отличие диктует необходимость весьма специфического программного 
обеспечения, так называемого «событийно-ориентированного ПО» и соответствующего 
набора инструментальных средств его разработки. 
Сейчас существует множество конструкторов роботов и средств программирования 
для них. Но одни средства имеют неподъёмную для школ цену, другие работают только 
на «своём» оборудовании, третьи не локализованы в России, а какие-то слишком сложны 
для понимания детьми. Методических материалов на русском языке очень мало, можно 
упомянуть разве что книги С.А. Филиппова – великого энтузиаста робототехники из 
Президентского лицея № 239 в Санкт-Петербурге. Но и эти книги слишком направлены на 
спортивную робототехнику и на кружковую работу. Мы не отрицаем важность 
соревнований роботов, созданных руками детей, но робот, быстро едущий по линии, 
имеет мало общего с задачами из реальной жизни. 
Робот – это не обязательно тележка с колёсами и моторами. Устройства, 
включающие свет, если в комнате стало темно, открывающие форточку, если уровень 
углекислого газа превысил допустимый уровень, включающие обогреватель, если стало 
холодно – это тоже полезные роботы. Бурно развивающееся сегодня направление IoT 
(Internet of Things – интернет вещей), в рамках которого браслет на руке пациента 
сообщает врачу по интернету температуру и давление пациента, автомобиль сам общается 
с центром технического обслуживания, «умные дома» и многое другое – также являются 
хорошими примерами полезных роботов, которые надо уметь программировать. 
В обязательное школьное образование включён предмет «Технология», но нет 
общепринятого понимания, чему учить в рамках этого предмета. Если какая-то девочка 
научится работать на швейной машинке, а какой-то мальчик на токарном станке – это 
тоже хорошо, но вряд ли это соответствует чаяниям молодёжи, да и соответствующего 
оборудования в школах не осталось. Нужно учить детей современным технологиям. 
Более 30 лет назад академик А.П. Ершов сказал: «Программирование – вторая 
грамотность», в истинности этих слов мы не сомневаемся и сегодня, но учить только 



программированию – мало, так как детям надо развивать микромоторику, умение 
пользоваться отвёрткой, дрелью, паяльником и другими обыденными, но важными в 
жизни инструментами.
Робототехника – это практически идеальное сочетание для целей образования: дети 
что-то делают руками, иногда выполняя нетривиальное проектирование и проявляя чудеса 
изобретательности, и программируют получившиеся устройства, изучая при этом основы 
кибернетики. Кроме того, изучение программирования и робототехники – шаг в сторону 
инженерного образования, о важности которого сейчас много говорят. 
Огромное значение, особенно на современном этапе, имеет нацеленность на 
результат. Построение и программирование робота – это не просто решение отдельной 
задачи, но настоящий проект, в рамках которого нужно спланировать работы, обеспечить 
необходимые ресурсы, выполнить проектирование, реализацию, проверку качества 
результата, продумать хорошую презентацию, наконец. Всему этому также нужно 
учиться, причем на реальных проектах, а не у доски.
Еще одна важная особенность данного учебного пособия – это хорошо 
проработанная связь робототехники с другими предметами, изучаемыми в школе. 
Важность такой связи многими декларируется, но реальных примеров очень мало.
Хотелось бы, чтобы материал данного пособия послужил основой для унификации и 
стандартизации методики преподавания предмета «Технология», на наш взгляд, сейчас в 
этом вопросе царят разброд и шатания. Основания для таких надежд есть – TRIK Studio 
изучают тысячи школьников и студентов на всех континентах, это бесплатный открытый 
продукт, мы тщательно следим за активностью пользователей, его скачивающих. Самый 
частый вопрос: «Когда будет опубликовано пособие с подробным разбором типовых задач 
и темами для самостоятельной работы?» Вот оно, читайте, изучайте, решайте задачи. Мы 
всегда будем рады ответить на ваши вопросы, замечания и предложения по его 
улучшению. 
Доктор физико-математических наук, профессор А.Н.Терехов. 



ВВЕДЕНИЕ 
Первая часть задачника, которую Вы держите в руках, адресована широкому кругу 
читателей от учащихся начальной и средней школы до учителей и преподавателей как 
основного, так и дополнительного образования. Решение поставленной задачи, умение 
применять на практике накопленные знания, являются определяющими критериями 
глубины усвоения теории по любому предмету. 
Пособие подготовлено на основе опыта преподавания авторами задачника предмета 
«Технология», ведения проектной деятельности и кружка «Конструирование и 
программирование механизмов и роботов». 
Цель пособия – научить применять изученные алгоритмы и навыки 
программирования к задачам, которые привязаны к окружающему нас реальному миру. 
Уровень сложности задач различен, и учитель может сам выбрать из них те, которые 
совпадают с возможностями учащихся и задачами, стоящими перед ними. 
В качестве среды программирования, предложенной для изучения, выбрана 
разработка резидента инновационного центра «Сколково» компании «КиберТех Лабс» 
TRIK Studio. 
Значительный вклад в развитие этого некоммерческого отечественного проекта 
внесли сотрудники, студенты и аспиранты кафедры системного программирования 
СПбГУ. 
Язык программирования, который поддерживается в среде TRIK Studio, относится к 
визуальным языкам программирования, программы создаются при помощи пиктограмм. 
Интерфейс среды доступен для понимания даже учащимся начальных классов. Переход от 
визуального программирования к текстовому программированию на языках Pascal, RuC, 
C, C++, Java выполнен очень наглядно, поэтому ограничений по возрасту на 
использование TRIK Studio не существует. 
TRIK Studio поддерживает программирование контроллера ТРИК российской 
разработки и контроллеров 
Lego Mindstorms 
NXT 2.0, Lego Mindstorms EV3.
Перед каждой группой заданий для закрепления материала разбираются примеры 
решения задач, с использованием опыта предыдущих заданий. Подробный разбор задач 
сделан для контроллера ТРИК, а для 
Lego Mindstorms EV3 
дан в сокращении. 
Задачи сформулированы таким образом, что их можно решать, используя другие 
среды программирования и контроллеры. Некоторые задачи сформулированы сюжетно, 
без конкретики в постановке задания, что дает возможность преподавателю проявить 
креативность. 
Итак, оболочка TRIK Studio установлена. Можно начинать. Удачи. 



Встреча 1. Моторы вперед! 
Для запуска программы ярлык, указывающий на исполняемый файл, лучше всего 
вынести на рабочий стол. Программы, с которыми работает TRIK Studio, называются 
проекты. Перед нами возникает окно с выбором проекта, над которым мы будем работать. 
Для начала нового проекта выбираем пункт меню «Создать проект». Центральная часть 
окна называется «Сцена», на ней и будут происходить основные действия. 
Справа находится окно «Палитра», в котором располагаются блоки, реализующие 
управление роботом, единственный блок, который ничего не делает – это блок 
«Комментарий», предназначенный для пояснения каких-нибудь действий либо для 
напоминания о чем-нибудь. 
Любой проект начинается с блока «Начало». Удерживая левую кнопку мыши, 
захватываем блок «Начало» и перетаскиваем его в окно «Диаграмма поведения робота». 
Начало положено. Попытаемся заставить робота двигаться вперед. Движение 
осуществляется при помощи моторов. Ищем в палитре блок «Моторы вперед» и 
располагаем его справа от блока «Начало». 
Отменить неправильное действие всегда можно при помощи стрелки «Отменить» 
или в меню «Правка» пункт «Отменить». 



Чтобы наши моторы заработали, необходимо задать условие их работы, например, 
время движения. Перетаскиваем из палитры блок «Таймер» и дополняем им наш проект. 
Заканчивается программа блоком «Конец». 
Укажем порядок выполнения блоков в проекте, связывая их линиями соединения. 
Чтобы соединить два блока, нужно выделить первый блок, и зацепив синий кружок левой 
кнопкой мыши протянуть стрелку ко второму блоку. Если включены «Жесты», то, зажав 
правую кнопку мыши, можно провести линию от одного блока к другому, и тогда должна 
появиться стрелка, указывающая направление выполнения команд. Повторим это 
действие для всех пар блоков (если стрелка красная, это означает, что блоки не 
соединились). Программа «Моторы вперед» приобрела законченный вид. 
Посмотрим на результаты ее работы. Для этого необязательно загружать программу 
в робота, можно воспользоваться двумерной моделью мира здесь же, в среде TRIK Studio. 
В меню «Настройки» выбираем «Роботы» – «Двумерная модель» и нажимаем «ОК». 
Запускаем программу кнопкой «Пуск», расположенной на верхней панели. 
В окне «Двумерная модель» по полю 1 секунду двигается робот, назовем его ЭР-3К. 
В этом же окне расположены кнопки «Пуск» и «Стоп» для повторного запуска программы 
и остановки ее выполнения соответственно. 
Начальное положение робота обозначено красным крестиком, 
чтобы вернуть его в начальное положение, нужно нажать на кнопку 
Для удобства позиционирования робота на сцену 2D модели нанесена координатная 
сетка с осями координат. 



Сейчас мы находимся в режиме отладки, переключение в окно программы и обратно 
осуществляется нажатием на закладки: 
Рассмотрим нашу программу более подробно. Выделим блок «Таймер», нажав на 
него левой клавишей мыши. Слева в окне «Редактор свойств» появится запись «Задержка 
(мс) 1000». Это время, на которое установлен таймер. Поменять значение можно, щелкнув 
на нем и прописав нужное значение в миллисекундах (1000 миллисекунд равняются одной 
секунде). 
У блока «Моторы вперед» в «Редакторе свойств» две записи. 
Первая запись – порт. У контроллера ТРИК имеются четыре разъема, к которым 
можно присоединить четыре мотора. Разъемы обозначены на корпусе: М1, М2, М3 и М4. 
Это и есть порты. Наша программа использует М3, М4, то есть моторы подсоединены к 
разъемам М3 и М4. Порты можно поменять, щелкнув на записи «М3, М4» мышкой и 
вручную прописать нужные нам. Последняя запись – это мощность, с которой работают 
моторы. 
Попробуем изменить программу. Уберем один из портов, например, М4. 
После запуска программы мы увидим, что ЭР-3К совершает поворот вокруг одного 
из колес, так как работает только один мотор, подключенный к разъему М3. 


10 
Сохраним результат нашей работы. Для этого выберем в меню «Файл» вкладку 
«Сохранить файл» или «Сохранить файл, как». Определим папку, где будет храниться 
наш проект, в поле «имя файла» вводим название для программы. Нажимаем 
«Сохранить». Программу TRIK Studio можно закрыть. 
К контроллеру Lego EV3 тоже можно подключить 4 мотора, обозначаются они А, В, 
С и D.
Программа «моторы вперед» для Lego EV3: 
Программа для поворота робота: 
Алгоритмы сохранения проекта для ТРИК и Lego EV3 идентичны.
Задача:
повторите маршрут ЭР-3К, который 2 секунды двигался на Север и в 2 раза 
дольше на Запад. (Север находится вверху сцены, Запад – слева. А где находятся Юг и 
Восток?) 
Чтобы внести изменения в уже написанную программу, откроем сохраненный 
проект. В меню «Файл» выберем «Открыть». Находим папку, в которую была сохранена 
программа, выбираем нужный файл и нажимаем «Открыть». 
На сцену добавляем блоки «Моторы вперед» и «Таймер». В первом блоке «Моторы 
вперед» в значении «Порты» возвращаем порт М3, а у второго блока «Моторы вперед» 
убираем порт M4, таймеры выставляем соответственно 2 и 4 секунды. 
Попробуем совершить плавный поворот. Потребуется еще один блок «Моторы 
вперед». В нем мы уберем порт M3 и изменим мощность на 50%. Получилось следующее: 
Эта же программа для Lego EV3: 
Траекторию, по которой ЭР-3К двигается по сцене, можно увидеть, использовав 
блок «Опустить маркер» (только для двумерной модели). 


11 
Цвет траектории указывается в свойствах блока. 
Любое выполненное задание можно сохранить в виде упражнения для дальнейшего 
его использования в качестве учебной задачи. В меню «Инструменты» выбираем 
«Сохранить как упражнение», появляется следующее окно настроек: 
После нажатия «OK» упражнение сохраняется с выбранными настройками. 
Отступление 1. Жесты мышью 
Разработчики программы TRIK Studio большое внимание уделяют usability – 
удобству использования. Для того чтобы каждый раз не искать нужный блок в палитре, 
достаточно изобразить в окне «Диаграмма поведения робота» определенный жест 
мышью, зажав правую кнопку. Ознакомиться со списком поддерживаемых жестов 
можно открыв меню «Инструменты» – «Жесты мышью». На устройствах, 
использующих сенсорный экран, данная опция просто незаменима. 


12 
Задания для закрепления материала 
1.
Определите, за сколько секунд выполняется поворот на 360 градусов 
обычный и «танковый». 
2.
Как будет выглядеть алгоритм «танкового» разворота на 180 градусов? 
«Танковый» разворот – это когда одно колесо крутится вперед, а другое – назад. 
3.
Сколько времени необходимо для того, чтобы описать полную окружность 
при следующих мощностях моторов: M3 – 100 %, M4 – 50%? 
4.
Составьте алгоритм движения по восьмерке. 
5.
Что изменится, если разность мощностей моторов при таком движении 
увеличится (уменьшится)? 
6.
Первое задание для нашего робота – «Патрулирование», ЭР-3К должен 
двигаться вдоль стены вперед-назад. Если вплотную к нашему роботу поставить еще двух 
точно таких же роботов и удвоить расстояние, которое составляет эта «цепочка», то 
получится протяженность стены. 
7.
Задача в патруле усложнилась, достигнув конца стены, необходимо 
развернуться на месте и двигаться «лицом» вперед 
8.
После удачного патрулирования стены ЭР-3К доверили «секретный объект», 
вокруг которого нужно очертить границу красного цвета. Объект представляет собой 
квадратное кирпичное здание со стороной вдвое меньшей, чем стена из задачи 6. 
9.
«Секретных объекта» стало два, они удалены друг от друга на пять корпусов 
робота, требуется провести границу вокруг них. Рассмотрите все варианты 
патрулирования. 
10.
ЭР-3К отправляется на «Базу» по заранее прочерченному маршруту. 
Траекторию, по которой будет двигаться робот, нарисуйте в окне «Двумерная модель», 
используя кривую Безье и линию. 
11.
Чтобы попасть на «Базу», необходимо подняться по лестнице с 10-ю 
ступеньками (лестницу рисуем при помощи стены, длина ступеньки 2 корпуса робота, 
высота в два раза меньше). 


13 
12.
Задача «Стадион». Наш робот тренируется перед соревнованиями. Беговая 
дорожка ограничена двумя прямоугольниками, нарисованными синим цветом, один из 
прямоугольников находится внутри другого. Длина маленького прямоугольника равна 
ширине большого, а длина большого прямоугольника в два раза больше ширины 
маленького. Протяженность беговой дорожки вдоль короткой стороны стадиона 6 
корпусов робота. 
13.
Задача «Челночный бег». На полу нарисованы 4 цветные линии, старт 
производится из-за первой линии. Добегая до каждой линии, пересекаем ее и 
возвращаемся к месту старта. Напишите программу, если известно, что расстояние от 
красной линии до синей – 6 клеток, от зеленой до желтой – 8, от синей до зеленой – 4, а 
расстояние от первой до последней линии минимально (максимально).
14.
Новое увлечение ЭР-3К – мадонари (рисунки на асфальте, произведения 
городской живописи), первый его рисунок – луна. 
15.
Рисуем «Кремлевскую стену». 
16.
Еще одним произведением ЭР-3К стал узор в виде зигзага, напоминающий 
зубчики пилы. 
17.
Напишите на сцене при помощи инструмента «Маркер» свое имя. 
18.
На сцене начерчена черная линия длиной 4 клетки. Сотрите ее. 
19.
ЭР-3К, нанося дорожную разметку, совершил ошибку, теперь ему из 
сплошной линии нужно сделать прерывистую. 
20.
Нарисуйте два прямоугольника так, чтобы один из них был внутри другого. 
Размеры большего прямоугольника 7х5 клеток, заливка синяя, вложенного – 5х3, заливка 
зеленая. Напишите программу деления прямоугольников черной линией на 4 равные 
части (рассмотрите все варианты). 
21.
Нарисуйте красным маркером квадрат, вписанный в желтый круг радиуса 4 
клетки.
22.
С помощью рисунков можно передавать сообщения, а если изучить азбуку 
Морзе, то и целый текст. Азбука Морзе переводит буквенные символы в точки и тире 
Отправьте сообщение: «Привет ЭР 3К». 


14 
23.
Передайте при помощи азбуки Морзе результат вычисления выражения 21-
12+5-10+1. 
24.
Расшифруйте и передайте азбукой Морзе послание: 00100 010 10010 0011. 
Ключ к шифру: 0 – точка, 1 – тире, а первые и последние знаки в букве поменяли местами 
между собой. 
25.
Объезжая поочередно небольшие препятствия, ЭР-3К вычерчивает красно-
желтую кривую, при левом повороте кривая красная. Поле для «Слалома»: количество 
препятствий – 7, расстояние между ними 3 корпуса робота. Препятствия –
26.
ЭР-3К вычерчивает цветные окружности разных радиусов, начинающиеся в 
одной точке, диаметры окружностей больше длины корпуса робота. 
27.
Нарисуйте на сцене равносторонний треугольник. Внутри него высоту к 
одной из сторон. Основание треугольника – 4 клетки. 
28.
ЭР-3К двигается по квадрату, отмечая углы точками при помощи маркера. 
29.
Робот сначала рисует, а потом стирает круг. 


15 
Встреча 2. Робот на связи 
Часто для проверки и отладки программ требуется, чтобы робот сам сообщал нам о 
выполнении команд. Такая связь с исполнителем называется обратной. Рассмотрим, какие 
сигналы может подавать нам робот ЭР-3К. 
В окне «Двумерная модель» за маленькой стрелочкой прячется изображение 
контроллера ТРИК: 
Выше дисплея на контроллере расположен светодиод, способный изменять свой 
цвет. В палитре для него есть иконка «Светодиод»: 
В редакторе свойств цвет светодиода меняется на зеленый, оранжевый, красный или 
отключается. 
Получим первую обратную связь от нашего робота. Программа «Светофор»: после 
того, как сигнал светодиода изменит цвет с красного на зеленый, ЭР-3К начинает 
движение. 


16 
Дисплей контроллера также может быть элементом обратной связи. Поместим перед 
началом движения иконку «Грустный смайлик» из раздела «Рисование» палитры и иконку 
«Смайлик» после того, как загорится зеленый светодиод (для контроллера Lego NXT 
иконки со смайликами недоступны). 
И вот ЭР-3К радостно катится вперед по своим делам. 
Визуальная связь с нашим роботом установлена, добавим звуковых эффектов. 
Контроллер TRIK умеет генерировать речь, как на английском, так и на русском языке. В 
свойствах иконки «Сказать» указываем нужный текст. 
Программа «Светофор» приняла следующий вид. 
В 2D модели появляется окно в правом верхнем углу со словом «Поехали». 
Добавим в программу команду «Старт»: действия начинаются только после нажатия 
кнопки «Влево» на контроллере. 
Законченный вариант программы «Светофор»: 
Не забудьте нажать кнопку «Влево». 


17 
При необходимости на дисплей можно вывести любой текст. Воспользуемся блоком 
«Напечатать текст»: 
X, Y – это координаты начала текста на дисплее. 
Для контроллера Lego EV3 в качестве обратной связи можно использовать блоки 
«Светодиод», «Гудок» и «Играть звук», управление нажатием кнопок – как у контроллера 
ТРИК. 


18 
Задания для закрепления материала 
1.
Озвучим кнопки контроллера: при нажатии на кнопку контроллер сообщает 
ее название. 
2.
Нажимая несколько раз кнопку «Вверх», измените цвет светодиода сначала 
на оранжевый, затем на зеленый. 
3.
Кнопка «Влево» – грустный смайлик, «Вправо» – веселый. 
4.
ЭР-3К едет вперед только после нажатия кнопки «Влево». Пока кнопка не 
нажата, на экране написано «Нажмите кнопку «Влево». 
5.
Теперь мы можем управлять роботом. Пусть он начинает движение после 
нажатия кнопки «Влево» и останавливается после нажатия кнопки «Вправо». 
6.
Рисуем окружность: при нажатии кнопки «Влево» – движение прямо, если 
нажата кнопка «Вправо» – движение по окружности. 
7.
Робот двигается всего две секунды, после чего стоит и улыбается. Но его 
можно заставить двигаться в три раза дольше нажатием кнопки «Вниз», на дисплее 
появится грустный смайлик. 
8.
ЭР-3К иногда разговаривает сам с собой, например, когда он начинает 
двигаться вперед, он говорит «Еду вперед», при остановке 

«Остановился, стою на 
месте», а при движении назад 

«Еду назад». Запрограммируйте такое поведение робота. 
9.
Напишите 
программу 
для 
светофора, 
использующего 
светодиод 
контроллера. Красный цвет горит в два раза дольше зеленого, а оранжевый моргает 4 раза 
в течение 8 секунд. Время одного цикла светофора – 26 секунд. 
10.
Если у ЭР-3К хорошее настроение, то он светит зеленой лампочкой, если 
плохое, то оранжевой. Настроение показывает смайлик на дисплее. 
11.
У нашего робота нет указателей поворота, поэтому, делая обход вокруг 
гаража, он сообщает, в какую сторону происходит поворот. 
12.
ЭР-3К очень любит рисовать, и когда он рисует маркером круг, на экране 
веселый смайлик, а по окончанию работы он радостно сообщает «Рисунок готов». 
13.
Разметка дороги: необходимо нарисовать двойную сплошную линию, при 
этом, рисуя 2-ю линию и двигаясь назад, необходимо подавать звуковой сигнал «Я 
двигаюсь назад». 
14.
Поставить 5 меток разных цветов, сообщая о цвете метки. 
15.
Пешеходный переход для людей со слабым зрением: когда загорается 
зеленый свет, раздается звуковой сигнал «Переход разрешен», за 5 секунд до красного – 
«Заканчивайте переход», перед красным сигналом – «Переход запрещен». 
16.
Лифт: составьте программу для движения лифта с 5 до 1 этажа с остановкой 
на 4 и 2 этаже. Скорость кабины 5 м/с, высота этажа 2.5 м. Двери открываются и 
закрываются в течение 12 с, пауза для входа-выхода 

10 с. Автоматический информатор 
сообщает номер этажа, на котором произошла остановка, и выводит его на дисплей.
17.
Правда ли то, что расстояние, пройденное роботом за 5 секунд при 
мощности моторов 100% равно расстоянию, пройденному за 10 секунд при мощности – 
50%? 
18.
В кафе размером 10х10 клеток в два ряда расположены 4 столика 4х4 
клетки. Робот-официант находится возле двери на кухню в левом нижнем углу. Составьте 
оптимальную программу для обслуживания посетителей. При доставке заказа робот 
должен сообщить об этом. 
19.
ЭР-3К двигался 5 секунд с мощность моторов 40% и 1 секунду с мощностью 
100%. С какой мощностью моторов он должен ехать, чтобы за то же время пройти такое 
же расстояние, не меняя мощности? 
20.
К контроллеру подключен насос, качающий воду. При нажатии кнопки 
«Вниз» начинает литься вода, кнопкой «Вверх» останавливает воду. 


19 
Встреча 3. Моторы вперед-2 
Использовать 2D модель очень удобно, но гораздо интереснее увидеть, как же будет 
двигаться наш робот по-настоящему.
Для подключения к роботу необходимо настроить Wi-Fi сеть. Контроллер ТРИК 
работает как роутер, если в меню контроллера выбрать «Сеть» - «Точка доступа». На 
дисплее высветится IP-адрес контроллера, имя сети и пароль. 
Если сеть раздается другим устройством, можно поступить следующим образом: в 
среде TRIK Studio в папке с примерами имеется программа для настройки сети: 
configureNetwork.qrs.
Загружаем ее и выполняем следующий алгоритм: 
- включить робота в режиме точки доступа «Сеть» - «Точка доступа»; 
- перевести TRIK Studio в режим работы с реальным роботом (интерпретация Wi-Fi) 
кнопкой на панели инструментов: 
- подключиться к роботу по Wi-Fi (проверить корректность можно кнопкой 
«Подключиться» на панели инструментов): 
- поменять значение переменной "ИмяСети", введя имя сети (SSID) в кавычках; 
- поменять значение переменной "Пароль", введя пароль сети; 
- запустить программу кнопкой «Выполнить»: 
- после того, как программа отработает (появится меню на роботе), выбрать режим 
«WiFi-клиент» в меню «Сеть»; 
- выбрать вновь добавленную сеть и нажать кнопку «Ввод» на роботе; 
- робот через некоторое время должен подключиться к сети и показать выданный 
ему IP-адрес в верхней части окна настройки сети. 
Теперь программы можно загружать непосредственно на робота с помощью кнопки 
в режиме «Генерация» или работать без загрузки программ в режиме 
«Интерпретация». 


20 
Настройки контроллера Lego EV3 описаны в руководстве пользователя или на 
официальном 
сайте http://www.lego.com/ru-ru/

Отступление 2. Ещё больше возможностей 
На момент написания пособия в 2D модели отображались только два силовых 
мотора, шесть аналоговых датчиков и два цифровых. У контроллера ТРИК еще два 
силовых мотора и шесть сервомоторов в двумерном мире не существуют (у контроллера 
Lego EV3 – два силовых мотора), поэтому в задачах, которые используют более 2 
моторов или сервомоторы, 2D модель может передать только движение робота. 
Для программирования сервомоторов используется блок «Угловой сервомотор»: 
В свойствах блока можно настроить порт мотора и угол поворота в градусах. 
И ещё одно замечание: к портам силовых моторов мы можем подключать не 
только моторы, но и любую нагрузку 12 V, например, LED-ленту или лампочку.


21 
Задания для закрепления материала


22 
Встреча 4. Впереди стена 
Мы уже знаем, что на контроллерах находятся разъемы для подключения моторов. 
На контроллере ТРИК также присутствуют порты А1-А6, D1, D2. Это порты для 
подсоединения датчиков. У контроллера Lego EV3 это порты 1, 2, 3 и 4. 
Попробуем решить следующую задачу: ЭР-3К как мячик катится вперед, и, 
ударившись об стену, отскакивает назад. 
Для решения задачи используем датчик касания. В палитре для него есть блок 
«Ждать датчик касания». Блок «Ждать датчик касания» является условием для 
осуществления движения, поэтому таймер нам не нужен, моторы будут работать, пока не 
сработает датчик касания. В свойствах блока необходимо указать порт, к которому он 
подсоединен. Итак, ЭР-3К двигается вперед, пока датчик не сработал, затем останавливает 
моторы, запускает их в обратную сторону и едет назад две секунды. 
Мы написали программу, но контроллеру нашего робота надо сообщить, что к порту 
А1 присоединен сенсор касания. Для этого в настройках сенсоров выставляем для «Порта 
А1» сенсор касания. Датчик касания – аналоговый. Аналоговые датчики подключаются к 
портам A1-A6. 
В окне «Отладка» на роботе появится изображение датчика, который с помощью 
мыши надо перетащить к передней (как в нашем примере) или задней части робота. 
Строим стену при помощи панели «Инструменты»


23 
и запускаем программу. 
«Штурм замка»: если несколько раз запустить нашу программу, покажется, что ЭР-
3К пытается как таран проломить стену. Поможем ему в этом. Уберем блок «Конец» и 
соединим блоки «Таймер» и «Моторы вперед». Программа будет выполняться, пока мы не 
нажмем «Стоп». 
Для решения этой задачи на контроллере Lego EV3 используем датчик касания. Не 
забудем выставить в настройках сенсоров, что к «Порту 1» присоединен сенсор касания. 
Точно так же, как и на контроллере ТРИК, датчик нужно установить спереди: 
Что делать, если мы не хотим касаться стены (например, если она окрашена)? 
Изучим еще один датчик – датчик расстояния (сонар). Задача прежняя: доехав до стены, 
отъехать назад, но на этот раз без касания. В свойствах блока «Ждать сонар» видим 
следующие свойства: «Дистанция», «Порт», «Считанное значение». 
«Дистанция»: выставляем значение до объекта в сантиметрах, в нашем случае не 
доедем до стены 15 сантиметров. 
«Порт»: номер порта, к которому подключен датчик. Поскольку ультразвуковой 
датчик расстояния цифровой, подключение осуществляется к порту D1 или D2. 
«Считанное значение» зависит от условия задачи, у нас оно должно стать меньше 
пятнадцати сантиметров. 
Алгоритм решения задачи для ТРИК: 


24 
Для Lego EV3: 
Не забудем выставить в настройках сенсоров, что к порту D1 (для Lego EV3 «1») 
присоединен сенсор расстояния. 
Отступление 3. Объемный мир 
2D модель работает только на плоскости, поэтому задачи, в которых датчики 
направлены вверх или вниз, в ней отображаются некорректно. Для отладки таких 
программ лучше использовать «живого» робота. 


25 
Задания для закрепления материала 


26 
Встреча 5. Подпрограмма – это маленькая программа 
Часто бывает, что какие-то операции, выполняемые роботом, повторяются в 
различных частях программы или в разных программах. Их можно выделить и описать 
отдельно в блоке «Подпрограмма». Для того чтобы в дальнейшем не выполнять одну и ту 
же работу, программисты составляют свою собственную библиотеку подпрограмм и 
используют их при необходимости. Перетащим блок «Подпрограмма» в окно «Диаграмма 
поведения робота». У каждой подпрограммы свое название. Щелкнув мышкой на блоке, 
откроем окно подпрограммы. 
Начало любой подпрограммы – блок «Начало». Заканчивается она блоком «Конец». 
В отличие от программы, подпрограмма не может быть бесконечным циклом. 
Задача: объехать прямоугольное здание по периметру. 


Достарыңызбен бөлісу:
  1   2   3   4




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет