Знакомство с вычислительными возможностями робота Lego mindstorms EV3
Содержание урока Введение: 3.1. Красная палитра – операции с данными 3.2. Числовые значения. Блок “Константа”, блок “Переменная” 3.3. Блок математика, блок округление 3.4. Примеры выполнения вычислений в программе
Введение:
Наше третье занятие мы посвятим изучению вычислительных возможностей модуля EV3 и разберем примеры практических решений задач на вычисление траектории движения. Снова запускаем среду программирования Lego mindstorms EV3, загружаем наш проект lessons.ev3 и добавляем в проект новую программу – lesson-3-4. Добавлять новую программу в проект мы научились с вами на предыдущем уроке.
3.1. Красная палитра – операции с данными
Программные блоки, необходимые для выполнения различных операций над числовыми, логическими или текстовыми данными, сосредоточены в красной палитре среды программирования Lego mindstorms EV3. Красная палитра содержит 10 программных блоков. В отличие от зеленой палитры – с программными блоками красной палитры мы будем знакомиться постепенно, по мере продвижения по курсу программирования и возникновения необходимости в новых программных конструкциях.
Рис.1
3.2. Числовые значения. Блок “Константа”, блок “Переменная”
Среда программирования Lego mindstorms EV3 позволяет нам обрабатывать в своих программах пять различных типов данных:“Текст”, “Числовое значение”, “Логическое значение”, “Числовой массив”, “Логический массив”. В сегодняшнем уроке мы научимся оперировать с числовыми данными. Тип данных “Числовое значение” позволяет нам выполнять различные математические операции над числами. Числа в программе могут быть как положительными, так и отрицательными, быть целыми значениями или содержать десятичную дробь. Примеры: -15; 3,145; 8; -247,34.
Перед тем, как начать обрабатывать различные типы данных в наших программах, нам надо научиться их создавать и хранить. Для этих целей среда программирования Lego mindstorms EV3 предоставляет два вида программных блоков: “Переменная” и “Константа”. Эти блоки позволяют создать в памяти робота специальные ячейки, позволяющие записывать, извлекать и редактировать различные типы данных. Программный блок “Константа” (Рис. 2) позволяет создавать ячейку памяти для хранения одного из пяти типов данных (Рис. 2 поз. 1). Требуемое значение записывается в ячейку на этапе создания программы (Рис. 2 поз. 2) и остается неизменным во время выполнения всей программы. Для получения значения, записанного в блок “Константа” используется “Вывод” (Рис. 2 поз. 3). Подробнее с извлечением данных из программных блоков мы познакомимся ниже при решении практической задачи Урока №3.
Рис. 2
В отличие от программного блока “Константа” – в блоке “Переменная” присутствуют два режима “Считывание” и “Записать” (Рис. 3 поз. 1). Перед первым использованием необходимо задать имя переменной, выбрав параметр блока “Добавить переменную” (Рис. 3 поз. 2). Имя переменной может содержать только заглавные и строчные буквы латинского алфавита, цифры, а также символы _ и –. Задать значение переменной можно, записав или передав число в параметр “Значение” (Рис. 3 поз. 3).
Рис. 3
3.3. Блок математика, блок округление
Для выполнения математических вычислений служит программный блок “Математика”. Он позволяет выполнить выбранную математическую операцию (Рис. 4 поз. 1) над двумя числами, заданными параметрами “a” и “b”. В режимах “Абсолютная величина” и “Квадратный корень” для вычисления доступен только один параметр “a”.
Рис. 4
Отдельно следует остановиться на режиме “Дополнения”. В этом режиме количество параметров для расчета увеличивается до четырех: “a”, “b”, “c” и “d”. В параметр “Уравнение” (Рис. 5 поз. 1) можно вписать любую произвольную формулу, производящую вычисления с этими параметрами.
Рис. 5
Иногда возникает необходимость произвести округление результата вычисления. Например: при отладке программы, можно выводить на экран модуля EV3 округленные промежуточные расчеты, чтобы легче было визуально контролировать ход выполнения программы. Для этого предназначен программный блок “Округление” (Рис. 6). Режимы “До ближайшего”, “Округлить к большему” и “Округлить к меньшему” производят округление до целого значения. В режиме “Отбросить дробную часть” можно задать количество остающихся знаков дробной части после запятой.
Рис. 6
3.4. Примеры выполнения вычислений в программе
Настало время применить полученные знания на практике.
Задача №4: необходимо написать программу прямолинейного движения для проезда роботом расстояния в 1 метр.
Решение:
За один полный оборот мотора робот проезжает расстояние, равное длине окружности колеса. Это расстояние можно найти, умножив число Пи (=3,14159) на диаметр колеса. Диаметр колеса из образовательного набора Lego mindstorms EV3 равен 56 мм, а – из домашнего набора Lego mindstorms EV3 равен 43,2 мм. Если переведем расстояние в 1 метр в миллиметры (1000 мм) и разделим на расстояние, которое робот проходит за один оборот мотора, то узнаем: сколько оборотов мотора необходимо для проезда всего заданного расстояния.
Рис. 7
Приступим к созданию программы:
- Используя программный блок “Константа”, заведем в программу постоянное число Пи, равное примерно 3,14159.
- Используя программный блок “Переменная”, создадим в программе переменную D и занесем в нее значение диаметра колеса в зависимости от используемого конструктора (если вы использовали другие колеса, то самостоятельно измерьте диаметр и внесите значение в программный блок).
- Используя программный блок “Математика”, умножим значение блока “Константа” на значение переменной D. Для передачи значения из переменной D в программный блок “Математика” используем второй программный блок “Переменная” в режиме “Считывание”! (Для передачи значений между программными блоками используются шины данных. Чтобы установить шину данных, необходимо “потянуть” выходной параметр одного программного блока и “присоединить” его к входному параметру другого программного блока)
- Используя программный блок “Математика”, разделим значение пути (1000 мм) на значение, полученное в шаге 3.
- Полученное в шаге 4 значение. округлив до двух знаков после запятой, выведем на экран модуля EV3.
- Полученное в шаге 4 значение подадим в параметр “Обороты” блока “Рулевое управление”.
Загрузим полученную программу в нашего робота. Поставим робота на ровную свободную площадку и запустим программу. Измерив расстояние, пройденное роботом, убедимся в правильности нашей программы!
Задача №5: необходимо написать программу, рассчитывающую значение параметра “Градусы” для разворота нашего робота (Урок №2, Задача №1)
Данная задача имеет сходство с предыдущей – нам только требуется найти расстояние, которое должны проехать колеса нашего робота. Для того, чтобы наш робот развернулся на 180 градусов – необходимо, чтобы правое и левое колеса, проехав определенный путь по окружности, поменялись местами. Как видим из Рис. 8 – каждое колесо при этом проедет ровно половину окружности с диаметром, равным расстоянию между центрами колес (красная линия на Рис. 8). Подходящей линейкой померяем расстояние между центрами колес. Для робота, собранного по инструкции small-robot-45544, это расстояние равно 120 мм. Следовательно, умножив это значение на число Пи (3,14159) и разделив на 2, мы найдем расстояние, которое должно проехать каждое из колес нашего робота. Как найти соответствующее этому расстоянию число оборотов мотора – мы разобрали в Задаче 4 данного урока. Для того, чтобы перевести полученное число оборотов в градусы – вспомним соотношение: 1 оборот мотора = 360 градусов. Следовательно, если мы, воспользовавшись программным блоком “Математика”, умножим полученное значение оборотов на 360 и подадим результат в параметр “Градусы” программного блока “Независимое управление моторами” (Урок №2 Рис. 7 поз. 2), то решим требуемую задачу.
Рис. 8
Попробуйте написать программу для решения задачи №5 самостоятельно, не подглядывая в решение!
Решение Задачи №5
Оптимизация решения Задачи №5 Одна из важнейших задач программиста, это не только решение поставленной задачи, а поиск оптимального решения, которое позволяет экономить память и вычислительные ресурсы. Давайте еще раз вернемся к решению Задачи №5. Обозначим через D1 – диаметр колеса нашего робота, а через D2 – расстояние между центрами колес. Тогда расстояние, пройденное каждым колесом при развороте может быть найдено по формуле: Расстояние, которое проезжает робот за один оборот, выражается формулой: Разделив первую формулу на вторую, вычислим значение оборотов двигателя для разворота робота: Чтобы получить необходимое нам значение градусов, умножим предыдущую формулу на 360: Итак: для того, чтобы развернуть нашего робота на 180 градусов, мы должны расстояние между центрами колес разделить на диаметр колеса и умножить на 180.
Решим нашу Задачу №5 с помощью программного блока “Математика” в режиме “Дополнения”:
ПрогХаус
Имея под рукой образовательный набор LEGO Mindstorms EV3 (45544) и шарики для пинг-понга вполне можно собрать пушку, стреляющую шариками. Пушкой можно управлять со смартфона с помощью приложения RoboCam.
Если вы горите желанием сделать робота с большими колёсами из образовательного набора LEGO Mindstorms EV3 (45544), но у вас нет таких колёс, не расстраивайтесь. Вы можете изготовить их самостоятельно из толстого гофрированного картона. Как сделать робота с большими картонными колёсами, чтобы колёса нормально крутились и не отваливались, я предлагаю вам прочитать в этой статье.
Чтобы программировать робота LEGO Mindstorms EV3 на языке Python мало знать только этот язык. Необходимо ещё иметь представление о библиотеке ev3dev.ev3, для работы с датчиками и моторами. А также не помешало бы иметь под рукой полноценную среду разработки с подсказками, подсветкой синтаксиса и отладчиком. В статье я опишу, как настроить EV3 и компьютер для комфортной разработки вашего проекта на Python.
Мне очень понравился проект робота-художника EV3 Print3rbot, в котором, к сожалению, используются нестандартные детали, которые нужно печатать на 3D-принтере. Я решил собрать такого же робота, но используя детали только из образовательного набора LEGO Mindstorms EV3 (45544). И у меня это получилось, правда, пришлось добавить ещё резинок.
Чтобы программировать робота LEGO Mindstorms EV3 на любимом языке программирования, использовать огромное количество продвинутых библиотек и получить доступ к дополнительному подключаемому оборудованию, такому как клавиатура, джойстики, мышки и камеры, вам просто необходимо использовать полноценную операционную систему. Здесь на помощь придёт ev3dev – операционная система, базирующаяся на Debian Linux. Я предлагаю вам познакомиться с процессом установки и настройки этой операционной системы.
С помощью дополнительных блоков можно существенно расширить возможности своей программы, созданной в среде разработке LEGO Mindstorms EV3. Читая эту статью вы изучите анатомию блока и научитесь создавать свои собственные блоки.
Роботом, собранным из конструктора LEGO Mindstorms EV3, вы легко можете управлять дистанционно от первого лица. Для этого вам дополнительно понадобится два смартфона, с установленным приложением RoboCam на один из них. Давайте познакомимся подробнее с приложением RoboCam и научимся им пользоваться.
Иногда, при создании роботов возникает необходимость использования нескольких различных платформ в одном проекте, например, EV3 и Arduino. Так вы сможете использовать сильные стороны каждой из платформ и распараллелить выполняемые задачи. Я предлагаю вам ознакомиться с переводом статьи, в которой описано, как соединить EV3 и Arduino и как использовать Arduino совместно с EV3.
Используя конструктор LEGO MINDSTORMS EV3 и веб-камеру, вы сможете провести эксперимент по обнаружению лиц в помещении. Для эксперимента подойдёт любой колёсный робот EV3, который умеет вращаться на месте, и на который вы сможете закрепить веб камеру. Робот будет сканировать помещение, поворачиваясь вокруг, а, увидев лица, будет останавливаться и дёргаться столько раз, сколько лиц увидел.
Open Roberta Lab или открытая лаборатория Роберты, робо-леди, которую вы видите на картинке – это облачная среда программирования роботов Lego Mindstorms EV3 очень похожая на Scratch 2, но не требующая установки на компьютер. Ваши готовые программы вы можете протестировать здесь же на симуляторе. Для программирования и использования симулятора вам достаточно иметь браузер и доступ в интернет.
С помощью веб-камеры и образовательного набора конструктора LEGO MINDSTORMS Education EV3 (45544) вполне можно сделать робота, отслеживающего двигающийся объект. Робот сможет не только поворачивать камеру в сторону объекта, но и выдерживать определённую дистанцию до него, т.е. подъехать поближе, если объект удаляется от камеры, или отъехать подальше, если объект приближается. О том, как это сделать поговорим в этой статье.
Гимнаста выполняющего различные упражнения на турнике сделать достаточно просто, если у вас есть образовательный конструктор LEGO MINDSTORMS Education EV3 (45544). Я научил гимнаста выполнять три упражнения, а вы можете научить его и другим различным трюкам.
Как известно, виртуальная Java-машина leJOS, которую мы можем использовать для программирования роботизированного конструктора LEGO Mindstorms EV3, совместима не только с официально поддерживаемым адаптером NETGEAR N150, но и с рядом других адаптеров. Здесь я предлагаю вам перевод статьи с официального блога leJOS, в которой приводится сравнение различных поддерживаемых WiFi-адаптеров.
Гоночную машину, имитирующую болид формулы 1, можно сделать с помощью образовательного набора LEGO MINDSTORMS Education EV3 (45544). В машине сидит водитель и держится за руль. Машина дистанционно управляется с Android-смартфона.
Эта статья будет интересна тем, кто хочет сделать программу для дистанционного управления роботом EV3 со стандартной заводской прошивкой через Bluetooth, WiFi или USB и не важно, с какого устройства или операционной системы. Здесь мы рассмотрим протокол взаимодействия между модулем EV3 и вашей программой.
Робот мойщик пола передвигается за счёт поворотов двух дисков параллельно полу. С помощью резинок на диски можно закрепить смоченные моющим раствором тряпки и тогда ваш пол станет немного чище.
С помощью чего только не программируются роботы LEGO Mindstorms EV3. Поддерживается большое количество языков программирования на любой вкус. Но сегодня я хочу рассказать вам, о самом, на мой взгляд, удобном и богатом, в плане возможностей, способе программирования роботов LEGO Mindstorms EV3. Удобный, потому что разрабатывать можно в среде разработки Eclipse на языке Java, а богатый, потому, что виртуальная машина Java для EV3, которая называется leJOS, поддерживает не только стандартные возможности EV3, но даёт и гораздо больше.
Если вам нравится графическая среда программирования Scratch 2.0, то вам необязательно отказываться от неё для программирования роботов Lego Mindstorms EV3. Достаточно лишь установить и настроить нужное программное обеспечение, о чём и будет написано в этой статье.
Этот робот с клешнёй умеет не только хватать, но и приподнимать предметы. И оба эти действия он делает с помощью всего одного мотора. А за счёт резиновых кончиков клешни, робот может приподнимать даже скользкие предметы. Ну и конечно, то, что робот схватил, он может перевезти на другое место.
Селеноход – это луноход, созданный российской командой для участия в конкурсе Google Lunar X PRIZE. В настоящий момент проект закрыт, но интересная конструкция с не менее интересной системой передвижения по лунной поверхности остались. С помощью стартового образовательного набора LEGO MINDSTORMS Education EV3 (45544) возможно собрать модель Селенохода, который будет передвигаться по такому же принципу и так же поднимать и опускать «голову».
In Kooperation mit Brose lernen die jungen Leute mit […] Hilfe sogenan nt e r Mindstorm N X T- Роботы […] и Einsatzmglichkeiten der Soft- […] и аппаратное обеспечение, проверенное и проверенное вручную, а также комплексное оборудование, обеспечивающее ИТ-подключение. karrierebeibrose.de karrierebeibrose.de | В сотрудничестве с Brose, […] молодой p люди us e Mindstorm N XT робот s […] о возможных применениях и использовании […] программное и аппаратное обеспечение и шаг за шагом расширять свои ИТ-компетенции, выполняя все более сложные задачи. karrierebeibrose.de karrierebeibrose.de | ||||||||||||||||||||||||||||||||||||||||
Dort knnte das N X T – Mindstorm – K i t […] des Schulunterrichtes seinen Einsatz finden, wenn sich die 10-16 Jhrigen […] Schler des Hnfelder FLL-Team erstmaligim Wettkampf mit anderen FLL-Schulteams beim Bau von Robotern miteinander messen. j-lasslop.de j-lasslop.de | Для этого e N XT- Mindstorm -Ki ts co ul d также […] находят свое применение вне школьных уроков у школьников 10-16 лет […] команды Hnfelder FLL впервые соревнуются с другими немецкими школьными командами в конструировании роботов. j-lasslop.de j-lasslop. de | ||||||||||||||||||||||||||||||||||||||||
Sie haben gemeinsam ein Handbuch zum Erlernen einer Programmiersprache fr Anfnger mit […] Hilfe DES LE G O – Mindstorm – R O BO TERS “Entwickelt. Landwehr -Software.de 66 Landwehr.soft. | В сотрудничестве они создали руководство для начинающих, желающих изучить язык программирования с […] помощь t он “L эго Mindstorm Роб от” . landwehr-software.de landwehr-software.de | ||||||||||||||||||||||||||||||||||||||||
Mit Hilfe von LE G O Mindstorm S t ei […] Roboter gebaut und entwickelt, welche in zeitgemen Programmiersprachen (C, […] Java) ber den Computer angesteuert werden. innocel.de innocel.de | Студенты u se LEG O Mindstorm c ompo ne […] проектирование и сборка роботов, которыми можно управлять через компьютер с использованием современных языков программирования (C и Java). innocel.de innocel.de | ||||||||||||||||||||||||||||||||||||||||
Auch Studierende Haben Die Gelegenheit, Unter Einsatz Von LE G O Mindstorm E I NF ACHE EIGEN ServiceRoTer ZU BaubeN Zu BaubeN Zu BaubeNEREN. et-inf.uni-hannover.de et-inf.uni-hannover.de | В то же время учащиеся имеют возможность сконструировать и запрограммировать собственного простого сервисного робота с помощью Le 9.0009 перейти Mindstorm . et-inf.uni-hannover.de et-inf.uni-hannover. de | ||||||||||||||||||||||||||||||||||||||||
Das zeige sich regelmig in der Robotix-AG der Gttinger […] Godehardschule, wo Matrix-Mitarbeiter Grundschlern ehrenamtlich das […] Programmieren von Le g o – Mindstorm – R o bo tern beibringen. matrixpharma.ca matrixpharma.ca | Это часто демонстрируется в Robotics-AG начальной школы Годехард в Геттингене, где […] сотрудники Матрицы обучают школьников […] программы нг L эго -Mindstorm- Роб ots i n сообщество […] Матрица инициировала информационный проект. matrixpharma.ca matrixpharma.ca | ||||||||||||||||||||||||||||||||||||||||
Schon heute den Ingenieur-Nachwuchs von [. ..] Morgen frdern” ist das Motto fr die bergabe […] Lego N X T – Mindstorm – K i ts […] und Kollegium der Wigbertschule в Хнфельде. j-lasslop.de j-lasslop.de | Поощряем сегодня подрастающее поколение инженеров […] завтрашнего дня” – девиз вручения […] Le go NXT -Mindstorm- Комплекты t o учеников […] и правление Wigbertschule в Хнфельде. j-lasslop.de j-lasslop.de | ||||||||||||||||||||||||||||||||||||||||
An diesem Tag bergibt der Geschftsfhrer der J. Lasslop GmbH, Маркус Ласслоп, […] im Rahmen von Kollegium und ausgewhlten Schlern ein groes Paket [. ..] mitLEGO N X T – Mindstorm – K i ts и умирает школа. j-lasslop.de j-lasslop.de | В этот день менеджер J. Lasslop GmbH, […] Маркус Ласслоп, передает большой пакет […] с LEG O NXT-Mindstorm-Kit s в школы […] доска и хорошо подобранные ученики информатики. j-lasslop.de j-lasslop.de | ||||||||||||||||||||||||||||||||||||||||
Die Zuschauer с копфкуном st – Mindstorm # 0 1 гамбургерские трапезы. on1.zkm.de on1.zkm.de | Приз e за t Любимое видео публики досталось Фальку фон Траубенбергу из Гамбурга за его “Kopfkunst – Mindstorm # 01”. on1.zkm.de на 1.zkm.de | ||||||||||||||||||||||||||||||||||||||||
Alle bungen beziehen sich auf die Programmierung des Le g o Mindstorm M
MINDSTORM Значение на английском языке – английский переводПосмотреть эту страницу в французский mindstorm mindstorm mindstorm и баскетбольные предпочтения в блоке Lego Мозговой Шторм . |