Satura rādītājs:
- 1. darbība: aparatūras projektēšana
- 2. darbība. Pareizu motoru izvēle
- 3. solis: bāzes izveide
- 4. solis: aparatūras montāža
- 5. solis: elektronika
- 6. darbība: programmatūra un sērijas interfeiss
- 7. solis. Secinājums
Video: Q -Bot - atvērtā koda Rubika kuba risinātājs: 7 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
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.
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:
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.
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.
Paātrinājums šajā gadījumā ir gravitācijas paātrinājums. Tātad nepieciešamo griezes momentu norāda
Pievienojot visas vērtības, ieskaitot pusi no Rubika kuba diagonāles, beidzot tiek atklāts nepieciešamais griezes moments.
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.
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.
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.
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.
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.
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:
Reāllaika Rubika kuba risinātājs ar aizsietām acīm, izmantojot Raspberry Pi un OpenCV: 4 soļi
Reāllaika Rubika kuba risinātājs ar aizsietām acīm, izmantojot Raspberry Pi un OpenCV: Šī ir Rubika kuba rīka otrā versija, kas paredzēta risināšanai ar aizsietām acīm. 1. versiju izstrādāja javascript, jūs varat redzēt projektu RubiksCubeBlindfolded1Atšķirībā no iepriekšējās, šī versija izmanto OpenCV bibliotēku, lai noteiktu krāsas un e
Vienkārša noliekta krāsu maiņa bezvadu Rubika kuba lampai: 10 soļi (ar attēliem)
Viegli noliecama krāsu maiņa bezvadu Rubika kuba lampai: Šodien mēs izveidosim šo satriecošo Rubika kubam līdzīgo lampu, kas maina krāsu atkarībā no tā, kura puse ir uz augšu. Kubs darbojas ar nelielu LiPo akumulatoru, kas tiek uzlādēts ar standarta micro-usb kabeli, un, manā testēšanā, akumulatora darbības laiks ir vairākas dienas. Šī
Funkcionāls USB zibatmiņas disks Rubika kubs: 7 soļi (ar attēliem)
Funkcionāls USB zibatmiņas disks Rubika kubs: šajā apmācībā es jums parādīšu, kā izveidot savu Rubik USB zibatmiņu. Gatavo produktu varat redzēt šajā videoklipā:
Arduino Mega pakāpju vairogs Rubika kuba risinātājam: 4 soļi
Arduino Mega pakāpju vairogs Rubika kuba risinātājam: Pirms kāda laika es strādāju pie mašīnas, kas automātiski atrisina jebkuru sajauktu 3x3 Rubika kubu. Jūs varat redzēt manus norādījumus par to šeit. Projektā sešu motoru darbināšanai tika izmantoti soļu braucēji no Polulu. Lai divi varētu savienot šos
Satiksmes risinātājs: 7 soļi
Satiksmes risinātājs: Satiksmes risinātājs automatizē satiksmes kontroli vienas joslas ietvaros būvniecības zonā. Lai šī sistēma darbotos bez starpgadījumiem, starp tām jābūt divām vienībām, pa vienai katrā pusē. Abām vienībām būs motors un rotējoša turēšanas ierīce, kas