Innehållsförteckning:

BricKuber Project - en Raspberry Pi Rubiks Cube Solving Robot: 5 steg (med bilder)
BricKuber Project - en Raspberry Pi Rubiks Cube Solving Robot: 5 steg (med bilder)

Video: BricKuber Project - en Raspberry Pi Rubiks Cube Solving Robot: 5 steg (med bilder)

Video: BricKuber Project - en Raspberry Pi Rubiks Cube Solving Robot: 5 steg (med bilder)
Video: How To Build a Raspberry Pi Rubiks Cube Solving Robot 2024, November
Anonim
Image
Image

BricKuber kan lösa en Rubiks kub på mindre än 2 minuter.

BricKuber är en öppen källkod Rubiks kublösningsrobot som du kan bygga själv

Vi ville bygga en Rubiks kublösningsrobot med Raspberry Pi. Istället för att gå för hastighet, gick vi med enkelhet: om du har en Raspberry Pi, ett BrickPi -kit och ett standard LEGO Mindstorms EV3 eller NXT -kit, borde du enkelt kunna följa i våra fotspår. Programvaran är skriven på programmeringsspråket Python. Du kan se all källkod på Github här.

Bakgrund Rubiks kub har nyligen börjat göra comeback. Den uppfanns 1974 och är världens mest sålda leksak. Men att lösa dem kräver tanke, ansträngning och skicklighet… så varför inte låta en robot göra det? I detta projekt tar vi en Raspberry Pi, en BrickPi och en uppsättning LEGO Mindstorms och bygger en Rubiks kublösningsrobot. Lägg helt enkelt en olöst Rubiks kub i lösaren, kör pythonprogrammet och din Rubiks kub är löst! Projektet använder Pi för att direkt lösa Rubiks kub. BrickPi3 tar den olösta Rubiks kub och Raspberry Pi tar en bild av varje sida av Rubiks kub med Raspberry Pi -kameran. Pi skapar en textkarta över färgkvadraterna som visar var de finns på kuben. När den har kartlagt kuben helt, använder Pi pythonbiblioteket "kociemba" för att kartlägga de rörelser som behövs för att lösa Rubiks kub. Denna information tas av Pi och BrickPi3 för att lösa Rubiks kub med hjälp av LEGO -motorerna. Resultatet: en löst Rubiks kub.

Steg 1: Verktyg och material

Bygg det
Bygg det
  • BrickPi3 - Vi använder BrickPi för att styra LEGO -motorerna som löser Rubiks kublösare.
  • Raspberry Pi - Pi kommer att göra bearbetning, ta bilder och kommando över BrickPi.
  • Raspberry Pi -kamera - Pi -kameran tar en bild av den olösta Rubiks -kuben.
  • Ethernet -kabel - Du behöver din maskin för att vara ansluten till internet. Om du vill göra detta via wifi är det också bra!
  • Raspbian for Robots SD Card - Programvaran som kör Raspberry Pi. Detta kommer med det mesta av programvaran som behövs för denna handledning. Du kan också ladda ner programvaran gratis.
  • LEGO Mindstorms EV3 -kit (31313) - Du behöver en hög med LEGO och två stora motorer, en servomotor och ultraljudssensorn.
  • En Rubiks kub - Vi hittade en som snurrar ganska fritt här. Du kan dock använda nästan vilken 9x9x9 Rubiks kub som helst.

Steg 2: Bygg det

Bygg det
Bygg det
Bygg det
Bygg det

Bygga lösaren

Denna design inspirerades av MindCub3r -designen för LEGO EV3. För att bygga BricKuber, börja med att bygga MindCub3r. Hela LEGO -bygginstruktioner hittar du här.

Rubiks kublösningsdesign har tre stora rörliga delar. Den första är en vagga för att hålla Rubiks kub. Den andra är shuffler, en arm som används för att vända Rubiks kub.

Slutligen lägger vi till en kamerarm. I den ursprungliga designen av MindCubr höll detta EV3 -färgsensorn över Rubiks kub. I vår modifierade design har den en Raspberry Pi -kamera över Rubiks kub. Vi använder två LEGO Mindstorms -motorer för att manipulera kuben: den första sitter nedanför vaggan för att rotera kuben, och den andra rör shufflerarmen för att snurra kuben på en motsatt axel.

Montera BrickPi3

Du hittar monteringsanvisningar för BrickPi3 här. Vi måste montera fodralet, fästa BrickPi3, Raspberry Pi, Raspberry Pi -kameran, lägga till ett SD -kort och lägga till batterier. För att göra programvaran enklare att installera kommer Raspbian for Robots med det mesta av den programvara du behöver redan installerad. Du behöver minst ett 8 GB SD -kort, och du kommer att vilja expandera disken för att passa hela SD -kortets storlek.

Fäst BrickPi3

Vi lägger till BrickPi3 i LEGO -enheten. Vi använde LEGO EV3”vingarna” för att stödja BrickPi3 och göra den i nivå med BricKuber -kroppen. Detta är ett bra steg att lägga till 8XAA -batterier i kraftpaketet och fästa BrickPi3 -batteriet i LEGO -enheten. För programmering kan du driva BrickPi3 via USB -ström till Raspberry Pi, men för att flytta motorerna behöver du strömförsörja med Power Pack.

Anslut motorerna till BrickPi3

Fäst shufflermotorn på motorporten "MD". Anslut vaggmotorn till "MA" -porten på BrickPi3. Anslut kamerasensormotorn till "MC" -porten (detta är den mindre servoliknande motorn). Även om vi inte kommer att flytta kameran, kanske du vill justera kamerans placering med hjälp av motorerna.

Fäst Raspberry Pi -kameran

Fäst kameran med hjälp av LEGO Camera -stödet. Kamerans lilla svarta lins ska passa mellan de två LEGO -strålskenorna. Fäst kameran på plats i LEGO -stödet med lite tejp. Detta är en bra tid att se till att kameran är i position för att kunna fånga hela Rubiks kub. Du kan ta en testbild med kommandot raspistill

raspistill -o cam.jpg

Kontrollera att kuben är välcentrerad i mitten av bilden.

Steg 3: Förbered programvaran

Du kan använda vilken som helst version av Raspbian eller Raspbian for Robots, vår anpassade bild som levereras med BrickPi3 redan installerad. Om du använder en standardversion av Raspbian kan du installera BrickPi3 -biblioteken med kommandot

sudo curl -kL dexterindustries.com/update_brickpi3 | våldsamt slag

Detta steg installerar alla bibliotek som behövs för att köra BrickPi3 på din Raspbian -bild. Hoppa över det här steget om du använder Raspbian för robotar: BrickPi3 är redan installerat.

Slutligen installerar du alla projektberoenden med kommandot:

sudo curl https://raw.githubusercontent.com/DexterInd/Brick… | våldsamt slag

För detta steg måste din BrickPi3 vara ansluten till internet. Det finns ett antal bibliotek som projektet är beroende av, inklusive några viktiga bibliotek av Daniel Walton (@dwalton76) på Github, som används för att lösa Rubiks kub.

Steg 4: Lös en Rubiks kub

Lös en Rubiks kub
Lös en Rubiks kub
Lös en Rubiks kub
Lös en Rubiks kub
Lös en Rubiks kub
Lös en Rubiks kub

Lägg en olös kub i Rubad. Kör kommandot

sudo python ~/Dexter/BrickPi3/Projects/BricKuber/BricKuber.py

Roboten vänder kuben till varje ansikte och kameran tar 6 bilder, en på varje sida av kuben. Raspberry Pi kommer att bestämma kubkonfigurationen utifrån de sex bilderna. Kubkonfigurationen skickas till kociemba Python -biblioteket för att hitta en effektiv lösning. Slutligen kommer roboten att utföra åtgärderna för att lösa Rubiks kub!

Steg 5: Källkoden

All källkod för BricKuber finns i vår github -repo med öppen källkod här.

Detta projekt använder följande mjukvarupaket installerade med kommandot

Rekommenderad: