Obsah:
- Krok 1: Nástroje a materiály
- Krok 2: Postavte to
- Krok 3: Príprava softvéru
- Krok 4: Vyriešte Rubikovu kocku
- Krok 5: Zdrojový kód
Video: Projekt BricKuber - robot na riešenie kocky Raspberry Pi Rubiks: 5 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:01
BricKuber dokáže vyriešiť Rubikovu kocku za menej ako 2 minúty.
BricKuber je open source robot na riešenie Rubikových kociek, ktorý si môžete postaviť sami
S Raspberry Pi sme chceli postaviť robota na riešenie kociek Rubiks. Namiesto rýchlosti sme išli s jednoduchosťou: ak máte Raspberry Pi, súpravu BrickPi a štandardnú súpravu LEGO Mindstorms EV3 alebo NXT, mali by ste byť schopní ľahko ísť v našich stopách. Software je napísaný v programovacom jazyku Python. Tu môžete vidieť všetok zdrojový kód na Github.
Pozadie Rubikova kocka sa nedávno začala vracať. Bol vynájdený v roku 1974 a je najpredávanejšou hračkou na svete. Ich riešenie však vyžaduje myslenie, úsilie a zručnosť… tak prečo to nenechať robota? V tomto projekte berieme Raspberry Pi, BrickPi a sadu LEGO Mindstorms a zostrojíme robota na riešenie kociek Rubikovej kocky. Jednoducho vložte neriešenú Rubikovu kocku do riešiča, spustite program python a vaša Rubikova kocka je vyriešená! Projekt pomocou Pi priamo rieši Rubikovu kocku. BrickPi3 odoberá nevyriešenú Rubikovu kocku a Raspberry Pi odfotí každú stranu Rubikovej kocky pomocou kamery Raspberry Pi. Pi vytvára textovú mapu farebných štvorcov, ktorá ukazuje, kde sa na kocke nachádzajú. Keď Pi úplne zmapuje kocku, pomocou knižnice python „kociemba“zmapuje pohyby potrebné na vyriešenie Rubikovej kocky. Tieto informácie získavajú Pi a BrickPi3 na vyriešenie Rubikovej kocky pomocou motorov LEGO. Výsledok: vyriešená Rubikova kocka.
Krok 1: Nástroje a materiály
- BrickPi3 - BrickPi použijeme na ovládanie motorov LEGO, ktoré riešia riešenie Rubikovej kocky.
- Raspberry Pi - Pi bude vykonávať spracovanie, fotografovanie a ovládanie BrickPi.
- Kamera Raspberry Pi - Kamera Pi odfotí nevyriešenú Rubikovu kocku.
- Ethernetový kábel - Budete potrebovať, aby bolo vaše zariadenie pripojené k internetu. Ak to chcete urobiť cez wifi, je to tiež v poriadku!
- Karta SD Raspbian for Robots - softvér, na ktorom je spustený Raspberry Pi. K tomu je dodávaná väčšina softvéru potrebného pre tento tutoriál. Softvér si môžete stiahnuť aj zadarmo.
- Súprava LEGO Mindstorms EV3 (31313) - Budete potrebovať hromadu LEGO a dva veľké motory, jeden servomotor a ultrazvukový senzor.
- Rubikova kocka - Našli sme takú, ktorá sa tu celkom voľne točí. Môžete však použiť takmer akúkoľvek Rubikovu kocku 9x9x9.
Krok 2: Postavte to
Budovanie Riešiteľa
Tento dizajn bol inšpirovaný dizajnom MindCub3r pre LEGO EV3. Ak chcete postaviť BricKuber, začnite stavbou MindCub3r. Kompletný návod na stavanie LEGO nájdete tu.
Riešenie riešiteľa Rubikovej kocky má tri hlavné pohyblivé časti. Prvá je kolíska na uchytenie Rubikovej kocky. Druhým je shuffler, rameno, ktoré slúži na prevrátenie Rubikovej kocky.
Nakoniec pridáme rameno fotoaparátu. V pôvodnom dizajne od MindCubr to držalo farebný senzor EV3 nad Rubikovou kockou. V našom upravenom dizajne drží kameru Raspberry Pi nad Rubikovou kockou. Na manipuláciu s kockou používame dva motory LEGO Mindstorms: prvý sedí pod kolískou na otáčanie kocky a druhý pohybuje ramenom miešadla, aby kocku roztočil na opačnú os.
Zostavte BrickPi3
Tu nájdete návod na montáž BrickPi3. Budeme musieť zostaviť puzdro, pripojiť BrickPi3, Raspberry Pi, kameru Raspberry Pi, pridať kartu SD a pridať batérie. Aby bolo nastavenie softvéru jednoduchšie, Raspbian for Robots je dodávaný s väčšinou softvéru, ktorý už budete potrebovať nastaviť. Budete potrebovať najmenej 8 GB kartu SD a budete chcieť disk rozšíriť tak, aby zodpovedal celej veľkosti karty SD.
Pripojte BrickPi3
Pridáme BrickPi3 do zostavy LEGO. „Krídla“LEGO EV3 sme použili na podporu BrickPi3 a jeho vyrovnanie s telom BricKuber. Toto je dobrý krok k pridaniu batérií 8XAA k napájaciemu bloku a pripojeniu napájacieho zdroja BrickPi3 k zostave LEGO. Na programovanie môžete BrickPi3 napájať z Raspberry Pi pomocou USB napájania, na presun motorov však budete potrebovať napájanie z Power Packu.
Pripojte motory k BrickPi3
Pripojte motor Shuffler k portu motora „MD“. Pripojte kolískový motor k portu „MA“na BrickPi3. Pripojte motor senzora kamery k portu „MC“(toto je menší motor podobný servu). Aj keď s kamerou nebudeme hýbať, možno budete chcieť upraviť polohu kamery pomocou motorov.
Pripojte kameru Raspberry Pi
Pripojte kameru pomocou podpory LEGO Camera. Malý čierny objektív fotoaparátu by mal zapadnúť medzi dve podpery lúčov LEGO. Zaistite kameru na mieste k podperám LEGO pomocou elektrickej pásky. Toto je vhodný čas na to, aby ste sa presvedčili, že kamera je schopná zachytiť celú Rubikovu kocku. Testovací obrázok môžete urobiť pomocou príkazu raspistill
raspistill -o cam.jpg
Skontrolujte, či je kocka v strede obrázku dobre vycentrovaná.
Krok 3: Príprava softvéru
Môžete použiť akúkoľvek verziu Raspbian alebo Raspbian pre Robots, náš vlastný obrázok, ktorý je súčasťou už nainštalovaného BrickPi3. Ak používate štandardnú verziu Raspbian, knižnice BrickPi3 môžete nainštalovať pomocou príkazu
sudo curl -kL dexterindustries.com/update_brickpi3 | bash
Tento krok nainštaluje všetky knižnice potrebné na spustenie BrickPi3 na vašom obrázku Raspbian. Tento krok preskočte, ak používate Raspbian pre roboty: BrickPi3 je už nainštalovaný.
Nakoniec nainštalujte všetky závislosti projektu pomocou príkazu:
sudo curl https://raw.githubusercontent.com/DexterInd/Brick… | bash
Na tento krok bude potrebné, aby bol váš BrickPi3 pripojený k internetu. Existuje niekoľko knižníc, od ktorých projekt závisí, vrátane niektorých zásadných, ktorých autorom je Daniel Walton (@dwalton76) na Github, ktoré sa používajú na riešenie Rubikovej kocky.
Krok 4: Vyriešte Rubikovu kocku
Do kolísky vložte nevyriešenú Rubikovu kocku. Spustite príkaz
sudo python ~/Dexter/BrickPi3/Projects/BricKuber/BricKuber.py
Robot obráti kocku na každú tvár a fotoaparát nasníma 6 fotografií, jednu z každej strany kocky. Raspberry Pi určí konfiguráciu kocky zo šiestich obrázkov. Konfigurácia Cube bude odoslaná do knižnice kociemba Python, aby našla efektívne riešenie. Nakoniec robot vykoná ťahy a vyrieši Rubikovu kocku!
Krok 5: Zdrojový kód
Všetky zdrojové kódy pre BricKuber nájdete v našom open source github repo tu.
Tento projekt používa nasledujúce softvérové balíky nainštalované príkazom
Odporúča:
Kocky LED kocky: 3 kroky
Kocky LED kocky: Tento projekt vytvára kocky LED, ktoré vytvoria nové číslo pri každom naklonení senzora náklonu. Tento projekt by mohol byť upravený tak, aby používal tlačidlo, ale kód by bolo potrebné zodpovedajúcim spôsobom zmeniť. Pred začatím tohto projektu zapojte 5V
Q -Bot - riešenie Rubikovej kocky s otvoreným zdrojovým kódom: 7 krokov (s obrázkami)
Q -Bot - riešiteľ Rubikovej kocky s otvoreným zdrojovým kódom: Predstavte si, že máte zakódovanú Rubikovu kocku, viete, že puzzle z 80. rokov, ktoré má každý, ale nikto nevie, ako ho vyriešiť, a chcete ho vrátiť do pôvodného vzoru. Našťastie v dnešnej dobe je veľmi ľahké nájsť návod na riešenie
E -kocky - Arduino kocky/1 až 6 kociek + D4, D5, D8, D10, D12, D20, D24 a D30: 6 krokov (s obrázkami)
E -kocky - Arduino kocky/kocky 1 až 6 kociek + D4, D5, D8, D10, D12, D20, D24 a D30: Jedná sa o jednoduchý arduino projekt na výrobu elektronickej kocky. Je možné si vybrať pre 1 až 6 kociek alebo 1 z 8 špeciálnych kociek. Voľba sa vykonáva jednoduchým otočením rotačného enkodéra. Ide o tieto funkcie: 1 kocka: zobrazenie veľkých bodiek 2-6 kociek: zobrazenie bodiek
Krokový štít Arduino Mega pre riešenie kociek Rubiks: 4 kroky
Arduino Mega Stepper Shield for Rubiks Cube Solver: Pred chvíľou som pracoval na stroji, ktorý automaticky rieši akúkoľvek zakódovanú 3x3 Rubiks Cube. Moje pokyny k tomu nájdete tu. V projekte boli krokové ovládače z polulu použité na pohon šiestich motorov. Aby dvaja urobili prepojenie týchto
Projekt kocky Raspberry PI: 6 krokov
Kockový projekt Raspberry PI: Pekný malý projekt spájkovania a po dokončení cvičenia programovania Raspberry PI. Kvôli koronavírusu sme zatvorení, takže sa pokúšame urobiť nejaké domáce vzdelávanie a zamestnať môjho 10 -ročného syna. Je to pekný malý projekt