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, Srpanj
Anonim
Image
Image
Slika
Slika

Zamislite da imate kodiranu Rubikovu kocku, znate onu zagonetku iz 80 -ih godina koju svi imaju, ali nitko zapravo ne zna riješiti, a vi je želite vratiti u izvorni obrazac. Srećom, ovih je dana vrlo lako pronaći upute za rješavanje. Dakle, idite na internet i pogledajte video kako naučiti okrenuti strane kako bi vam donijeli 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. Ne bi li bilo mnogo poetičnije da imate stroj koji je umjesto vas riješio sve te probleme? Da ste nešto izgradili svi bi vaši prijatelji bili zadivljeni? Mogu vam jamčiti da ne može biti mnogo bolje od promatranja vašeg stvaranja kako čini čuda i rješava Rubikovu kocku. Dođite i pridružite mi se na prekrasnom putovanju izgradnje Q-Bota, Rubikovog kockara s otvorenim kodom koji zasigurno neće oboriti svjetske rekorde, ali pružit će vam sate radosti (nakon što naravno prođete kroz sve frustracije tijekom procesa izgradnje).

Korak 1: Dizajniranje hardvera

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

  • 8 komada aluminijske šipke 8 mm (duljine 10 cm)
  • 8 linearnih kugličnih ležajeva (LM8UU)
  • nešto manje od 2 m razvodnog remena GT2 6 mm + nekoliko remenica
  • 6 NEMA 17 bipolarnih koračnih motora
  • 6 vozača koraka Polulu 4988
  • Arudino Mega kao kontrolor projekta
  • napajanje od 12 V 3A
  • pretvarač s stepenicama prema dolje za sigurno napajanje arduina
  • nekoliko vijaka i priključaka
  • nešto š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 izravno na Rubikovu kocku s 3D tiskanim hvataljkama. To znači da se lijevo, desno, sprijeda i straga može izravno 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 uz linearni sustav tračnica. Sustav tračnica sastoji se od dva 8 kuglična ležaja koji su ugrađeni u šupljine u sanjkama, a cijele saonice voze se na dvije aluminijske osovine od 8 mm. Ispod možete vidjeti podsklop jedne osi rješavača.

Os x i y su u osnovi 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.

Slika
Slika

Korak 2: Odabir pravih motora

Naravno, odabir odgovarajućih motora ovdje je vrlo važan. Glavni dio je da moraju biti dovoljno jaki da mogu okrenuti Rubikovu kocku. Ovdje je jedini problem što nijedan proizvođač Rubikovih kockica ne daje ocjenu zakretnog momenta. Dakle, morao sam improvizirati i napraviti svoja mjerenja.

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

Slika
Slika
Slika
Slika

Dakle, kad bih mogao nekako izmjeriti silu primijenjenu na kocku, mogao bih izračunati okretni moment. Što sam upravo i učinio. Pričvrstila sam svoju kocku na policu na način da se samo jedna strana može pomicati. Da se oko kocke vezao niz, 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 točne težine koristio sam krumpir i nakon toga ga izmjerio. Nije najznanstvenija metoda, ali zato što ne pokušavam pronaći minimalni okretni moment sasvim je dovoljna.

Slika
Slika

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

Slika
Slika

Ubrzanje je, u ovom slučaju, gravitacijsko ubrzanje. Dakle, potrebni zakretni moment dobiva se s

Slika
Slika

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

Slika
Slika

Otišao sam s koračnim 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 u kojoj se nalazi sva potrebna elektronika. 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đena je od šperploče od 15 mm, nekoliko vijaka i malo ljepila.

Slika
Slika
Slika
Slika
Slika
Slika
Slika
Slika

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 ispisani i prilagođeni po potrebi. Možete preuzeti sve CAD datoteke na kraju ove datoteke. Sklop je uključivao uklapanje svih 3D ispisanih dijelova s kupljenim dijelovima, produžavanje kabela motora i pričvršćivanje svih dijelova na podnožje. Osim toga, stavio sam rukave oko kabela motora, samo da izgledaju urednije, te na njihove krajeve dodao JST konektore.

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.

Slika
Slika
Slika
Slika

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 smanjenje snage koristi se za sigurno napajanje Arduina, a prilagođen je štit za Arduino koji je dizajniran za sve vozače koračnih motora. Vozači znatno olakšavaju upravljanje motorima. Za upravljanje koračnim motorom potreban je određeni kontrolni slijed, ali pomoću upravljačkih programa motora samo moramo generirati visoki impuls za svaki korak koji motor okreće. Osim toga, neki jst konektori dodani su na štit kako bi se lakše povezivali motori. Štit za Arduino čvrsto je izgrađen na komadu perfarbona, a nakon što se uvjerio da sve radi kako je trebalo, proizveo ga je jlc pcb.

Evo prije i poslije prototipa i proizvedene ploče.

Slika
Slika
Slika
Slika

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 ga želite 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 stroju, a napisao ga je moj kolega, opet se veze na njegov izvorni kod mogu pronaći na kraju ove tabele. Dva dijela komuniciraju pomoću jednostavnog serijskog sučelja. Izračunava rješenje na temelju 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 pogreške pomoću jednostavnog serijskog monitora. Cjeloviti skup uputa nalazi se u nastavku.

Slika
Slika

Naredbe za okretanje svakog motora za jedan korak zaobilazno su 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 tipkovnici 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 dobro funkcioniralo.

Dodao sam nosač za web kameru nekoliko tjedana kasnije i moj fakultet je prilagodio softver za automatsko čitanje kocke sa snimljenih slika. Međutim, ovo još nije dobro testirano i još uvijek treba poboljšati.

Slika
Slika

Ako je ovo uputstvo izazvalo vaš 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 ja to mogu, možete i vi.

Resursi:

Izvorni kod firmvera:

github.com/Axodarap/QBot_firmware

Izvorni kod upravljačkog softvera

github.com/waldhube16/Qbot_SW

Preporučeni: