тел: +7 (499) 346-71-03
e-mail: info@raor.ru
 
Забыли пароль?
2014 -> Конференция в Екатеринбурге -> Регистрация докладчика

Секция: Основы образовательной робототехники в начальной школе

Основы программирования роботов в среде Enchanting

Дженжер Вадим Олегович

Заведующий кафедрой информатики и МПИ. Оренбургский государственный педагогический университет. Оренбургская Область/Оренбург 
vdjenjer@yandex.ru

Тезисы:

Робототехника сегодня активно встраивается в образовательный процесс школы. Всё больше и больше школьников погружаются в увлекательный мир конструирования и «оживления» роботов. Одним из наиболее популярных средств для этого стал робототехнический набор Lego Mindstorms NXT 2.0 и визуальная среда программирования NXT-G. Этот комплекс в наибольшей мере подходит для школьников 5–7 классов.

Как показала практика преподавания в центре физико-математического образования «Архимед» (ЦФМО «Архимед», г. Оренбург) начинать изучение основ робототехники надо как можно раньше. Раннее знакомство с принципами управления роботами позволит уже к 5–6 классам решать более сложные и интересные задачи, как в алгоритмическом, так и в инженерно-конструкторском плане. Отметим также, что ребята, уже владеющие каким-либо языком программирования, справляются с поставленными задачами намного легче, чем те, кто изучает программирование сразу на роботах.

В работе рассматривается подход к обучению младших школьников основам робототехники с использованием среды Enchanting.

Доклад:

Дженжер В. О., Денисова Л. В.

ОСНОВЫ
ПРОГРАММИРОВАНИЯ РОБОТОВ В СРЕДЕ ENCHANTING

Оренбургский государственный педагогический
университет

г. Оренбург

Аннотация

В работе рассматривается подход к
обучению младших школьников основам робототехники с использованием среды
Enchanting.

 

Введение

Робототехника сегодня активно
встраивается в образовательный процесс школы. Всё больше и больше школьников
погружаются в увлекательный мир конструирования и «оживления» роботов. Одним из
наиболее популярных средств для этого стал робототехнический набор Lego
Mindstorms NXT 2.0 и визуальная среда программирования NXT-G. Этот комплекс в
наибольшей мере подходит для школьников 5–7 классов. По нашему мнению, начиная
с 8 класса (или даже раньше) можно и нужно переходить на текстовые языки
программирования (C, nxc, RobotC) —
код программы будет не таким громоздким, а логика более «прозрачной».

Как показала практика преподавания в центре
физико-математического образования «Архимед» (ЦФМО «Архимед», г. Оренбург)
начинать изучение основ робототехники надо как можно раньше. Раннее знакомство
с принципами управления роботами позволит уже к 5–6 классам решать более
сложные и интересные задачи, как в алгоритмическом, так и в
инженерно-конструкторском плане. Отметим также, что ребята, уже владеющие
каким-либо языком программирования, справляются с поставленными задачами
намного легче, чем те, кто изучает программирование сразу на роботах.

 

Обсуждение

Изучение основ робототехники в начальной
школе должно обеспечиваться техническими и программными средствами,
соответствующими младшему школьному возрасту. Наиболее подходящим для этих
целей, по мнению многих преподавателей, является конструктор Lego WeDo. Однако для
себя мы увидели здесь две проблемы. Во-первых, использование собственной
системы программирования для Lego WeDo нарушает преемственность при переходе из
начальной школы в среднюю. Ученику придётся осваивать новое техническое
средство (Lego Mindstorms) и новую среду программирования (NXT-G). Фактически,
обучение начнётся заново. Во-вторых, потребуются дополнительные финансовые
вложения на закупку оборудования WeDo, в то время как количество деталей и возможности этого робота в целом сильно ограничены (по
сравнению с Lego
Mindstorms).

В течение нескольких лет мы ведём кружки по
программированию в среде Scrаtch [1, 2], которая
разрабатывается группой MIT MediaLab c 2003 года. За это время проект получил
поддержку со стороны Национального научного фонда, IntelFoundation, Microsoft,
Фонда LEGO, Google, Dell и др. исследовательских консорциумов, что косвенно
свидетельствует о его огромной популярности. Эта среда очень привлекательна как для младших
школьников, так и для 5–8-классников (и, как показывает практика, — даже
для студентов) благодаря интуитивно понятному графическому интерфейсу и
возможности сравнительно легко и быстро реализовывать свои творческие проекты
различного жанра (от компьютерных игр до математических моделей). Программы
здесь собираются из разноцветных блоков-команд. Scratch поддерживает технологию
объектно-ориентированного программирования (в новой версии неявно введено понятие
класса), многопоточности и передачи сообщений — всё это позволяет уже
младшим школьникам решать довольно сложные (с точки зрения программирования на
любом другом языке) и интересные задачи.

Возможно, именно это
качество — лёгкость вхождения в язык — и привлекло энтузиастов,
которые несколько
лет назад на основе Scratch 1.4[1]
разработали среду для программирования робота Lego Mindstorms — Enchanting [3] (на момент написания
статьи версия 0.2.4.1). Она не русифицирована, но является надстройкой по
отношению к Scratch, поэтому все исходные команды Scratch по-прежнему доступны
на родном языке. Для работы с Enchanting требуется перепрошить
системный блок Lego, поместив на него систему leJOS, основанную на Java (http://www.lejos.org/).

Итак, мы выбрали свой вариант изучения
основ робототехники в младшем школьном возрасте — программирование робота
Lego Mindstorms NXT 2.0 в среде Enchanting. Работа
ведётся в 2013–2014 учебном году со школьниками 3–4 классов, имеющими основные
навыки программирования в среде Scratch.

Из наиболее
значимых особенностей языка отметим следующие. Команды палитры Motors позволяют управлять движением
робота на «низком» уровне, через программирование моторов, как это принято в
большинстве языков программирования. В отличие от этих команд палитра Driving предоставляет необычные
средства, в некотором смысле уникальные по сравнению с другими средами
программирования для детей.  Вначале нужно сконфигурировать
не только двигатели, но и задать параметры колёсной базы: требуется указать
диаметр колёс ведущей пары и расстояние между ними. После этого программист
может дать роботу команду, например, повернуть на 45° (не вал двигателя, а весь
робот!), проехать 10 см,
повернуть по дуге с радиусом 50 см,
установить скорость движения в 20 см/с,
установить ускорение движения в 15 см/c2 и пр. Такой подход встречается, например, в Microsoft
Robotics Studio. Для
первоначального ознакомления с программированием роботов это оправдано и более
понятно, так как похоже на управление исполнителем типа черепашки Logo или кота в Scratch. Разумеется, можно и не
использовать возможности меню Driving и программировать аналогичные блоки самому.

Несмотря на то, что проект пока ещё не добрался
даже до первой версии, программировать в нём удобно. Однако есть некоторые не
вполне очевидные моменты, которые могут поначалу испортить впечатление от
знакомства с Enchanting.

Во-первых, робот стабильно соединяется с
компьютером по Bluetooth, но USB-соединение часто пропадает: после останова
программы иногда приходится перезагружать робот, а порой даже отключать его от
компьютера.

Во-вторых, если выполняются какие-либо
построения на экране NXT-блока,
то на экране компьютера эти действия не дублируются. Это не очень удобно,
поскольку робот может находиться в движении, в тёмном месте и т. п. Было
бы гораздо более удобным наблюдать одну и ту же картинку в двух местах
одновременно.

В-третьих, поскольку экран робота чёрно-белый,
автор среды убрал возможность создавать цветные спрайты и картинки на фоне.
Детям такая особенность не очень приятна, так как это, по-видимому, снижает для
них ценность готового продукта.

Среди других особенностей языка можно назвать
отсутствие работы с файлами, поддержки Bluetooth-связи между роботами и ряд
других. Мы надеемся, что эти возможности появятся в новых версиях Enchanting, поскольку автор активно
занимается развитием своего проекта.

В качестве наглядного примера использования
языка Enchanting приведём
код программы «Лабиринт» (см. рис. 1). Это одна из наиболее известных
задач в образовательной робототехнике.

Изображение

Рис. 1. Решение задачи «Лабиринт» на
Enchanting

Согласно правилам, автономный робот должен
найти путь от стартового квадрата до финишного. Для этого можно воспользоваться
правилом левой или правой руки. Робот оснащён датчиком измерения расстояния
(ультразвуковым; направлен, соответственно, влево или вправо) и датчиком
касания (кнопкой; расположена спереди). Рассмотрим самые важные скрипты
программы.

Скрипт «Когда я получу старт!» запускается по
нажатию оранжевой кнопки. Затем включаются двигатели (команда drive). Движение продолжается до тех
пор, пока не найден проход в стене слева или пока не нажата кнопка. Если
произошло какое-то из этих событий, двигатели останавливаются и посылается
сообщение «куда повернуть?». При получении этого сообщения запускается
соответствующий скрипт. В нём события разделяются, и для каждого из них
выполняется некоторая последовательность действий, означающая поворот налево
или направо. После этого передаётся сообщение «старт!» и вновь активизируется
скрипт движения вперёд.

Просматривая код можно увидеть, что он
совершенно прозрачен. Такая программа легко воспринимается младшими
школьниками, особенно теми, которые уже умеют программировать на Scratch.

 

Выводы

Распространённость набора Lego Mindstorms NXT 2.0 говорит о его
популярности в образовательной робототехнике. Большое количество языков,
разработанных для этого робототехнического комплекса, позволяет каждому
пользователю выбрать для себя наиболее подходящий. Это даёт возможность
совершить переход к программированию роботов Lego практически
безболезненно. После освоения языка программирования Scratch удобно
начать изучение программирования робота при помощи среды Enchanting, которая обладает
интересными возможностями и предоставляет ученикам знакомый и удобный
интерфейс. В дальнейшем можно легко перейти на изучение других, в том числе
текстовых, языков программирования роботов.

 

Список литературы

1.    
1. http://scratch.mit.edu

2.  2. Дженжер В. О. Проектная деятельность школьника в среде программирования Scratch: методическое пособие / В. О.  Дженжер,
В. Г. Рындак, Л. В. Денисова; Мин-во образования и науки
РФ — Оренбург: Оренб. гос. ин-т. менеджмента, 2009. — 117 с. URL:
sites.google.com/site/orenscratch/nasi-razrabotki

3.    
3. http://enchanting.robotclub.ab.ca




[hr]





[1] В действительности, на
основе Scratch разработана  среда Snap! (бывшая BYOB
(Build
Your Own Blocks):
http://byob.berkeley.edu/), в которой добавлена возможность
создания собственных блоков. А уже на основе BYOB построена среда Enchanting.




© РАОР
Российская Ассоциация Образовательной Робототехники
info@raor.ru