INHOUDSOPGAWE:

Q -Bot - die Open Source Rubik's Cube Solver: 7 stappe (met foto's)
Q -Bot - die Open Source Rubik's Cube Solver: 7 stappe (met foto's)

Video: Q -Bot - die Open Source Rubik's Cube Solver: 7 stappe (met foto's)

Video: Q -Bot - die Open Source Rubik's Cube Solver: 7 stappe (met foto's)
Video: Rubik's cube solve Without Looking |This Video 📹 completely change my life 💝💗 2024, Desember
Anonim
Image
Image
Beeld
Beeld

Stel jou voor dat jy 'n deurmekaar Rubik's Cube het, jy weet die legkaart uit die 80's wat almal het, maar niemand weet regtig hoe om dit op te los nie, en jy wil dit weer in sy oorspronklike patroon terugbring. Gelukkig is dit deesdae baie maklik om oplossingsinstruksies te vind. Kyk aanlyn na 'n video, leer hoe u die kante kan draai om vreugde te verskaf. Nadat u dit 'n paar keer gedoen het, sal u egter besef dat daar iets ontbreek. 'N Gat binne wat nie gevul kan word nie. Die ingenieurs/vervaardiger/hacker in u kan eenvoudig nie tevrede wees met die oplossing van iets so wonderliks op so 'n eenvoudige manier nie. Sou dit nie baie meer poëties wees as u 'n masjien gehad het wat al die oplossings vir u gedoen het nie? As jy iets sou bou, sou al jou vriende verbaas wees? Ek kan u verseker dat dit nie veel beter word as om te sien hoe u skepping wondere doen en 'n Rubik's Cube oplos nie. Kom dus saam met my op die wonderlike reis van die bou van Q-Bot, die open source Rubik's Cube Solver wat beslis geen wêreldrekords sal slaan nie, maar u ure se vreugde sal gee (nadat u natuurlik deur al die frustrasies gegaan het) tydens die bouproses).

Stap 1: Ontwerp die hardeware

Die volledige oplossing is ontwerp met CAD in Catia. Op hierdie manier kan die meeste ontwerpfoute gevind en reggestel word voordat enige fisiese komponente vervaardig word. Die grootste deel van die oplossing is 3D gedruk in PLA met 'n prusa MK3 -drukker. Daarbenewens is die volgende hardeware gebruik:

  • 8 stukke 8 mm aluminiumstaaf (10 cm lank)
  • 8 lineêre kogellagers (LM8UU)
  • 'n bietjie minder as 2 m GT2 6 mm -riem + 'n paar katrolle
  • 6 NEMA 17 bipolêre stepper motors
  • 6 Polulu 4988 stepper bestuurders
  • 'n Arudino Mega as die beheerder van die projek
  • 'n 12 V 3A kragtoevoer
  • 'n afwaartse omskakelaar om die arduino veilig aan te dryf
  • 'n paar skroewe en verbindings
  • 'n paar laaghout vir die basis

Hardeware beskrywing

Hierdie afdeling dek kortliks hoe die Q-Bot selfs funksioneer en waar bogenoemde komponente gebruik word. Hieronder kan u 'n weergawe van die volledig saamgestelde CAD -model sien.

Die Q-bot werk deurdat vier motors direk met die 3D-gedrukte grypers aan die Rubik's Cube gekoppel is. Dit beteken dat links, regs, voor en agter direk gedraai kan word. As die bokant of onderkant gedraai moet word, moet die hele kubus gedraai word en moet twee van die motors wegbeweeg. Dit word gedoen deur elkeen van die grypmotors aan sleë vas te maak wat deur 'n ander stepper motor aangedryf word en 'n tandriem langs 'n lineêre spoorstelsel. Die spoorstelsel bestaan uit twee 8 kogellagers wat in holtes in die slee gemonteer is en die hele slee ry op twee 8 mm aluminium skagte. Hieronder kan u die sub -samestelling van een as van die oplossing sien.

Die x- en die y-as is basies identies; dit verskil slegs in die hoogte van die monteerpunt van die gordel, dit is sodat daar geen botsings tussen die twee bande is wanneer dit volledig gemonteer is nie.

Beeld
Beeld

Stap 2: Kies die regte motors

Natuurlik is die keuse van die regte motors hier baie belangrik. Die belangrikste deel is dat hulle sterk genoeg moet wees om 'n Rubik -kubus te kan draai. Die enigste probleem hier is dat geen vervaardiger van Rubik se blokkies 'n wringkrag -gradering gee nie. Ek moes dus improviseer en my eie metings doen.

In die algemeen word wringkrag gedefinieer deur die krag wat loodreg op die posisie van die rotasiepunt op die afstand r gerig is:

Beeld
Beeld
Beeld
Beeld

Dus, as ek die krag op die kubus op een of ander manier kon meet, kon ek die wringkrag bereken. Dit is presies wat ek gedoen het. Ek het my kubus op 'n rak vasgemaak sodat slegs een kant kon beweeg. Dat 'n tou om die kubus vasgemaak word en 'n sak aan die onderkant vasgemaak word. Nou was dit net om die gewig in die sak stadig te verhoog totdat die kubus draai. Omdat daar geen akkurate gewigte was nie, het ek aartappels gebruik en dit daarna gemeet. Nie die mees wetenskaplike metode nie, maar omdat ek nie die minimum wringkrag probeer vind nie, is dit redelik voldoende.

Beeld
Beeld

Ek het die metings drie keer gedoen en die hoogste waarde geneem net om veilig te wees. Die gevolglike gewig was 0,52 kg. As gevolg van Sir Isaac Newton weet ons dat Force gelyk is aan massa en versnelling.

Beeld
Beeld

Die versnelling, in hierdie geval, is die gravitasieversnelling. Die vereiste wringkrag word dus gegee deur

Beeld
Beeld

Deur al die waardes in te sluit, insluitend die helfte van die diagonaal van die Rubik -kubus, word uiteindelik die vereiste wringkrag onthul.

Beeld
Beeld

Ek het met stapmotors gegaan wat tot 0,4Nm kan toedien, wat waarskynlik 'n oormaat is, maar ek wou veilig wees.

Stap 3: Bou die basis

Die basis bestaan uit 'n baie eenvoudige houtkas en bevat al die nodige elektronika. Dit bevat 'n prop om die masjien aan en uit te skakel, 'n LED om aan te dui of dit aangeskakel is, 'n USB B -poort en 'n aansluiting vir die kragtoevoer. Dit is gebou met laaghout van 15 mm, 'n paar skroewe en 'n bietjie gom.

Beeld
Beeld
Beeld
Beeld
Beeld
Beeld
Beeld
Beeld

Stap 4: Monteer die hardeware

Met al die vereiste onderdele, insluitend die basis, was die Q-bot gereed om te monteer. Die pasgemaakte onderdele is 3D gedruk en waar nodig aangepas. U kan al die CAD -lêers aan die einde van hierdie ible aflaai. Die samestelling het ingesluit dat al die 3D -gedrukte onderdele by die gekoopte onderdele gepas is, die motorkabels verleng en al die onderdele aan die voet vasgeskroef is. Boonop het ek moue om die motorkabels gesit, net om 'n bietjie netjieser te lyk, en ek het JST -verbindings aan hul ente aangebring.

Om die belangrikheid van die basis wat ek gebou het, te beklemtoon, is hier 'n voor- en na -opname van hoe die vergadering gelyk het. Om alles 'n bietjie op te tel, kan 'n groot verskil maak.

Beeld
Beeld
Beeld
Beeld

Stap 5: Elektronika

Wat elektronika betref, is die projek redelik eenvoudig. Daar is 'n 12V -kragtoevoer wat tot 3A stroom kan lewer, wat die motors aandryf. 'N Trap-af-module word gebruik om die Arduino veilig aan te dryf en 'n pasgemaakte skild vir die Arduino is ontwerp wat al die stapmotorbestuurders huisves. Die bestuurders maak die bestuur van die motors baie makliker. Om 'n stappermotor te bestuur, vereis 'n spesifieke kontrolevolgorde, maar deur motorbestuurders te gebruik, hoef ons slegs 'n hoë polsslag te genereer vir elke stap wat die motor moet draai. Boonop is 'n paar jst -aansluitings by die skerm aangebring om die koppeling van die motors makliker te maak. Die skild vir die Arduino is stewig gebou op 'n stuk perfboard en nadat hy seker gemaak het dat alles werk soos dit veronderstel was, word dit vervaardig deur jlc pcb.

Hier is die voor en na die prototipe en die vervaardigde PCB.

Beeld
Beeld
Beeld
Beeld

Stap 6: Sagteware en seriële koppelvlak

Die Q-Bot is in twee dele verdeel. Aan die een kant is daar die hardeware wat deur die Arduino beheer word, aan die ander kant is daar 'n stuk sagteware wat die oplossing vir die kubus bereken op grond van die huidige skommel. Die firmware wat op die Arduino werk, is deur myself geskryf, maar om hierdie gids kort te hou, sal ek hier geen besonderhede hieroor uitvoer nie. As u daarna wil kyk en daarmee wil speel, word die skakel na my git -bewaarplek aan die einde van hierdie dokument verskaf. Die sagteware wat die oplossing bereken, loop op 'n Windows -masjien en is deur 'n kollega van my geskryf. Daar is weer skakels na sy bronkode aan die einde van hierdie artikel. Die twee dele kommunikeer met behulp van 'n eenvoudige seriële koppelvlak. Dit bereken die oplossing op grond van die twee -fase algoritme van Kociemba. Die oplossingsagteware stuur 'n opdrag bestaande uit twee grepe na die oploser en wag totdat dit 'ACK' terugstuur. Op hierdie manier kan die oplossing getoets en ontfout word met behulp van 'n eenvoudige seriële monitor. Die volledige instruksieset kan hieronder gevind word.

Beeld
Beeld

Die opdragte om elke motor vir een stap te draai, is 'n oplossing vir 'n probleem waar sommige van die stappers lukraak klein spronge sal doen wanneer hulle aanskakel. Om dit te vergoed, kan die motors voor die oplosproses in hul oorspronklike posisie aangepas word.

Stap 7: Gevolgtrekking

Na agt maande se ontwikkeling, vloek, klavier slaan en dans, was die Q-bot uiteindelik op 'n punt waar sy eerste Rubik's Cube suksesvol opgelos is. Die skarrel van die kubus moes met die hand in die beheersagteware geplaas word, maar alles het goed gewerk.

Ek het 'n paar weke later 'n houer vir 'n webcam bygevoeg en my kollege het die sagteware aangepas om die kubus outomaties te lees uit die beelde wat geneem is. Dit is egter nog nie goed getoets nie en moet nog verbeter word.

Beeld
Beeld

As hierdie opdrag jou belangstelling aangewakker het, moet asseblief nie huiwer nie en begin met die bou van jou eie weergawe van die Q-bot. Dit lyk aanvanklik afskrikwekkend, maar dit is die moeite werd, en as ek dit kon doen, kan u dit ook doen.

Hulpbronne:

Bronkode van die firmware:

github.com/Axodarap/QBot_firmware

Bronkode van die beheersagteware

github.com/waldhube16/Qbot_SW

Aanbeveel: