• Что можно приготовить из кальмаров: быстро и вкусно

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

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


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

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

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

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

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

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

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

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

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


    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.
    Вход «В» соединен шиной с выходом «Результат» блока математики «Умножение».
    Выход блока «Результат» соединен шиной с входом «Мощность» мотора С.

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

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

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


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

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

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

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

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

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

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

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

    На этом уроке мы продолжим изучать использование датчика цвета. Материал, изложенный ниже, очень важен для дальнейшего изучения курса робототехники. После того, как мы научимся использовать все датчики конструктора Lego mindstorms EV3, при решении множества практических задач, будем опираться на знания, полученные на этом занятии.

    6.1. Датчик цвета - режим "Яркость отраженного света"

    Итак, мы приступаем к изучению следующего режима работы датчика цвета, который называется "Яркость отраженного света" . В этом режиме датчик цвета направляет поток красного света на близкорасположенный предмет или поверхность и измеряет количество отраженного света. Более темные предметы будут поглощать световой поток, поэтому датчик будет показывать меньшее значение, по сравнению с более светлыми поверхностями. Диапазон значений датчика измеряется от 0 (очень темный) до 100 (очень яркий). Данный режим работы датчика цвета используется во множестве задач по робототехнике, например, для организации движения робота по заданному маршруту вдоль черной линии, нанесенной на белое покрытие. При использовании этого режима рекомендуется располагать датчик таким образом, чтобы расстояние от него до исследуемой поверхности составляло примерно 1 см (Рис. 1) .

    Рис. 1

    Перейдем к практическим занятиям: датчик цвета уже установлен на нашем роботе и направлен вниз к поверхности покрытия, по которому будет передвигаться наш робот. Расстояние между датчиком и полом соответствует рекомендуемому. Датчик цвета уже подключен к порту "2" модуля EV3. Давайте загрузим среду программирования, подключим робота к среде и для проведения замеров воспользуемся полем с цветными полосами, изготовленным нами для выполнения заданий Раздела 5.4 Урока №5 . Установим робота, таким образом, чтобы датчик цвета расположился над белой поверхностью. "Страницу аппаратных средств" среды программирования переключим в режим "Просмотр портов" (Рис. 2 поз. 1) . В этом режиме мы можем наблюдать все выполненные нами подключения. На Рис. 2 отображено подключение к портам "B" и "C" двух больших моторов, а к порту "2" - датчика цвета.

    Рис. 2

    Для выбора варианта отображения показаний датчиков необходимо нажать на изображение датчика и выбрать нужный режим (Рис. 3)

    Рис. 3

    На Рис. 2 поз. 2 мы видим, что значение показания датчика цвета над белой поверхностью равно 84 . В вашем случае может получиться другое значение, ведь оно зависит от материала поверхности и освещения внутри помещения: часть освещения, отражаясь от поверхности, попадает на датчик и влияет на его показания. Установив робота таким образом, чтобы датчик цвета расположился над черной полосой, зафиксируем его показания (Рис. 4) . Попробуйте измерить самостоятельно значения отраженного света над оставшимися цветными полосами. Какие значения у вас получились? Напишите ответ в комментарии к этому уроку.

    Рис. 4

    Давайте теперь порешаем практические задачи.

    Задача №11: необходимо написать программу движения робота, останавливающегося при достижении черной линии.

    Решение:

    Проведенный эксперимент показал нам, что при пересечении черной линии, значение датчика цвета в режиме "Яркость отраженного света" равняется 6 . Значит, для выполнения Задачи №11 наш робот должен двигаться прямолинейно, пока искомое значение датчика цвета не станет меньше 7 . Воспользуемся уже знакомым нам программным блоком "Ожидание" Оранжевой палитры. Выберем требуемый условию задачи режим работы программного блока "Ожидание" (Рис. 5).

    Рис. 5

    Необходимо также настроить параметры программного блока "Ожидание" . Параметр "Тип сравнения" (Рис. 6 поз. 1) может принимать следующие значения: "Равно" =0, "Не равно" =1, "Больше" =2, "Больше или равно" =3, "Меньше" =4, "Меньше или равно" =5. В нашем случае установим "Тип сравнения" в значение "Меньше" . Параметр "Пороговое значение" установим равным 7 (Рис.6 поз. 2) .

    Рис. 6

    Как только установится значение датчика цвета меньше 7 , что случится, когда датчик цвета окажется расположенным над черной линией, нам необходимо будет выключить моторы, остановив робота. Задача решена (Рис. 7) .

    Рис. 7

    Для продолжения занятий нам понадобится изготовить новое поле, представляющее собой черную окружность диаметром примерно 1 метр, нанесенную на белое поле. Толщина линии окружности равняется 2 - 2,5 см. Для основы поля можно взять один лист бумаги размером A0 (841x1189 мм), склеить вместе два листа бумаги размером A1 (594x841 мм). На этом поле разметить линию окружности и закрасить её черной тушью. Можете также скачать макет поля, выполненный в формате Adobe Illustrator, а затем заказать его печать на баннерной ткани в типографии. Размер макета равен 1250x1250 мм. (Просмотреть скачанный ниже макет можно, открыв его в программе Adobe Acrobat Reader)

    Данное поле пригодится нам для решения нескольких классических задач курса робототехники.

    Задача №12: необходимо написать программу для робота, передвигающегося внутри круга, окантованного черной окружностью по следующему правилу:

    • робот движется вперед прямолинейно;
    • достигнув черной линии, робот останавливается;
    • робот отъезжает назад на два оборота моторов;
    • робот поворачивает вправо на 90 градусов;
    • движение робота повторяется.

    Знания, полученные на предыдущих уроках, помогут вам самостоятельно создать программу, решающую Задачу №12.

    Решение задачи №12

    1. Начать прямолинейное движение вперед (Рис. 8 поз. 1) ;
    2. Ожидать пересечения черной линии датчиком цвета (Рис. 8 поз. 2) ;
    3. Двигаться назад на 2 оборота (Рис. 8 поз. 3) ;
    4. Повернуть направо на 90 градусов (Рис. 8 поз. 4) ; значение угла поворота расчитано для робота, собранного по инструкции small-robot-45544 (Рис. 8 поз. 5) ;
    5. Повторять команды 1 - 4 в бесконечном цикле (Рис. 8 поз. 6) .

    Рис. 8

    К работе датчика цвета в режиме "Яркость отраженного света" мы еще неоднократно вернемся, когда будем рассматривать алгоритмы движения вдоль черной линии. А пока разберем третий режим работы датчика цвета.

    6.2. Датчик цвета - режим "Яркость внешнего освещения"

    Режим работы датчика цвета "Яркость внешнего освещения" очень похож на режим "Яркость отраженного света" , только в этом случае датчик не излучает освещение, а измеряет естественное световое освещение окружающей среды. Визуально данный режим работы датчика можно определить по слабо светящемуся синему светодиоду. Показания датчика изменяются от 0 (отсутствие света) до 100 (самый яркий свет). При решении практических задач, требующих измерения внешнего освещения, рекомендуется располагать датчик, так, чтобы датчик оставался максимально открытым и не загораживался другими деталями и конструкциями.

    Давайте закрепим датчик цвета на нашем роботе так же, как мы крепили датчик касания в Уроке №4 (Рис. 9) . Подключим датчик цвета кабелем к порту "2" модуля EV3. Перейдем к решению практических задач.

    Рис. 9

    Задача №13: необходимо написать программу, изменяющую скорость движения нашего робота в зависимости от интенсивности внешнего освещения.

    Чтобы решить эту задачу, нам надо узнать, как получать текущее значение датчика. А поможет нам в этом Желтая палитра программных блоков, которая называется "Датчики" .

    6.3. Желтая палитра - "Датчики"

    Желтая палитра среды программирования Lego mindstorms EV3 содержит программные блоки, позволяющие получать текущие показания датчиков для дальнейшей обработки в программе. В отличие, например, от программного блока "Ожидание" Оранжевой палитры, программные блоки Желтой палитры сразу же передают управление к следующим за ними программным блокам.

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

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

    Вернемся же к решению Задачи №13 и посмотрим, как можно получать и обрабатывать показания датчика цвета. Как мы уже знаем: диапазон значений датчика цвета в режиме "Яркость внешнего освещения" находится в пределах от 0 до 100 . Такой же диапазон у параметра, регулирующего мощность моторов. Попробуем показанием датчика цвета регулировать мощность моторов в программном блоке "Рулевое управление" .

    Решение:


    Рис. 10

    Давайте загрузим получившуюся программу в робота и запустим её на выполнение. Робот поехал медленно? Включим светодиодный фонарик и попробуем подносить его к датчику цвета на разном расстоянии. Что происходит с роботом? Закроем датчик цвета ладонью - что случилось в этом случае? Напишите ответы на эти вопросы в комментарии к уроку.

    Задача - Bonus

    Загрузите в робота и запустите на выполнение задачу, изображенную на рисунке ниже. Повторите эксперименты со светодиодным фонариком. Поделитесь впечатлениями в комментариях к уроку.

    15.01.2012, 18:51

    До сих пор в статьях о алгоритмах, использующихся при движении вдоль линии, рассматривался такой способ, когда датчик освещенности как бы следил за левой или правой ее границей: чуть робот съедет на белую часть поля - регулятор возвращал робота на границу, начнет датчик перемещаться вглубь черной линии - регулятор выправлял его обратно.
    Не смотря на то, что картинка выше приведена для релейного регулятора, общий принцип движения пропорционального (П-регулятора) будет такой-же. Как уже говорилось, средняя скорость такого перемещения не очень высокая и было сделано несколько попыток увеличить ее за счет незначительного усложнения алгоритма: в одном случае использовалось "мягкое" торможение, в другом, помимо поворотов, вводилось движение вперед.
    Для того, чтобы позволить роботу на некоторых участках двигаться вперед, в диапазоне значений выдаваемых датчиком освещенности выделялся узкий участок, который условно можно было назвать "датчик находится на границе линии".
    У данного подхода есть небольшой недостаток - если робот "следит" за левой границей линии, то на правых поворотах он как бы не сразу определяет искривления траектории и, как следствие, тратит большее время на поиск линии и поворот. Причем, можно с уверенностью сказать, что чем, круче поворот, тем дольше по времени происходит этот поиск.
    На следующем рисунке видно, что если бы датчик находился не с левой стороны от границы, а с правой, то он уже обнаружил искривление траектории и начал бы совершать маневры по повороту.

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

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

    На схеме выше сразу же показано, как конкретно в программе должно меняться поведение моторов.Теперь, написание программы не должно составить большого труда.Начать стоит с того, чтобы выбрать какой датчик будет опрашиваться первым. Это не имеет большого значения, поэтому пусть будет левый. Необходимо определить, над светлой или над темной он поверхностью:
    Это действие еще не позволяет сказать в какую сторону роботу надо ехать. Но оно разделит состояния, перечисленные выше, на две группы: (I, II) для верхней ветви и (III, IV) для нижней. В каждой из групп теперь по два состояния, поэтому необходимо выбрать какое-то из них. Если внимательно посмотреть на первые два состояния I и II, то они отличаются положением правого датчика - в одном случае он над светлой поверхностью, в другом - над темной. Именно это и определит выбор, какое действие предпринять:
    Теперь можно вставить блоки, определяющие поведение моторов согласно таблицам выше: верхняя ветвь вложенного условия определяет комбинацию "оба датчика на светлом", верхняя - "левый на светлом, правый на темном":
    Нижняя ветка основного условия отвечает за другую группу состояний III и IV. Эти два состояния также отличаются друг от друга уровнем освещенности, который улавливает правый датчик. Значит, он будет определять выбор каждого из них:
    Получившиеся две ветви наполняются блоками движения. Верхняя ветвь отвечает за за состояние "левый на темном, правый на светлом", а нижняя - за "оба датчика на темном".
    Следует отметить, что данная конструкция всего лишь определяет, как включить моторы в зависимости от показаний сенсоров в определенном месте поля, естественно через мгновение программа должна проверить не изменились ли показания, чтобы соответствующим образом подправить поведение моторов, а через мгновение еще раз, еще и т.д. Поэтому она должна быть помещена в цикл, который будет обеспечивать такую повторяющуюся проверку:

    Такая довольно простая программа будет обеспечивать довольно высокую скорость передвижения робота вдоль линии без вылета за ее пределы, если правильным образом настроить максимальную скорость при движении в состояниях I и IV, а также задать оптимальный способ торможения в состояниях II и III - чем круче повороты на трассе, тем "жестче" должно быть торможение - скорость должна сбрасываться быстрее, и наоборот - при плавных поворотах вполне можно применять торможение через выключение энергии или даже вообще через незначительный сброс скорости.

    По размещению датчиков на роботе тоже следует сказать несколько отдельных слов. Очевидно, что по расположению этих двух датчиков относительно колес будут действовать те же самые рекомендации, что и для одного датчика, только за вершину треугольника при этом берется середина отрезка соединяющий два датчика. Само же расстояние между датчика тоже должно выбираться из характеристик трассы: чем ближе датчики будут расположены друг к другу, тем чаще робот будет выравниваться (выполнять относительно медленные развороты), но если разнести датчики достаточно широко, то есть риск вылета с трассы, поэтому придется выполнять более "жесткие" повороты и уменьшать скорость передвижения на прямых участках.



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

    Общая теория и конкретные примеры создания программы описаны на сайте wroboto.ru

    Опишу, каким образом мы это реализуем в среде EV3, поскольку есть отличия.

    Первое, что необходимо знать роботу – значение “идеальной точки”, расположенной на границе черного и белого.

    Расположение красной точки на рисунке как раз соответствует этой позиции.

    Идеальный вариант расчета – измерить значение черного и белого и взять среднее арифметическое.

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

    Значит, можно заставить это делать робота.

    В ходе экспериментов мы выяснили, что измерять и черное, и белое необязательно. Можно измерить только белое. А значение идеальной точки рассчитывается как значение белого, деленное на 1,2 (1,15), в зависимости от ширины черной линии и скорости движения робота.

    Рассчитанное значение нужно записать в переменную, чтобы потом обращаться к нему.

    Расчет “идеальной точки”

    Следующий параметр, участвующий в движении – коэффициент поворота. Чем он больше, тем резче робот реагирует на изменение освещенности. Но слишком большое значение приведет к “вилянию” робота. Значение подбирается экспериментально индивидуально для каждой конструкции робота.

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

    Для удобства, эти параметры тоже можно записать в переменные.

    Коэффициент поворота и базовая мощность

    Логика движения по черной линии такова: измеряется отклонение от идеальной точки. Чем оно больше, тем сильнее робот должен стремиться вернуться к ней.

    Для этого высчитываем два числа – значение мощности каждого из моторов В и С по отдельности.

    В виде формул это выглядит так:

    Где Isens – значение показаний датчика освещенности.

    Наконец, реализация в EV3. Удобнее всего оформить в виде отдельного блока.

    Реализация алгоритма

    Именно такой алгоритм был реализован в роботе для средней категории WRO 2015

    Текст работы размещён без изображений и формул.
    Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

    Конструктор Lego Mindstorms EV3

    Подготовительный этап

    Создание и калибровка программы

    Заключение

    Литература

    1.Введение.

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

    За последние годы успехи в робототехнике и автоматизированных системах изменили личную и деловую сферы нашей жизни. Роботы широко используются в транспорте, в исследованиях Земли и космоса, в хирургии, в военной промышленности, при проведении лабораторных исследований, в сфере безопасности, в массовом производстве промышленных товаров и товаров народного потребления. Многие устройства, принимающие решения на основе полученных от сенсоров данных, тоже можно считать роботами — таковы, например, лифты, без которых уже немыслима наша жизнь.

    Конструктор Mindstorms EV3 приглашает нас войти в увлекательный мир роботов, погрузиться в сложную среду информационных технологий.

    Цель: Научится программировать движение робота по прямой линии.

      Познакомится с конструктором Mindstorms EV3 и его средой программирования.

      Написать программы движения робота по прямой на 30 см, 1 м 30 см и 2 м 17 см.

      Конструктор Mindstorms EV3.

    Детали конструктора - 601 шт., серводвигатель - 3 шт., датчик цвета, сенсорный датчик движения, инфракрасный датчик и датчик касания. Микропроцессорный блок EV3, является мозгом конструктора LEGO Mindstorms.

    За движение робота отвечает большой сервомотор, который подключается к микрокомпьютеру EV3 и заставляет робота двигаться: ехать вперед и назад, поворачиваться и проезжать по заданной траектории. Данный сервомотор имеет встроенный датчик вращения, который позволяет очень точно контролировать перемещение робота и его скорость.

    Заставить робота выполнять действие можно с помощью компьютерной программы EV3. Программа состоит из различных блоков управления. Мы будем работать с блоком движения.

    Блок движение управляет двигателями робота, включает, выключает, заставляет работать, соответствующее поставленным задачам. Можно запрограммировать движение на определенное количество оборотов, или градусов.

      Подготовительный этап.

      Создание технического поля.

    На поле работы робота нанесем разметку, с помощью изоленты и линейки создадим три линии длиной 30 см - зелёная линия, 1 м 15 см - красная и 2 м 17 см - чёрная линии.

      Необходимые расчеты:

    Диаметр колеса робота - 5 см 7 мм = 5,7 см.

    Один оборот колеса робота равен длине окружности с диаметром 5,7 см. Длину окружности находим по формуле

    Где r - радиус колеса, d - диаметр, π = 3,14

    l = 5,7 * 3,14 = 17,898 = 17,9.

    Т.е. за один оборот колеса робот проезжает 17,9 см.

    Рассчитаем количество оборотов необходимых, что бы проехать:

    N = 30: 17,9 = 1,68.

      1 м 30 см = 130 см

    N = 130: 17,9 = 7,26.

      2 м 17 см = 217 см.

    N = 217: 17,9 = 12,12.

      Создание и калибровка программы.

    Создавать программу будем по следующему алгоритму:

    Алгоритм:

      Выбрать блок движения в программе Mindstorms EV3.

      Включить оба мотора в заданном направлении.

      Ожидать изменение показания датчика поворота одного из моторов до заданного значения.

      Выключить моторы.

    Готовую программу загружаем в блок управления робота. Ставим робота на поле и нажимаем кнопку пуска. EV3 едет по полю и останавливается в конце заданной линии. Но для того, что бы добиться точного финиша приходится производить калибровку, так как на движение влияют внешние факторы.

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

      Поверхность поля гладкая, поэтому не исключено плохое сцепление колес робота с полем.

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

    5.Заключение.

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

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

    Работать с конструктором очень интересно. Узнавая больше о его возможностях, можно решать любые технические задачи. А в будущем, возможно, создавать свои интересные модели робота Lego Mindstorms EV3.

    Литература.

      Копосов Д. Г. «Первый шаг в робототехнику для 5-6 классов». - М.: Бином. Лаборатория знаний, 2012 - 286 с.

      Филиппов С. А. «Робототехника для детей и родителей» - «Наука» 2010г.

      Интернет - ресурсы

      http://lego. rkc-74.ru/

      http://www.9151394.ru/projects/lego/lego6/beliovskaya/

      http://www. lego. com/education/