Turinys:
- 1 žingsnis: Aparatūros projektavimas
- 2 žingsnis: išsirinkite tinkamus variklius
- 3 žingsnis: pagrindo konstravimas
- 4 žingsnis: Aparatūros surinkimas
- 5 žingsnis: Elektronika
- 6 veiksmas: programinė įranga ir nuosekli sąsaja
- 7 žingsnis: Išvada
Video: „Q -Bot“- atviro kodo Rubiko kubo sprendėjas: 7 žingsniai (su paveikslėliais)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Į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ų.
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:
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.
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.
Šiuo atveju pagreitis yra gravitacinis pagreitis. Taigi reikiamą sukimo momentą nurodo
Prijungus visas vertes, įskaitant pusę Rubiko kubo įstrižainės, pagaliau parodomas reikiamas sukimo momentas.
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ų.
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.
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.
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.
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.
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:
Realaus laiko Rubiko kubo sprendimas užrištomis akimis naudojant „Raspberry Pi“ir „OpenCV“: 4 žingsniai
Realaus laiko „Rubiko kubo“užrištomis akimis sprendimas naudojant „Raspberry Pi“ir „OpenCV“: tai yra antroji „Rubik“kubo įrankio versija, skirta spręsti akis. 1 -oji versija buvo sukurta naudojant „javascript“, galite pamatyti projektą „RubiksCubeBlindfolded1“Skirtingai nuo ankstesnės, ši versija naudoja „OpenCV“biblioteką, kad aptiktų spalvas ir el
Lengva pakreipiama spalva keičiama belaidė Rubiko kubo lempa: 10 žingsnių (su nuotraukomis)
Lengva pakreipiama spalva keičiama belaidė Rubiko kubo lempa: Šiandien mes sukursime šią nuostabią Rubiko kubo formos lempą, kuri keičia spalvą priklausomai nuo to, kuri pusė yra aukštyn. Kubas veikia su maža „LiPo“baterija, įkrauta standartiniu „micro-usb“kabeliu, ir, mano bandymų metu, baterija veikia kelias dienas. Ši
„Arduino Mega“žingsninis skydas Rubiko kubo sprendėjui: 4 žingsniai
„Arduino Mega“žingsninis skydas Rubiko kubo sprendėjui: Prieš kurį laiką dirbau prie mašinos, kuri automatiškai išsprendžia bet kokius 3x3 Rubiko kubelius. Mano instrukcijas šiuo klausimu galite pamatyti čia. Projekte šeši varikliai buvo varomi žingsniniais vairuotojais iš polulu. Kad du sujungtų šiuos
Eismo sprendėjas: 7 žingsniai
Eismo sprendėjas: Eismo sprendėjas automatizuoja eismo valdymą vienoje eismo juostoje statybos zonoje. Kad ši sistema veiktų be avarijų, turi būti du įrenginiai, po vieną kiekvienoje pusėje. Abu įrenginiai turės variklį ir besisukantį laikiklį, kuris
2 mygtukų kvadratinių lygčių sprendėjas: 5 žingsniai
Dviejų mygtukų kvadratinių lygčių sprendėjas: Įvadas Sveiki atvykę į pirmąjį pamokomą dalyką! Pradėjau šį projektą, norėdamas išplėsti savo programavimo žinias. Dažnai jūs tiesiog sujungiate skirtingą šaltinio kodą, kad sukurtumėte reikiamą programą. Mano tikslas buvo parašyti savo programos kodą, skirtą sąveikai su įrankiu