Innehållsförteckning:
- Steg 1: Verktyg och material
- Steg 2: Bygg det
- Steg 3: Förbered programvaran
- Steg 4: Lös en Rubiks kub
- Steg 5: Källkoden
Video: BricKuber Project - en Raspberry Pi Rubiks Cube Solving Robot: 5 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
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
- 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
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ä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:
Arduino - Maze Solving Robot (MicroMouse) Wall Following Robot: 6 steg (med bilder)
Arduino | Maze Solving Robot (MicroMouse) Wall Following Robot: Welcome I'm Isaac och detta är min första robot " Striker v1.0 " .Denna Robot var utformad för att lösa en enkel labyrint. I tävlingen hade vi två labyrinter och roboten Alla andra förändringar i labyrinten kan kräva en ändring av
Realtids Rubiks kub med ögonbindellösare med Raspberry Pi och OpenCV: 4 steg
Realtids Rubiks kub förblindade lösare med Raspberry Pi och OpenCV: Detta är den andra versionen av Rubiks kubverktyg som är gjord för att lösa i ögonbindel. Den första versionen utvecklades av javascript, du kan se projektet RubiksCubeBlindfolded1 Till skillnad från den föregående använder denna version OpenCV -bibliotek för att upptäcka färger och
Enkel lutningsbaserad färgbytande trådlös Rubiks kublampa: 10 steg (med bilder)
Enkel lutningsbaserad färgbyte av trådlös Rubiks kublampa: Idag ska vi bygga denna fantastiska Rubiks kub-liknande lampa som ändrar färg baserat på vilken sida som är uppåt. Kuben körs på ett litet LiPo-batteri, laddat med en vanlig mikro-usb-kabel, och har i mina tester en batteritid på flera dagar. Detta
Funktionellt USB -minne Rubiks Cube: 7 steg (med bilder)
Funktionell USB Flash Drive Rubiks Cube: I den här självstudien ska jag visa dig hur du gör din egen Rubik USB Flash Drive Du kan se den färdiga produkten i följande video:
Q -Bot - Rubiks kublösare med öppen källkod: 7 steg (med bilder)
Q -Bot - Rubiks kubslösare med öppen källkod: Föreställ dig att du har en rubiks kub, du vet att det pusslet från 80 -talet som alla har men ingen riktigt vet hur de ska lösa, och du vill ta tillbaka det till sitt ursprungliga mönster. Lyckligtvis nuförtiden är det väldigt lätt att hitta lösningsinstruktioner