Съдържание:

BricKuber Project - робот за решаване на кубчета Raspberry Pi Rubiks: 5 стъпки (със снимки)
BricKuber Project - робот за решаване на кубчета Raspberry Pi Rubiks: 5 стъпки (със снимки)

Видео: BricKuber Project - робот за решаване на кубчета Raspberry Pi Rubiks: 5 стъпки (със снимки)

Видео: BricKuber Project - робот за решаване на кубчета Raspberry Pi Rubiks: 5 стъпки (със снимки)
Видео: CS50 2014 – 2-я неделя 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 и кубът на вашия Рубик е решен! Проектът използва Pi за директно решаване на куба на Рубик. BrickPi3 прави нерешения куб на Рубик, а Raspberry Pi прави снимка на всяка страна на куба на Рубик с камерата Raspberry Pi. Pi създава текстова карта на цветните квадратчета, която показва къде се намират на куба. Когато изцяло картографира куба, Pi използва библиотеката на python „kociemba“, за да очертае движенията, необходими за решаване на куба на Рубик. Тази информация е взета от Pi и BrickPi3 за решаване на куба на Рубик с помощта на LEGO моторите. Резултатът: решен куб на Рубик.

Стъпка 1: Инструменти и материали

Изградете го
Изградете го
  • BrickPi3 - Ще използваме BrickPi, за да контролираме LEGO двигателите, които решават решаването на кубчета на Рубик.
  • Raspberry Pi - Pi ще извършва обработката, ще прави снимки и ще командва BrickPi.
  • Камера Raspberry Pi - Камерата Pi ще направи снимка на неразрешения куб Рубикс.
  • Ethernet кабел - Ще ви е необходимо вашето устройство да бъде свързано към интернет. Ако искате да направите това през wifi, това също е добре!
  • Raspbian for Robots SD Card - Софтуерът, който изпълнява Raspberry Pi. Това идва с повечето софтуер, необходим за този урок. Можете също да изтеглите софтуера безплатно.
  • Комплект LEGO Mindstorms EV3 (31313) - Ще ви трябват купчина LEGO и два големи двигателя, един серво мотор и ултразвуков сензор.
  • Кубик на Рубик - Намерихме такъв, който се върти доста свободно тук. Можете обаче да използвате почти всеки куб Рубик 9x9x9.

Стъпка 2: Изградете го

Изградете го
Изградете го
Изградете го
Изградете го

Изграждане на Solver

Този дизайн е вдъхновен от дизайна MindCub3r за LEGO EV3. За да изградите BricKuber, започнете с изграждането на MindCub3r. Пълни инструкции за изграждане на LEGO можете да намерите тук.

Дизайнът на кубика за решаване на Rubiks има три основни движещи се части. Първият е люлка, която държи куба на Рубик. Вторият е разбъркващият, ръка, която се използва за обръщане на куба на Рубик.

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

Сглобете BrickPi3

Тук можете да намерите инструкции за сглобяване на BrickPi3. Ще трябва да съберем кутията, да прикачим BrickPi3, Raspberry Pi, Raspberry Pi камерата, да добавим SD карта и да добавим батерии. За да улесните настройката на софтуера, Raspbian for Robots се доставя с по -голямата част от софтуера, който вече ще ви е необходим. Ще ви трябва поне 8 GB SD карта и ще искате да разширите диска, за да пасне на пълния размер на SD картата.

Прикрепете BrickPi3

Добавяме BrickPi3 към монтажа на LEGO. Използвахме „крилата“на LEGO EV3, за да поддържаме BrickPi3 и да го изравним с тялото на BricKuber. Това е добра стъпка за добавяне на 8XAA батерии към захранващия блок и закрепване на захранващия блок BrickPi3 към монтажа на LEGO. За програмиране можете да захранвате BrickPi3 чрез USB захранване към Raspberry Pi, но за да преместите двигателите, ще трябва да захранвате с Power Pack.

Свържете двигателите към BrickPi3

Прикрепете двигателя за разбъркване към моторния порт „MD“. Прикрепете двигателя на люлката към порта „MA“на BrickPi3. Прикрепете двигателя на сензора на камерата към порта „MC“(това е по-малкият сервоподобен двигател). Въпреки че няма да преместваме камерата, може да искате да коригирате местоположението на камерата с помощта на двигателите.

Прикрепете камерата Raspberry Pi

Използвайте поддръжката на LEGO Camera, прикрепете камерата. Малкият черен обектив на фотоапарата трябва да се побере между двете опори на лъч LEGO. Закрепете камерата на място към опорите на LEGO с малко електрическа лента. Това е подходящ момент да се уверите, че камерата е в позиция, за да може да заснеме целия куб на Рубик. Можете да направите тестова снимка с командата raspistill

raspistill -o cam.jpg

Проверете дали кубът е добре центриран в средата на картината.

Стъпка 3: Подгответе софтуера

Можете да използвате всяка версия на Raspbian или Raspbian за Robots, нашето персонализирано изображение, което идва с вече инсталиран 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/Проекти/BricKuber/BricKuber.py

Роботът ще обърне куба към всяко лице и камерата ще направи 6 снимки, по една от всяка страна на куба. Raspberry Pi ще определи конфигурацията на куба от шестте снимки. Конфигурацията на Cube ще бъде предадена на библиотеката на kociemba Python, за да се намери ефективно решение. И накрая, роботът ще изпълни ходовете, за да реши куба на Рубик!

Стъпка 5: Изходният код

Целият изходен код за BricKuber може да бъде намерен в нашето github репо с отворен код тук.

Този проект използва следните софтуерни пакети, инсталирани от командата

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