Оглавление:

Робот Rubics Cube Solver: 5 шагов (с изображениями)
Робот Rubics Cube Solver: 5 шагов (с изображениями)

Видео: Робот Rubics Cube Solver: 5 шагов (с изображениями)

Видео: Робот Rubics Cube Solver: 5 шагов (с изображениями)
Видео: Кубик рубика 2х2 одной рукой. Сборка на чемпионате в Челябинске 22 октября 2022 г. URAL AUTUMN 2024, Ноябрь
Anonim
Робот Rubics Cube Solver
Робот Rubics Cube Solver

Создание автономного робота, решающего физический кубик Рубика. Это проект под эгидой Робототехнического клуба ИИТ Гувахати.

Он сделан из простого материала, который легко найти. В основном мы использовали серводвигатели и Arduino для управления ими, акриловые листы, сломанный Mini Drafter, L-образные зажимы и двойные ленты!

Для получения алгоритма решения куба мы использовали библиотеку cubejs с github.

Шаг 1: Используемые материалы

Используемые материалы
Используемые материалы
  1. 6 серводвигателей
  2. Ардуино Уно
  3. 3-элементный LiPo аккумулятор
  4. Акриловый лист (толщина 8 мм и 5 мм)
  5. Тепловая пушка(
  6. Сверлильный станок
  7. Ножовка
  8. L зажимы
  9. Алюминиевые полосы
  10. Mini Drafter / металлические стержни
  11. Двойная лента
  12. Феви Квик
  13. Гайка болты
  14. Провода перемычки

Шаг 2: подготовка механической конструкции

Подготовка механической конструкции
Подготовка механической конструкции
Подготовка механической конструкции
Подготовка механической конструкции

Базовая рама

  • Возьмите акриловый лист толщиной 8 мм примерно 50 * 50 см и отметьте центр всех сторон (это будет основа вашего робота).
  • Возьмите сломанный черенок и удалите из него 4 стальных стержня (эти стержни будут служить дорожкой для вашего слайдера).
  • На двух прямоугольных кусках акрила (любого размера) закрепите два стержня параллельно друг другу и сделайте две пары этой сборки.
  • Затем, чтобы сделать слайдер, сложите два небольших куска акрила один поверх другого с распорками между ними по четырем углам и закрепите их болтами в распорках. Вам понадобится 4 таких ползунка.
  • Перед закреплением двух частей ползуна пропустите между ними ранее закрепленные параллельные стержни так, чтобы прокладки касались внешней поверхности стержней.
  • Для каждой пары параллельных стержней проденьте на них по два ползуна.
  • Когда все будет готово, расположите пару стержней в виде креста под углом 90 градусов. Убедитесь, что на каждом конце креста есть по одному ползунку.
  • Теперь все, что вам нужно сделать, это прикрепить этот перекрестный путь к основанию вашего робота на некотором возвышении от основания (убедитесь, что высота больше, чем высота серводвигателя).

    Для этого вы можете использовать акриловые крепления с L-образными зажимами, как мы, или любой другой метод

После этого ваша структура должна выглядеть примерно так, как на картинке.

Присоединение базовых сервоприводов

  • Два базовых сервопривода должны быть прикреплены таким образом, чтобы сервопривод находился ниже плеча креста и был смещен от центра.
  • Сервоприводы прикреплены в горизонтальном положении к перфорированной силиконовой пластине с помощью длинных болтов, которые, в свою очередь, прикреплены к основанию с помощью L-образного зажима и двусторонней ленты.

Изготовление двухтактных стержней

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

Монтаж верхних сервоприводов

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

C-когти

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

При необходимости внесите некоторые незначительные изменения, чтобы все зажимы находились на одинаковой высоте.

Это завершает механическую структуру вашего робота, давайте перейдем к схемам подключения ……..

Шаг 3: Подключение схемы

Цепные соединения
Цепные соединения

Для управления ботом мы использовали Arduino, регулятор напряжения и 3-элементную (12 В) батарею LiPo.

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

Сигнальные входы двигателей (самый светлый цветной провод из трех) были подключены к цифровым выводам PWM 3, 5, 6, 9, 10, 11 Arduino.

Регулятор напряжения был подключен на макетной плате и питался от 12-вольтовой батареи. Выходное напряжение (5 В) подавалось непосредственно на двигатели. К макетной плате также были подключены заземления двигателей. Общие точки соприкосновения были приложены и к Arduino.

Шаг 4:

Image
Image

Шаг 5: Код:

В двух приведенных файлах показан код, написанный для подачи команд двигателям на определенных этапах с использованием Arduino.

Первый файл содержит главную функцию и другие определения переменных. Второй файл содержит функции для каждого движения, используемого при сборке куба (например, U для «вращения лицевой стороной вверх по часовой стрелке»; R1 для «движения правой стороной против часовой стрелки» и т. Д.)

Для получения алгоритма решения куба мы использовали библиотеку cubejs с github.

Алгоритм напрямую выдает результат в виде «движений лица», которые завершаются кодом Arduino.

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