lego mindstorms
DESCRIPTION
Видео со встречи: http://getdev.net/Event/lego-mindstorms Совместный доклад Сергея Шебанина и Дмитрия Филиппова. Конструктор для создания программируемого робота. Расширение возможностей программирования до физического контакта с предметами. Внутренности, комплектация, технические параметры сенсоров и приводов. Как программировать - графический вариант и обычный текстовый. Какие есть варианты креплений и подвижных соединений. Простейшие алгоритмы слежения за линией (с примером на NXC).TRANSCRIPT
LEGO Mindstorms NXT 2.0
Специально для
Сергей Шебанин
Дмитрий Филиппов
Комплект поставки
Процессорный модуль — 1 шт.Сервомоторы — 3 шт.
Датчик касания — 2 шт.Датчик цвета — 1 шт.
Ультразвуковой дальнометр — 1 шт.Соединительные провода — 7 шт.
Сергей Шебанин GetDev.NET
Детали в комплекте
набор шестеренок различных диаметров и назначения;
оси и втулки для них;резиновые кольца;
колеса с шинами и шкивы разных размеров;
ориентирующие и комбинированные соединители; цилиндрические фиксаторы;
технические балки, в том числе с креплением и угловые; пластины различной формы и размеров;
специальные детали (цветные шары, фигурки и т.п.).
Сергей Шебанин GetDev.NET
Процессорный модуль
32-битный ARM7 256 Кб RAM, 64 Кб flash 8-битный AVR, 512 байт RAM, 4 Кб flash
Монохромный ЖК-дисплей Динамик
Bluetooth-адаптер USB-порт
7 портов для подключения сенсоров Отсек для 6 батареек или аккумулятора
Сергей Шебанин GetDev.NET
Сервомотор
состоит из:1) электродвигателя,
2) редуктора,3) ступицы колеса с отверстием под ось
4) датчика угловых перемещений
Сергей Шебанин GetDev.NET
Датчик касания
контактный выключатель,реагирует на нажатие и отпускание.
Сергей Шебанин GetDev.NET
Ультразвуковой дальнометр
Большие объекты с твердой поверхностью — надежные показания.Маленькие и тонкие объектов с искривленной поверхностью, или
покрытых тканью — низкая точность.
Обеспечивает измерение расстояния до 2,55 м с
точностью ± 3 см.
Сергей Шебанин GetDev.NET
Датчик цвета
Сенсор может выполнять 3 функции:1. Определять цвет поверхности в 10±5 мм.
2. Определять освещенность.3. Может использоваться как цветной
фонарик.
Сергей Шебанин GetDev.NET
Основные типыбрусков (beams)
Прямые бруски с различным количеством отверстий
Угловые бруски
Дмитрий Филиппов GetDev.NET
Соединительные элементы
Шпильки (Pins)
Используются для соединения различных частей между собой.1,2 и 3 тип существуют в двух вариантах – с малым трением (легко вращаются) и с сильным трением (вращаются с трудом, отличаются цветом - черные и синие)
Дмитрий Филиппов GetDev.NET
Соединительные элементыСоединение деталей с помощью шпилек
Нежесткое соединение – возможно движение одной детали относительно другой.
Жесткое соединение – взаимное расположение деталей остается постоянным.
Дмитрий Филиппов GetDev.NET
Соединительные элементы
Оси
Стандартные оси
Используются для1) Передачи вращения2) Создания прочных соединений, без возможности взаимного вращения деталей
Оси с ограничителем
Дмитрий Филиппов GetDev.NET
Соединительные элементыСоединение с помощью осей
Жесткое
Свободное вращение
Дмитрий Филиппов GetDev.NET
Соединительные элементы
Втулки
Используются совместно с осями для:1) Поддержания постоянного расстояния между деталями2) Предотвращения движения оси относительно детали
Дмитрий Филиппов GetDev.NET
Другие видысоединительных элементов
Могут использоваться одновременно с осями и шпильками
Дмитрий Филиппов GetDev.NET
Простейшие механизмы
Рычаг
Рычаг — простейшее механическое устройство, представляющее собой твёрдое тело (перекладину), вращающееся вокруг точки опоры. Стороны перекладины по бокам от точки опоры называются плечами рычага.Рычаг используется для получения большего усилия на коротком плече с помощью меньшего усилия на длинном плече (или для получения большего перемещения на длинном плече с помощью меньшего перемещения на коротком плече). Сделав плечо рычага достаточно длинным, теоретически, можно развить любое усилие.
Wikipedia
Дмитрий Филиппов GetDev.NET
Простейшие механизмы
Основные типы рычагов
Дмитрий Филиппов GetDev.NET
Простейшие механизмы
Соединение рычагов
При соединении одинаковых рычагов друг над другом получается механизм с полезным свойством: элементы, соединяющие концы рычагов, сохраняют свою ориентацию в процессе перемещения
Дмитрий Филиппов GetDev.NET
Простейшие механизмы
Механизмы, переводящие вращательное движение в прямолинейное
Механизм Чебышева Механизм Хойкена
Дмитрий Филиппов GetDev.NET
Зубчатая передача
Типы элементов, используемые в различных наборах Lego
Существуют несколько разновидностей зубчатых передач1) Червячная (нет в Lego Mindstorms)2) Обычная 3) Конусная4) Двойная конусная5) Обычная с муфтой (нет в Lego Mindstorms)6) Дифференциальная передача (нет в Lego Mindstorms)
Дмитрий Филиппов GetDev.NET
Зубчатая передача
Применение
Передача вращения на другую ось
Изменение направления вращения
Дмитрий Филиппов GetDev.NET
Зубчатая передача
Применение
Изменение оси вращения на перпендикулярную
Изменение скорости вращения (с одновременным изменением момента силы)
8:40 = 1:5 8:24 * 8:24 = 1:9
Дмитрий Филиппов GetDev.NET
Специальный тип передачи
Knob Wheel
Не является зубчатой передачей. Используется для передачи вращения на параллельную или перпендикулярную ось.Основное достоинство – такое соединение способно передавать вращающий момент без проскальзывания.
Дмитрий Филиппов GetDev.NET
Колесо
В набор Lego Mindstorms входят
4 колеса диаметром 30мм 4 покрышки диаметром 43.2мм
Дмитрий Филиппов GetDev.NET
Программирование
или
Сергей Шебанин GetDev.NET
Колесные роботы
Простейший колесный робот (TriBot)
Одна из самых часто используемых моделей – трёхколесный робот с дифференциальным управлением (Differential Drive).Имеет три колеса, из которых а) одно – свободно вращается вокруг вертикальной осиб) два других колеса – расположены на одной геометрической оси (физически не соединены) и управляются двумя отдельными моторами.
Достоинства:1) Простота управления2) Простая математическая модель, описывающая поведение робота при движении3) Маневренность (может развернуться на месте, повернуть на 90 градусов)
Такая конструкция успешно применяется и в коммерческих разработках – например пылесосы iRobot (справа на рисунке, вид снизу).
Дмитрий Филиппов
Колесные роботы
Поведение трёхколесного робота с дифференциальным управлением может быть описано с помощью очень простой математической модели, фактически включающей в себя только два параметра – расстояние между ведущими колесами (l) и их радиус (r).Управление роботом заключается в том, что мы изменяем скорость вращения каждого колеса в отдельности –мы можем поворачивать робота на месте, двигать его по дуге окружности или по прямой.
Если левое колесо двигается с постоянной скоростью Vl, а правое – со скоростью Vr, то робот будет двигаться по окружности радиусом R с угловой скоростью w
Линейная скорость колёс Vl и Vr может быть вычислена как произведение r*wl и r*wr, где wl и wr – угловая скорость вращения левого и правого двигателя.
Дмитрий Филиппов GetDev.NET
Колесные роботы
Из формул
получается, что1) если Vr=Vl, то робот движется по прямой;2) если Vr=-Vl, то R=0 и робот вращается на месте;3) если Vl=0, то робот вращается вокруг левого
колеса;4) аналогично, если Vr=0, то робот вращается
вокруг правого колеса
Можно вывести и другие формулы, например вычислить перемещение робота, зная сколько оборотов сделало каждое колесо (полезно для Lego Mindstorms, т.к. в двигателе есть энкодер)
Дмитрий Филиппов GetDev.NET
Следование по линии
Постановка задачи
Задача: провести колёсного робота вдоль начерченной линии. В качестве датчиков могут использоваться один или несколько датчиков света(или цвета).
В качестве подзадачи необходимо научиться отличать линию от фона.
Дмитрий Филиппов GetDev.NET
Следование по линии
Начальная калибровка
1) Будем вращать робота вокруг одного из колес, замеряя интенсивность света в процессе вращения и вычисляя максимальную и минимальную интенсивность. После того, как робот сделает полный оборот, найдем среднее между максимумом и минимумом.В дальнейшем, всё что меньше этого значения, будем считать черным цветом, а всё что больше – белым (фоном).2) После этого поставим робота в начальную позицию – повернём его так, чтобы он находился над линией.
Дмитрий Филиппов GetDev.NET
Следование по линии
Простейший алгоритм
Дмитрий Филиппов GetDev.NET
Версии
Первая версия — RCXВпервые представлен компанией LEGO в 1998 году.
Включал в себя 8-битный H8/300 микроконтроллер + 32 Kб RAM для хранения программ
Сергей Шебанин GetDev.NET
Версии
Вторая версия — NXTВпервые представлен компанией LEGO в 2006 году.
Отличается от NXT 2.0 набором датчиков: есть микрофон, но нет датчика цвета
Сергей Шебанин GetDev.NET
Версии
Версия 2,5 — NXT 2.0Впервые представлен компанией LEGO в 2009 году.
Сергей Шебанин GetDev.NET
Версии
Версия 3 — EV3Впервые представлен компанией LEGO 4 января 2013 года.
Сергей Шебанин GetDev.NET
EV3
Процессор — ARM9 (в конструкторе NXT 2.0 использовался ARM7)FLASH память — 16 мегабайт
Оперативная память — 64 мегабайтОперационная система — Linux
Слот расширения SDUSB 2.0 (поддерживает USB Host, то есть можно вставить WiFi свисток)
Bluetooth 2.14 порта на вход и 4 порта на выход
Динамик
Сергей Шебанин GetDev.NET
EV3
Три сервомотора (два больших и один маленький)Датчик нажатия
Цветовой сенсорДатчик расстояния
Гироскоп-акселерометр (в базовый комплект поставки, судя по всему, не входит)
Сергей Шебанин GetDev.NET
Спасибо за внимание!