Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Робототехника в примерах и задачах

Покупка
Новинка
Основная коллекция
Артикул: 677626.07.99
Данная книга - первое издание, в котором собрано более 400 задач по образовательной робототехнике. Учебное пособие предназначено для учителей и учащихся как средних так высших учебных заведений, изучающих программирование и основы робототехники. Примеры решения задач рассмотрены для среды программирования TRIKStudio образовательных наборов Lego NXT, Lego EV3 и ТРИК. По каждой теме предлагается выполнить ряд упражнений, которые позволяют закрепить полученные теоретические знания. Представленные задания сформулированы без привязки к аппаратной платформе и конкретной среде программного продукта и, поэтому все рассмотренные алгоритмы могут быть с успехом применены для программирования различных робототехнических образовательных наборов.
Киселев, М. М. Робототехника в примерах и задачах : учебное пособие / М. М. Киселев. - 2-е изд., исправленное. - Москва : СОЛОН-ПРЕСС, 2022. - 132 с. - ISBN 978-5-91359-326-9. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2185099 (дата обращения: 23.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Киселёв М. М., Киселёв М. М.
РОБОТОТЕХНИКА  
в примерах и задачах
Курс программирования  
механизмов и роботов
Издание 2-е, исправленное
Москва
СОЛОН-Пресс
2022


УДК 621.86/.87(072)
ББК 74.262:32.816
 К 44
Киселёв М. М., Киселёв М. М.
Робототехника в примерах и задачах. Курс программирования 
механизмов и роботов. Издание 2-е, исправленное. — М.: СОЛОНПресс, 132 с.
ISBN 978-5-91359-326-9
Данная книга — первое издание в котором собрано более 400 
задач по образовательной робототехнике.
Учебное пособие предназначено для учителей и учащихся 
как 
средних 
так 
высших 
учебных 
заведений, 
изучающих 
программирование и основы робототехники. Примеры решения 
задач рассмотрены для среды программирования TRIKStudio 
образовательных наборов Lego NXT, Lego EV3 и ТРИК. По каждой 
теме предлагается выполнить ряд упражнений, которые позволяют 
закрепить полученные теоретические знания. Представленные 
задания сформулированы без привязки к аппаратной платформе 
и конкретной среде программного продукта и, поэтому все 
рассмотренные алгоритмы могут быть с успехом применены для 
программирования различных робототехнических образовательных 
наборов.
Сайт журнала «Ремонт & Сервис»: www.remserv.ru 
Сайт издательства «СОЛОН-Пресс»: www.solon-press.ru
По вопросам приобретения обращаться:
ООО «СОЛОН-Пресс» 
Телефоны: (495) 617-39-64, (495) 617-39-65 
E-mail: kniga@solon-press.ru, 
www.solon-press.ru
ISBN 978-5-91359-326-9 
© СОЛОН-Пресс, 2022
 
© Киселёв М., 2022


Оглавление
Предисловие. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Встреча 1. Моторы вперед!. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Отступление 1. Жесты мышью . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Встреча 2. Робот на связи. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Встреча 3. Моторы вперед-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Отступление 2. Ещё больше возможностей. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Встреча 4. Впереди стена . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Отступление 3. Объемный мир. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Встреча 5. Подпрограмма — это маленькая программа. . . . . . . . . . . . . . . . . . . . . . . 32
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Встреча 6. Лабиринт . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Отступление 4. Непостоянное время . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Встреча 7. Бег по кругу . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Встреча 8. Разноцветная дорога. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Отступление 5. Раздвигаем горизонты. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Отступление 6. Графики значений датчиков. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Встреча 9. Познакомимся с неизвестными . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Отступление 7. Дело случая . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Встреча 10. Кегельринг . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Встреча 11. Что, если? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Отступление 8. Посчитаем кнопки. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Отступление 9. Где логика? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Встреча 12. Исправление ошибок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Отступление 10. Алгоритм «математического» сглаживания . . . . . . . . . . . . . . . . 69
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3


Встреча13. Движение вдоль стены. Объезд предметов . . . . . . . . . . . . . . . . . . . . . . . 73
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Встреча 14. Движение по линии. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Встреча 15. Манипуляторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Задания для закрепления материала.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Встреча 16.Таблицы и массивы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Отступление 11. Золотая середина. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Встреча 17. Камера контроллера ТРИК . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Отступление 12. Небольшой, но компьютер.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Отступление 13. Мультимедиа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Отступление 14. Консоль робота . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Встреча 18. Параллельным курсом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Встреча 19. Исследователь. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Встреча 20. Мастерская художника . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Встреча 21. Мы вместе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Отступление 15. Сохраним информацию . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Встреча 22. Гироскоп, акселерометр. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Задания для закрепления материала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Встреча 23. Дистанционное управление . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
ЗАКЛЮЧЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Интернет-ресурсы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
4


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


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


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


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


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


Начальное положение робота обозначено красным крестиком,
чтобы вернуть его в начальное положение, нужно нажать на кнопку
Для удобства позиционирования робота на сцену 2D модели нанесена координатная сетка с осями координат.
Сейчас мы находимся в режиме отладки, переключение в окно программы и 
обратно осуществляется нажатием на закладки:
Редактор
Отладка
10