Съдържание:

Rubics Cube Solver Bot: 5 стъпки (със снимки)
Rubics Cube Solver Bot: 5 стъпки (със снимки)

Видео: Rubics Cube Solver Bot: 5 стъпки (със снимки)

Видео: Rubics Cube Solver Bot: 5 стъпки (със снимки)
Видео: Как да наредим кубчето на Рубик в 5 стъпки. 2024, Юли
Anonim
Rubics Cube Solver Bot
Rubics Cube Solver Bot

Създаване на автономен робот, който решава физически куб на Рубик. Това е проект по Robotics Club, IIT Guwahati.

Изработен е от прост материал, който може лесно да се намери. Използвахме главно серво мотори и Arduino, за да ги контролираме, акрилни листове, счупен Mini Drafter, L-скоби и двойни ленти!

За да получим алгоритъма за решаване на куба използвахме библиотеката cubejs от github.

Стъпка 1: Използвани материали

Използвани материали
Използвани материали
  1. 6 серво мотора
  2. Arduino Uno
  3. 3-клетъчна LiPo батерия
  4. Акрилен лист (дебелина 8 мм и 5 мм)
  5. Пистолет за горещ въздух(
  6. Свредло машина
  7. Ножовка
  8. L скоби
  9. Алуминиеви ленти
  10. Мини чекмедже/ метални пръти
  11. Двойна лента
  12. Феви Бързо
  13. Болтове с гайки
  14. Кабелни проводници

Стъпка 2: Подготовка на механичната структура

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

Основната рамка

  • Вземете акрилен лист с дебелина 8 мм приблизително 50 см * 50 см и маркирайте центъра на всички страни (това ще бъде основата на вашия робот).
  • Вземете счупен чекмедже и извадете 4 -те стоманени пръта от него.. (тези пръти ще служат като път за вашия плъзгач).
  • На две правоъгълни парчета акрил (от всякакъв размер) фиксирайте две пръти успоредно една на друга и направете два чифта от този монтаж.
  • След това, за да направите плъзгач, подредете две малки парчета акрил едно върху друго с разделители между тях в четирите ъгъла и ги закрепете с болтове в дистанционерите. Ще ви трябват 4 такива плъзгача.
  • Преди да закрепите двете части на плъзгача, прекарайте предварително фиксираните успоредни пръти между тях, така че дистанционните елементи само да докосват външната повърхност на прътите.
  • За всяка двойка успоредни пръти прекарайте два плъзгача върху тях.
  • След като това е готово, подредете двойката пръти под формата на кръст от 90 градуса. Уверете се, че има един плъзгач във всеки край на кръста.
  • Сега всичко, което трябва да направите, е да прикрепите този кръстосан път към основата на вашия робот, на някаква височина от основата. (Уверете се, че котата е по -голяма от височината на серво мотор)

    За това можете да използвате акрилни крепежи с L-скоби, както направихме ние, или всеки друг метод ще бъде достатъчен

След това вашата структура трябва да изглежда нещо като изображението.

Прикрепване на базовите сервомотори

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

Изработване на бутални пръти

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

Монтиране на горните серво

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

C-ноктите

  • Ноктите трябва да са такива, че да отговарят точно на страна на куба, а дължината на горната и долната част не трябва да надвишава страна на куб.
  • За целта вземете акрилна лента с достатъчна дебелина и я загрейте. След като се разтопи, оформете оформянето на C-образна скоба, така че да прихваща точно страна на куба.
  • Маркирайте центъра на C-ноктите и фиксирайте тази скоба към люлката на серво в центъра.

Направете някои малки корекции, ако е необходимо, така че всяка скоба да е на една и съща височина.

Това завършва механичната структура на вашия робот, нека преминем към връзките на веригата ………

Стъпка 3: Връзки на веригата

Връзки на веригата
Връзки на веригата

За управление на Bot използвахме Arduino, регулатор на напрежението и 3-клетъчна (12v) LiPo батерия.

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

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

Регулаторът на напрежението е свързан към макета и се захранва от 12 -волтова батерия. Изходното (5V) захранване се подава директно към двигателите. Земята на двигателите също е свързана към макета. Общото място беше прикрепено и към Arduino.

Стъпка 4:

Image
Image

Стъпка 5: Код:

Дадените два файла показват кода, написан за даване на команда на двигателите за конкретни стъпки с помощта на Arduino.

Първият файл съдържа основната функция и други определения на променливи. Вторият файл съдържа функции за всеки ход, използван при решаване на куб (напр. U за „въртене нагоре по посока на часовниковата стрелка“; R1 за „дясно лице обратно на часовниковата стрелка“и т.н.)

За да получим алгоритъма за решаване на куба използвахме библиотеката cubejs от github.

Алгоритъмът директно дава изход в „лицеви движения“, който се допълва от кода на Arduino.

Препоръчано: