Satura rādītājs:

Q -Bot - atvērtā koda Rubika kuba risinātājs: 7 soļi (ar attēliem)
Q -Bot - atvērtā koda Rubika kuba risinātājs: 7 soļi (ar attēliem)

Video: Q -Bot - atvērtā koda Rubika kuba risinātājs: 7 soļi (ar attēliem)

Video: Q -Bot - atvērtā koda Rubika kuba risinātājs: 7 soļi (ar attēliem)
Video: Марко Темпест: Дополненная реальность, техно-магия 2024, Novembris
Anonim
Image
Image
Attēls
Attēls

Iedomājieties, ka jums ir kodēts Rubika kubs, jūs zināt, ka 80. gadu mīkla ir tāda, kāda ir ikvienam, bet neviens īsti nezina, kā to atrisināt, un jūs vēlaties to atgriezt sākotnējā modelī. Par laimi, mūsdienās ir ļoti viegli atrast risinājumus. Tātad, dodieties tiešsaistē, skatieties videoklipu, lai uzzinātu, kā pagriezt sāņus, lai sagādātu jums prieku. Tomēr, pāris reizes to izdarot, jūs sapratīsit, ka kaut kā trūkst. Iekšpusē ir caurums, kuru nevar aizpildīt. Inženieri/veidotājs/hakeris jūsos vienkārši nevar būt apmierināts ar to, ka tik vienkāršā veidā atrisina kaut ko tik pārsteidzošu. Vai nebūtu daudz poētiskāk, ja jums būtu mašīna, kas visu atrisinātu jūsu vietā? Ja jūs kaut ko uzbūvētu, visi jūsu draugi būtu pārsteigti? Es varu jums garantēt, ka nav daudz labāk, nekā skatīties, kā jūsu radīšana dara brīnumus un atrisina Rubika kubu. Tātad, nāc un pievienojies man brīnišķīgajā ceļojumā, veidojot atvērtā pirmkoda Rubika kuba risinātāju Q-Bot, kas noteikti nepārspēs nevienu pasaules rekordu, bet sniegs jums prieku stundām (pēc tam, kad, protams, pārdzīvojis visas neapmierinātības) būvniecības procesā).

1. darbība: aparatūras projektēšana

Pilnīgs risinātājs tika izstrādāts ar CAD Catia. Tādā veidā lielāko daļu dizaina kļūdu varēja atrast un labot pirms fizisku sastāvdaļu izgatavošanas. Lielākā daļa risinātāja tika 3D drukāti PLA, izmantojot prusa MK3 printeri. Turklāt tika izmantota šāda aparatūra:

  • 8 gabali 8 mm alumīnija stieņa (10 cm garš)
  • 8 lineārie lodīšu gultņi (LM8UU)
  • nedaudz zem 2 m GT2 6 mm zobsiksna + daži skriemeļi
  • 6 NEMA 17 bipolāri soļu motori
  • 6 soļu vadītāji Polulu 4988
  • Arudino Mega kā projekta kontrolieris
  • 12 V 3A barošanas avots
  • atkāpšanās pārveidotājs, lai droši darbinātu arduino
  • dažas skrūves un savienotāji
  • daži saplāksnis pamatnei

Aparatūras apraksts

Šajā sadaļā īsi apskatīts, kā Q-Bot pat darbojas un kur tiek izmantoti iepriekš minētie komponenti. Zemāk varat redzēt pilnībā samontēta CAD modeļa atveidojumu.

Q-bot darbojas, četrus motorus piestiprinot tieši pie Rubika kuba ar 3D drukātiem satvērējiem. Tas nozīmē, ka pa kreisi, pa labi, priekšpusi un aizmuguri var pagriezt tieši. Ja jāpagriež augšējā vai apakšējā puse, viss kubs ir jāpagriež, un tāpēc divi motori ir jānovirza. Tas tiek darīts, piestiprinot katru satveršanas motoru pie ragaviņām, ko darbina cits pakāpju motors un zobsiksna gar lineāro sliežu sistēmu. Sliežu sistēma sastāv no diviem 8 lodīšu gultņiem, kas ir uzstādīti ragaviņu dobumos, un visa ragava brauc uz divām 8 mm alumīnija vārpstām. Zemāk varat redzēt risinātāja vienas ass apakšvienību.

X un y ass būtībā ir identiskas, tās atšķiras tikai pēc jostas stiprinājuma punkta augstuma, tas ir tāpēc, ka, pilnībā samontējot, starp abām jostām nav sadursmju.

Attēls
Attēls

2. darbība. Pareizu motoru izvēle

Protams, šeit ir ļoti svarīgi izvēlēties pareizos motorus. Galvenā daļa ir tāda, ka tiem jābūt pietiekami stipriem, lai varētu pagriezt Rubika kubu. Vienīgā problēma šeit ir tā, ka neviens Rubika kubu ražotājs nesniedz griezes momenta novērtējumu. Tātad, man nācās improvizēt un veikt savus mērījumus.

Parasti griezes momentu nosaka spēks, kas vērsts perpendikulāri rotācijas punkta stāvoklim attālumā r:

Attēls
Attēls
Attēls
Attēls

Tātad, ja es kaut kā varētu izmērīt kubam pielikto spēku, es varētu aprēķināt griezes momentu. Kas ir tieši tas, ko es darīju. Es piespiedu savu kubu pie plaukta tā, lai tikai viena puse varētu pārvietoties. Ka ap kubu bija sasieta aukla un apakšā piestiprināta soma. Tagad atlika tikai lēnām palielināt svaru somā, līdz kubs pagriezās. Tā kā trūka precīzu svaru, es izmantoju kartupeļus un pēc tam tos izmērīju. Nav zinātniskākā metode, bet tāpēc, ka es nemēģinu atrast minimālo griezes momentu, ar to pietiek.

Attēls
Attēls

Es veicu mērījumus trīs reizes un ņēmu augstāko vērtību, lai būtu drošībā. Iegūtais svars bija 0,52 kg. Tagad, pateicoties seram Īzakam Ņūtonam, mēs zinām, ka spēks ir vienāds ar masas paātrinājumu.

Attēls
Attēls

Paātrinājums šajā gadījumā ir gravitācijas paātrinājums. Tātad nepieciešamo griezes momentu norāda

Attēls
Attēls

Pievienojot visas vērtības, ieskaitot pusi no Rubika kuba diagonāles, beidzot tiek atklāts nepieciešamais griezes moments.

Attēls
Attēls

Es devos ar soļu motoriem, kas spēj pielietot līdz 0,4 Nm, kas, iespējams, ir pārspīlēts, bet es gribēju būt drošs.

3. solis: bāzes izveide

Pamatne sastāv no ļoti vienkāršas koka kastes, un tajā ir visa nepieciešamā elektronika. Tam ir kontaktdakša iekārtas ieslēgšanai un izslēgšanai, gaismas diode, kas norāda, vai tā ir ieslēgta, USB B ports un kontaktligzda barošanas avota pievienošanai. Tas tika uzbūvēts, izmantojot 15 mm saplāksni, dažas skrūves un mazliet līmes.

Attēls
Attēls
Attēls
Attēls
Attēls
Attēls
Attēls
Attēls

4. solis: aparatūras montāža

Tagad ar visām nepieciešamajām detaļām, ieskaitot pamatni, Q-bot bija gatavs montāžai. Pielāgotās detaļas tika izdrukātas 3D formātā un vajadzības gadījumā pielāgotas. Šī ible beigās varat lejupielādēt visus CAD failus. Montāža ietvēra visu 3D drukāto detaļu savienošanu ar iegādātajām detaļām, motora kabeļu pagarināšanu un visu detaļu pieskrūvēšanu pie pamatnes. Turklāt es ap motora kabeļiem uzliku piedurknes, lai tas izskatītos nedaudz kārtīgāk, un to galiem pievienoju JST savienotājus.

Lai uzsvērtu manis uzbūvētās bāzes nozīmi, šeit ir pirms un pēc šāviens, kā izskatījās montāža. Nedaudz sakārtojot visu, var būt milzīga atšķirība.

Attēls
Attēls
Attēls
Attēls

5. solis: elektronika

Attiecībā uz elektroniku projekts ir diezgan vienkāršs. Ir galvenais 12 V barošanas avots, kas var piegādāt līdz pat 3A strāvu, kas nodrošina motorus. Lai droši barotu Arduino, tiek izmantots pazemināšanas modulis, un tika izstrādāts pielāgots Arduino vairogs, kurā atrodas visi pakāpju motoru draiveri. Vadītāji ievērojami atvieglo motoru vadību. Lai vadītu pakāpju motoru, nepieciešama īpaša vadības secība, taču, izmantojot motora piedziņas, mums ir jārada tikai augsts impulss katram motora pagriezienam. Turklāt, lai atvieglotu motoru savienošanu, vairogam tika pievienoti daži jst savienotāji. Arduino vairogs vispirms tika uzbūvēts uz plātnes gabala un pēc tam, kad bija pārliecinājies, ka viss darbojas tā, kā paredzēts, tika izgatavots no jlc pcb.

Šeit ir pirms un pēc prototipa un ražotās PCB.

Attēls
Attēls
Attēls
Attēls

6. darbība: programmatūra un sērijas interfeiss

Q-Bot ir sadalīts divās daļās. No vienas puses, ir aparatūra, kuru kontrolē Arduino, no otras puses, ir programmatūra, kas aprēķina kuba atrisināšanas ceļu, pamatojoties uz pašreizējo kodējumu. Programmatūru, kas darbojas Arduino, rakstīju es, bet, lai šī rokasgrāmata būtu īsa, es šeit neiedziļināšos detaļās. Ja vēlaties to apskatīt un ar to paspēlēties, saite uz manu git krātuvi tiks sniegta šī dokumenta beigās. Programmatūra, kas aprēķina risinājumu, darbojas uz Windows mašīnas, un to uzrakstīja mans kolēģis, atkal saites uz viņa avota kodu ir atrodamas šī ible beigās. Abas daļas sazinās, izmantojot vienkāršu sērijas interfeisu. Tas aprēķina risinājumu, pamatojoties uz Kociemba divfāžu algoritmu. Atrisināšanas programmatūra nosūta risinātājam komandu, kas sastāv no diviem baitiem, un gaida, kad tā atgriezīs “ACK”. Tādā veidā risinātāju var pārbaudīt un atkļūdot, izmantojot vienkāršu sērijas monitoru. Pilnu instrukciju komplektu var atrast zemāk.

Attēls
Attēls

Komandas pagriezt katru motoru vienu soli ir risinājums problēmai, kad daži pakāpieni nejauši veic nelielus lēcienus pēc ieslēgšanas. Lai to kompensētu, motorus var noregulēt sākotnējā stāvoklī pirms risināšanas procesa.

7. solis. Secinājums

Pēc astoņu mēnešu attīstības, lamāšanās, trāpīšanas tastatūrā un dejošanas Q-bot beidzot nonāca vietā, kur veiksmīgi tika atrisināts pirmais Rubika kubs. Kuba kodējums bija manuāli jāievieto vadības programmatūrā, taču viss darbojās labi.

Pēc pāris nedēļām es pievienoju tīmekļa kameras stiprinājumu, un mana koledža pielāgoja programmatūru, lai tā automātiski nolasītu kubu no uzņemtajiem attēliem. Tomēr tas vēl nav labi pārbaudīts, un joprojām ir nepieciešami daži uzlabojumi.

Attēls
Attēls

Ja šī pamācība izraisīja jūsu interesi, nevilcinieties un sāciet veidot savu Q-bot versiju. Sākumā tas varētu šķist biedējoši, taču tas ir ļoti vērts pūlēties, un, ja es to varētu, tad arī jūs.

Resursi:

Programmaparatūras avota kods:

github.com/Axodarap/QBot_firmware

Vadības programmatūras avota kods

github.com/waldhube16/Qbot_SW

Ieteicams: