Innholdsfortegnelse:

Q -Bot - Open Source Rubiks kubeløser: 7 trinn (med bilder)
Q -Bot - Open Source Rubiks kubeløser: 7 trinn (med bilder)

Video: Q -Bot - Open Source Rubiks kubeløser: 7 trinn (med bilder)

Video: Q -Bot - Open Source Rubiks kubeløser: 7 trinn (med bilder)
Video: "Remove This Tiny Chip Before Using The Phone!" Edward Snowden 2024, Juli
Anonim
Image
Image
Bilde
Bilde

Tenk deg at du har en kryptert Rubiks kube, du vet at puslespillet fra 80 -tallet som alle har, men ingen vet hvordan de skal løse det, og du vil ta det tilbake til det opprinnelige mønsteret. Heldigvis er det i disse dager veldig enkelt å finne løsningsinstruksjoner. Så gå på nettet, se på en video og lær hvordan du snur sidene for å gi deg glede. Etter å ha gjort det et par ganger, vil du imidlertid innse at det mangler noe. Et hull inne som ikke kan fylles. Ingeniørene/produsenten/hackeren i deg kan ganske enkelt ikke være fornøyd med å løse noe så fantastisk på en så enkel måte. Ville det ikke vært mye mer poetisk hvis du hadde en maskin som gjorde alt for deg? Hvis du hadde bygget noe alle vennene dine ville bli overrasket over? Jeg kan garantere deg at det ikke blir mye bedre enn å se skapelsen din gjøre underverker og løse en Rubiks kube. Så, kom og bli med meg på den fantastiske reisen med å bygge Q-Bot, åpen kildekode Rubiks kubeløser som absolutt ikke vil slå noen verdensrekorder, men vil gi deg timer med glede (etter selvfølgelig å ha gått gjennom alle frustrasjonene under byggeprosessen).

Trinn 1: Designe maskinvaren

Den komplette løseren ble designet med CAD i Catia. På denne måten kan de fleste designfeilene bli funnet og korrigert før fysiske komponenter produseres. Det meste av løsningen ble 3D -trykt i PLA ved hjelp av en prusa MK3 -skriver. I tillegg ble følgende maskinvare brukt:

  • 8 stykker 8 mm aluminiumsstang (10 cm lengde)
  • 8 lineære kulelager (LM8UU)
  • litt under 2 m GT2 6mm registerreim + noen remskiver
  • 6 NEMA 17 bipolare trinnmotorer
  • 6 Polulu 4988 stepperdrivere
  • en Arudino Mega som kontroller for prosjektet
  • en 12 V 3A strømforsyning
  • en trinnvis omformer for å drive arduinoen trygt
  • noen skruer og kontakter
  • litt kryssfiner til basen

Maskinvarebeskrivelse

Denne delen dekker kort hvordan Q-Bot til og med fungerer og hvor de ovennevnte komponentene brukes. Nedenfor ser du en gjengivelse av den ferdigmonterte CAD -modellen.

Q-boten fungerer ved at fire motorer er koblet direkte til Rubiks kube med 3D-trykte gripere. Dette betyr at venstre, høyre, foran og bak kan dreies direkte. Hvis toppen eller undersiden må vendes, må hele terningen snus og to av motorene må beveges bort. Dette gjøres ved å feste hver av gripemotorer på sleder drevet av en annen trinnmotor og et tannrem langs et lineært skinnesystem. Skinnesystemet består av to 8 kulelagre som er montert i hulrom i sleden og hele sleden rider på to 8 mm aluminiumsaksler. Nedenfor kan du se undersamlingen til en akse til løseren.

X- og y-aksen er i utgangspunktet identiske de er bare forskjellige i høyden på beltets festepunkt, dette er slik at det ikke er noen kollisjoner mellom de to beltene når de er ferdig montert.

Bilde
Bilde

Trinn 2: Velg de riktige motorene

Selvfølgelig er det veldig viktig å velge de riktige motorene her. Hoveddelen er at de må være sterke nok til å kunne snu en Rubiks kube. Det eneste problemet her er at ingen produsent av Rubiks kuber gir et dreiemoment. Så jeg måtte improvisere og gjøre mine egne målinger.

Generelt er dreiemoment definert av kraften rettet vinkelrett på posisjonen til rotasjonspunktet i avstanden r:

Bilde
Bilde
Bilde
Bilde

Så hvis jeg på en eller annen måte kunne måle kraften som ble påført kuben, kunne jeg beregne dreiemomentet. Det er akkurat det jeg gjorde. Jeg klemte terningen min til en hylle på en måte som bare den ene siden kunne bevege seg. At en snor ble bundet rundt terningen og en pose festet nederst. Nå var det bare å øke vekten i posen sakte til terningen snudde. I mangel av nøyaktige vekter brukte jeg poteter og målte dem etterpå. Ikke den mest vitenskapelige metoden, men fordi jeg ikke prøver å finne minimum dreiemoment er det ganske tilstrekkelig.

Bilde
Bilde

Jeg gjorde målingene tre ganger og tok høyeste verdi bare for å være trygg. Den resulterende vekten var 0,52 kg. På grunn av Sir Isaac Newton vet vi at Force er lik massetall akselerasjon.

Bilde
Bilde

Akselerasjonen, i dette tilfellet, er gravitasjonsakselerasjonen. Så det nødvendige dreiemomentet er gitt av

Bilde
Bilde

Å koble til alle verdiene, inkludert halvparten av diagonalen på Rubiks kube, avslører endelig det nødvendige dreiemomentet.

Bilde
Bilde

Jeg gikk med steppermotorer som kan bruke opptil 0,4 Nm, noe som sannsynligvis er en overkill, men jeg ønsket å være trygg.

Trinn 3: Konstruere basen

Basen består av en veldig enkel trekasse og den rommer all nødvendig elektronikk. Den har en plugg for å slå maskinen av og på, en LED for å indikere om den er slått på, en USB B -port og en kontakt for strømforsyningen. Den ble konstruert med 15 mm kryssfiner, noen skruer og litt lim.

Bilde
Bilde
Bilde
Bilde
Bilde
Bilde
Bilde
Bilde

Trinn 4: Montering av maskinvaren

Nå med alle nødvendige deler, inkludert basen, var Q-boten klar til montering. De tilpassede delene ble 3D -trykt og justert der det var nødvendig. Du kan laste ned alle CAD -filene på slutten av denne ible. Samlingen inkluderte montering av alle 3D -trykte deler med de kjøpte delene, forlengelse av motorkabler og skruing av alle delene til basen. I tillegg la jeg ermene rundt motorkablene, bare for å se litt penere ut, og la JST -kontakter til endene.

For å markere viktigheten av basen jeg bygde, her er et før og etter skudd av hvordan forsamlingen så ut. Å tippe alt litt kan gjøre en stor forskjell.

Bilde
Bilde
Bilde
Bilde

Trinn 5: Elektronikk

Når det gjelder elektronikk, er prosjektet ganske enkelt. Det er en hoved 12V strømforsyning som kan levere opptil 3A strøm, som driver motorene. En nedtrappningsmodul brukes til å drive Arduino trygt, og et tilpasset skjold for Arduino ble designet som huser alle trinnmotordrivere. Driverne gjør kontrollen av motorene mye enklere. Å kjøre en trinnmotor krever en bestemt kontrollsekvens, men ved å bruke motorførere trenger vi bare å generere en høy puls for hvert trinn motoren skal snu. I tillegg ble noen jst -kontakter lagt til skjoldet for å gjøre det enklere å koble til motorene. Skjoldet til Arduino var solid bygget på et stykke perfboard og etter å ha sørget for at alt fungerer som det skulle, ble det produsert av jlc pcb.

Her er før og etter av prototypen og den produserte kretskortet.

Bilde
Bilde
Bilde
Bilde

Trinn 6: Programvare og serielt grensesnitt

Q-Bot er delt inn i to deler. På den ene siden er det maskinvaren som blir kontrollert av Arduino, på den annen side er det et programvare som beregner løsningsbanen for kuben basert på den nåværende krypteringen. Fastvaren som kjører på Arduino ble skrevet av meg selv, men for å holde denne guiden kort vil jeg ikke gå inn på detaljer om den her. Hvis du ønsker å se på det og leke med det, vil lenken til mitt git -depot bli gitt på slutten av dette dokumentet. Programvaren som beregner løsningen, kjører på en Windows -maskin og ble skrevet av en kollega av meg. Du finner igjen koblinger til kildekoden hans på slutten av denne ible. De to delene kommuniserer ved hjelp av et enkelt serielt grensesnitt. Den beregner løsningen basert på Kociembas tofasealgoritme. Løsningsprogramvaren sender en kommando bestående av to byte til løseren og venter på at den skal returnere en ‘ACK’. På denne måten kan løseren testes og feilsøkes ved hjelp av en enkel seriell skjerm. Det komplette instruksjonssettet finner du nedenfor.

Bilde
Bilde

Kommandoene for å slå hver motor i ett trinn er en løsning for et problem der noen av stepperne tilfeldig ville utføre små hopp ved oppstart. For å kompensere for dette kan motorene justeres til sin opprinnelige posisjon før løsningsprosessen.

Trinn 7: Konklusjon

Etter åtte måneder med å utvikle, banne, slå på tastaturet og danse var Q-boten endelig på et tidspunkt hvor den første Rubiks kube ble løst. Krypteringen av kuben måtte settes inn manuelt i kontrollprogramvaren, men alt fungerte bra.

Jeg la til et feste for et webkamera et par uker senere, og høyskolen min justerte programvaren for å lese kuben automatisk fra bildene som ble tatt. Dette er imidlertid ikke testet godt ennå og trenger fortsatt noen forbedringer.

Bilde
Bilde

Hvis dette instruktive utløste din interesse, ikke nøl med å begynne å bygge din egen versjon av Q-bot. Det kan virke skremmende i begynnelsen, men det er veldig verdt innsatsen, og hvis jeg kunne gjøre det, kan du også.

Ressurser:

Kildekode til fastvaren:

github.com/Axodarap/QBot_firmware

Kildekode til kontrollprogramvaren

github.com/waldhube16/Qbot_SW

Anbefalt: