Оглавление:

Q-Bot - решатель кубика Рубика с открытым исходным кодом: 7 шагов (с изображениями)
Q-Bot - решатель кубика Рубика с открытым исходным кодом: 7 шагов (с изображениями)

Видео: Q-Bot - решатель кубика Рубика с открытым исходным кодом: 7 шагов (с изображениями)

Видео: Q-Bot - решатель кубика Рубика с открытым исходным кодом: 7 шагов (с изображениями)
Видео: РОБОТ СОБРАЛ КУБИК РУБИКА 3х3 ЗА 0.38 СЕКУНДЫ / 0.38 Second Rubik's Cube Solve 2024, Июль
Anonim
Image
Image
Изображение
Изображение

Представьте, что у вас есть перемешанный кубик Рубика, вы знаете эту головоломку из 80-х годов, которая есть у всех, но на самом деле никто не знает, как ее решить, и вы хотите вернуть ее в исходное состояние. К счастью, в наши дни найти инструкции по решению проблемы очень легко. Итак, выходите в интернет, посмотрите видео, узнайте, как поворачивать боком, чтобы доставить вам радость. Однако, сделав это пару раз, вы поймете, что чего-то не хватает. Дыра внутри, которую нельзя заполнить. Инженеры / разработчики / хакеры внутри вас просто не могут удовлетвориться решением чего-то столь удивительного таким простым способом. Разве не было бы более поэтичным, если бы у вас была машина, которая решала все за вас? Если бы вы построили что-нибудь, все ваши друзья были бы поражены? Я могу гарантировать вам, что нет ничего лучше, чем наблюдать, как ваше творение творит чудеса и собирает кубик Рубика. Итак, приходите и присоединяйтесь ко мне в чудесном путешествии по созданию Q-Bot, решателя кубов Рубика с открытым исходным кодом, который, безусловно, не побьет мировых рекордов, но доставит вам часы радости (после того, как вы, конечно, пройдете через все разочарования в процессе строительства).

Шаг 1: проектирование оборудования

Полный решатель был разработан с помощью САПР в Catia. Таким образом можно было найти и исправить большинство ошибок конструкции до изготовления каких-либо физических компонентов. Большая часть решателя была напечатана на 3D-принтере из PLA на принтере Prusa MK3. Кроме того, использовалось следующее оборудование:

  • 8 штук алюминиевых стержней 8 мм (длина 10 см)
  • 8 шарикоподшипников линейного перемещения (LM8UU)
  • чуть меньше 2 м ремня ГРМ GT2 6 мм + некоторые шкивы
  • 6 биполярных шаговых двигателей NEMA 17
  • 6 шаговых драйверов Polulu 4988
  • Arudino Mega в качестве контроллера проекта
  • источник питания 12 В 3A
  • понижающий преобразователь для безопасного питания Arduino
  • некоторые винты и соединители
  • немного фанеры для основы

Описание оборудования

В этом разделе кратко рассказывается, как работает Q-Bot и где используются вышеупомянутые компоненты. Ниже вы можете увидеть рендеринг полностью собранной модели САПР.

Q-bot работает с четырьмя моторами, прикрепленными непосредственно к кубику Рубика с помощью захватов, напечатанных на 3D-принтере. Это означает, что влево, вправо, вперед и назад можно поворачивать напрямую. Если необходимо повернуть верхнюю или нижнюю сторону, необходимо повернуть весь куб, поэтому два двигателя должны быть отодвинуты. Это делается путем прикрепления каждого из двигателей захвата к салазкам, приводимым в движение другим шаговым двигателем и ремнем газораспределительного механизма вдоль линейной рельсовой системы. Рельсовая система состоит из двух 8 шариковых подшипников, которые установлены в полостях салазок, и весь салазки движется на двух 8-миллиметровых алюминиевых валах. Ниже вы можете увидеть подсборку одной оси решателя.

Ось x и y в основном идентичны, они отличаются только высотой точки крепления ремня, это сделано для того, чтобы не было столкновений между двумя ремнями при полной сборке.

Изображение
Изображение

Шаг 2: выбор правильных двигателей

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

Обычно крутящий момент определяется силой, направленной перпендикулярно положению точки вращения на расстоянии r:

Изображение
Изображение
Изображение
Изображение

Итак, если бы я мог каким-то образом измерить силу, приложенную к кубу, я мог бы вычислить крутящий момент. Что я и сделал. Я прижал кубик к полке так, что двигалась только одна сторона. Вокруг куба была привязана веревка, а внизу был прикреплен мешок. Теперь все, что оставалось делать, - это медленно увеличивать вес мешка, пока кубик не повернулся. Из-за отсутствия точных весов я использовал картофель, а затем измерил его. Не самый научный метод, но поскольку я не пытаюсь найти минимальный крутящий момент, этого вполне достаточно.

Изображение
Изображение

Я провел измерения три раза и на всякий случай взял максимальное значение. Полученная масса составила 0,52 кг. Теперь благодаря сэру Исааку Ньютону мы знаем, что Сила равна массе, умноженной на ускорение.

Изображение
Изображение

Ускорение в данном случае - это ускорение свободного падения. Таким образом, требуемый крутящий момент определяется выражением

Изображение
Изображение

Вставка всех значений, включая половину диагонали кубика Рубика, наконец, выявляет требуемый крутящий момент.

Изображение
Изображение

Я выбрал шаговые двигатели, которые могут развивать усилие до 0,4 Нм, что, вероятно, является излишним, но я хотел быть в безопасности.

Шаг 3: Строительство базы

База состоит из очень простого деревянного ящика и вмещает всю необходимую электронику. В нем есть вилка для включения и выключения машины, светодиодный индикатор, указывающий, включен ли он, порт USB B и розетка для подключения источника питания. Он был построен из фанеры толщиной 15 мм, нескольких шурупов и небольшого количества клея.

Изображение
Изображение
Изображение
Изображение
Изображение
Изображение
Изображение
Изображение

Шаг 4: Сборка оборудования

Теперь со всеми необходимыми деталями, включая основание, Q-bot был готов к сборке. Изготовленные на заказ детали были напечатаны на 3D-принтере и при необходимости отрегулированы. Вы можете скачать все файлы САПР в конце этой библиотеки. Сборка включала установку всех деталей, напечатанных на 3D-принтере, с купленными деталями, удлинение кабелей двигателя и привинчивание всех деталей к основанию. Вдобавок я надел гильзы на кабели двигателя, чтобы они выглядели немного аккуратнее, и добавил на их концы соединители JST.

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

Изображение
Изображение
Изображение
Изображение

Шаг 5: Электроника

Что касается электроники, то проект достаточно простой. Есть основной источник питания 12 В, который может обеспечивать ток до 3 А, который питает двигатели. Понижающий модуль используется для безопасного питания Arduino, а для Arduino был разработан специальный экран, в котором размещены все драйверы шаговых двигателей. Драйверы значительно упрощают управление двигателями. Управление шаговым двигателем требует определенной последовательности управления, но при использовании драйверов двигателей нам нужно только генерировать высокий импульс для каждого шага, который двигатель должен вращать. Кроме того, на экран были добавлены некоторые разъемы jst, чтобы облегчить подключение двигателей. Щиток для Arduino сначала был построен на куске перфорированной платы, и после того, как он убедился, что все работает так, как предполагалось, он был произведен jlc pcb.

Вот до и после прототипа и изготовленной печатной платы.

Изображение
Изображение
Изображение
Изображение

Шаг 6: Программное обеспечение и последовательный интерфейс

Q-Bot разделен на две части. С одной стороны, это оборудование, которым управляет Arduino, с другой - программа, которая вычисляет путь решения для куба на основе текущего скремблирования. Прошивка для Arduino была написана мной, но для краткости этого руководства я не буду здесь вдаваться в подробности. Если вы хотите взглянуть на него и поиграть с ним, ссылка на мой репозиторий git будет предоставлена в конце этого документа. Программное обеспечение, которое вычисляет решение, работает на машине с Windows и было написано моим коллегой, снова ссылки на его исходный код можно найти в конце этой библиотеки. Эти две части взаимодействуют с помощью простого последовательного интерфейса. Он вычисляет решение на основе двухфазного алгоритма Коциембы. Программа решения отправляет команду, состоящую из двух байтов, в решающую программу и ожидает, пока она не вернет «ACK». Таким образом, решатель может быть протестирован и отлажен с помощью простого последовательного монитора. Полный набор инструкций можно найти ниже.

Изображение
Изображение

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

Шаг 7: Заключение

После восьми месяцев разработки, ругани, ударов по клавиатуре и танцев Q-bot, наконец, достиг точки, в которой успешно собрал свой первый кубик Рубика. Скрембл куба пришлось вручную вставлять в управляющую программу, но все работало хорошо.

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

Изображение
Изображение

Если эта инструкция вызвала у вас интерес, не сомневайтесь и начните создавать свою собственную версию Q-бота. Поначалу это может показаться пугающим, но оно того стоит, и если бы я мог это сделать, то сможете и вы.

Ресурсы:

Исходный код прошивки:

github.com/Axodarap/QBot_firmware

Исходный код управляющего программного обеспечения

github.com/waldhube16/Qbot_SW

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