Оглавление:
- Шаг 1: проектирование оборудования
- Шаг 2: выбор правильных двигателей
- Шаг 3: Строительство базы
- Шаг 4: Сборка оборудования
- Шаг 5: Электроника
- Шаг 6: Программное обеспечение и последовательный интерфейс
- Шаг 7: Заключение
Видео: Q-Bot - решатель кубика Рубика с открытым исходным кодом: 7 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
Представьте, что у вас есть перемешанный кубик Рубика, вы знаете эту головоломку из 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
Рекомендуемые:
PyonAir - монитор загрязнения воздуха с открытым исходным кодом: 10 шагов (с изображениями)
PyonAir - монитор загрязнения воздуха с открытым исходным кодом: PyonAir - это недорогая система для мониторинга локальных уровней загрязнения воздуха, в частности твердых частиц. Основанная на плате Pycom LoPy4 и оборудовании, совместимом с Grove, система может передавать данные как по LoRa, так и по Wi-Fi. Я взялся за этот п
K-Ability V2 - клавиатура с открытым исходным кодом для сенсорных экранов: 6 шагов (с изображениями)
K-Ability V2 - клавиатура с открытым исходным кодом для сенсорных экранов: этот прототип является второй версией K-Ability. K-Ability - это физическая клавиатура, которая позволяет использовать устройства с сенсорным экраном людям с патологиями, приводящими к нервно-мышечным расстройствам. которые упрощают использование вычислений
Как собрать ProtoBot - супер-недорогого образовательного робота с 100% открытым исходным кодом: 29 шагов (с изображениями)
Как собрать ProtoBot - сверхдорогого образовательного робота с 100% открытым исходным кодом: ProtoBot - это робот со 100% открытым исходным кодом, доступный, супер недорогой и простой в сборке. Все с открытым исходным кодом - оборудование, программное обеспечение, руководства и учебная программа - что означает, что любой может получить доступ ко всему, что ему нужно для создания и использования робота. Это г
Joy Robot (Robô Da Alegria) - 3D-печать с открытым исходным кодом, робот на базе Arduino !: 18 шагов (с изображениями)
Joy Robot (Robô Da Alegria) - 3D-печать с открытым исходным кодом, робот с питанием от Arduino!: Первый приз в конкурсе Instructables Wheels, второй приз в конкурсе Instructables Arduino и второе место в конкурсе Design for Kids Challenge. Спасибо всем, кто голосовал за нас !!! Роботы появляются повсюду. От промышленного применения до u
Crazy Circuits: система обучения электронике с открытым исходным кодом: 8 шагов (с изображениями)
Crazy Circuits: система обучения электронике с открытым исходным кодом: образование и домашний рынок наводнены модульными системами «обучения» электроники, предназначенными для обучения детей и взрослых ключевым концепциям STEM и STEAM. Такие продукты, как LittleBits или Snapcircuits, по-видимому, доминируют в каждом путеводителе по праздничным подаркам или в родительском блоге