Sadržaj:

Q -Bot - rješavač Rubikove kocke s otvorenim kodom: 7 koraka (sa slikama)
Q -Bot - rješavač Rubikove kocke s otvorenim kodom: 7 koraka (sa slikama)

Video: Q -Bot - rješavač Rubikove kocke s otvorenim kodom: 7 koraka (sa slikama)

Video: Q -Bot - rješavač Rubikove kocke s otvorenim kodom: 7 koraka (sa slikama)
Video: The mind behind Linux | Linus Torvalds | TED 2024, Juli
Anonim
Image
Image
Image
Image

Zamislite da imate kodiranu Rubikovu kocku, znate onu zagonetku iz 80 -ih godina koju svi imaju, ali zapravo niko ne zna kako je riješiti, i želite je vratiti u njen izvorni obrazac. Na sreću ovih je dana vrlo lako pronaći upute za rješavanje. Zato idite na internet i pogledajte video kako naučiti kako okrenuti strane da vam donesu radost. Nakon što ste to učinili nekoliko puta, shvatit ćete da nešto nedostaje. Unutrašnja rupa koja se ne može popuniti. Inženjeri/proizvođač/haker u vama jednostavno ne mogu biti zadovoljni rješavanjem nečeg tako nevjerojatnog na tako jednostavan način. Zar ne bi bilo mnogo poetičnije da imate mašinu koja je umjesto vas riješila sve te probleme? Da ste izgradili nešto svi vaši prijatelji bi bili zadivljeni? Mogu vam garantirati da ništa nije bolje od gledanja kako vaša kreacija čini čuda i rješava Rubikovu kocku. Dođite i pridružite mi se na prekrasnom putovanju u izgradnji Q-Bota, Rubikovog kockara s otvorenim kodom koji zasigurno neće oboriti svjetske rekorde, ali će vam pružiti sate radosti (nakon što ste naravno prošli kroz sve frustracije tokom procesa izgradnje).

Korak 1: Dizajniranje hardvera

Kompletan rješavač je dizajniran sa CAD -om u Catii. Na ovaj način većina grešaka u dizajnu mogla bi se pronaći i ispraviti prije proizvodnje bilo kakvih fizičkih komponenti. Većina rješavača je 3D štampana u PLA -i pomoću prusa MK3 štampača. Osim toga, korišten je i sljedeći hardver:

  • 8 komada aluminijumske šipke 8 mm (dužine 10 cm)
  • 8 linearnih kugličnih ležajeva (LM8UU)
  • nešto manje od 2 m razvodnog remena GT2 6 mm + nekoliko remenica
  • 6 bipolarnih koračnih motora NEMA 17
  • 6 pokretačkih programa Polulu 4988
  • Arudino Mega kao kontrolor projekta
  • napajanje od 12 V 3A
  • pretvarač sa stepenicama prema dolje za sigurno napajanje arduina
  • nekoliko vijaka i konektora
  • malo šperploče za podlogu

Opis hardvera

Ovaj odjeljak ukratko pokriva kako Q-Bot uopće funkcionira i gdje se koriste gore navedene komponente. Ispod možete vidjeti prikaz potpuno sastavljenog CAD modela.

Q-bot radi tako što ima četiri motora pričvršćena direktno na Rubikovu kocku sa 3D štampanim hvataljkama. To znači da se lijevo, desno, sprijeda i straga može direktno okretati. Ako je potrebno okrenuti gornju ili donju stranu, mora se okrenuti cijela kocka, pa se dva motora moraju odmaknuti. To se postiže pričvršćivanjem svakog zahvatnog motora na sanjke koje pokreće drugi koračni motor i razvodni remen duž linearnog šinskog sistema. Šinski sistem se sastoji od dva 8 kuglična ležaja koji su montirani u šupljine u sanjkama, a cijele saonice voze se na dvije aluminijumske osovine od 8 mm. Ispod možete vidjeti podsklop jedne osi rješavača.

Osi x i y u osnovi su identične, razlikuju se samo po visini točke ugradnje pojasa, to je tako da nema sudara između dva pojasa kada su potpuno sastavljeni.

Image
Image

Korak 2: Odabir pravih motora

Naravno, odabir pravih motora ovdje je vrlo važan. Glavni dio je da oni moraju biti dovoljno jaki da mogu okrenuti Rubikovu kocku. Jedini problem ovdje je što nijedan proizvođač Rubikovih kocki ne daje ocjenu zakretnog momenta. Pa sam morao improvizirati i napraviti svoja mjerenja.

Općenito, moment je definiran silom usmjerenom okomito na položaj rotacijske točke na udaljenosti r:

Image
Image
Image
Image

Dakle, ako bih mogao nekako izmjeriti silu primijenjenu na kocku, mogao bih izračunati okretni moment. Što sam i uradio. Pričvrstila sam svoju kocku na policu na način da se samo jedna strana može pomicati. Da je oko kocke bio vezan konopac, a na dnu pričvršćena vrećica. Sada je preostalo samo polako povećavati težinu u vreći dok se kocka ne okrene. Zbog nedostatka tačnih težina koristio sam krompir i nakon toga ga izmjerio. Nije najnaučnija metoda, ali zato što ne pokušavam pronaći minimalni okretni moment sasvim je dovoljan.

Image
Image

Izvršio sam mjerenja tri puta i uzeo najveću vrijednost samo da budem siguran. Dobivena težina bila je 0,52 kg. Zbog Sir Isaaca Newtona znamo da je sila jednaka masi puta ubrzanju.

Image
Image

Ubrzanje je, u ovom slučaju, gravitacijsko ubrzanje. Dakle, potrebni zakretni moment je određen sa

Image
Image

Uključivanjem svih vrijednosti, uključujući polovicu dijagonale Rubikove kocke, konačno se otkriva potrebni okretni moment.

Image
Image

Išao sam sa stepper motorima koji mogu primijeniti do 0,4 Nm što je vjerojatno pretjerano, ali htio sam biti siguran.

Korak 3: Konstrukcija baze

Baza se sastoji od vrlo jednostavne drvene kutije i sadrži svu potrebnu elektroniku. Sadrži utikač za uključivanje i isključivanje uređaja, LED diodu koja pokazuje je li uključen, USB B priključak i utičnicu za napajanje. Izrađen je od šperploče od 15 mm, nekoliko vijaka i malo ljepila.

Image
Image
Image
Image
Image
Image
Image
Image

Korak 4: Sklapanje hardvera

Sada sa svim potrebnim dijelovima, uključujući i bazu, Q-bot je bio spreman za sastavljanje. Prilagođeni dijelovi su 3D štampani i prilagođavani po potrebi. Možete preuzeti sve CAD datoteke na kraju ove tabele. Sklop je uključivao spajanje svih 3D štampanih dijelova sa kupljenim dijelovima, produžavanje kabela motora i pričvršćivanje svih dijelova na podnožje. Osim toga, stavio sam rukave oko kablova motora, samo da izgledaju urednije, i dodao krajeve JST.

Kako bismo istakli važnost baze koju sam izgradio, evo snimka prije i poslije kako je sklop izgledao. Malo sve popraviti može napraviti veliku razliku.

Image
Image
Image
Image

Korak 5: Elektronika

Što se tiče elektronike, projekt je prilično jednostavan. Postoji glavno napajanje od 12 V, koje može isporučiti do 3A struje, a koje napaja motore. Modul za smanjivanje koristi se za sigurno napajanje Arduina, a dizajniran je prilagođeni štit za Arduino koji sadrži sve vozače koračnih motora. Vozači znatno olakšavaju upravljanje motorima. Za upravljanje koračnim motorom potrebna je određena sekvenca upravljanja, ali pomoću upravljačkih programa motora potrebno je samo generirati visoki impuls za svaki korak koji motor okreće. Osim toga, neki jst konektori su dodani u štit za lakše povezivanje motora. Štit za Arduino čvrsto je izgrađen na komadu perfarbona, a nakon što se pobrinuo da sve radi kako je trebalo, proizveo ga je jlc pcb.

Evo prije i poslije prototipa i proizvedene ploče.

Image
Image
Image
Image

Korak 6: Softver i serijsko sučelje

Q-Bot je podijeljen u dva dijela. S jedne strane postoji hardver koji kontrolira Arduino, s druge strane postoji komad softvera koji izračunava put rješavanja kocke na temelju trenutnog kodiranja. Firmver koji radi na Arduinu sam napisao, ali kako bi ovaj vodič bio kratak, ovdje neću ulaziti u detalje o njemu. Ako želite to pogledati i poigrati se s njim, veza na moje git spremište bit će navedena na kraju ovog dokumenta. Softver koji izračunava rješenje radi na Windows mašini i napisao ga je moj kolega, a opet veze do njegovog izvornog koda mogu se pronaći na kraju ove tabele. Dva dijela komuniciraju pomoću jednostavnog serijskog sučelja. Izračunava rješenje na osnovu Kociembinog dvofaznog algoritma. Softver za rješavanje šalje naredbu koja se sastoji od dva bajta rješavaču i čeka da vrati "ACK". Na ovaj način se rješavač može testirati i otkloniti greške pomoću jednostavnog serijskog monitora. Kompletan skup instrukcija možete pronaći ispod.

Image
Image

Naredbe za okretanje svakog motora za jedan korak su zaobilazno rješenje za problem u kojem bi neki steperi nasumično izvodili male skokove nakon uključivanja. Kako bi se to kompenziralo, motori se mogu postaviti u početni položaj prije procesa rješavanja.

Korak 7: Zaključak

Nakon osam mjeseci razvoja, psovanja, udaranja po tastaturi i plesa Q-bot je konačno bio na mjestu gdje je uspješno riješena njegova prva Rubikova kocka. Kockanje kocke moralo se ručno umetnuti u upravljački softver, ali sve je radilo dobro.

Nekoliko sedmica kasnije dodao sam nosač za web kameru i moj fakultet je prilagodio softver za automatsko čitanje kocke sa snimljenih slika. Međutim, ovo još nije dobro testirano i potrebno je još poboljšanja.

Image
Image

Ako vam je ovo uputstvo izazvalo interes, ne ustručavajte se i počnite graditi svoju vlastitu verziju Q-bota. U početku bi moglo izgledati zastrašujuće, ali vrijedno je truda, a ako bih ja to mogao, možete i vi.

Resursi:

Izvorni kod firmvera:

github.com/Axodarap/QBot_firmware

Izvorni kod upravljačkog softvera

github.com/waldhube16/Qbot_SW

Preporučuje se: