ScratchDuino. Робоплатформа на СПО. Датчик света scar169 / 28.04.2015 Продолжим. Ранее: ScratchDuino. Робоплатформа на СПО. Установка ScratchDuino. Робоплатформа на СПО. Первый запускScratchDuino. Робоплатформа на СПО. Соединение по Bluetooth Мы осмотрели набор робоплатформы, установили ПО и научили робота ездить, управляя им по кабелю USB и Bluetooth. Сегодня переходим собственно к тому, для чего роботы и предназначены в первую очередь – написанию программ управления с использованием обратной связи от датчиков. И первый наш датчик – датчик света. Долго колебался между датчиком касания и датчиком света. Первый логичнее для начала, всего два показания, но по практике (а пробовал и так, и так) – лучше всего на первой стадии осваивается датчик света, эмоциональнее принимается, дает возможность сразу поговорить о калибровке. Так что теперь я с него начинаю знакомство с датчиками робота. Итак: датчик света. Для начала немножко повторим предыдущие занятия: Подключаем робота к ПК (для простоты сегодня использую кабель). Выясняем порт подключения (например: Диспетчер устройств – Com порты, у меня – 11-ый. То же самое можно сделать и с помощью Ардуино). Включаем ScratchDuino робота, выпускаем ScratchBoard для показаний датчиков (в Сенсорах, правой кнопкой – контекстное меню команд Аналог – Значение сенсора – Показать данные ScratchBoard. Выбираем свой порт, 11-ый, если значение Button изменилось, то все в порядке, можно управлять системой). Эти операции все ученики делают на удивление быстро, в принципе Com порт можно не определять, если робот тот же, но почему бы не закрепить умения и знания? Теперь небольшая часть теории и практики, в ходе которой мы учимся устанавливать датчик и проводить его калибровку.Датчик устанавливается в любое свободное гнездо, магниты удерживают хорошо, дополнительных манипуляций не требуется. Смотрим на информационную панель – наш датчик имеет название Аналог 3 и показывает в текущий момент значение 80. Далее следует обмен мнениями, какие значения датчика нам еще понадобятся. Выясняем, что это зависит от задачи, которую мы хотим реализовать. Почти сразу же возникает несколько вариантов различных заданий: Пусть робот начинает движение вперед только при условии, что свет в аудитории включен. Тогда надо выяснить, какие показания при выключенном свете и сделать зазор на возможное отклонение интенсивности света из окон и т.д. Пусть робот прекращает движение, если его накрыть книжкой. Соответственно нужны измерения показаний при накрытии. Пусть робот движется к смартфону, с которого на него посветили фонариком… (это уже интересно, сразу в голове возникает усложненное задание, но к нему – позже)))) Соответственно снимать данные нужно уже при включенном и выключенном фонарике. Оставим второе для самостоятельной реализации учащимися, вместе сделаем первое, возможно, подумаем и над третьим вариантом задания. Проводим мероприятия по калибровке: В комнате без верхнего света: 57 В ходе выяснения условий движения и добавочных экспериментов выясняем, что освещенность датчика без верхнего света варьируется от 50 до 68, в зависимости от направления движения. С верхним так же показания разняться. Выбираем 70, как нижний порог освещенности, при которой можно двигаться. Пишем программу управления. Пока совсем простую – движение вперед при условии, что верхний свет включен. При написании используем операторы больше/меньше, значения сенсора, управляющий модуль «Всегда-если». Не забываем про программу экстренной остановки, на случай «если что-то пойдет не так»)) Проверяем в работе нашу программу. Ссылка на видео Далее все обычно проходит просто и весело. Учащиеся с удовольствием реализуют управление роботом с помощью фонарика смартфона. С этой части легко перетекаем в вариант использования двух датчиков (впереди и сзади), а далее прямо таки поле для маленьких «проектов» - заданий. Примеры заданий (придуманы учащимися): Перетягивание светового каната (светят с двух сторон смартфонами с равного расстояния, у кого сильнее поток, туда робот и едет. Требует двух датчиков). «Экстрасенс» (подносишь руку к роботу, не касаясь, он едет к руке, убираешь - останавливается. На самом деле ты просто слегка перекрываешь поток света. Из сложных и интересных заданий – Программа, при которой робот едет именно к фонарику смартфона, меняя направление, если фонарик находится не прямо по линии движения. Понятно, что потребуется два датчика. Далее идет калибровка и выяснение, можем ли мы использовать одинаковые уровни сигнала для управления (сложнее, если датчики будут показывать разные значения при одинаковой освещенности, но это – отдельное задание, мы такое тоже делали, благо, есть и такая комбинация платформ и датчиков). В нашем случае все в порядке, датчики показывают практически одинаковое значение при одинаковой освещенности, так что можно сравнивать их значения между собой. Интересно, что эта мысль (а можно ли использовать "больше" и "меньше" не только применительно к цифрам, но и к команде "Значения сенсора" второго датчика также меня порадовала))). Получилось нечто в духе: Причем интересно, что сначала ученик пытался сделать вариант с поворотами, если не равны показания, и с движением вперед, если равны. Но практика показала, что при вышеприведенной вариации движение проходит быстрее, т.к. вариант равенства крайне редок и даже при 0,1 c робот может проскакивать это положение. Для наших условий такой точности движения оказалось вполне достаточно. Ссылка на видео Единственно, когда робот таки достигает смартфон, он в него продолжает упираться, урча мотором. И тут мы в ходе обсуждения решаем, что как раз для решения этой задачи нам и понадобиться датчик касания. И воодушевленные надеждой на следующую встречу – расходимся)))Интересно – все вышеописанные задачи решаются пятиклассниками в ходе одного урока. Из вариаций заданий – «скромный робот» (отворачивается от света, сложнее – ищет положение, при котором освещенность датчика минимальна). Другие задания ученики сами предложат))) Будет что интересное – пишите в обсуждение, с удовольствием применим у себя. Scratchduino Роботы датчик образование свет