Cuprins:

Q-Bot - Open Source Rubik's Cube Solver: 7 pași (cu imagini)
Q-Bot - Open Source Rubik's Cube Solver: 7 pași (cu imagini)

Video: Q-Bot - Open Source Rubik's Cube Solver: 7 pași (cu imagini)

Video: Q-Bot - Open Source Rubik's Cube Solver: 7 pași (cu imagini)
Video: Ai robots taking over ping pong 👀 #shorts 2024, Noiembrie
Anonim
Image
Image
Imagine
Imagine

Imaginați-vă că aveți un cub Rubik amestecat, știți că puzzle-ul din anii 80 pe care îl are toată lumea, dar nimeni nu știe cu adevărat cum să rezolve și doriți să îl readuceți în modelul său original. Din fericire în aceste zile este foarte ușor să găsiți instrucțiuni de rezolvare. Deci, mergeți online uitați-vă la un videoclip învățați cum să întoarceți părțile laterale pentru a vă aduce bucurie. Cu toate acestea, după ce o faci de câteva ori, îți vei da seama că lipsește ceva. O gaură în interior care nu poate fi umplută. Inginerii / producătorul / hackerul din voi pur și simplu nu pot fi mulțumiți să rezolve ceva atât de uimitor într-un mod atât de simplu. Nu ar fi mult mai poetic dacă ai avea o mașinărie care să rezolve toate problemele pentru tine? Dacă ai fi construit ceva, toți prietenii tăi ar fi uimiți? Vă pot garanta că nu devine mult mai bun decât să vă uitați la creația dvs. făcând minuni și rezolvând un cub Rubik. Așadar, vino și alătură-te mie în minunata călătorie a construirii Q-Bot, soluția open source Rubik's Cube Solver care, cu siguranță, nu va bate niciun record mondial, dar îți va oferi ore de bucurie (după ce, desigur, ai trecut prin toate frustrările în timpul procesului de construire).

Pasul 1: Proiectarea hardware-ului

Solverul complet a fost proiectat cu CAD în Catia. În acest fel, majoritatea erorilor de proiectare ar putea fi găsite și corectate înainte de fabricarea oricăror componente fizice. Majoritatea solverului a fost tipărit 3D în PLA utilizând o imprimantă prusa MK3. În plus, a fost utilizat următorul hardware:

  • 8 bucăți de tijă de aluminiu de 8 mm (lungime 10cm)
  • 8 rulmenți liniari cu bile (LM8UU)
  • puțin sub 2 m de curea de distribuție GT2 6mm + niște scripete
  • 6 motoare pas cu pas bipolare NEMA 17
  • 6 drivere pas cu pas Polulu 4988
  • un Arudino Mega ca controlor al proiectului
  • o sursă de alimentare de 12 V 3A
  • un convertor step down pentru a alimenta în siguranță arduino
  • niște șuruburi și conectori
  • niște placaj pentru bază

Descrierea hardware-ului

Această secțiune prezintă pe scurt modul în care funcționează Q-Bot și unde sunt utilizate componentele menționate mai sus. Mai jos puteți vedea o redare a modelului CAD complet asamblat.

Q-botul funcționează având patru motoare atașate direct la Rubik's Cube cu grappere imprimate 3D. Aceasta înseamnă că stânga, dreapta, fața și spatele pot fi rotite direct. Dacă partea superioară sau inferioară trebuie să fie rotită, întregul cub trebuie să fie rotit, astfel încât două dintre motoare trebuie să fie îndepărtate. Acest lucru se face prin atașarea fiecăruia dintre motoarele de prindere pe sanii acționate de un alt motor pas cu pas și o curea de distribuție de-a lungul unui sistem liniar de șine. Sistemul de șine este format din doi rulmenți cu 8 bile care sunt montați în cavități în sanie și întreaga sanie se deplasează pe doi arbori de aluminiu de 8 mm. Mai jos puteți vedea subansamblul unei axe a solverului.

Axa x și axa y sunt practic identice, diferă doar în înălțimea punctului de montare al curelei, astfel încât să nu existe coliziuni între cele două curele atunci când sunt complet asamblate.

Imagine
Imagine

Pasul 2: Alegerea motoarelor potrivite

Desigur, selectarea motoarelor potrivite este foarte importantă aici. Partea principală este că trebuie să fie suficient de puternici pentru a putea transforma un cub Rubik. Singura problemă aici este că niciun producător de cuburi Rubik nu acordă un cuplu nominal. Așadar, a trebuit să improvizez și să-mi fac propriile măsurători.

În general, cuplul este definit de forța direcționată perpendicular pe poziția punctului de rotație la distanța r:

Imagine
Imagine
Imagine
Imagine

Deci, dacă aș putea cumva măsura forța aplicată cubului aș putea calcula cuplul. Ceea ce am făcut exact. Mi-am prins cubul de un raft într-un mod în care numai o parte ar putea să se miște. Că un șir s-a legat în jurul cubului și o pungă atașată în partea de jos. Acum nu mai rămânea decât să mărească încet greutatea pungii până când cubul se întoarse. Pentru lipsa unor greutăți precise, am folosit cartofi și i-am măsurat după aceea. Nu este cea mai științifică metodă, dar pentru că nu încerc să găsesc cuplul minim, este suficient.

Imagine
Imagine

Am făcut măsurătorile de trei ori și am luat cea mai mare valoare doar pentru a fi în siguranță. Greutatea rezultată a fost de 0,52 kg. Acum, datorită lui Sir Isaac Newton, știm că forța este egală cu accelerarea masei.

Imagine
Imagine

Accelerația, în acest caz, este accelerația gravitațională. Deci cuplul necesar este dat de

Imagine
Imagine

Conectarea tuturor valorilor, inclusiv jumătate din diagonala cubului Rubik, dezvăluie în sfârșit cuplul necesar.

Imagine
Imagine

Am mers cu motoare pas cu pas care pot aplica până la 0,4 Nm, ceea ce este probabil un exces, dar am vrut să fiu în siguranță.

Pasul 3: Construirea bazei

Baza constă dintr-o cutie de lemn foarte simplă și găzduiește toate componentele electronice necesare. Dispune de o priză pentru a porni și opri aparatul, un LED pentru a indica dacă este pornit, un port USB B și o priză pentru conectarea sursei de alimentare. A fost construit folosind placaj de 15 mm, niște șuruburi și un pic de lipici.

Imagine
Imagine
Imagine
Imagine
Imagine
Imagine
Imagine
Imagine

Pasul 4: Asamblarea hardware-ului

Acum, cu toate piesele necesare, inclusiv baza, Q-botul era gata de asamblare. Părțile personalizate au fost tipărite 3D și ajustate acolo unde este necesar. Puteți descărca toate fișierele CAD la sfârșitul acestui ible. Ansamblul a inclus montarea tuturor pieselor imprimate 3D cu piesele cumpărate, extinderea cablurilor motorului și înșurubarea tuturor pieselor la bază. În plus, am pus manșoane în jurul cablurilor motorului, doar pentru a da un aspect mai îngrijit și am adăugat conectori JST la capetele lor.

Pentru a evidenția importanța bazei pe care am construit-o, iată o imagine înainte și după cum arăta ansamblul. Îmbinarea unui pic totul poate face o mare diferență.

Imagine
Imagine
Imagine
Imagine

Pasul 5: Electronică

În ceea ce privește electronica, proiectul este destul de simplu. Există o sursă principală de alimentare de 12V, care poate furniza până la 3A din curent, care alimentează motoarele. Un modul step-down este utilizat pentru a alimenta în siguranță Arduino și a fost proiectat un scut personalizat pentru Arduino care găzduiește toți driverele motorului pas cu pas. Driverele facilitează controlul motoarelor. Conducerea unui motor pas cu pas necesită o secvență de control specifică, dar prin utilizarea driverelor motorului trebuie să generăm doar un impuls mare pentru fiecare pas pe care motorul îl va roti. În plus, niște conectori JST au fost adăugați la ecran pentru a facilita conectarea motoarelor. Scutul pentru Arduino a fost construit foarte repede pe o bucată de perfboard și după ce ne-am asigurat că totul funcționează așa cum trebuia, a fost fabricat de jlc pcb.

Iată înainte și după prototip și PCB-ul fabricat.

Imagine
Imagine
Imagine
Imagine

Pasul 6: Software și interfață serială

Q-Bot-ul este împărțit în două părți. Pe de o parte, există hardware-ul care este controlat de Arduino, pe de altă parte, există o bucată de software care calculează calea de rezolvare a cubului pe baza actualului cod. Firmware-ul care rulează pe Arduino a fost scris de mine, dar pentru a păstra scurt acest ghid nu voi intra în niciun detaliu despre el aici. Dacă doriți să aruncați o privire și să vă jucați cu el, linkul către depozitul meu git va fi furnizat la sfârșitul acestui document. Software-ul care calculează soluția rulează pe o mașină Windows și a fost scris de un coleg de-al meu, iar linkurile către codul său sursă pot fi găsite la sfârșitul acestui ible. Cele două părți comunică folosind o interfață serială simplă. Calculează soluția pe baza algoritmului cu două faze al lui Kociemba. Software-ul de rezolvare trimite o comandă constând din doi octeți către rezolvator și așteaptă ca acesta să returneze un „ACK”. În acest fel, solverul poate fi testat și depanat folosind un monitor serial simplu. Setul de instrucțiuni complet poate fi găsit mai jos.

Imagine
Imagine

Comenzile pentru rotirea fiecărui motor pentru un pas reprezintă o soluție pentru o problemă în care unii dintre stepperi ar efectua în mod aleatoriu mici salturi la pornire. Pentru a compensa acest lucru, motoarele pot fi ajustate la poziția lor inițială înainte de procesul de rezolvare.

Pasul 7: Concluzie

După opt luni de dezvoltare, înjurături, lovirea tastaturii și dansul Q-botului a fost în cele din urmă într-un punct în care este rezolvat cu succes primul său cub Rubik. Scramble-ul cubului trebuia introdus manual în software-ul de control, dar totul a funcționat bine.

Am adăugat o montură pentru o cameră web câteva săptămâni mai târziu, iar facultatea mea a adaptat software-ul pentru a citi cubul automat din imaginile luate. Cu toate acestea, acest lucru nu este testat încă bine și are nevoie de unele îmbunătățiri.

Imagine
Imagine

Dacă acest lucru instructabil v-a stârnit interesul, nu ezitați și începeți să vă construiți propria versiune a Q-bot-ului. S-ar putea să pară descurajator la început, dar merită mult efortul și dacă aș putea face acest lucru, puteți și dumneavoastră.

Resurse:

Codul sursă al firmware-ului:

github.com/Axodarap/QBot_firmware

Codul sursă al software-ului de control

github.com/waldhube16/Qbot_SW

Recomandat: