Innholdsfortegnelse:
- Trinn 1: Designe maskinvaren
- Trinn 2: Velg de riktige motorene
- Trinn 3: Konstruere basen
- Trinn 4: Montering av maskinvaren
- Trinn 5: Elektronikk
- Trinn 6: Programvare og serielt grensesnitt
- Trinn 7: Konklusjon
Video: Q -Bot - Open Source Rubiks kubeløser: 7 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
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.
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:
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.
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.
Akselerasjonen, i dette tilfellet, er gravitasjonsakselerasjonen. Så det nødvendige dreiemomentet er gitt av
Å koble til alle verdiene, inkludert halvparten av diagonalen på Rubiks kube, avslører endelig det nødvendige dreiemomentet.
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.
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.
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.
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.
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.
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:
Sanntids Rubiks kube med bind for øynene ved hjelp av Raspberry Pi og OpenCV: 4 trinn
Sanntids Rubiks kube-bind for øynene med Raspberry Pi og OpenCV: Dette er den andre versjonen av Rubiks kubeverktøy laget for å løse i bind for øynene. Den første versjonen ble utviklet av javascript, du kan se prosjektet RubiksCubeBlindfolded1 I motsetning til den forrige bruker denne versjonen OpenCV -biblioteket til å oppdage fargene og
Enkel vippebasert fargeskiftende trådløs Rubiks kubelampe: 10 trinn (med bilder)
Enkel vippebasert fargeendring av trådløs Rubiks kubelampe: I dag skal vi bygge denne fantastiske Rubiks kubelignende lampe som endrer farge basert på hvilken side som er opp. Kuben kjører på et lite LiPo-batteri, ladet med en standard mikro-usb-kabel, og har i min test en batterilevetid på flere dager. Dette
Funksjonell USB Flash Drive Rubiks Cube: 7 trinn (med bilder)
Funksjonell USB Flash Drive Rubiks Cube: I denne opplæringen skal jeg vise deg hvordan du lager din egen Rubik USB Flash Drive Du kan se det ferdige produktet i følgende video:
Camouflaged Power-Source Liberator: 8 trinn (med bilder)
Camouflaged Power-Source Liberator: En enkel løsning for å slå på lavspennings DC-enheter i offentlige rom. Når du kobler denne til, får en av pluggene et strømuttak på en lokkekasse, og den andre pluggen gir en kontinuerlig strømkilde til en lavspennings DC-enhet. Dette
BricKuber Project - en Raspberry Pi Rubiks Cube Solving Robot: 5 trinn (med bilder)
BricKuber Project - en Raspberry Pi Rubiks Cube Solving Robot: BricKuber kan løse en Rubiks kube på omtrent mindre enn 2 minutter. BricKuber er en åpen kildekode Rubiks kubeoppløsningsrobot du kan bygge selv. Vi ønsket å bygge en Rubiks kubeoppløsningsrobot med Raspberry Pi. Snarere enn å gå for