Как сделать мой борк в программе лего майндшторм

Добавил пользователь Cypher
Обновлено: 19.09.2024

Швейцарец – программист по имени Ханс Андерссон купил набор конструктора Лего, для своих двух дочерей, и сам увлёкся этим конструктором. Из конструктора он сделал робота, который собирает Кубик Рубика!

Tilted Twister (так был назван робот) решает кубик Рубика полностью автоматически. Ультразвуковой датчик сканирует кубик и определяет его цвета. Затем она вычисляет последовательность вращений для решения и выполняет повороты кубика.

А вот видео, демонстрирующее работу робота.

Как вам? Помоему круто!
Теперь о грустном:
Набор LEGO MINDSTORMS стоит около 15000 рублей.

А вот ещё одно видео. Робот тоже сделан из конструктора лего.

Вы умеете собирать кубик Рубика? Я практически нет. В детстве я мог собрать только пирамидку, а кубик просто раздирал на запчасти и собирал заново, после чего он стремительно разбалтывался. В прошлом году я съездил на сигграф и там на одном из выставочных стендов раздавали (ужасные по качеству, но зато с рекламой) кубики, после чего конференция для меня была практически потеряна, зато двенадцать часов в самолёте прошли незаметно.

Собирать кубик, подглядывая в уже готовые алгоритмы, мне было неинтересно, поэтому я его собрал пока что только один раз, это у меня заняло примерно полгода и приличную стопку исписанной бумаги. Между делом мне на глаза попался проект MindCub3r. Его автор даёт чертежи и ПО для роботов-сборщиков кубика из LEGO, причём эти чертежи есть для всех возможных комплектов, начиная от первого NXT и заканчивая EV3.


Эти роботы крайне хороши, я восхищён тем, их автор David Gilday использует для непосредственно сборки кубика только два сервомотора и ещё один для сканера. Надо учитывать, что стандартные наборы LEGO довольно скудны, и то, что такого робота можно собрать из одной коробки — это немалое достижение. Работает оно просто, сначала кубик сканируется: его датчик ставится напротив каждой этикетки кубика, затем софт решает кубик, выдавая цепочку необходимых вращений, которая потом и исполняется механически.

Решил я повторить этого робота, для начала мне просто хотелось получать собранный кубик, а задача максимум — это задать роботу нужную мне конфигурацию (не обязательно собранный кубик) и получить её на физическом кубике. Это мне позволит получить своего рода сейв, когда я буду собирать кубик вручную, и я смогу к нему вернуться в любой момент (вы помните, что я не хочу смотреть в готовые алгоритмы сборки, мне интересно научиться собирать самому?) На данный момент я записываю все ходы на бумаге, чтобы иметь возможность откатиться, и мне это порядком надоело.

Итак, собрал я хардварную часть робота, сборочные чертежи великолепны. Скачал софт, загрузил, с трепетом поставил кубик на платформу и жестоко обломался. Оказывается, этому роботу необходим официальный кубик Рубика, а я купил тот, что используется для спидкубинга. У него другие цвета граней (например, нет белого), и робот надорвался, не сумел его сосканировать. Хорошо, сказал я, поскрёб по сусекам, нашёл официальный кубик, правда, возрастом под два десятка лет. С его затёртыми и залапанными наклейками робот тоже работать не захотел.



Итак, постановка задачи: написать весь софт под существующий хард MindCub3r EV3, для начала софт должен просто собирать кубик. Минимизировать количество ходов в сборке меня не интересует, мне нужен как можно более простой код. Эта статья говорит только про то, как решать кубик, в следующей я опишу сканирование и управление сервами. В среднем решение получается длиной слегка за сто ходов.

Использованный метод

В мире огромное количество алгоритмов, наверное, самым правильным было бы запрограммировать вот этот. Но это надо думать, изобретать эвристики для A* с итеративным заглублением, а я ленивый. Кроме того, это надо думать, как его использовать, чтобы получить заданную конфигурацию, а я ленивый. Поэтому я буду пользоваться самым тупым и прямым методом: при помощи Cube Explorer записываем все последовательности поворотов, которые позволяют собрать

  • нижнее переднее ребро
  • нижний правый передний угол
  • переднее правое ребро
  • верхний правый передний угол
  • верхнее переднее ребро

Затем код будет выглядеть следующим образом:

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

Структура данных


Грани кубика назовём стандартно: F — передняя, R — правая, B — задняя, L — левая, U — верхняя, D — нижняя. Вот стандартные вращения:

Каждое ребро имеет две прилегающих грани, каждый угол имеет три прилегающих грани. Для представления кубика я использую два массива из двенадцати (по числу рёбер) и восьми (по числу углов) целых чисел. Итак, вот массив индексов:


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

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


Собранный куб должен быть представлен парой массивов и , это рёбра и углы, соответственно. Например, ребро номер 4 в массиве должно иметь ориентацию 8.

Вот так выглядит представление кубика:

edges и corners — это массивы, где хранятся данные, how_edges_move и how_corners_move описывают преобразование индексов массивов edges и corners для вращения вокруг каждой из шести граней, а функция atomic_rotation() собственно и выполняет вращение одной данной грани.

Жёстко зашитые алгоритмы

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

Помните, что первым делом мы будем собирать нижнее переднее ребро? В полностью перемешанном кубике оно может находиться на любом из 24 возможных мест, поэтому массив alg_DF_edge даёт 24 разных последовательности, которые поставят ребро на место. Названия остальных массивов говорят сами за себя. Функция apply_sequence() разбивает строку на атомарные операции и вызывает atomic_rotation().

Непосредственно сборщик

Непосредственно сборщик выглядит прямым переводом псевдокода, данного в начале, на язык C++:

Обратите внимание, что rotate_entire_cube() каждый раз вызывается четыре раза, таким образом, между циклами наш куб всегда ориентирован как надо, но внутри цикла мы должны знать, как именно он ориентирован, чтобы скорректировать вывод решения на экран.

Запуск

Берём пример разобранного кубика здесь и запускаем программу:

Копируем вывод в веб-валидатор и получаем:

Итак, у нас есть солвер, в следующий раз будем управлять непосредственно роботом.

Вы можете помочь и перевести немного средств на развитие сайта


MindCuber ( Миндкубер ) – семейство из нескольких роботов, которые могут решать и собирать известную головоломку “Кубик Рубика”.

Инструкция по сборке и программированию
робота ЛЕГО EV3 на русском языке
( полный перевод с английского языка )

Для этого робота нужен только набор LEGO MINDSTORMS EV3 и Кубик Рубика



Далее здесь представлен краткий перевод на русский язык этой инструкции.

Как сделать робота, собирающего “Кубик Рубика”, с помощью набора LEGO MINDSTORMS EV3 (Home set 31313) ?

Роботы EV3 и инструкции по сборке.
Инструкция по сборке и программированию робота из наборов LEGO TECHNICS, LEGO MINDSTORMS EV3.

2. Установить необходимое программное обеспечение:

Убедитесь, что версия прошивки вычислительного блока EV3 – v1.06H или более свежая.

Всегда рекомендуется обновлять прошивку до последней версии на официальном сайте LEGO.

При необходимости скачиваем новую прошивку (встроенное ПО EV3 MIDSTORMS),

а также программное обеспечение LEGO EV3 MINDSTORMS ( PC или MAC ) ссылка.

Затем необходимо установить модифицированную поддержку Сенсора RGB (Color Sensor RGB Block) – датчика, который определяет цвет объекта.

Скачиваем файл нового блока ColorSensorRGB-v1.00.ev3b. И устанавливаем новый блок в оболочку программы LEGO EV3 MINDSTORMS на компьютере.

Для этого используем в программе меню Tools и Block Import.

Следующий этап – установка самой программы для робота, которая считает, решает головоломку и управляет механизмом для вращения граней “Кубика Рубика”.

Закачиваем версию для LEGO MINDSTORMS EV3 (Home set 31313 – домашняя версия, именно она продается в магазинах LEGO) ссылка для загрузки.

Распаковываем архив. Мы имеем три файла.

Первый файл MindCub3r-v1p6.ev3 – файл проекта для программного обеспечения на компьютере.

Второй файл mc3solver-v1p6.rtf – запускаемая на центральном блоке EV3 программа для робота,
выполняет поиск решения для Кубика Рубика.

Третий файл InstallMC3-v1p6.rbf – установщик для предыдущей программы.

Теперь открываем файл проекта MindCub3r-v1p6.ev3 в программном обеспечении на компьютере с помощью меню File и Open Project.

Перевод инструкции по сборке
EV3 MINDSTORMS MindCuber на русский язык.


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

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

7 ВОПРОСЫ И ОТВЕТЫ

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

Настя, некоторые кубики имеют не очень яркие цвета граней. Самый простой и быстрый способ решения – поменять кубик, выбрать наклейки с яркими плотными насыщенными цветами.

Дополнительный вопрос к тем кто подобрал кубик с насыщенными цветами. И робот собранб, и RUbiks куплен и все ровно ERROR. Причина?

Sxema_WiFi

Фирменное программное обеспечение процессора LEGO® Mindstorms® EV3 (прошивка) поддерживает следующие адаптеры Wi-Fi:

  • Wi-Fi DONGLE для EV3. Этот модуль поставляется как дополнительный датчик компанией LEGO®;
  • Wi-Fi-адаптер Netgear N150 (WNA1100). Это сравнительно крупный модуль размером с крупную флэшку:

скачанные файлы

  • Wi-Fi-адаптеры других производителей, обзор и способ использования в русском переводе Алексея Валуева.
  • Wi-Fi-адаптер изготовленный самостоятельно Sjef Franse
  • Wi-Fi-адаптер Edimax EW-7811Un является самым маленьким в мире Wi-Fi-модулем и самым оптимальным путём подключения LEGO® Mindstorms® EV3 к сети WiFi.
Общие характеристики Wi Fi адаптера Edimax EW-7811Un
  • Тип: Wi-Fi адаптер
  • Стандарт беспроводной связи: 802.11n, частота 2.4 ГГц
  • Поддержка MIMO: есть
  • Макс. скорость беспроводного соединения: 150 Мбит/с
  • Интерфейс подключения: USB 2.0
  • Защита информации: WEP, WPA, WPA2, 802.1x
  • Мощность передатчика: 17 dBM
  • Количество внутренних антенн: 1
  • Размеры (ШxВxГ): 19x7x15 мм
Рассмотрим способы установления связи через Wi Fi процессорного блока LEGO® Mindstorms® EV3 (модуля EV3) с компьютером, ноутбуком, планшетом, смартфоном или таким же процессорным блоком.
edimax-ev3-wifi-dongle-howto-550x366

Внутри процессорного блока могут уже находиться следующие фирменные программы LEGO® Mindstorms® EV3 (обычно называемые прошивками):

  1. EV3 Firmware V1.09H.bin — (Home Edition) прошивка домашней версии процессорного блока LEGO® Mindstorms® EV3 (загрузить последнюю версию)
  2. EV3 Firmware V1.09E.bin — (Education Edition) прошивка образовательной версии процессорного блока LEGO® Mindstorms® EV3 (загрузить последнюю версию)
  3. EV3 Firmware V1.09D.bin — (Developer Edition) прошивка дизайнерской версии процессорного блока LEGO® Mindstorms® EV3 (загрузить последнюю версию)

Wi-Fi-адаптер Edimax EW-7811Un не работает с LEGO® Mindstorms® EV3 сразу после установки, необходимо установить дополнительную прошивку для самого Wi-Fi-адаптера . Предварительно проверим и если необходимо обновим прошивку процессора LEGO® Mindstorms® EV3. Для этого мы выполним следующие действия:

7

5. Wi-Fi-адаптер Edimax EW-7811Un начнет мигать синим светодиодом.

wifi_5
wifi_6

6. Через 10 секунд появится список беспроводных сетей, выберите сеть и нажмите кнопку Connect.

wifi_7
wifi_8

7. Теперь вы можете выбрать параметры безопасности вашей сети (WPA2 или None). Имейте в виду, что использование WPA2 сократит срок работы батареи EV3, но оно является более безопасным.

wifi_10
wifi_9

8. Убеждаемся что модуль EV3 подключился к нужной нам беспроводной сети.


вот как

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

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Конструктор роботов Lego
Mindstorms Robot Inventor 51515


Компания ЛЕГО анонсировала новую версию конструктора роботов Mindstorms, которая должна выйти в четвертом квартале 2020 года. Набор получил название Lego Mindstorms Robot Inventor 51515.

Анонсированием нового конструктора LEGO разграничивает свои линейки продуктов для образовательной и потребительской робототехники с точки зрения маркетинга. Образовательный — SPIKE Prime, потребительский — Mindstorms.

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


Набор содержит детали, окрашенные в лазурный (цвет "teal", когда-то бывший основным цветом рабочего стола в Windows 95), серый, белый и черный цвета. В новой версии Mindstorms на 60% больше деталей, чем в предыдущей EV3, что позволит собирать больше разнообразных устройств. Принцип комплектации 5-в-1 разделяет сборку на 5 различных моделей, из которых только одна может быть построена за один раз.

В своей рекламе ЛЕГО обращает внимание на использование набора для развития навыков STEM, которые, по словам 7 из 10 родителей, необходимы для будущего успеха их ребенка.


Smart Hub нового поколения, аналогичный представленному в серии Lego Spike Prime, имеет 6-осевой гироскоп/акселерометр. На каждой из длинных сторон Smart Hub имеет 3 порта ввода-вывода, в которые можно вставлять соединители от датчиков и двигателей. Все входящие в конструктор роботов датчики и двигатели могут использоваться одновременно.

Хаб имеет светодиодную матрицу 5x5, динамик, литий-ионный аккумулятор, которую можно заряжать с помощью USB-кабеля, порт micro-USB и соединение Bluetooth. Он может питаться от USB-порта во время работы. Благодаря наличию Bluetooth, новый хаб может дружить с контроллерами от Xbox и PS4.


В наборе Robot Inventor 51515 содержится 4 средних мотора, в то время как в наборе с EV3 моторов было только 3. Если сравнивать со Spike Prime, который содержит один большой мотор и два средних, то в Robot Inventor 51515 положили только средние моторы.



В новом поколении Mindstorms доступны два сенсора — ультразвуковой (для измерения дистанции до объектов), а также цветовой (способен различать восемь цветов и измеряет отраженный и окружающий свет от темноты до яркого солнечного света). Отсутствует датчик касания.

Новая среда программирования Robot Inventor app поддерживает визуальное (Scratch или Scratch-подобный язык) и текстовое (Python) программирование. Приложение для написания программ будет доступно как для Windows 10 и macOS, так и для мобильных устройств на iOS и Android.

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

Читайте также: