Оглавление:

Проект BricKuber - робот для сборки кубика Рубика Raspberry Pi: 5 шагов (с изображениями)
Проект BricKuber - робот для сборки кубика Рубика Raspberry Pi: 5 шагов (с изображениями)

Видео: Проект BricKuber - робот для сборки кубика Рубика Raspberry Pi: 5 шагов (с изображениями)

Видео: Проект BricKuber - робот для сборки кубика Рубика Raspberry Pi: 5 шагов (с изображениями)
Видео: Израиль в Крыму | Как СССР переселял евреев на деньги из США, советский проект 2024, Ноябрь
Anonim
Image
Image

BricKuber может собрать кубик Рубика менее чем за 2 минуты.

BricKuber - это робот для решения кубиков Рубика с открытым исходным кодом, который вы можете построить самостоятельно

Мы хотели создать робота, решающего кубик Рубика, с помощью Raspberry Pi. Вместо того, чтобы стремиться к скорости, мы пошли на простоту: если у вас есть Raspberry Pi, комплект BrickPi и стандартный комплект LEGO Mindstorms EV3 или NXT, вы сможете легко пойти по нашим стопам. Программное обеспечение написано на языке программирования Python. Вы можете увидеть весь исходный код на Github здесь.

Предыстория Кубик Рубика недавно начал возвращаться. Изобретенная в 1974 году, это самая продаваемая игрушка в мире. Но их решение требует размышлений, усилий и навыков… так почему бы не позволить роботу сделать это? В этом проекте мы берем Raspberry Pi, BrickPi и набор LEGO Mindstorms и строим робота для решения кубиков Рубика. Просто поместите неразрешенный кубик Рубика в решатель, запустите программу Python, и кубик Рубика будет решен! Проект использует Пи для непосредственного решения кубика Рубика. BrickPi3 берет неразрешенный кубик Рубика, а Raspberry Pi делает снимок каждой стороны кубика Рубика с помощью камеры Raspberry Pi. Pi создает текстовую карту из цветных квадратов, которая показывает, где они расположены на кубе. Когда он полностью отобразил куб, Pi использует библиотеку python kociemba, чтобы отобразить ходы, необходимые для сборки кубика Рубика. Эта информация используется Pi и BrickPi3, чтобы собрать кубик Рубика с помощью двигателей LEGO. Результат: собранный кубик Рубика.

Шаг 1. Инструменты и материалы

Построить это
Построить это
  • BrickPi3 - мы будем использовать BrickPi для управления двигателями LEGO, которые решают кубик Рубика.
  • Raspberry Pi - Pi будет выполнять обработку, фотографировать и управлять BrickPi.
  • Камера Raspberry Pi - камера Pi сделает снимок неразгаданного куба Рубика.
  • Кабель Ethernet - ваш компьютер должен быть подключен к Интернету. Если вы хотите сделать это через Wi-Fi, это тоже нормально!
  • SD-карта Raspbian для роботов - программное обеспечение, на котором работает Raspberry Pi. Он поставляется с большей частью программного обеспечения, необходимого для этого руководства. Вы также можете скачать программу бесплатно.
  • Комплект LEGO Mindstorms EV3 (31313) - вам понадобится куча LEGO, два больших двигателя, один серводвигатель и ультразвуковой датчик.
  • Кубик Рубика - Мы нашли здесь тот, который довольно свободно вращается. Вы можете использовать практически любой кубик Рубика 9x9x9.

Шаг 2: Создайте это

Построить это
Построить это
Построить это
Построить это

Создание решателя

Этот дизайн был вдохновлен дизайном MindCub3r для LEGO EV3. Чтобы построить BricKuber, начните с сборки MindCub3r. Полные инструкции по сборке LEGO можно найти здесь.

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

Наконец, мы добавляем кронштейн камеры. В оригинальном дизайне MindCubr датчик цвета EV3 размещался над кубиком Рубика. В нашей модифицированной конструкции он держит камеру Raspberry Pi над кубом Рубика. Мы используем два двигателя LEGO Mindstorms для управления кубом: первый находится под опорой, чтобы вращать куб, а второй перемещает рычаг тасовки, чтобы вращать куб на противоположной оси.

Соберите BrickPi3

Вы можете найти инструкции по сборке BrickPi3 здесь. Нам нужно будет собрать корпус, прикрепить BrickPi3, Raspberry Pi, камеру Raspberry Pi, добавить SD-карту и батареи. Чтобы упростить установку программного обеспечения, Raspbian для роботов поставляется с большей частью программного обеспечения, которое вам уже потребуется. Вам понадобится SD-карта объемом не менее 8 ГБ, и вы захотите расширить диск до полного размера SD-карты.

Прикрепите BrickPi3

Добавляем BrickPi3 в сборку LEGO. Мы использовали «крылья» LEGO EV3, чтобы поддержать BrickPi3 и выровнять его с корпусом BricKuber. Это хороший шаг для добавления батарей 8XAA в блок питания и присоединения блока питания BrickPi3 к сборке LEGO. Для программирования вы можете подключить BrickPi3 к Raspberry Pi через USB-порт, однако для перемещения двигателей вам потребуется подавать питание с помощью Power Pack.

Подключите двигатели к BrickPi3

Присоедините двигатель шаффлера к порту двигателя «MD». Присоедините двигатель подставки к порту «MA» на BrickPi3. Присоедините двигатель датчика камеры к порту «MC» (это меньший сервопривод). Несмотря на то, что мы не будем перемещать камеру, вы можете отрегулировать положение камеры с помощью двигателей.

Присоедините камеру Raspberry Pi

Используя подставку LEGO Camera, прикрепите камеру. Маленькая черная линза камеры должна поместиться между двумя опорами LEGO. Прикрепите камеру к опорам LEGO с помощью изоленты. Это хорошее время, чтобы убедиться, что камера находится в таком положении, чтобы можно было запечатлеть весь кубик Рубика. Вы можете сделать пробный снимок с помощью команды raspistill.

raspistill -o cam.jpg

Убедитесь, что куб правильно расположен по центру изображения.

Шаг 3. Подготовьте программное обеспечение

Вы можете использовать любую версию Raspbian или Raspbian для роботов, наш собственный образ, который поставляется с уже установленным BrickPi3. Если вы используете стандартную версию Raspbian, вы можете установить библиотеки BrickPi3 с помощью команды

sudo curl -kL dexterindustries.com/update_brickpi3 | трепать

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

Наконец, установите все зависимости проекта с помощью команды:

sudo curl https://raw.githubusercontent.com/DexterInd/Brick… | трепать

Для этого шага ваш BrickPi3 должен быть подключен к Интернету. Есть ряд библиотек, от которых зависит проект, в том числе некоторые важные библиотеки Дэниела Уолтона (@ dwalton76) на Github, которые используются для построения куба Рубика.

Шаг 4. Соберите кубик Рубика

Собери кубик Рубика
Собери кубик Рубика
Собери кубик Рубика
Собери кубик Рубика
Собери кубик Рубика
Собери кубик Рубика

Поместите неразгаданный кубик Рубика в люльку. Запустите команду

sudo python ~ / Dexter / BrickPi3 / Projects / BricKuber / BricKuber.py

Робот повернет куб к каждой грани, и камера сделает 6 снимков, по одному с каждой стороны куба. Raspberry Pi определит конфигурацию куба из шести изображений. Конфигурация куба будет передана в библиотеку Python kociemba для поиска эффективного решения. Наконец, робот выполнит движения, чтобы собрать кубик Рубика!

Шаг 5: Исходный код

Весь исходный код BricKuber можно найти в нашем репозитории на github с открытым исходным кодом здесь.

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

Рекомендуемые: