Знакомство с датчиками. Датчик касания
Анна
ГРЯЗНОВА,
учитель информатики и ИКТ
средней школы № 60 г. Набережные Челны
Курс Робототехники разработан сотрудниками университета Иннополис
(Innopolis University Learning Management System) для учащихся IT-классов. Цель данного курса –
популяризация технических специальностей и подготовка к обучению специальностям
инженера и конструктора в технических вузах. Курс разработан в виде ролевой
игры из 17 модулей. Каждый модуль включает в себя изучение теоретического материала,
анализ видеороликов и создание собственных решений на поставленные задачи. В
течение каждого модуля учащиеся заполняют инженерные журналы по специально
приведенной форме. Итог занятия представлен в виде оформления опросных листов
по выполненному заданию, по совместной работе.
Данная методическая разработка занятия робототехники предназначена
для учащихся 10 класса (профиль IT-класс). Учащиеся во время занятий делятся по группам по 4
человека. Каждая группа оснащена ноутбуками с выходом в Интернет на сайт http://srv.innopolis.edu.ru:8080/, установленным программным обеспечением RobotC, базовым комплектом
конструктора Lego Mindstorm EV3.
Участники группы имеют свои роли: руководитель, администратор,
программист и контролер времени. Роли периодически меняются, чтобы каждый
участник группы «примерил» их на себе. Ребята ведут инженерные журналы
определенного образца, в которых записывают весь теоретический, практический
материал и ответы на вопросы учителя и на вопросы из соответствующих модулей курса
Робототехники на сайте Innopolis University Learning Management System.
Итог занятия оценивается всеми участниками учебного процесса:
учениками (взаимооценка, самооценка) и учителем. В соответствующих формах все
проставляют не оценки (что важно!), а баллы усвоения материала исходя из
разработанных ранее критериев.
Окончанием занятия является анализ и общее восприятие командой и в
целом класса данного на уроке материала.
Цель:
ü применять такую синтаксическую конструкцию языка ROBOTC, как цикл while;
ü писать простейшие логические конструкции на языке ROBOTC и
понимать их смысл;
Задачи:
ü кратко формулировать, почему датчики являются важной составляющей
роботехнических систем;
ü использовать для управления роботом модель
«восприятие-планирование-действие»;
ü настраивать и использовать датчик касания робота;
ü сравнивать и сопоставлять программы с циклом while с программами,
не имеющими этой конструкции, управляющей потоком программы;
Средства обучения:
ü Интерактивная доска;
ü Ноутбуки, с установленным программным обеспечением RobotC;
ü Курс робототехники от Innopolis University Learning
Management System - http://srv.innopolis.edu.ru:8080/ (Модуль 13);
ü базовым комплектом конструктора Lego Mindstorm EV3;
ü Мультимедийная презентация «Датчики касания»;
ü Инструкция по сборке EV3.
Ход урока
Оргмомент
Приветствие. Подготовка к
занятию.
Актуализация знаний
Учитель: На предыдущих уроках мы с вами говорили о роботах, которые
отличаются по внешнему виду, их функциональным возможностям и т.д.
Вспомним роботов, которых мы
конструировали с вами на предыдущих занятиях. Как двигаются роботы, собранные
нами на предыдущих занятиях?
Ученики: Роботы двигаются по времени, на заданное расстояние; по заданной
траектории, переносят предметы с определенного месторасположения.
Учитель: Предлагаю просмотреть изображения и сделать анализ, ответив на
вопросы…
Учитель: Чем отличаются собранные ранее вами роботы от тех, которые
представлены вам?
Ученики: Роботы, которые раньше собирали, работали только в зависимости от
времени или четко выверенных формул углов поворота, движений вперед и
механических захватов. У роботов с фотографий есть датчики: касания,
расстояния, цвета/света/освещенности.
Учитель: Почему нельзя обойтись без датчиков?
Ученики: Потому что без датчиков будет долгая и трудоемкая работа, мы не
можем знать размеров исследуемого объекта, расстояния до него. Датчики
позволяют определять дополнительные параметры исследуемого объекта.
Объяснение нового
материала
Учитель: Итак, определим ключевые датчики, используемые при работе
роботов?
Ученики: Датчики касания, определения расстояния, цвета/света/освещенности,
температуры и т.д.
Учитель: Перед вами датчики, которые входят в базовый комплект EV3
- датчик касания;
|
- датчик расстояния;
|
- датчик
цвета/света/освещенности.
|
Учитель: Сегодня мы познакомимся с датчиком касания. Прикрепите его к своим
тележкам (ученики прикрепляют датчики касания к своим тележкам).
Для чего нужен данный датчик? Каков
принцип работы датчика касания?
Ученики: В зависимости от нажатия кнопки касания на датчике, робот может
двигаться вперед или назад, останавливаться или выполнять другие манипуляции.
Все зависит от условий, предъявляемых к датчику.
Учитель: Иначе говоря, робот работает, ПОКА нажата или отжата кнопка
касания. Делая аналогию с языком программирования Pascal, работа датчика касания
зависит от организации цикла ПОКА (WHILE).
Организация цикла ПОКА очень
похожа на известный цикл в ЯП Pascal (изображено на доске).
Язык
программирования Pascal
|
Язык
программирования RobotC
|
While (<условие>) do
begin
<Тело цикла>
end;
|
While (<условие>)
{
<Тело цикла>
}
|
Учитель: Выясним, что должно быть в <условии> и внутри <тела
цикла>.
Ученики: В условии должно отображаться состояние датчика касания- нажата
или отжата кнопка.
Учитель: Совершенно верно, для того, чтобы идентифицировать датчик касания,
необходимо войти во вкладку Motors and Sensors Setup и просмотреть индекс
датчика (см. рисунок).
Условие будет выглядеть так: SensorValue(touchSensor) = = 0 или
SensorValue(S1) = = 0
Учитель: Давайте подробно разберем организацию цикла While. Что происходит в результате
выполнения программы к примерам 1, 2. (Каждый пример рассматривается отдельно
с подробным объяснением учителя. После разбора каждого примера учащиеся пробуют
программы на своих тележках).
1.
Цикл с условием выхода
|
2.
Бесконечный цикл
Условия, при которых цикл
станет бесконечным: 1= =1 или true
|
task main()
{
while (SensorValue(touchSensor)
= = 0)
{
motor[motorB]=60;
motor[motorC]=60;
}
motor[motorB]=0;
motor[motorC]=0;
}
|
task main()
{
while (true)
{
while (SensorValue(touchSensor)
= = 1)
{
motor[motorB]=-60;
motor[motorC]=-60;
}
}
motor[motorB]=0;
motor[motorC]=0;
}
|
Робот движется, пока датчик
касания не нажат. Наталкиваясь на препятствие, робот останавливается.
|
Робот движется при нажатой
кнопке касания и останавливается, если кнопка отжата. (Имитация пульта
управления)
|
Закрепление материала
Пример: Используя два датчика касания, создайте робота, который будет
поворачивать налево или направо в зависимости от нажатой кнопки датчика.
Примерная программа учеников:
task main()
{
while (true)
{
while (SensorValue(S4)==1)
{ motor[motorB]=0;
motor[motorC]=-60;}
motor[motorB]=0;
motor[motorC]=0;
while (SensorValue(S1)==1)
{ motor[motorB]=-60;
motor[motorC]=0;}
motor[motorB]=0;
motor[motorC]=0;
}
}
Рефлексия. Итог занятия
Итоги занятия учащиеся
подводят самостоятельно, заполняя инженерные журналы и опросные листы по
выполненному заданию, по совместной работе.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.