Turinys:

„Q -Bot“- atviro kodo Rubiko kubo sprendėjas: 7 žingsniai (su paveikslėliais)
„Q -Bot“- atviro kodo Rubiko kubo sprendėjas: 7 žingsniai (su paveikslėliais)

Video: „Q -Bot“- atviro kodo Rubiko kubo sprendėjas: 7 žingsniai (su paveikslėliais)

Video: „Q -Bot“- atviro kodo Rubiko kubo sprendėjas: 7 žingsniai (su paveikslėliais)
Video: Java tech talk: Spring Boot and GraphQl integration. Как сделать это просто? 2024, Lapkritis
Anonim
Image
Image
Vaizdas
Vaizdas

Įsivaizduokite, kad turite suklastotą Rubiko kubą, žinote tą 80 -ųjų galvosūkį, kurį turi visi, bet niekas nežino, kaip jį išspręsti, ir jūs norite sugrąžinti jį į pradinį modelį. Laimei, šiais laikais labai lengva rasti sprendimo instrukcijas. Taigi, eikite į internetą ir peržiūrėkite vaizdo įrašą, kad sužinotumėte, kaip pasukti šonus, kad suteiktumėte džiaugsmo. Tačiau porą kartų tai padarę suprasite, kad kažko trūksta. Viduje skylė, kurios negalima užpildyti. Jūsų viduje esantys inžinieriai/gamintojas/įsilaužėlis tiesiog negali būti patenkinti, kad taip paprastai išsprendžia kažką tokio nuostabaus. Ar nebūtų daug poetiškiau, jei turėtumėte mašiną, kuri viską išspręstų už jus? Jei ką nors pastatytumėte, visi jūsų draugai būtų nustebinti? Galiu garantuoti, kad tai nėra daug geriau nei žiūrėti, kaip tavo kūryba daro stebuklus ir išsprendžia Rubiko kubą. Taigi, ateik ir prisijunk prie manęs nuostabioje kelionėje kuriant „Q-Bot“, atviro kodo Rubiko kubo sprendėją, kuris tikrai nepralenks jokių pasaulio rekordų, bet suteiks tau džiaugsmo valandų (žinoma, išgyvenus visus nusivylimus) statybos proceso metu).

1 žingsnis: Aparatūros projektavimas

Visas sprendimas buvo sukurtas naudojant CAD Catia. Tokiu būdu daugumą projektavimo klaidų buvo galima rasti ir ištaisyti prieš gaminant bet kokius fizinius komponentus. Dauguma sprendėjų buvo spausdinami 3D naudojant PLA, naudojant „prusa MK3“spausdintuvą. Be to, buvo naudojama ši aparatinė įranga:

  • 8 gabalėliai 8 mm aliuminio strypo (10 cm ilgio)
  • 8 linijiniai rutuliniai guoliai (LM8UU)
  • šiek tiek mažiau nei 2 m GT2 6 mm paskirstymo diržo + kai kurie skriemuliai
  • 6 bipoliniai žingsniniai varikliai NEMA 17
  • 6 „Polulu 4988“stepper vairuotojai
  • Arudino Mega kaip projekto valdytojas
  • 12 V 3A maitinimo šaltinis
  • laiptelio keitiklis, skirtas saugiai maitinti arduino
  • kai kurie varžtai ir jungtys
  • šiek tiek faneros pagrindui

Techninės įrangos aprašymas

Šiame skyriuje trumpai aprašoma, kaip veikia net „Q-Bot“ir kur naudojami aukščiau paminėti komponentai. Žemiau galite pamatyti visiškai surinkto CAD modelio atvaizdavimą.

„Q-bot“veikia turėdamas keturis variklius, pritvirtintus tiesiai prie Rubiko kubo su 3D spausdintais griebtuvais. Tai reiškia, kad į kairę, į dešinę, į priekį ir atgal galima pasukti tiesiogiai. Jei reikia pasukti viršutinę arba apatinę pusę, reikia pasukti visą kubą, todėl du varikliai turi būti nutolę. Tai daroma pritvirtinant kiekvieną sugriebimo variklį prie rogių, varomų kito žingsninio variklio ir paskirstymo diržo išilgai linijinės bėgių sistemos. Bėgių sistemą sudaro du 8 rutuliniai guoliai, sumontuoti į rogių ertmes, o visos rogės važiuoja ant dviejų 8 mm aliuminio velenų. Žemiau galite pamatyti vienos sprendėjo ašies dalinį mazgą.

X ir y ašys iš esmės yra identiškos, jos skiriasi tik pagal diržo tvirtinimo taško aukštį, todėl visiškai nesumontavus tarp dviejų diržų nėra susidūrimų.

Vaizdas
Vaizdas

2 žingsnis: išsirinkite tinkamus variklius

Žinoma, čia labai svarbu pasirinkti tinkamus variklius. Svarbiausia, kad jie turi būti pakankamai stiprūs, kad galėtų pasukti Rubiko kubą. Vienintelė problema yra ta, kad nė vienas Rubiko kubelių gamintojas nesuteikia sukimo momento. Taigi, turėjau improvizuoti ir atlikti savo matavimus.

Paprastai sukimo momentą apibrėžia jėga, nukreipta statmenai sukimosi taško padėčiai atstumu r:

Vaizdas
Vaizdas
Vaizdas
Vaizdas

Taigi, jei galėčiau kažkaip išmatuoti kubui taikomą jėgą, galėčiau apskaičiuoti sukimo momentą. Būtent tai aš padariau. Prisegiau savo kubą prie lentynos taip, kad tik viena pusė galėtų judėti. Kad aplink kubą buvo užrišta virvelė, o apačioje - maišas. Dabar beliko pamažu didinti svorį maišelyje, kol kubas apsisuko. Kadangi trūko tikslių svorių, naudojau bulves ir vėliau jas išmatavau. Tai nėra pats mokslinis metodas, bet todėl, kad nesistengiu rasti minimalaus sukimo momento, to visiškai pakanka.

Vaizdas
Vaizdas

Aš tris kartus padariau matavimus ir, norėdamas būti saugus, įvertinau didžiausią vertę. Gautas svoris buvo 0,52 kg. Dabar dėl sero Izaoko Niutono žinome, kad Jėga yra lygi masės pagreičiui.

Vaizdas
Vaizdas

Šiuo atveju pagreitis yra gravitacinis pagreitis. Taigi reikiamą sukimo momentą nurodo

Vaizdas
Vaizdas

Prijungus visas vertes, įskaitant pusę Rubiko kubo įstrižainės, pagaliau parodomas reikiamas sukimo momentas.

Vaizdas
Vaizdas

Aš ėjau su žingsniniais varikliais, galinčiais pritaikyti iki 0,4 Nm, o tai tikriausiai yra per daug, tačiau norėjau būti saugus.

3 žingsnis: pagrindo konstravimas

Pagrindą sudaro labai paprasta medinė dėžutė, kurioje yra visa reikalinga elektronika. Jame yra kištukas mašinai įjungti ir išjungti, šviesos diodas, rodantis, ar jis įjungtas, USB B prievadas ir maitinimo šaltinio lizdas. Jis buvo pagamintas naudojant 15 mm fanerą, keletą varžtų ir šiek tiek klijų.

Vaizdas
Vaizdas
Vaizdas
Vaizdas
Vaizdas
Vaizdas
Vaizdas
Vaizdas

4 žingsnis: Aparatūros surinkimas

Dabar su visomis reikalingomis dalimis, įskaitant pagrindą, „Q-bot“buvo paruoštas surinkti. Pasirinktinės dalys buvo atspausdintos 3D ir prireikus sureguliuotos. Šio „ible“pabaigoje galite atsisiųsti visus CAD failus. Surinkimas apėmė visų 3D spausdintų dalių prijungimą prie nupirktų dalių, variklio kabelių pailginimą ir visų dalių prisukimą prie pagrindo. Be to, aš uždėjau rankoves aplink variklio kabelius, kad tik atrodytų šiek tiek tvarkingiau, ir prie jų galų pridėjau JST jungtis.

Norėdami pabrėžti mano sukurtos bazės svarbą, čia yra prieš ir po to, kaip atrodė surinkimas. Truputį viską sutvarkius, gali labai pasikeisti.

Vaizdas
Vaizdas
Vaizdas
Vaizdas

5 žingsnis: Elektronika

Kalbant apie elektroniką, projektas yra gana paprastas. Yra pagrindinis 12 V maitinimo šaltinis, galintis tiekti iki 3A srovės, kuri maitina variklius. „Arduino“saugiam naudojimui naudojamas pažeminimo modulis, o „Arduino“buvo sukurtas specialus skydas, kuriame yra visi žingsninio variklio vairuotojai. Vairuotojai labai palengvina variklių valdymą. Norint vairuoti žingsninį variklį, reikalinga tam tikra valdymo seka, tačiau naudojant variklio tvarkykles mums reikia tik sugeneruoti didelį impulsą kiekvienam variklio žingsniui. Be to, prie skydo buvo pridėtos kai kurios jst jungtys, kad būtų lengviau prijungti variklius. „Arduino“skydas pirmiausia buvo pastatytas ant karkaso plokštės ir įsitikinus, kad viskas veikia taip, kaip turėjo, buvo pagaminta „jlc pcb“.

Štai prieš ir po prototipo bei pagamintos PCB.

Vaizdas
Vaizdas
Vaizdas
Vaizdas

6 veiksmas: programinė įranga ir nuosekli sąsaja

„Q-Bot“yra padalintas į dvi dalis. Viena vertus, yra aparatinė įranga, kurią valdo „Arduino“, kita vertus, yra programinė įranga, kuri apskaičiuoja kubo sprendimo kelią, remdamasi dabartiniu maišymu. „Arduino“veikiančią programinę -aparatinę įrangą parašiau pats, tačiau, kad šis vadovas būtų trumpas, čia nesigilinu į jokią informaciją. Jei norite jį peržiūrėti ir pažaisti, šio dokumento pabaigoje bus pateikta nuoroda į mano „git“saugyklą. Programinė įranga, kuri apskaičiuoja sprendimą, veikia „Windows“mašinoje ir ją parašė mano kolega, vėl pateikiamos nuorodos į jo šaltinio kodą. Abi dalys bendrauja naudodami paprastą nuosekliąją sąsają. Jis apskaičiuoja sprendimą remdamasis Kociemba dviejų fazių algoritmu. Sprendimo programinė įranga siunčia komandai, kurią sudaro du baitai, sprendėjui ir laukia, kol ji grąžins „ACK“. Tokiu būdu sprendėją galima išbandyti ir derinti naudojant paprastą serijinį monitorių. Visą instrukcijų rinkinį rasite žemiau.

Vaizdas
Vaizdas

Komandos pasukti kiekvieną variklį vienu žingsniu yra problemos sprendimas, kai kai kurie žingsniai atsitiktinai atliks nedidelius šuolius įjungę. Norėdami tai kompensuoti, varikliai gali būti sureguliuoti į pradinę padėtį prieš sprendžiant.

7 žingsnis: Išvada

Po aštuonių mėnesių kūrimo, keiksmažodžių, klavišų paspaudimo ir šokių Q-bot pagaliau pasiekė tašką, kuriame sėkmingai išsprendžiamas pirmasis Rubiko kubas. Kubo kodą reikėjo rankiniu būdu įterpti į valdymo programinę įrangą, tačiau viskas veikė gerai.

Po poros savaičių pridėjau internetinės kameros laikiklį ir mano kolegija pakoregavo programinę įrangą, kad automatiškai nuskaitytų kubą iš padarytų vaizdų. Tačiau tai dar nėra gerai išbandyta ir ją reikia dar patobulinti.

Vaizdas
Vaizdas

Jei šis pamokymas sukėlė jūsų susidomėjimą, nedvejokite ir pradėkite kurti savo Q-bot versiją. Iš pradžių tai gali atrodyti bauginanti, bet labai verta pastangų, o jei aš galėčiau tai padaryti, tai ir jūs.

Ištekliai:

Programinės įrangos šaltinio kodas:

github.com/Axodarap/QBot_firmware

Valdymo programinės įrangos šaltinio kodas

github.com/waldhube16/Qbot_SW

Rekomenduojamas: