Поговорим о моторах EV3. В классических наборах Lego Technics есть следующие моторы:
Серво
Фото из открытых источников
Силовой XL
Фото из открытых источников
Моторы даны для примера. Есть и другие. Но. Если присмотреться, то эти моторы имеют два контакта - чтобы крутить их по часовой или против часовой стрелки. За это отвечает батарейный блок. Вот такой.
Фото из открытых источников.
То есть классические Lego моторы могут крутиться либо по часовой, либо против часовой стрелки на мощность, равную заряду батарей в батарейном блоке. Можно еще добавить инфракрасный приемник, который просто будет слать сигналы на моторы. Вот такой
Фото из открытых источников.
То есть чистая механика. Крутим во всю мощь либо туда, либо сюда.
Моторы и датчики EV3 подключаются вот таким двунаправленным кабелем.
Стандартный кабель EV3
В комплекте EV3 идет два больших мотора. (что в простом, что в Education)
Два больших мотора. Цифра 2 нас не интересует
По факту - это не мотор. И вот почему. Во-первых - это мотор-редуктор, в удлиненной части которого спрятана система шестерен, которая увеличивает крутящий момент. Но это было и в моторах электрических наборов Lego. Самое главное, что это - мотор с обратной связью, что больше похоже на серво-привод. Мотор «знает» на какой угол был повернут шпиндель, с какой скоростью, может «считать» количество оборотов и программно можно регулировать его скорость в пределах от 1 до 100%. Ну Lego так обещает, хотя погрешность там 5-10%. Скорость вращения заявлена в 2500 оборотов в минуту. Я не проверял.
Есть в комплекте и средний мотор.
Чтобы было понятно, он вращает черную ось продольно
Средний мотор умеет все то же самое, что и большой. Но передаточное число ниже, а скорость вращения заявлена в 1700 оборотов в минуту.
Судя по тенденции, Lego планировали выпустить и «Малый мотор», но мы его не увидели. Но, на что мы должны обратить внимание, такие моторы работают только с линейкой Mindstorms.
Резюмируя, моторы EV3 мы можем рассматривать как сервомоторы (то есть вращать с нужной точностью), либо как управляемые двигатели (крутить в ту или другую сторону с нужной скоростью).
Ну и естественно, моторы от других ревизий не подходят, кроме ранее выпускавшихся для робототехнических платформ RCX и NXT. Обратная совместимость работает, да, как и с датчиками.
Вы, наверное, часто слышали, что у кого-то ребенок ходит на робототехнику в кружок или занятия после школы. Я преподаю такие занятия и хотел бы вам рассказать, что это такое. Сразу оговорюсь - я провожу занятия для детей от 10 лет и старше, но если будет интересно, в общих чертах могу рассказать про робототехнику для начальных классов.
Итак. С чем мы и как работаем. В 99% случаев робототехника преподается на базе платформы Lego Education Mindstorms EV3. Вот так он выглядит.
Базовый набор Lego Mindstorms Education EV3
Существует еще набор "Для дома", если интересно, напишите в комментариях, расскажу разницу.
Всего в наборе 541 деталь. В основном - это детали Lego Technic - балки, соединители, оси и шестерни.
Детали базового набора.
Но самой главной фишкой EV3 является программируемый блок. Давайте его рассмотрим. Это весьма массивный элемент с массой достоинств (и недостатков тоже, куда без них).
Программируемый блок. На цифру 2 не обращайте внимание, это просто порядковый номер набора. У меня их 10.
По своей сути программируемый блок - небольшой компьютер с операционной системой на базе LInux. Понятное дело, очень многий функционал урезан или ограничен, но в умелых руках позволяет творить крайне интересные вещи. Что у нас есть в этом блоке? Монохромный экран 177x127 пикселей без подсветки, клавиатура на 6 кнопок и несколько портов ввода-вывода.
Питается это устройство от шести батареек формата АА ("пальчиковые", да) или от фирменного литий-ионного аккумулятора на 7,4 вольта емкостью 2200 миллиампер.
Отсек для батареек
Программируемый блок и аккумулятор
Честно скажу, если использовать батарейки - можно разориться. Поэтому аккумулятор выгоднее в долгоиграющей перспективе. Заряжается фирменной (или нет, гы-гы) зарядкой на 10 вольт где-то за два с половиной часа.
Да, если вы обратили внимание, окантовка кнопок на блоке - подсвечивается и ее можно зажечь в красном, оранжевом или зеленом цвете. Я этот момент упустил и не сфотографировал включенный блок. Надеюсь в будущем исправить эту оплошность.
На борту у блока есть встроенный динамик - для тонов и простых звуков.
Динамик. И отверстия для креплений.
Блок умеет в Bluetooth и WiFi. Блютус на борту, а с вайфаем небольшая сноска - нужен донгл, подключаемый в USB и только из списка поддерживаемых. Я на своей практике вайфаем так ни разу и не воспользовался. И да, блютус переключаемый, там какая-то разница между частотами и для подключения к айпаду или айфону нужно включить опцию Bluetooth Apple.
Ну и расширить память можно обычной карточкой microSD.
USB разъем и слот для SD карточки
И что же этот блок может? Он может управлять специальными моторами: включать и выключать их, вращать на заданное количество оборотов или время или поворачивать как серво-мотор на определенный градус. Причем просто моторы из электрифицированных наборов Lego он не поддерживает. Может принимать и обрабатывать данные с различных датчиков (тоже специальных, а что вы хотели?).
На чем можно запрограммировать это устройство? Тут несколько путей, в зависимости от уровня подготовки обучаемого. Можно написать простую линейную программу (ну или с циклом на 2, 6, 8 или бесконечным повторением) просто средствами самого блока. Можно подключить его к компьютеру по USB или Bluetooth и запрограммировать через приложение Mindstorms EV3 или EV3 Classroom на базе языка Scratch (надеюсь программисты не побьют меня за такую формулировку), или даже на форке языка Python написать программу.
А еще можно просто со смартфона подключиться к блоку и вручную управлять моторами и датчиками.
Если говорить о домашней версии Mindstorms EV3, то в ее основе лежит примерно такой же набор компонентов, что и в Education: программируемый блок, моторы и датчики. Но поставляется он в обычной картонной коробке с пакетиками, как его хранить - пользователь решает сам.
Домашняя версия платформы EV3
Всего в этом наборе 601 деталь, гораздо меньше шестерней и элементов для постройки механических узлов. Зато есть шариковая стрелялка и инфракрасный пульт управления. В целом, этот набор рассчитан больше на развлечение, чем на изучение механики и программирования. В комплекте инструкция по постройке забавных и эффектных роботов.
Вот, EV3RSTORM с обложки.
Основной упор делается на то, что модель можно собрать и сразу управлять ей через приложение в телефоне или с прилагаемого пульта. И да, он стоил меньше, чем вариант Education. В свое время.
В электронном плане, наборы отличаются тем, что в домашнем наборе есть инфракрасный датчик, для взаимодействия с пультом, но нет ультразвукового датчика расстояния. Про датчики расскажу позднее.
Программируется все это дело так же, как и в учебном варианте. То есть предполагается, что ребенок в возрасте от 10 до 22 лет (так написано на упаковке!) сперва попробует пособирать прикольные механизмы, погоняет их при помощи дистанционного управления, позагружает готовые программы, а там гладишь и втянется в программирование.
(Как педагог, я с этим не согласен, даже если у вашего ребенка будет такой набор, к программированию ребенок придет только при работе с ментором. В противном случае, все скатится к сборке по инструкции и заливке готовых программ из Интернета)
Что можно построить из этого набора? Да все что угодно! Не только поделки из прилагаемых инструкций. Кому интересно, на сайте rebricable можно вбить артикул набора и получить кучу вариантов MOC - любительских разработок. Ну и, понятное дело, что детали Technics совместимы во всей линейке. Несовместима только электроника. Почему? Об этом - расскажу позже.
Вот, например, робот-автомобиль. Объезжает препятствия, имеет парктроник.
И да, в этот раз я включил программируемый блок и вы можете полюбоваться слегка аскетичным интерфейсом встроенного ПО. Все только на английском, но вполне понятно.
Светится!
В следующем посте расскажу про моторы и датчики платформы EV3.
Поговорим о датчиках EV3. В этом посте я расскажу о тех, которые входят в комплект Education. О дополнительных датчиках и всякой нестандартной периферии будет отдельный пост.
Итак, знакомтесь:
Датчики из комплекта EV3 Education
Слева направо: датчик касания, гироскопический датчик, датчик света и ультразвуковой датчик.
Для тех, кому интересны технические нюансы. Датчики имеют на борту аналого-цифровой преобразователь и общаются они с программируемым блоком по протоколам UART и I2C. Что, собственно, и позволяет подключать практически любой нестандартный сенсор, используя, например, Arduino в качестве конвертора сигнала.
Итак, что они могут.
Датчик касания.
Он передаёт одно из своих состояний: «нажато», «не нажато» и «щелчок» (нажать и отпустить). Таких датчиков в комплекте, кстати, два. Чаще всего их используют как дополнительную выносную кнопку или для определения препятствий методом «тыка». Его можно использовать как концевик в механизме, или для определения края стола при движении (то есть он направлен вниз и в нормальном состоянии нажат, как только робот достигает края - он отжимается и робот должен остановиться. Ну, если это в вашей программе так прописано).
Гироскопический датчик.
Он имеет два режима работы - определение угла при повороте механизма (по часовой стрелке - положительные значения, против часовой - отрицательные, ноль - стартовое положение) и угловая скорость поворота. Это важно для построения автономных роботов, предназначенных для движения по определенным траекториям или просто движения в помещении. Точность - «плюс-минус лапоть», в пределах 5-8 градусов. Имеет очень неприятный глюк - иногда от скуки начинает к своему значению каждые 100 миллисекунд накидывать градус. Просто так. Поэтому при отладке программы его телеметрию нужно отслеживать постоянно, а еще лучше заложить в программу поправку на этот глюк.
Датчик цвета.
Он работает в трех режимах: измерение яркости освещения (какая-то своя шкала в «попугаях», где 0 - это темно, а 100 - это светло. Я, честно, этим режимом пользовался нечасто), яркость отраженного света и цвет поверхности. Яркость отраженного света по своей сути является измерением градаций серого, где 0 - это черный, а 100 - это белый. Промежуточные значения - 98 оттенков серого (да, побольше, чем в той книжке). Такой подход меня немного раздражает. Объясню позже. Используют этот режим, чтобы робот мог ориентироваться на поле, где нанесена черная разметка или двигаться по траектории в форме черной линии. Определение цвета построено очень просто - датчик умеет определять поверхность со стандартными фирменными цветами деталей Lego: белый, черный, коричневый, серый, красный, желтый, зеленый, синий. Если вы возьмете и подсунете ему цвет, немного отличающийся от фирменного с вероятностью 50/50 он либо определит цвет, либо выдаст значение NC - «не цвет». Ну и не стоит забывать, что два последних режима (яркость и цвет поверхности) датчик может определять только на расстоянии, равном толщине одной-двух балок формата Lego Technic.
Ультразвуковой датчик.
Работает в двух режимах: определение расстояния в сантиметрах или дюймах и «режим маяка». Измерение расстояние ограничено 255 см или 100 дюймов (технари уже догадались почему). Самое меньшее расстояние около двух сантиметров. Точность измерения плюс-минус полсантиметра. Режим маяка нужен для определения роботов с такими датчиками, например робот может ехать на источник сигнала ультразвукового датчика как на «зов».
Как они в целом? При соблюдении определенных условий все датчики работают на уровне «для наших целей - пойдет». Понятное дело, что точность у них не как у спецприборов. Но больше всего раздражает аппаратная подгонка результатов измерения в диапазон от 0 до 100. Понятно, что это было сделано для удобства детям, но мы же прекрасно понимаем, что при аналогово-цифровом преобразовании было бы логично иметь диапазон 0-255. Да, на ультразвуковом датчике это изящно обыграли измерением в дюймах. Но конвертация значений снижает точность измерений. Да, у нас не лабораторный прибор, но иногда на отладку взаимодействия датчика и измеряемой величины в конкретных условиях уходит прилично времени.
Подключаются датчики теми же проводами, что и для моторов. Одновременно к программируемому блоку можно подключить не более 4 - по количеству портов на блоке. Если нужно больше, то придется соединить два или больше (куда вам столько?) программируемых блока USB-кабелем и количество портов станет больше на число, кратное 4.