Книжная полка робототехника. Курс программирования робота EV3 в среде Lego Mindstorms EV3 Курс программирования робота ev3

Здравствуйте. В своих статьях я хочу Вас познакомить с основами программирования микрокомпьютера LEGO NXT Mindstorms 2.0. Для разработки приложений я буду использовать платформы Microsoft Robotics Developer Studio 4 (MRDS 4) и National Instruments LabVIEW (NI LabVIEW). Будут рассматриваться и реализовываться задачи автоматического и автоматизированного управления мобильными роботами. Двигаться мы будем от простого к сложному.

Предвосхищая некоторые вопросы и комментарии читателей.

Почему именно NXT Mindstorms 2.0? Потому-что для своих проектов данный набор мне показался наиболее подходящим, т.к. микрокомпьютер NXT полностью совместим с платформами MRDS 4 и NI LabVIEW, а так же данный набор является очень гибким в плане сборки различных конфигураций роботов - затрачивается минимум времени на сборку робота.

Почему платформы MRDS 4 и NI LabVIEW? Так сложилось исторически. Обучаясь на старших курсах университета стояла задача в разработке учебных курсов с использованием данных платформ. К тому же платформы обладают достаточной простотой в освоении и функциональностью, с их использованием можно написать программу непосредственно для управления роботом, разработать интерфейс пользователя и провести тестирование в виртуальной среде (в случае с MRDS 4).

Да кому вообще нужны эти ваши уроки, в сети и так куча проектов по робототехнике! С использованием данной связки (NXT+MRDS 4/NI LabVIEW) учебных статей практически нет, в основном используется родная среда программирования, а в ней совсем все тривиально. Всем кому интересны робототехника, программирование и у кого есть набор NXT (а таких не мало), возрастная аудитория любая.

Графические языки программирования это зло, а те кто на них программируют еретики! Графические языки программирования коими и являются MRDS 4 и NI LabVIEW несомненно имеют свои минусы, например ориентированность под узкие задачи, но все же в функциональности они мало уступают текстовым языкам, тем более NI LabVIEW изначально разрабатывался как язык легкий в освоении для решения научных и инженерных задач, для этого в нем присутствует множество необходимых библиотек и инструментов. По-этому для решения наших задач данные графические языки являются наиболее подходящими. И не надо нас за это сжигать на костре презирать.

Все это выглядит по-детски и вообще не серьезно! Когда задача состоит в реализации алгоритмов, в обучении основам и принципам программирования, робототехники, систем реального времени без углубления в схемотехнику и протоколы, то это очень подходящий инструмент хоть и не дешевый (касаемо набора NXT). Хотя для этих же целей неплохо подойдут наборы на базе Arduino, но совместимости с MRDS 4 и NI LabVIEW у данного контроллера почти нет, а в данных платформах есть свои прелести.

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

Краткий обзор платформ MRDS 4 и NI LabVIEW.

Внесу некоторую ясность в терминологию. Под платформой, в данном случае, имеется ввиду совокупность различных инструментов, например язык VPL в MRDS, а так же среда выполнения приложений, т.е. непосредственной компиляции приложений в исполняемые (*.exe) файлы нету.

В 2006 году Microsoft объявила о создании платформы Microsoft Robotics Developer Studio (более подробно в статье Википедии). MRDS – это Windows – ориентированная среда разработки приложений для робототехники и симуляции. В настоящее время актуальной является версия Microsoft Robotics Developer Studio 4. Среди особенностей: язык графического программирования VPL, Web – и Windows – ориентированные интерфейсы, среда симуляции VSE, упрощенный доступ к датчикам, микроконтроллеру и исполнительным механизмам робота, поддержка языка программирования C#, библиотеки для многопоточного программирования и распределенного выполнения приложений CCR и DSS, поддержка многих робототехнических платформ (Eddie, Boe - Bot, CoroBot, iRobot, LEGO NXT и т.д.).

LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) - это среда разработки и платформа для выполнения программ, созданных на графическом языке программирования «G» фирмы National Instruments (более подробно в статье Википедии). LabVIEW используется в системах сбора и обработки данных, а также для управления техническими объектами и технологическими процессами. Идеологически LabVIEW очень близка к SCADA-системам, но в отличие от них в большей степени ориентирована на решение задач не столько в области АСУ ТП (автоматизированные системы управления технологическим процессом), сколько в области АСНИ (автоматизированных систем научных исследований). Графический язык программирования «G», используемый в LabVIEW, основан на архитектуре потоков данных. Последовательность выполнения операторов в таких языках определяется не порядком их следования (как в императивных языках программирования), а наличием данных на входах этих операторов. Операторы, не связанные по данным, выполняются параллельно в произвольном порядке. Программа LabVIEW называется и является виртуальным прибором (англ. Virtual Instrument) и состоит из двух частей:

  • блочной диаграммы, описывающей логику работы виртуального прибора;
  • лицевой панели, описывающей интерфейс пользователя виртуального прибора.

Краткий обзор набора LEGO NXT Mindstorms 2.0.

Комплект NXT состоит из управляющего блока, четырех датчиков и трех сервоприводов. Управляющий блок содержит в себе:
  • 32-битный микроконтроллер AVR7 с 256 КБайт FLASH памяти и 64 КБайт RAM памяти;
  • 8-битный микроконтроллер AVR c 4 Кбайт FLASH памяти и 512 Байт RAM памяти;
  • радиомодуль Bluetooth V 2.0;
  • USB-порт;
  • 3 разъема для подключения сервоприводов;
  • 4 разъема для подключения датчиков;
  • LCD дисплей разрешением 99x63 пикселей;
  • динамик;
  • разъем для 6 батареек типа AA.
Датчики (в разных комплектациях разные наборы датчиков):
  • ультразвуковой датчик;
  • два тактильных датчика (датчики касания);
  • датчик опредения цвета.


Рисунок 1 - Микрокомпьютер NXT с подключенными датчиками и приводами

И конечно же в наборе находятся разнообразные детали LEGO в форм-факторе LEGO Technic из которых будут собраны исполнительные механизмы и несущая конструкция.


Рисунок 2 - Детали в форм-факторе LEGO Technic

Пишем первое приложение.

Напишем первое приложение. Пусть, классически, данное приложение выводит текст “Hello, World!”. Реализация будет происходить поочередно в MRDS 4 и NI LabVIEW, в процессе будем рассматривать специфику каждой платформы.

Предварительно инсталлируем платформы MRDS 4 и NI LabVIEW, в случае с MRDS 4 инсталляция должна проводится в папку путь к которой не состоит из кириллицы (русских букв), учетная запись пользователя так-же должна состоять только из латинских букв .

1. Платформа MRDS 4.
Запускаем среду VPL (Меню Пуск - Все Программы - Microsoft Robotics Developer Studio 4 - Visual Programming Language). Данная среда позволяет разрабатывать приложения на языке VPL, проводить тестирование в виртуальной среде VSE. Программа в VPL представляет собой диаграмму, состоящую из соединенных между собой блоков. В открывшемся окне, помимо стандартной панели команд и меню, присутствует 5 основных окон:
  1. Basic Activities – содержит базовые блоки, которые реализуют такие операторы как константа, переменная, условие и т.д.;
  2. Services – содержит блоки, предоставляющие доступ к функционалу платформы MRDS, например блоки для взаимодействия с какой-либо аппаратной составляющей робота, или блоки для вызова диалогового окна;
  3. Project – объединяет диаграммы входящие в проект, а так же различные конфигурационные файлы;
  4. Properties – содержит свойства выделенного блока;
  5. Diagrams window – содержит, непосредственно, диаграмму (исходный код) приложения.

Рисунок 3 - Среда программирования VPL

Выполним следующую последовательность действий:

2. Платформа NI LabVIEW.
На данной платформе все реализуется, практически, идентично. Запустим среду LabVIEW. Перед нами появиться два окна, первое - Front Panel, предназначено для реализации интерфейса пользователя (внешнего вида виртуального прибора), второе - Block Diagram, для реализации логики программы.


Рисунок 8 - Окна среды LabVIEW

Мы будем использовать окно Block Diagram. Выполним следующие шаги:

Резюме

  • Мы сделали обзор программных платформ для разработки приложений микрокомпьютера NXT.
  • Мы рассмотрели основные принципы разработки приложений в платформах MRDS 4 и NI LabVIEW.
  • Познакомились с интерфейсом сред.
В следующих статьях мы будем заниматься непосредственно программированием NXT. По среде LabVIEW в сети есть много учебных материалов, по VPL гораздо меньше. Очень рекомендую изучить справочное руководство обеих платформ (необходимо знание английского), в данных руководствах очень много примеров которые можно реализовать и не имея NXT, а так же следующие книги:
  • Программируем микрокомпьютер NXT в LabVIEW - Лидия Белиовская, Александр Белиовский,
  • Microsoft Robotics Developer Studio. Программирование алгоритмов управления роботами - Василий Гай.
В своих статьях я буду описывать только свои проекты, т.к. не вижу смысла переписывать информацию из одних источников в другие. Приму любую конструктивную критику, отвечу на любые вопросы касаемо рассмотренных платформ. Заранее спасибо!

РОБОТОТЕХНИКА

Для детей 7-11 лет

ПОЧЕМУ РОБОТОТЕХНИКА?

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

ЗАЧЕМ УЧИТЬСЯ
В КРАШПРО?

РАЗВИВАЕМ КОМПЕТЕНЦИИ

Творческое мышление

Проектное мышление м умение работать в команде

Развитие логики и мелкой моторики

Развитие математического мышления

Умение создавать автономных и управляемых роботов

Программирование в среде Scratch

Сначала мы позвали самых крутых IT Специалистов, практиков, разработчиков. Потом, нашли опытных методистов, детских психологов и педагогов. Соединили знания первых с компетентностью вторых и получили образовательные курсы, аналогов которым нет на рынке!

Наргиз Асадова

Директор Школы профессий будущего "CRUSH PRO"

7-9 лет 9-11 лет

«Робототехника WeDo»

Занятия проходят 1 раз в неделю по 1,5 часа.
Каждый учебный год разделен на 3 модуля.

ПЕРВЫЙ ГОД ОБУЧЕНИЯ

Модуль 1
10 занятий по 1,5 часа

  • Изучая животный мир, понимаем принципы работы таких механизмов как подъемный кран (жираф), вертолет (стрекоза), погрузчик (пеликан) и других.
  • Собираем робот лягушки, аллигатора, обезьяны, льва и других животных. Программируем, настраиваем голосовое управление, изучаем базовые детали и узлы: шестеренки, шкивы и зубчатую передачу
Модуль 2
10 занятий по 1,5 часа
  • Строим модели самолета, подъемного крана, вертолета, манипулятора и других машин. Изучаем принцип работы механизмов, физику, используем уравнения и формулы для программирования.
  • Создаем систему управления роботами
Модуль 2
12 занятий по 1,5 часа
  • Строим катапульту, дроид, круглых роботов, космолет и другие сложные машины
  • Создаем станцию связи, космическую станцию, изучаем роботов, работающих в космос

ВТОРОЙ ГОД ОБУЧЕНИЯ

Занятие 1: Лифт-подъемный механизм. Знакомство с программой.

Занятие 2: Стрекоза. Обсуждение вопросов связанных с насекомыми.

Занятие 3: Лягушка. Обсуждение принципов работы датчиков. Изучение лягушки и построение модели. Построение модели лягушки из блоков LEGO WeDo. Использование датчиков для запуска программы. Использование условного оператора в задаче программирования. Использование цикла в программе.
Занятие 4: Пеликан. Обсуждение разновидностей птиц, мест их обитания и строение.


Занятие 5: Аллигатор. Изучение систем шкивов и ремней (ременных передач).

Занятие 6: Лев. Изучение процесса передачи движения и преобразования энергии в модели. Ознакомление с работой коронного зубчатого колеса в этой модели. Изучение льва, его строения, места обитания. Создание и испытание движущейся модели льва. Усложнение поведения путем добавления управление голосом и программирования воспроизведения звуков синхронно с движениями льва. Понимание того, как при помощи зубчатых колёс можно изменить направление движения. Понимание и использование числового способа задания звуков и продолжительности работы мотора.
Занятие 7: Лягушка. Знакомство с системой шкивов и ремней (ременных передач), работающих в модели. Анализ влияния смены ремня на направление и скорость движения. Построение, программирование и испытание модели «Лягушка». Изучение процесса передачи движения и преобразования энергии в модели. Изучение кулачкового механизма, работающего в модели. Понимание основных принципов проведения испытаний и их обсуждение.
Занятие 8: Жираф. Изучение рычажного механизма. Создание и испытание модели жирафа из блоков LEGO WeDo. Программирование соответствующего звукового сопровождения. Усложнение поведения за счет установки на модель датчика наклона. Построение и изучение сложного механизма. Изучение строения, местообитание жирафа. Занятие 9: Обезьяна. Изучение рычажного механизма и влияние конфигурации кулачкового механизма на ритм барабанной дроби. Создание и испытание модели барабанящей обезьянки. Модификация конструкции модели путём изменения кулачкового механизма с целью изменения ритма движений рычагов. Программирование соответствующего звукового сопровождения, чтобы поведение модели стало более эффектным.
Занятие 10: Промежуточный тест. (теория, конструирование, практика)
Занятие 11: Самолет. Построение модели самолёта, испытание её движения и уровня мощности мотора. Усовершенствование модели самолёта путём программирования звуков, зависящих от показаний датчика наклона. Понимание и использование принципа управления звуком и мощностью мотора при помощи датчика наклона. Изучение процесса передачи движения и преобразования энергии в модели.
Занятие 12: Нефтяная вышка. Понимание концепции и обсуждения свойств энергетических ресурсов на примере нефти масло. Обсуждение роли двигателя внутреннего сгорания в промышленном развитии. Построение модели насоса из блоков LEGO WeDo. Использование датчика расстояния для построения системы управления. Использование кривошипного механизма для сборки насоса. Программирование структуры в соответствии с алгоритмом, который делает зависимость скорости двигателя от значения дисплея датчика расстояния. Создание программы в соответствии с алгоритмом, который добавляет и вычитает из фиксированного значения. Практическое использование операций сложения и вычитания до 10.
Занятие 13: Ветряк. Обсуждение типов возобновляемых источников энергии и способов их использования пример ветровой турбины. Определение концепции скорости. Строительство модели ветряной мельницы из блоков LEGO WeDo. Обсуждение работы механизмов и их различных типов и их практических. Программирование структуры в соответствии с алгоритмом, который учитывает вращение винта мельницы. Использование показаний датчика расстояния для запуска математической операции. Использование добавления в задаче программирования. Использование деления при расчете передаточных чисел.
Занятие 14: Пожарная машина. Обсуждение вопросов, связанных с явлением сжигания.

Занятие 15: Вилочный погрузчик. Знание о конструкции и работе штабелера. Обсуждение роли развития робототехники в промышленности и логистике. Строительство штабелера с блоками LEGO WeDo. Использование червячного механизма для сборки накопителя. Использование датчика наклона для создания системы управления укладчиком. Использование датчика наклона для программирования системы управления укладчиком. Использование условного оператора в задаче программирования
Занятие 16: Лифт. Понимание концепции простых машин на примере рычага и шкива .
Понимание приложений простых машин в строительстве на других построениях. Понимание механизма работы лифта. Создание модели лифта с блоками LEGO WeDo. Использование двигателя и шкива для создания модели лебедки лифта. Использование компьютерной клавиатуры для программирования системы управления. Измерение и сравнение измерений времени с секундомером.
Занятие 17: Вертолет. Обсуждение источника вертолетного носителя. Сравнение конструкции и эксплуатации самолета и вертолета. Строительство вертолетной модели от блоков LEGO WeDo. Использование вала для сборки вертолетного привода. Использование датчика наклона для создания системы управления вертолетом. Использование механизма для создания вертолетного привода. Программирование структуры в соответствии с алгоритмом, который делает зависимость скорости двигателя от значения дисплея датчика расстояния. Использование условных инструкций и программных циклов. Использование многопоточной программы.
Занятие 18: Манипулятор. Понимание влияния развития робототехники на деятельность человека. Обсуждение принципов выбора строительных решений для специфики конкретных задач. Создание модели манипулятора из блоков LEGO WeDo. Использование датчика наклона для создания системы управления манипуляторами. Использование червячного механизма для создания захвата манипулятора. Использование датчика наклона для программирования системы управления манипуляторами. Использование многофункциональной программы. Использование математических операций (деление). Измерение и сравнение измерений времени с секундомером.
Занятие 19: Кран. Обсуждение принципов работы простых машин. Знание конструкции и принципов работы крана. Построение модели крана из блоков LEGO WeDo. Использование зубчатого зацепления для сборки вращающейся крановой башни. Использование датчика наклона для создания системы управления краном. Использование датчика наклона для программирования системы управления краном. Использование условного оператора в задаче программирования.
Занятие 20: Промежуточный тест(теория, конструирование, практика)
Занятие 21: Соревнования. Проверка на знания механизмов после прохождения всех 3 блоков. Проверка на использование блоков программирования. Проверка скорости конструирования. Проверка на правильность конструкции.
Занятие 22: Дройд. Понимание концепции и обсуждения свойств сигнализации, охранных систем. Обсуждение роли датчиков в жизни человека. Построение модели друида из блоков LEGO WeDo. Использование датчика расстояния для построения охранной системы. Использование сложного углового механизма для работы охранной системы. Программирование структуры в соответствии с алгоритмом, который делает зависимость работы моторов и звуков от датчика расстояния.
Занятие 23: Катапульта. Изучение рычажного механизма. Создание и испытание модели космической катапульты. Модификация конструкции модели путём изменения кулачкового механизма. Построение модели катапульты из блоков LEGO WeDo. Использование ремня для удержания. Использование датчика наклона для создания системы управления.
Занятие 24: Шагоход. Программирование структуры в соответствии с алгоритмом, который делает зависимость работы моторов и звуков от датчика расстояния. Построение модели шагохода из блоков LEGO WeDo. Использование датчика расстояния для построения системы управления. Использование червячного механизма для сборки шагохода.
Занятие 25: Спутники. Изучение работы спутников земли. Построение и изучение работы спутников земли. Использование датчика расстояния для построения системы управления. Программирование структуры в соответствии с алгоритмом, который делает зависимость скорости двигателя от значения дисплея датчика расстояния.
Занятие 26: Галактическая игра. Обсуждение принципов работы простых машин. Изучение конструкции и принципов работы конвейера. Построение модели крана из блоков LEGO WeDo. Использование шинного зацепления для сборки вращающегося конвейера. Использование датчика наклона для создания системы управления скоростью и направлению вращения мотора. Использование условного оператора в задаче программирования.
Занятие 27: Знание о конструкции и работе многоколесного робота-марсохода. Обсуждение роли развития робототехники в освоении других планет. Строительство марсохода из блоков LEGO WeDo. Использование червячного механизма для движения переднеприводного робота. Использование кубиков для движения робота как боковые колеса. Программирование структуры в соответствии с алгоритмом, который делает зависимость скорости двигателя от значения дисплея датчика расстояния. Конструирование модели. Написание для нее программы. Изучение соревнований.
Занятие 28: Круглые роботы. Знание о конструкции и работе круглого робота-лунохода. Обсуждение роли развития робототехники в освоении других планет. Строительство лунохода из блоков LEGO WeDo. Использование червячного механизма для движения конструкции всего робота. Использование кубиков для движения робота как боковые колеса.
Занятие 29: Космолет. Обсуждение работы космолетов и ракет. Сравнение конструкций ракеты и космолета. Строительство космолета из блоков LEGO WeDo. Использование сложного механизма в построении космолета. Использование датчика наклона для создания системы управления космолетом. Программирование соответствующего звукового сопровождения, чтобы поведение модели стало более эффектным. Программирование структуры в соответствии с алгоритмом. Использование условных инструкций и программных циклов
Занятие 30: Станция связи. Планирование и сборка станции связи. Практическое использование изученных передач. Использование знаний о датчиков и моторов, для построение автоматизированной станции связи. Развитие навыков группового взаимодействия.
Занятие 31: Космическая станция. Закрепление полученных знаний в ходе блока обучения. Построение выбранного роботизированного механизма из блоков Lego Wedo. Использование датчиков для управления. Использование изученных механизмов для сборки роботов для космоса, доработка. Практическое использование функций в скрипте, использование
Занятие 32: Итоговый тест.

Занятие 1: Робофутбол.
Занятие 2: Робофутбол.
Занятие 3: Робофутбол.
Управление роботом, полоса препятствий, мини заезд.
Занятие 4: Робофутбол.
Внутренние соревнования.
Занятие 5: Перетягивание каната
Знакомство с правилами, создание модели робота в программе Lego Digital Designer
Занятие 6: Перетягивание каната
Сборка модели по собственной схеме, первая апробация, устранение недостатков.
Занятие 7: Перетягивание каната
Занятие 8: Перетягивание каната
Внутренние соревнования.
Занятие 9: Шагающие роботы
Знакомство с правилами, создание модели робота в программе Lego Digital Designer
Занятие 10: Шагающие роботы
Сборка модели по собственной схеме, первая апробация, устранение недостатков.
Занятие 11: Шагающие роботы
Программирование, запуск программы.
Занятие 12: Шагающие роботы
Внутренние соревнования.
Занятие 13: Теннис роботов
Знакомство с правилами, создание модели робота в программе Lego Digital Designer
Занятие 14: Теннис роботов
Сборка модели по собственной схеме, первая апробация, устранение недостатков.
Занятие 15: Теннис роботов
Программирование, запуск программы.
Занятие 16: Теннис роботов
Внутренние соревнования.
Занятие 17: Кегельринг
Знакомство с правилами, создание модели робота в программе Lego Digital Designer
Занятие 18: Кегельринг
Сборка модели по собственной схеме, первая апробация, устранение недостатков.
Занятие 19: Кегельринг
Программирование, запуск программы.
Занятие 20: Кегельринг
Внутренние соревнования.
Занятие 21: Сумо
Знакомство с правилами, создание модели робота в программе Lego Digital Designer
Занятие 22: Сумо
Сборка модели по собственной схеме, первая апробация, устранение недостатков.
Занятие 23: Сумо
Программирование, запуск программы.
Занятие 24: Сумо
Внутренние соревнования.
Занятие 25: Траектория
Знакомство с правилами, создание модели робота в программе Lego Digital Designer
Занятие 26: Траектория
Сборка модели по собственной схеме, первая апробация, устранение недостатков.
Занятие 27: Траектория
Программирование, запуск программы.
Занятие 28: Траектория
Внутренние соревнования.
Занятие 29-31: Творческая номинация. Создание проекта
Занятие 32: Итоговый тест.

Занятие 1: Вводное занятие. Знакомство с конструктором. Конструирование модели подъемник. Изучат работу мотора. Познакомятся с ПО и запрограммируют подъемник на движение.
Занятие 2: Автоматические двери. Дети сконструируют автоматические двери. Продолжат работать с большим мотором;
Продолжат изучать интерфейс ПО (блоки: начало, большой мотор, ожидание, цикл);
Занятие 3: Робот гимнаст. Продолжат знакомиться с набором Lego EV3; Собирут модель «Робот-гимнаст»; Познакомиться с разными режимами большого мотора;
Продолжат изучать интерфейс ПО (блоки: начало, большой мотор, ожидание).
Занятие 4: Робот-пятиминутка. Продолжат знакомиться с набором Lego EV3;
Соберут модель «Робот-пятиминутка»; Продолжат работать с большим мотором;
Продолжат изучать интерфейс ПО (блоки: начало, рулевое направление, ожидание, цикл);
Занятие 5: Мойщик пола. Продолжат знакомиться с набором Lego EV3; Соберут модель «Мойщик пола»; Продолжат работать с большими моторами; Продолжат изучать интерфейс ПО (блоки: начало, рулевое и независимое направление, ожидание, цикл, звук, экран);
Занятие 6: Приводной бот. Узнают о понижающей передаче. Продолжат знакомиться с набором Lego EV3; Соберут модель «Приводной бот»; Продолжат работать с большими моторами; Продолжат изучать интерфейс ПО (блоки: начало, рулевое и независимое направление, ожидание, цикл, звук, экран);
Занятие 7: Скоростной бот. Узнают о повышающей передаче. Продолжат знакомиться с набором Lego EV3; Соберут модель «Скоростной бот»; Продолжат работать с большими моторами; Продолжат изучать интерфейс ПО (блоки: начало, рулевое и независимое направление, ожидание, цикл, звук, экран);
Занятие 8:Цветок. Продолжат знакомиться с набором Lego EV3; Соберут модель «Цветок»; Познакомиться с понятием «коническая зубчатая передача». Продолжать изучать интерфейс ПО (блоки: начало, рулевое и независимое направление, ожидание, цикл, звук, экран);
Занятие 9: Ворота
Занятие 10: Промежуточный тест (теория, конструирование и программирование).

Занятие 11: Робот – погрузчик. Продолжат знакомиться с набором Lego EV3; Соберут модель «Ворота»; Продолжат работать со средним мотором; Продолжат изучать интерфейс ПО (блоки: начало, рулевое и независимое направление, ожидание, цикл, звук, экран);
Занятие 12: Приводная платформа. Продолжат знакомиться с набором Lego EV3;
Соберут модель «Приводная платформа EV3»; Продолжат работать с большими моторами; Продолжать изучать интерфейс ПО (блоки: начало, рулевое и независимое направление, ожидание, цикл, звук, экран);
Занятие 13: Ультразвуковой датчик. Продолжат знакомиться с набором Lego EV3;
Соберут свою модель робота; Продолжат работать с ультразвуковым датчиком;
Продолжать изучать интерфейс ПО (блоки: начало, рулевое и независимое направление, ожидание, цикл, звук, экран);
Занятие 14: Датчик цвета. Продолжат знакомиться с набором Lego EV3;
Соберут свою модель робота; Познакомятся с работой датчика цвета; Продолжат изучать интерфейс ПО (блоки: начало, рулевое и независимое направление, ожидание, цикл, звук, экран, переключатель);
Занятие 15: Датчик цвета. Продолжат знакомиться с набором Lego EV3; Соберут свою модель робота; Познакомятся с работой датчика цвета;
Продолжат изучать интерфейс ПО (блоки: начало, рулевое и независимое направление, ожидание, цикл, звук, экран, переключатель);
Занятие 16: Гироскопический датчик. Продолжат знакомиться с набором Lego EV3;
Соберут свою модель робота. Познакомятся с работой датчика цвета; Продолжат изучать интерфейс ПО (блоки: начало, рулевое и независимое направление, ожидание, цикл, звук, экран, переключатель);
Занятие 17: Танцующий робот. Продолжат знакомиться с набором Lego EV3;
Соберут свою модель робота; Продолжат изучать интерфейс ПО (блоки: начало, рулевое и независимое направление, ожидание, цикл, звук, экран, переключатель); Придумают свою программу.
Занятие 18: Щенок. Повторят знания о датчиках;
Соберут свою модель робота; Познакомятся с работой датчика цвета;
Занятие 19: Робофутбол. Познакомятся с регламентом соревнований;
Выявят сложные моменты в процессе подготовки; Создадут собственного робота; Научатся работать в программе Lego Commander;
З анятие 20: Промежуточный тест (теория, конструирование и программирование).
Занятие 21: Шагающий робот. Изучат механизм для создания шагающего робота. Повторят знания о датчиках;
Соберут модель робота; Повторят интерфейс ПО (блоки: начало, рулевое и независимое направление, ожидание, цикл, звук, экран, переключатель);
Занятие 22: Шагающий робот. Продолжат изучение механизма для создания шагающего робота. Повторят знания о датчиках;
Соберут модель робота «муха»; Повторят интерфейс ПО (блоки: начало, рулевое и независимое направление, ожидание, цикл, звук, экран, переключатель);
Занятие 23: Рисовальщик. Повторят знания о траектории; Соберут модель робота;
Повторят интерфейс ПО (блоки: начало, рулевое и независимое направление, ожидание, цикл, звук, экран, переключатель);
Занятие 24: Декор яиц. Повторят знания о траектории;
Соберут модель робота; Повторят интерфейс ПО (блоки: начало, рулевое и независимое направление, ожидание, цикл, звук, экран, переключатель); Запрограммируют робота для декора яиц.
Занятие 25: Сортировщик цветов (мини) .
Занятие 26: Перемещатель. Повторят знания о датчике цвета; Соберут модель робота; Повторят интерфейс ПО (блоки: начало, рулевое и независимое направление, ожидание, цикл, звук, экран, переключатель, знакомство с блоками математики и переменных);
Занятие 27: Контейнер для шаров. Повторят знания о датчике цвета;
Соберут модель робота; Повторят интерфейс ПО (блоки: начало, рулевое и независимое направление, ожидание, цикл, звук, экран, переключатель, знакомство с блоками математики и переменных);
Занятие 28:Контейнер для шаров. Повторят знания о датчике цвета;
Соберут модель робота; Повторят интерфейс ПО (блоки: начало, рулевое и независимое направление, ожидание, цикл, звук, экран, переключатель, знакомство с блоками математики и переменных);
Занятие 29-30: Дети пишут свой проект. Придумывают модель робота и пишут для него программу.

Занятие 31: Дети доделывают проект, вносят коррективы. Защищают проекты перед родителями.

Занятие 32: Итоговый тест.

Занятие 1: Лифт-подъемный механизм . Знакомство с программой.
Изучение основных механизмов в конструкциях. Основы программирования. Сборка механизмов из блоков LEGO WeDo. Использование двигателя и шкива для создания модели лебедки лифта.
Занятие 2: Стрекоза. Обсуждение вопросов связанных с насекомыми.
Построение модели робо-стрекозы. Применение механизмов зубчатой передачи для движения робота. Использование мотора как двигателя механизма. Практическое применение зубчатой придачи, использование различных шестеренок. Знакомство с циклом, блоками программирования моторов.
Занятие 3: Лягушка. Обсуждение принципов работы датчиков. Изучение лягушки и построение модели. Построение модели лягушки из блоков LEGO WeDo. Использование датчиков для запуска программы. Использование условного оператора в задаче программирования. Использование цикла в программе.
Занятие 4: Пеликан. Обсуждение разновидностей птиц, мест их обитания и строение.
Строительство модели птицы из блоков LEGO WeDo. Использование циклов и режима ожидания.
Изучение работы повышенной зубчатой передачи. Совместное использование ременной и зубчатой передачи. Изучение систем шкивов и ремней (ременных передач) и механизма замедления, работающих в модели.
Занятие 5: Аллигатор. Изучение систем шкивов и ремней (ременных передач).
Изучение жизни животных. Создание и программирование моделей с целью демонстрации знаний и умения работать с цифровыми инструментами и технологическими схемами. Построение модели аллигатора из блоков LEGO WeDo и ее испытание. Усложнение поведения за счет установки на модель датчика расстояния и синхронизации звука с движением модели.
Занятие 6: Лев. Изучение процесса передачи движения и преобразования энергии в модели. Ознакомление с работой коронного зубчатого колеса в этой модели. Изучение льва, его строения, место обитания. Создание и испытание движущейся модели льва. Усложнение поведения путем добавления управление голосом и
программирования воспроизведения звуков синхронно с движениями льва. Понимание того, как при помощи зубчатых колёс можно изменить направление
движения. Понимание и использование числового способа задания звуков и
продолжительности работы мотора.
Занятие 7: Лягушка. Знакомство с системой шкивов и ремней (ременных передач), работающих в модели. Анализ влияния смены ремня на направление и скорость движения. Построение, программирование и испытание модели «Лягушка». Изучение процесса передачи движения и преобразования энергии в модели. Изучение кулачкового механизма, работающего в модели. Понимание основных принципов проведения испытаний и их обсуждение.
Занятие 8: Жираф. Изучение рычажного механизма. Создание и испытание модели жирафа из блоков LEGO WeDo. Программирование соответствующего звукового сопровождения. Усложнение поведения за счет установки на модель датчика наклона.
Построение и изучение сложного механизма. Изучение строения, местообитание жирафа.
Занятие 9: Обезьяна. Изучение рычажного механизма и влияние конфигурации кулачкового механизма на ритм барабанной дроби. Создание и испытание модели барабанящей обезьянки. Модификация конструкции модели путём изменения кулачкового механизма с целью изменения ритма движений рычагов. Программирование соответствующего звукового сопровождения, чтобы поведение модели стало более эффектным.
Занятие 10: Промежуточный тест. (теория, конструирование, практика)
Занятие 11: Самолет.
Построение модели самолёта, испытание её движения и уровня мощности мотора. Усовершенствование модели самолёта путём программирования звуков, зависящих от показаний датчика наклона. Понимание и использование принципа управления звуком и мощностью мотора при помощи датчика наклона. Изучение процесса передачи движения и преобразования энергии в модели.
Занятие 12: Нефтяная вышка. Понимание концепции и обсуждения свойств энергетических ресурсов на примере нефти масло. Обсуждение роли двигателя внутреннего сгорания в промышленном развитии. Построение модели насоса из блоков LEGO WeDo. Использование датчика расстояния для построения системы управления.
Использование кривошипного механизма для сборки насоса. Программирование структуры в соответствии с алгоритмом, который делает зависимость скорости двигателя от значения дисплея датчика расстояния. Создание программы в соответствии с алгоритмом, который добавляет и вычитает из фиксированного значения. Практическое использование операций сложения и вычитания до 10.
Занятие 13: Ветряк. Обсуждение типов возобновляемых источников энергии и способов их использования пример ветровой турбины. Определение концепции скорости.
Строительство модели ветряной мельницы из блоков LEGO WeDo. Обсуждение работы механизмов и их различных типов и их практических. Программирование структуры в соответствии с алгоритмом, который учитывает вращение винта мельницы. Использование показаний датчика расстояния для запуска математической
операции. Использование добавления в задаче программирования. Использование деления при расчете передаточных чисел.
Занятие 14: Пожарная машина. Обсуждение вопросов, связанных с явлением сжигания.
Построение модели пожарного двигателя из блоков LEGO WeDo. Применение механизмов преобразования вращения к поступательному движению. Использование датчика наклона для изменения работы робота в зависимости от положение лестницы. Практическое применение свойств червячной передачи и зубчатого механизма. Использование датчика наклона для программирования системы управления автомобилем кочегар. Использование компьютерной клавиатуры для программирования системы управления автомобилем. Использование операций сложения и вычитания до 10 в задаче программирование.
Занятие 15: Вилочный погрузчик. Знание о конструкции и работе штабелера Обсуждение роли развития робототехники в промышленности и логистике. Строительство штабелера с блоками LEGO WeDo. Использование червячного механизма для сборки накопителя. Использование датчика наклона для создания системы управления укладчиком. Использование датчика наклона для программирования системы управления укладчиком. Использование условного оператора в задаче программирования
Занятие 16: Лифт. Понимание концепции простых машин на примере рычага и шкива.
Понимание приложений простых машин в строительстве на других построениях. Понимание механизма работы лифта. Создание модели лифта с блоками LEGO WeDo.
Использование двигателя и шкива для создания модели лебедки лифта. Использование компьютерной клавиатуры для программирования системы управления. Измерение и сравнение измерений времени с секундомером.
З анятие 17: Вертолет. Обсуждение источника вертолетного носителя. Сравнение конструкции и эксплуатации самолета и вертолета. Строительство вертолетной модели от блоков LEGO WeDo. Использование вала для сборки вертолетного привода. Использование датчика наклона для создания системы управления вертолетом. Использование механизма для создания вертолетного привода. Программирование структуры в соответствии с алгоритмом, который делает зависимость скорости двигателя от значения дисплея датчика расстояния. Использование условных инструкций и программных циклов. Использование многопоточной программы.
Занятие 18: Манипулятор. Понимание влияния развития робототехники на деятельность человека. Обсуждение принципов выбора строительных решений для специфики конкретных задач. Создание модели манипулятора из блоков LEGO WeDo. Использование датчика наклона для создания системы управления
манипуляторами. Использование червячного механизма для создания захвата манипулятора. Использование датчика наклона для программирования системы управления манипуляторами. Использование многофункциональной программы. Использование математических операций (деление). Измерение и сравнение измерений времени с секундомером.
Занятие 19: Кран. Обсуждение принципов работы простых машин. Знание конструкции и принципов работы крана. Построение модели крана из блоков LEGO WeDo. Использование зубчатого зацепления для сборки вращающейся крановой
башни. Использование датчика наклона для создания системы управления краном. Использование датчика наклона для программирования системы управления
краном. Использование условного оператора в задаче программирования.
Занятие 20: Промежуточный тест(теория, конструирование, практика)
Занятие 21: Соревнования.
Проверка на знание механизмов детей после прохождения всех 3 блоков. Проверка на использование блоков программирования. Проверка скорости конструирования. Проверка на правильность конструкции.
Занятие 22: Дройд. Понимание концепции и обсуждения свойств сигнализации, охранных систем. Обсуждение роли датчиков в жизни человека. Построение модели друида из блоков LEGO WeDo. Использование датчика расстояния для построения охранной системы. Использование сложного углового механизма для работы охранной
системы. Программирование структуры в соответствии с алгоритмом, который делает
зависимость работы моторов и звуков от датчика расстояния.
Занятие 23: Катапульта. Изучение рычажного механизма. Создание и испытание модели космической катапульты. Модификация конструкции модели путём изменения кулачкового механизма. Построение модели катапульты из блоков LEGO WeDo. Использование ремня для удержания. Использование датчика наклона для создания системы управления
Занятие 24: Шагоход. Программирование структуры в соответствии с алгоритмом, который делает зависимость работы моторов и звуков от датчика расстояния. Построение модели шагохода из блоков LEGO WeDo. Использование датчика расстояния для построения системы управления. Использование червячного механизма для сборки шагохода.
Занятие 25: Спутники. Изучение работы спутников земли. Построение и изучение работы спутников земли. Использование датчика расстояния для построения системы управления. Программирование структуры в соответствии с алгоритмом, который делает
зависимость скорости двигателя от значения дисплея датчика расстояния.
Занятие 26: Галактическая игра . Обсуждение принципов работы простых машин. Изучение конструкции и принципов работы конвейера. Построение модели крана из блоков LEGO WeDo. Использование шинного зацепления для сборки вращающегося конвейера. Использование датчика наклона для создания системы управления скоростью и направлению вращения мотора. Использование условного оператора в задаче программирования.
Занятие 27: Знание о конструкции и работе многоколесного робота-марсохода . Обсуждение роли развития робототехники в освоении других планет. Строительство марсохода из блоков LEGO WeDo. Использование червячного механизма для движения переднеприводного робота. Использование кубиков для движения робота как боковые колеса. Программирование структуры в соответствии с алгоритмом, который делает зависимость скорости двигателя от значения дисплея датчика расстояния. Конструирование модели. Написание для нее программы. Изучение соревнований.
Занятие 28: Круглые роботы. Знание о конструкции и работе круглого робота-лунохода. Обсуждение роли развития робототехники в освоении других планет. Строительство лунохода из блоков LEGO WeDo. Использование червячного механизма для движения конструкции всего робота. Использование кубиков для движения робота как боковые колеса.
Занятие 29: Космолет. Обсуждение работы космолетов и ракет. Сравнение конструкций ракеты и космолета. Строительство космолета из блоков LEGO WeDo. Использование сложного механизма в построении космолета. Использование датчика наклона для создания системы управления космолетом. Программирование соответствующего звукового сопровождения, чтобы поведение модели стало более эффектным. Программирование структуры в соответствии с алгоритмом. Использование условных инструкций и программных циклов
Занятие 30: Станция связи. Планирование и сборка станции связи. Практическое использование изученных передач. Использование знаний о датчиков и моторов, для построение автоматизированной станции связи. Развитие навыков группового взаимодействия.
Занятие 31: Космическая станция. Закрепление полученных знаний в ходе блока обучения. Построение выбранного роботизированного механизма из блоков Lego
Wedo. Использование датчиков для управления. Использование изученных механизмов для сборки роботов для космоса, доработка. Практическое использование функций в скрипте, использование
переменных. Практическое использование сложения и вычитания, умножения и деления. Обсуждение и планирование единой системы по освоению космоса. Создание программ в соответствии с алгоритмом и поставленными задачами
Занятие 32: Итоговый тест.

Краткое описание


В данном курсе рассмотрено:


- выход из цикла;
- работа с переключателем;

Полное описание

Lego Mindstorms EV3 далеко не самая сложная среда программирования. Но это не означает, что освоить её раз плюнуть. Для тех, кто ни разу до этого не программировал, её освоение может отнять не один год. И я не преувеличиваю. Без понятного пособия, и постоянной практики, освоение программирования роботов в Lego Mindstorms EV3 может занять до 2 лет.

Не буду скрывать – есть хорошие книги по программированию на Lego Mindstorms EV3. Единственный их недостаток – это не самая сильная наглядность. В книгу не разместишь видео. Не запишешь голосовое объяснение «кода» программы.

Именно поэтому, я сделал курс по программированию в Lego Mindstorms EV3 в формате коротких видео уроков.

Состав курса.

Данный видеокурс состоит из более чем 30 видео и 3 инструкций по сборке роботов.
В данном курсе рассмотрено:
- создание простейших программ;
- выполнение программы в цикле;
- выход из цикла;
- работа с переключателем;
- рассмотрены переменные и константы;
- езда по черной линии на одном датчике цвета и т.д.

Стоимость.

На данный момент, цена курса 1000 р. П

Вы можете возразить – что 1000 р. это дорого. Да, это дороже чем книга. Но в отличие от книги, Вы не просто прочитаете, а затем посмотрите картинки. Вы сможете посмотреть на роботе в действии воочию. И как минимум на видео. А если захотите, то и построите его по предложенной мной инструкции (всего их 3).
И второе отличие от книги – это возможность задать вопрос по программированию Lego Mindstorms EV3 лично мне. Что – то в курсе непонятно, и вызывает вопросы? Не проблема. На сайте есть мои контакты. Берёте и спрашиваете.

Гарантия.

Если после изучения курса, Вы так и не сможете программировать, я верну Вам деньги. Для этого напишите мне на e-mail, что желаете вернуть деньги, и я сделаю Вам возврат.

P . S . Курс будет дорабатываться и видоизменятся. После его покупки, он будет доступен в личном кабинете неограниченное количество времени. Поэтому купить сейчас действительно выгодно.

Демо - доступ

Sp-force-hide { display: none;}.sp-form { display: block; background: #ffffff; padding: 15px; width: 450px; max-width: 100%; border-radius: 8px; -moz-border-radius: 8px; -webkit-border-radius: 8px; border-color: #dddddd; border-style: solid; border-width: 1px; font-family: Arial, "Helvetica Neue", sans-serif; background-repeat: no-repeat; background-position: center; background-size: auto;}.sp-form input { display: inline-block; opacity: 1; visibility: visible;}.sp-form .sp-form-fields-wrapper { margin: 0 auto; width: 420px;}.sp-form .sp-form-control { background: #ffffff; border-color: #cccccc; border-style: solid; border-width: 1px; font-size: 15px; padding-left: 8.75px; padding-right: 8.75px; border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; height: 35px; width: 100%;}.sp-form .sp-field label { color: #444444; font-size: 13px; font-style: normal; font-weight: bold;}.sp-form .sp-button { border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; background-color: #0089bf; color: #ffffff; width: auto; font-weight: 700; font-style: normal; font-family: Arial, sans-serif; box-shadow: none; -moz-box-shadow: none; -webkit-box-shadow: none;}.sp-form .sp-button-container { text-align: left;}

Курс программирования робота EV3 в среде Lego Mindstorms EV3

Учебно-методический центр РАОР рад представить выход переиздания увлекательной книги «Курс программирования робота EV3 в среде Lego Mindstorms EV3 » от талантливого коллектива авторов – семьи Овсяницких.

В книге рассмотрена среда программирования Lego Mindstorms EV3 для программирования робота на базе конструктора Lego EV3 .

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

Рассмотрены программные структуры для работы с данными, массивами и файлами. Продемонстрированы различные способы соединения роботов для организации их совместной работы.

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

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

Все алгоритмы сопровождаются подробными описаниями и программными решениями.

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

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

Приобрести книгу Вы можете на сайте edusnab.ru .

В честь выхода книги Дмитрий Николаевич Овсяницкий рассказал редакции портала сайт об особенностях и дополнениях нового издания всем полюбившегося учебника, а также ответил на несколько вопросов «о робототехнике, образовании и повседневной жизни».

– Дмитрий Николаевич, что подтолкнуло Вас к переизданию именного этого учебного пособия?

За это время мы периодически сталкивались со странным и необъяснимым, на первый взгляд, поведением программы. Было очень интересно находить причины. И вот эти «странности» мы внесли в книгу под названием «Загадки», чтобы читатели могли задуматься над интересными вещами (PS Ответы прилагаются).

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

– Почему именно конструктор Lego ?

Про Лего можно говорить очень много и разного. Просто так получилось, что впервые с робототехникой мы столкнулись именно на базе данного конструктора. Здесь имеется в виду именно детской робототехникой, т.к. с промышленной знакомы уже очень давно. Конструктор нравится простотой, безопасностью для детей, а главное, что он представляет из себя комплект «всё в одном». Т.е. сразу и механика, и моторы, и блок управления, и датчики. Очень удобно. Кроме того, есть Лего Техникс, где ещё больше разнообразных деталей, и все они сопрягаются с Mindstorms. Очень дружественная для детей среда программирования. Вот блок с моторами, нажал пару цифр, и мотор заработал. Просто, понятно и мгновенный ответ. Замечательно.

– Планируете ли Вы учебники по другим конструкторам?

Нет, по другим конструкторам учебники не планируем. По Лего ещё не початый край работы.

– Как Вы относитесь к свободным робототехническим платформам? За ними будущее, или они так и останутся аутсайдерами мира робосоревнований?

Ух, какие вопросы. Как все люди, мы в полной мере относимся к свободной биоробототехнической платформе – Homo sapiens. С другой стороны, если брать всё разнообразие используемых для построения роботов платформ, то тут наше мнение и отношение к ним, мы полагаем, вообще никакой роли ни играет, особенно для их разработчиков. По поводу соревнований, мы только «ЗА», единственно, не надо их смешивать. Каждая имеет свои достоинства и недостатки. Например: если разобрать EV3 блок, оставить только контроллер, перешить его на Си и подключить к нему моторы, которые ставят на Ардуино, то сравнивать нельзя, т.к. EV3 в десятки раз мощнее. Давайте у детей проводить соревнования в равных базовых условиях, чтобы оценивать разнообразие приложенных усилий. Ведь все «машинки» всё равно будут разные.

– Считаете ли Вы необходимым внедрение робототехники в естественно-научный цикл предметов школьной программы? Как Вы относитесь к идее выстраивания уроков по предмету «Технология» на базе робототехнических конструкторов?

Мы считаем, что внедрение робототехники в школьную программу, как в естественнонаучный цикл, так и в предмет «Технология», будет ошибочным. Во-первых, школа должна давать базовые основы знаний по конкретным предметам и наукам, а робототехника – это сплав разных наук и очень обширна по своей сути. Во-вторых, для создания робота нужна команда, где каждый участник специализируется в своей области – механика, математика, программирование. В-третьих, каждый робот создаётся под конкретную задачу. У школы уже есть своя задача.

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

А вот кружки при школе, это здорово. Использовать потенциал школы для расширения знаний в разных науках на простых примерах – роботах, это было бы, с нашей точки зрения, более лучшее решение.

– Какие планы на будущее…учебники, может свой конструктор создадите?

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

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

– Какие проблемы Вы видите перед робототехникой в нашей стране, чего не хватает?

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

– Как Вам помогает увлечение робототехникой в повседневной жизни?

Реально, никак не помогает. Всё время занято данным увлечением. Отвлечься и отдохнуть не получается. Робототехника – это вред для повседневной жизни. Голова занята какими-то идеями, мыслями, ручки – «мастерилками», глазки компьютером. Любимая поговорка в семье – «Неужели есть люди, которые могут сидеть на диване и смотреть телевизор? Врут, такого не бывает!»

Рейтинг:

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

Эти блоки можно представить в качестве "регулировщиков" программы: они прикажут остановиться и продолжить движение программы, перейти на соседнюю ветку или идти по кругу.

По сравнению с NXT было добавлено 2 новых блока:

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


Блок "Начало"

Возможно, вы обратили внимание на то, что первый блок всех EV3 программ - блок с зеленой стрелкой. Этот блок - "Начало". Без него не обойдется ни одна программа - именно с него и начинается выполнение команд. Если перед последовательностью блоков не поставить "Начало", то такая программа выполняться не будет.
Например, по программе, представленной ниже, робот будет кружится вокруг оси (будет выполняться верхняя последовательность действий), но не будет проигрывать аудио файлы и зажигать подсветку кнопок (нижняя последовательность без блока "Начало" не активна):

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


Все такие последовательности будут выполняться одновременно.

Замечу, что зеленая стрелка на блоке - это не декоративный элемент. Если блок подключен к компьютеру (неважно как: через usb, wi-fi или bluetooth), то нажатие на стрелку запустит данную последовательность на выполнение.

Блок "Ожидание"

Этот блок тоже является одним из самых используемых. На нем программа "зависает" - последующие блоки программы не выполняются - и ждет определенное количество времени или определенного значения датчика.
У "Ожидание" большое число режимов, которое может испугать:


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

Вторая программа представляет из себя начало классического решения в соревновании "Кегельринг": робот кружится вокруг своей оси до тех пор, пока не увидит перед собой банку:

Следующая программа включает мотор А, и после того, как он сделает 5 оборотов, выключает его:

Работа этого блока с bluetooth ничем не отличается от работы с любым сенсором. Например, следующая программа ожидает сообщения "HI" и после этого зажигает подсветку зеленым и проигрывает звуковой файл:

Блок "Цикл"

Это особый блок - внутрь его можно вставлять другие блоки. Блоки, находящиеся внутри, будут повторяться. Режимы блока "Цикл" задают способ, который определяет, когда цикл должен завершиться. Большинство этих режимов мы уже знаем по предыдущему блоку ожидания, однако добавилось несколько новых:

  • Неограниченный - такой цикл будет выполняться, пока не будет принудительно завершена программа
  • Подсчет - цикл будет повторяться заданное число раз
  • Логическое значение - цикл будет повторяться, пока заданное значение не будет истиной
  • Время - цикл будет повторяться заданное время
  • Показание датчика:
    • сравнение - цикл будет повторяться, пока датчик не примет заданное значение
    • изменить - цикл будет повторяться, пока показание датчика не изменится на указанную величину, по сравнению с начальным значением.
Над блоком написано имя цикла - 01, 02, .... Это имя может использоваться в блоке прерывания цикла, который будет описан позднее.
Рассмотрим примеры. По этой программе робот будет ехать прямо и поворачивать, до тех пор, пока программу не остановят (используется бесконечный цикл):

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

Цикл со счетчиком позволяет проиграть ноту 10 раз:

С режимом логического значения придется использовать еще не изученные блоки опроса датчиков. Данная программа заставляет робота ехать вперед до тех пор, пока он не увидит предмет на расстоянии, меньше 20 см (первый блок цикла) или не наткнется на препятствие датчиком касания (второй блок цикла). Результат логической операции "ИЛИ" дает третий блок цикла:


Блок "Переключатель"

Аналогичный блок есть и в NXT, он позволяет в зависимости от значения переменной или показания датчика выполнять разные последовательности действий.
После выполнения данной последовательности действий, программа выполняет блоки, идущие за "Переключателем".
Режим данного блока определяет, значение какого датчика или переменной будет использоваться. Используются все те же режимы, что и блок "Цикл": можно использовать любой датчик (цвета, гироскопический, инфракрасный, ультразвуковой, вращения мотора и другие), числовое или текстовое значение, сообщение bluetooth.
Например, по данной программе робот сначала будет вращаться вокруг своей оси 5 оборотов мотора, а затем, в зависимости от показаний датчика гироскопа, ехать вперед или назад. Если угол, определяемый гироскопом, будет меньше 90 градусов, тогда робот поедет вперед. Если же угол меньше 90 градусов - тогда робот поедет назад.

Следующая программа представляет собой реализацию простейшего релейного регулятора для движения по черной линии:

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


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

Кнопка, переключающая режимы "плоский / подробный", обведена красным.

Блок "Прерывание цикла"

Этот блок новый, в NXT подобного блока не было. Он позволяет выходить из цикла - оставшиеся блоки цикла выполняться не будут, и программа перейдет к блокам после цикла. В "шапке" блока задается имя цикла, который должен быть завершен.
Например, цикл в программе должен повториться 5 раз, но если расстояние до предмета станет больше 50 сантиметров, то произойдет досрочный выход из цикла и робот проиграет звуковой тон:

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

В продолжение темы:
Устройства

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

Новые статьи
/
Популярные