НОВАЯ ШКОЛА ЮГРЫ
2010-2015 гг.

Среда, 11 февраля 2015 17:52

Движение по линии с двумя датчиками освещенности.

Автор
Оцените материал
(15 голосов)

Органы чувств помогают человеку ориентироваться в окружающем его мире. У робота для ориентации есть специальные устройства, которые называются – датчики.
В комплект NXT входят датчики звука, касания, расстояния и освещенности. Каждый из них предназначен для определенных целей.
60С помощью этого датчика робот способен отличать свет от темноты настолько хорошо, насколько позволяет освещение в комнате. Датчик может по яркости отраженного света различать цвета (градация по шкале серого).

Датчик освещенности позволяет определить освещенность помещения и, что чаще всего используется, способность поверхности отразить поток света.
Рассмотрим различие, как видит линию на траектории человек и робот.

 

 

Так видит линию человек:
61

Так видит её робот:

48
Вот эту особенность мы и будем использовать при конструировании и программировании робота для категории соревнований «Траектория».

Есть много способов научить робота видеть линию и передвигаться по ней. Есть сложные программы и совсем простые.

Я хочу рассказать о способе программирования, который освоят даже дети 2-3 классов. В этом возрасте им гораздо легче дается сборка конструкций по инструкциям, а программирование робота - для них сложная задача. Но этот способ позволит ребенку запрограммировать робота на любой маршрут трассы за 15-30 минут (с учетом поэтапной проверки и подгонки некоторых особенностей траектории).

Данный способ был проверен на муниципальных и региональных соревнованиях по робототехнике в Сургутском районе и ХМАО-Югре и принес нашей школе первые места. Там же я убедился, что эта тема весьма актуальна для многих команд.

Ну, приступим.

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

Рассмотрим вариант робота с двумя датчиками света, так как он более понятен ученикам младших классов.

70

Датчики освещенности подключены ко 2 и 3 портам. Моторы к портам В и С.
Датчики выставлены по краям линии (попробуйте поэкспериментировать, располагая датчики на разном расстоянии друг от друга и на разной высоте).
Важный момент. Для лучшей работы такой схемы пару датчиков желательно подобрать по параметрам. Иначе, необходимо будет вводить блок корректировки значений датчиков.
Установка датчиков на шасси по классической схеме (треугольник), примерно, как на рисунке.

Программа будет состоять из небольшого количества блоков:

5
1. Два блока датчика освещенности;
2. Четыре блока «Математики»;
3. Двух блоков моторов.

Для управления роботом используется два мотора. Мощность каждого 100 единиц. Для нашей схемы мы возьмем среднее значение мощности мотора равным 50. То есть, средняя скорость при движении по прямой, будет равна 50 единицам. При отклонении от прямолинейного движения мощность моторов будет пропорционально увеличиваться или уменьшаться, в зависимости от угла отклонения.

Теперь разберёмся, как соединить все блоки, настроить программу и что будет в ней происходить.
Выставим два датчика освещенности и назначим им порты 2 и 3.
Берем блок математики и выберем «Вычитание».
Подключим датчики освещенности с выходов «Интенсивность» шинами к блоку математики ко входам «А» и «В».
Если датчики робота установлены симметрично от центра линии трассы, то значения обоих датчиков будет равными. После вычитания мы получим значение – 0.
Следующий блок математики будет использован в качестве коэффициента и в нем нужно выставить «Умножение».
Для вычисления коэффициента вам необходимо измерить с помощью блока NXT уровень «белого» и «черного».
Предположим: белый -70, черный -50.
Далее считаем: 70-50=20 (разница между белым и черным), 50/20=2,5 (среднее значение мощности при движении по прямой в блоках математики мы выставили в 50. Это значение плюс добавленная мощность при корректировки движения должна быть равна 100)
Попробуйте выставить значение 2,5 по входу «А», а потом подберете более точно.
Ко входу «В» блока математики «Умножение» подключите выход «Результат» предыдущего блока математики «Вычитание».
Далее идет пара – блок математики (Сложение) и мотор В.
Настройка блока математики :
• По входу «А» выставлено значение 50 (половина мощности мотора).
• Вход «В» соединен шиной с выходом «Результат» блока математики «Умножение».
• Выход блока «Результат» соединен шиной с входом «Мощность» мотора В.
Следом пара – блок математики (Вычитание) и мотор С.
Настройка блока математики :
• По входу «А» выставлено значение 50.
• Вход «В» соединен шиной с выходом «Результат» блока математики «Умножение».
• Выход блока «Результат» соединен шиной с входом «Мощность» мотора С.

В результате всех этих действий вы получите такую программу:

9

Так как это все будет работать в цикле, то добавляем «Цикл», выделяем и переносим это все в «Цикл».

1

Теперь давайте попробуем разобраться, как будет работать программа и как ее настроить.


62

Пока робот едет по прямой линии значения датчиков совпадают, значит, на выходе блока «Вычитание» будет значение 0. Выход блока «Умножение» дает тоже значение 0. Это значение подается параллельно на пару управления моторами. Так как в этих блоках выставлено значение 50, то прибавление или вычитание 0 не влияет на мощность моторов. Оба мотора работают с одинаковой мощностью 50, и робот катит по прямой.

63

Предположим, что трасса делает поворот или робот отклоняется от прямой. Что будет происходить?

По рисунку видно, что освещенность датчика, подключенного к порту 2 (далее по тексту –датчики 2 и 3) увеличивается, так как он съезжает на белое поле, а освещенность датчика 3 уменьшается. Предположим, значения этих датчиков становятся : датчик 2 – 55 единиц, а датчик 3 – 45 единиц.
Блок «Вычитания» определит разницу между значениями двух датчиков (10) и подаст его в блок коррекции ( умножение на коэффициент(10*2,5=25)) и далее в блоки управления
моторами.
В блоке математики (Сложение) управления мотором В к значению средней скорости 50
добавится 25 и значение мощности 75 будет подано на мотор В.
В блоке математики (Вычитание) управления мотором С от значения средней скорости 50 будет вычтено 25 и значение мощности 25 будет подано на мотор С.
Таким образом, будет скорректировано отклонение от прямой линии.

64

Если трасса резко поворачивает в сторону и датчик 2, оказывается на белом, а датчик 3 на черном. Значения освещенности этих датчиков становятся : датчик 2 – 70 единиц, а датчик 3 – 50 единиц.
Блок «Вычитания» определит разницу между значениями двух датчиков (20) и подаст ее в блок коррекции (20*2,5=50) и далее в блоки управления моторами.
Теперь в блоке математики (Сложение) управления мотором В значение мощности 50 +50 =100 будет подано на мотор В.
В блоке математики (Вычитание) управления мотором С значение мощности 50 – 50 = 0 будет подано на мотор С.
И робот выполнит крутой разворот.

На белом и черных полях робот должен ехать по прямой. Если это не происходит, попробуйте подобрать датчики с одинаковыми значениями.

Теперь создадим новый блок и будем его использовать для движения робота по любой трассе.
Выделим цикл, далее в меню «Правка» выберем команду «Создать мой блок».

11

12

13В диалоговом окне «Конструктор блоков» дадим название нашему блоку, например, «Go», выберем иконку для блока и нажмем «ГОТОВО».

 


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

Дополнительная информация

  • Дата публикации: Воскресенье, 08 февраля 2015
  • Сайт публикации: http://nttm.ouhmao.ru/
  • Автор: Абдурахманов Ринат Ризванович
  • Организация: МБОУ "Лянторская СОШ №4"
Прочитано 22947 раз Последнее изменение Воскресенье, 15 февраля 2015 06:21
Ринат Ризванович

Учитель информатики МБОУ "Лянторская СОШ №4"

ouhmao.ru

Медиа

Победители соревнований 2015 Траектория

Добавить комментарий

Убедитесь, что вы вводите (*) необходимую информацию, где нужно
HTML-коды запрещены

Вход на сайт

Популярные материалы