Turinys:

„BricKuber“projektas - „Raspberry Pi Rubiks“kubo sprendimo robotas: 5 žingsniai (su paveikslėliais)
„BricKuber“projektas - „Raspberry Pi Rubiks“kubo sprendimo robotas: 5 žingsniai (su paveikslėliais)

Video: „BricKuber“projektas - „Raspberry Pi Rubiks“kubo sprendimo robotas: 5 žingsniai (su paveikslėliais)

Video: „BricKuber“projektas - „Raspberry Pi Rubiks“kubo sprendimo robotas: 5 žingsniai (su paveikslėliais)
Video: sunday reset part 2 #asmr 2024, Birželis
Anonim
Image
Image

„BricKuber“gali išspręsti Rubiko kubą maždaug per 2 minutes.

„BricKuber“yra atviro kodo Rubiko kubo sprendimo robotas, kurį galite sukurti patys

Mes norėjome su „Raspberry Pi“sukurti Rubiko kubo sprendimo robotą. Vietoj to, kad siektume greičio, pasirinkome paprastumą: jei turite „Raspberry Pi“, „BrickPi“rinkinį ir standartinį „LEGO Mindstorms EV3“ar „NXT Kit“rinkinį, turėtumėte lengvai sekti mūsų pėdomis. Programinė įranga parašyta „Python“programavimo kalba. Visą „Github“šaltinio kodą galite pamatyti čia.

Fonas Rubiko kubas neseniai pradėjo sugrįžti. Išrastas 1974 m., Tai yra geriausiai parduodamas žaislas pasaulyje. Tačiau jų sprendimas reikalauja minčių, pastangų ir įgūdžių… tai kodėl gi neleisti robotui to padaryti? Šiame projekte mes paimame „Raspberry Pi“, „BrickPi“ir „LEGO Mindstorms“rinkinį ir sukursime Rubiko kubo sprendimo robotą. Tiesiog įdėkite neišspręstą Rubiko kubą į sprendiklį, paleiskite python programą ir jūsų Rubiko kubas bus išspręstas! Projektas naudoja Pi, kad tiesiogiai išspręstų Rubiko kubą. „BrickPi3“fotografuoja neišspręstą Rubiko kubą, o „Raspberry Pi“fotografuoja kiekvieną Rubiko kubo pusę su „Raspberry Pi“fotoaparatu. Pi sukuria spalvų kvadratų tekstinį žemėlapį, kuriame parodyta, kur jie yra kube. Kai „Pi“visiškai suplanavo kubą, jis naudoja „kociemba“python biblioteką, kad suplanuotų judesius, reikalingus Rubiko kubui išspręsti. Šią informaciją paima „Pi“ir „BrickPi3“, kad išspręstų Rubiko kubą naudojant „LEGO“variklius. Rezultatas: išspręstas Rubiko kubas.

1 žingsnis: įrankiai ir medžiagos

Sukurkite
Sukurkite
  • „BrickPi3“- mes naudosime „BrickPi“, kad valdytume „LEGO“variklius, kurie išsprendžia Rubiko kubo sprendiklį.
  • „Raspberry Pi“- „Pi“apdoros, fotografuos ir lieps „BrickPi“.
  • „Raspberry Pi“kamera - „Pi“kamera nufotografuos neišspręstą Rubiko kubą.
  • Ethernet kabelis - jums reikės, kad jūsų įrenginys būtų prijungtas prie interneto. Jei norite tai padaryti naudodami „Wi -Fi“, tai taip pat gerai!
  • „Raspbian for Robots“SD kortelė - programinė įranga, kurioje veikia „Raspberry Pi“. Tai yra dauguma programinės įrangos, reikalingos šiai pamokai. Programinę įrangą taip pat galite atsisiųsti nemokamai.
  • LEGO Mindstorms EV3 rinkinys (31313) - Jums reikės krūvos LEGO ir dviejų didelių variklių, vieno servo variklio ir ultragarso jutiklio.
  • Rubiko kubas - radome tokį, kuris čia sukasi gana laisvai. Tačiau galite naudoti beveik bet kokį 9x9x9 Rubiko kubą.

2 žingsnis: sukurkite

Sukurkite
Sukurkite
Sukurkite
Sukurkite

Sprendėjo kūrimas

Šį dizainą įkvėpė LEGO EV3 „MindCub3r“dizainas. Norėdami sukurti „BricKuber“, pradėkite nuo „MindCub3r“kūrimo. Visą LEGO statybos instrukciją rasite čia.

„Rubiks“kubo sprendiklio dizainas turi tris pagrindines judančias dalis. Pirmasis yra lopšys Rubiko kubui laikyti. Antrasis yra maišytuvas, ranka, naudojama Rubiko kubui apversti.

Galiausiai pridedame fotoaparato rankeną. Originaliame „MindCubr“projekte EV3 spalvų jutiklis buvo laikomas ant Rubiko kubo. Mūsų modifikuotame dizaine jis turi Raspberry Pi kamerą virš Rubiko kubo. Mes naudojame du „LEGO Mindstorms“variklius, kad manipuliuotume kubu: pirmasis yra žemiau lopšio, kad pasuktų kubą, o antrasis judina maišytuvo ranką, kad suktų kubą priešinga ašimi.

Surinkite „BrickPi3“

„BrickPi3“surinkimo instrukcijas rasite čia. Mums reikės surinkti dėklą, pritvirtinti „BrickPi3“, „Raspberry Pi“, „Raspberry Pi“fotoaparatą, pridėti SD kortelę ir pridėti baterijas. Kad būtų lengviau įdiegti programinę įrangą, „Raspbian for Robots“pateikiama su dauguma programinės įrangos, kurios jums jau reikės. Jums reikės bent 8 GB SD kortelės ir norėsite išplėsti diską, kad jis atitiktų viso dydžio SD kortelę.

Pritvirtinkite „BrickPi3“

Pridedame „BrickPi3“prie „LEGO“rinkinio. Mes panaudojome „LEGO EV3“„sparnus“, kad galėtume palaikyti „BrickPi3“ir padaryti jį lygų „BricKuber“korpusui. Tai geras žingsnis pridėti 8XAA baterijas prie maitinimo bloko ir prijungti „BrickPi3“maitinimo bloką prie „LEGO“mazgo. Programavimui galite įjungti „BrickPi3“per USB maitinimą į „Raspberry Pi“, tačiau, norėdami perkelti variklius, turėsite tiekti energiją naudodami „Power Pack“.

Prijunkite variklius prie „BrickPi3“

Pritvirtinkite maišytuvo variklį prie variklio prievado „MD“. Pritvirtinkite lopšio variklį prie „BrickPi3“prievado „MA“. Pritvirtinkite fotoaparato jutiklio variklį prie „MC“prievado (tai yra mažesnis servo tipo variklis). Nors nejudinsime fotoaparato, galbūt norėsite pakoreguoti kameros vietą naudodami variklius.

Prijunkite „Raspberry Pi“fotoaparatą

Naudodami „LEGO Camera“palaikymą, pritvirtinkite fotoaparatą. Mažas juodas fotoaparato objektyvas turėtų tilpti tarp dviejų LEGO spindulių atramų. Pritvirtinkite fotoaparatą prie LEGO atramų tam tikra elektros juosta. Tai tinkamas laikas įsitikinti, kad fotoaparatas yra tokioje padėtyje, kad galėtų užfiksuoti visą Rubiko kubą. Galite padaryti bandomąją nuotrauką naudodami raspistill komandą

raspistill -o cam.jpg

Patikrinkite, ar kubas yra gerai centre paveikslo viduryje.

3 žingsnis: Paruoškite programinę įrangą

Galite naudoti bet kurią „Raspbian“arba „Raspbian for Robots“versiją, mūsų pasirinktinį vaizdą, pateiktą kartu su jau įdiegtu „BrickPi3“. Jei naudojate standartinę „Raspbian“versiją, galite įdiegti „BrickPi3“bibliotekas naudodami komandą

sudo curl -kL dexterindustries.com/update_brickpi3 | mušti

Šis veiksmas įdiegs visas bibliotekas, reikalingas „BrickPi3“paleidimui jūsų „Raspbian“vaizde. Praleiskite šį veiksmą, jei naudojate „Raspbian for Robots“: „BrickPi3“jau įdiegta.

Galiausiai įdiekite visas projekto priklausomybes naudodami komandą:

sudo curl https://raw.githubusercontent.com/DexterInd/Brick… | mušti

Norėdami tai padaryti, „BrickPi3“turės būti prijungtas prie interneto. Yra daug bibliotekų, nuo kurių priklauso projektas, įskaitant keletą svarbių Danielio Waltono (@dwalton76) „Github“bibliotekų, kurios naudojamos Rubiko kubui spręsti.

4 žingsnis: išspręskite Rubiko kubą

Išspręskite Rubiko kubą
Išspręskite Rubiko kubą
Išspręskite Rubiko kubą
Išspręskite Rubiko kubą
Išspręskite Rubiko kubą
Išspręskite Rubiko kubą

Į lopšį įdėkite neišspręstą Rubiko kubą. Vykdykite komandą

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

Robotas pasuks kubą į kiekvieną veidą, o kamera nufotografuos 6 nuotraukas, po vieną iš kiekvienos kubo pusės. „Raspberry Pi“nustatys kubo konfigūraciją iš šešių nuotraukų. „Cube“konfigūracija bus perduota „kociemba Python“bibliotekai, kad būtų rastas efektyvus sprendimas. Galiausiai robotas atliks judesius, kad išspręstų Rubiko kubą!

5 žingsnis: šaltinio kodas

Visą „BricKuber“šaltinio kodą galite rasti mūsų atvirojo kodo „github“repo čia.

Šiame projekte naudojami šie komandos įdiegti programinės įrangos paketai

Rekomenduojamas: