Talaan ng mga Nilalaman:

Q-Bot - ang Open Source Rubik's Cube Solver: 7 Mga Hakbang (na may Mga Larawan)
Q-Bot - ang Open Source Rubik's Cube Solver: 7 Mga Hakbang (na may Mga Larawan)

Video: Q-Bot - ang Open Source Rubik's Cube Solver: 7 Mga Hakbang (na may Mga Larawan)

Video: Q-Bot - ang Open Source Rubik's Cube Solver: 7 Mga Hakbang (na may Mga Larawan)
Video: Among the four emperors, Baki has beaten three. The remaining one is Mingge himself: I didn't know 2024, Nobyembre
Anonim
Image
Image
Larawan
Larawan

Isipin na mayroon kang isang scrambled Rubik's Cube, alam mo na ang puzzle ay bumubuo ng 80s na mayroon ang lahat ngunit wala talagang nakakaalam kung paano malutas, at nais mong ibalik ito sa orihinal na pattern. Sa kabutihang palad sa mga araw na ito napakadali upang makahanap ng mga tagubilin sa paglutas. Kaya, mag-online tumingin sa isang video alamin kung paano i-on ang mga gilid upang makapagbigay sa iyo ng kagalakan. Pagkatapos gawin ito ng ilang beses, gayunpaman, mapagtanto mo na mayroong isang bagay na nawawala. Isang butas sa loob na hindi mapunan. Ang mga inhinyero / tagagawa / hacker sa loob mo ay hindi nasiyahan sa paglutas ng isang bagay na kamangha-mangha sa isang simpleng paraan. Hindi ba magiging mas patula kung mayroon kang isang makina na ginawa ang lahat ng paglutas para sa iyo? Kung bumuo ka ng isang bagay ang lahat ng iyong mga kaibigan ay namangha sa kanya? Maaari kong garantiyahan sa iyo na hindi ito magiging mas mahusay kaysa sa panonood ng iyong paglikha na gumawa ng mga kababalaghan at malutas ang isang Rubik Cube. Kaya, halika at samahan ako sa kahanga-hangang paglalakbay ng pagbuo ng Q-Bot, ang open source na Rubik's Cube Solver na tiyak na hindi matatalo ang anumang mga tala ng mundo, ngunit bibigyan ka ng mga oras ng kagalakan (pagkatapos ng kurso na dumaan sa lahat ng mga pagkabigo habang nasa proseso ng pagbuo).

Hakbang 1: Pagdidisenyo ng Hardware

Ang kumpletong solver ay dinisenyo kasama ang CAD sa Catia. Sa ganitong paraan ang karamihan sa mga error sa disenyo ay maaaring matagpuan at maitama bago gumawa ng anumang mga pisikal na sangkap. Karamihan sa solver ay naka-print sa 3D sa PLA gamit ang isang prusa MK3 printer. Bilang karagdagan, ginamit ang sumusunod na hardware:

  • 8 piraso ng 8 mm aluminyo baras (10cm ang haba)
  • 8 linear ball bearings (LM8UU)
  • isang maliit na sa ilalim ng 2 m ng GT2 6mm timing belt + ilang mga pulley
  • 6 NEMA 17 bipolar stepper motors
  • 6 mga driver ng stepper na Polulu 4988
  • isang Arudino Mega bilang tagapamahala para sa proyekto
  • isang supply ng kuryente na 12 V 3A
  • isang step down converter upang ligtas na mapagana ang arduino
  • ilang mga turnilyo at konektor
  • ilang playwud para sa base

Paglalarawan ng hardware

Ang seksyon na ito ay maikling sumasaklaw kung paano gumana ang Q-Bot at kung saan ginagamit ang nabanggit na mga sangkap. Sa ibaba maaari mong makita ang isang pag-render ng buong binuo model ng CAD.

Gumagana ang Q-bot sa pamamagitan ng pagkakaroon ng apat na motor na direktang nakakabit sa Rubik Cube na may 3D print griper. Nangangahulugan ito na ang kaliwa, kanan, harap at likod ay maaaring direktang lumiko. Kung ang tuktok o ang ibabang bahagi ay kailangang i-on, ang buong kubo ay dapat na nakabukas at sa gayon ang dalawa sa mga motor ay kailangang lumayo. Ginagawa ito sa pamamagitan ng paglakip ng bawat isa sa mga nakakaganyak na motor sa mga sled na hinihimok ng isa pang stepper motor at isang timing belt kasama ang isang linear rail system. Ang sistema ng riles ay binubuo ng dalawang 8 ball bearings na naka-mount sa mga lukab sa sled at ang buong sled rides sa dalawang 8mm aluminyo na shaft. Sa ibaba makikita mo ang sub pagpupulong ng isang axis ng solver.

Ang x- at ang y-axis ay karaniwang magkatulad na magkakaiba lamang sila sa taas ng mounting point ng sinturon, ito ay upang walang mga banggaan sa pagitan ng dalawang sinturon kapag ganap na tipunin.

Larawan
Larawan

Hakbang 2: Pagpili ng Tamang Mga Motors

Siyempre, napili dito ang tamang pagpili ng mga motor. Ang pangunahing bahagi ay kailangan nila upang maging sapat na malakas upang ma-on ang isang kubo ng Rubik. Ang problema lamang dito ay walang tagagawa ng mga cubes ni Rubik na nagbibigay ng isang rating ng metalikang kuwintas. Kaya, kailangan kong mag-improvise at gumawa ng sarili kong mga sukat.

Sa pangkalahatan ang metalikang kuwintas ay tinukoy ng puwersang nakadirekta patayo sa posisyon ng paikot na punto sa distansya r:

Larawan
Larawan
Larawan
Larawan

Kaya, kung maaari kong sukatin ang kahit anong lakas na inilapat sa kubo maaari kong kalkulahin ang metalikang kuwintas. Alin ang eksaktong ginawa ko. Inilapat ko ang aking kubo sa isang istante sa paraang isang gilid lamang ang makakagalaw. Na ang isang string ay nakatali sa paligid ng kubo at isang bag na nakakabit sa ilalim. Ngayon ang natitira lamang na gawin ay dahan-dahang taasan ang bigat sa bag hanggang sa lumiko ang kubo. Para sa kawalan ng anumang tumpak na timbang ay gumamit ako ng patatas at sinukat ang mga ito pagkatapos. Hindi ang pinaka siyentipikong pamamaraan ngunit dahil hindi ako sumusubok na makahanap ng minimum na metalikang kuwintas ito ay sapat na.

Larawan
Larawan

Ginawa ko ang mga sukat ng tatlong beses at kinuha ang pinakamataas na halaga upang ligtas lamang. Ang nagresultang bigat ay 0.52 kg. Ngayon dahil kay Sir Isaac Newton alam namin na ang Force ay katumbas ng pagpapabilis ng masa.

Larawan
Larawan

Ang pagpabilis, sa kasong ito, ay ang pagbilis ng gravitational. Kaya ang kinakailangang metalikang kuwintas ay ibinibigay ng

Larawan
Larawan

Ang pag-plug sa lahat ng mga halaga, kabilang ang kalahati ng dayagonal ng Rubik's cube, sa wakas ay ipinapakita ang kinakailangang metalikang kuwintas.

Larawan
Larawan

Nagpunta ako kasama ang mga stepper motor na nakaka-apply hanggang sa 0.4Nm na marahil ay isang labis na labis na paggamit, ngunit nais kong maging ligtas.

Hakbang 3: Pagbubuo ng Base

Ang batayan ay binubuo ng isang napaka-simpleng kahon na gawa sa kahoy at inilalagay nito ang lahat ng kinakailangang electronics. Nagtatampok ito ng isang plug upang i-on at i-off ang makina, isang LED upang ipahiwatig kung ito ay naka-on, isang USB B port at isang socket para sa plug ng suplay ng kuryente. Ito ay itinayo gamit ang 15mm playwud, ilang mga turnilyo at isang maliit na pandikit.

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

Hakbang 4: Pag-iipon ng Hardware

Ngayon sa lahat ng kinakailangang bahagi, kabilang ang base, ang Q-bot ay handa nang magtipon. Ang mga pasadyang bahagi ay naka-print sa 3D at nababagay kung kinakailangan. Maaari mong i-download ang lahat ng mga CAD file sa dulo ng ible na ito. Kasama sa pagpupulong na umaangkop sa lahat ng mga naka-print na bahagi ng 3D sa mga biniling bahagi, pagpapalawak ng mga kable ng motor at pag-ikot ng lahat ng mga bahagi sa base. Bilang karagdagan, naglalagay ako ng mga manggas sa paligid ng mga kable ng motor, upang magmukhang medyo mas malapit, at nagdagdag ng mga konektor ng JST sa kanilang mga dulo.

Upang mai-highlight ang kahalagahan ng base na aking itinayo, narito ang bago at pagkatapos ng pagbaril ng kung ano ang hitsura ng pagpupulong. Ang pagtataboy ng kaunti sa lahat ay maaaring gumawa ng isang malaking pagkakaiba.

Larawan
Larawan
Larawan
Larawan

Hakbang 5: Elektronika

Tulad ng para sa electronics ang proyekto ay medyo simple. Mayroong pangunahing 12V power supply, na maaaring maghatid ng hanggang sa 3A ng kasalukuyang, na nagpapagana sa mga motor. Ang isang module ng step-down ay ginagamit upang ligtas na mapagana ang Arduino at isang pasadyang kalasag para sa Arduino ay dinisenyo na naglalaman ng lahat ng mga stepper na driver ng motor. Mas pinadali ng mga driver ang pagkontrol sa mga motor. Ang pagmamaneho ng isang stepper motor ay nangangailangan ng isang tukoy na pagkakasunud-sunod ng kontrol ngunit sa pamamagitan ng paggamit ng mga driver ng motor kailangan lamang naming makabuo ng isang mataas na pulso para sa bawat hakbang na babalik ang motor. Bilang karagdagan, ang ilang mga konektor ng jst ay idinagdag sa kalasag upang gawing mas madali ang pagkonekta sa mga motor. Ang kalasag para sa Arduino ay firtsly na itinayo sa isang piraso ng perfboard at matapos siguraduhin na ang lahat ay gumagana tulad ng dapat gawin ay ginawa ng jlc pcb.

Narito ang bago at pagkatapos ng prototype at ang panindang pcb.

Larawan
Larawan
Larawan
Larawan

Hakbang 6: Software at Serial Interface

Ang Q-Bot ay nahahati sa dalawang bahagi. Sa isang banda mayroong ang hardware na kinokontrol ng Arduino, sa kabilang banda ay may isang piraso ng software na kinakalkula ang path ng paglutas para sa kubo batay sa kasalukuyang pag-aagawan. Ang firmware na tumatakbo sa Arduino ay isinulat ng aking sarili ngunit upang mapanatili ang gabay na ito maikli hindi ako pupunta sa anumang mga detalye tungkol dito. Kung nais mong tingnan ito at maglaro dito, ang link sa aking git repository ay ibibigay sa dulo ng dokumentong ito. Ang software na kinakalkula ang solusyon ay tumatakbo sa isang windows machine at isinulat ng isang kasamahan ko, muli ang mga link sa kanyang source code ay matatagpuan sa pagtatapos ng ible na ito. Ang dalawang bahagi ay nakikipag-usap gamit ang isang simpleng serial interface. Kinakalkula nito ang solusyon batay sa dalawang phase algorithm ng Kociemba. Ang paglutas ng software ay nagpapadala ng isang utos na binubuo ng dalawang bytes sa solver at hinihintay ang pagbabalik nito ng isang 'ACK'. Sa ganitong paraan ang solver ay maaaring masubukan at ma-debug gamit ang isang simpleng serial monitor. Ang kumpletong hanay ng pagtuturo ay matatagpuan sa ibaba.

Larawan
Larawan

Ang mga utos na i-on ang bawat motor para sa isang hakbang ay isang solusyon para sa isang problema kung saan ang ilan sa mga steppers ay random na magsasagawa ng maliliit na paglukso sa lakas. Upang mabayaran ito, ang mga motor ay maaaring maiakma sa kanilang paunang posisyon bago ang proseso ng paglutas.

Hakbang 7: Konklusyon

Matapos ang walong buwan ng pagbuo, ang pagmumura, pagpindot sa keyboard at pagsayaw ng Q-bot ay sa wakas sa isang punto kung saan matagumpay na nalutas ang unang Rubik's Cube. Ang pag-agawan ng kubo ay kailangang maipasok nang manu-mano sa control software, ngunit ang lahat ay gumana nang maayos.

Nagdagdag ako ng isang mount para sa isang webcam pagkaraan ng ilang linggo at inayos ng aking kolehiyo ang software na awtomatikong basahin ang kubo mula sa mga larawang kinunan. Gayunpaman, hindi pa ito nasusubukan nang maayos at kailangan pa rin ng ilang mga pagpapabuti.

Larawan
Larawan

Kung ang itinuturo na ito ay pumukaw sa iyong interes huwag mag-atubiling at simulang buuin ang iyong sariling bersyon ng Q-bot. Maaaring mukhang nakakatakot ito sa una, ngunit napakahalaga ng pagsisikap at kung magagawa ko ito kaya mo rin.

Mga mapagkukunan:

Source Code ng Firmware:

github.com/Axodarap/QBot_firmware

Source Code ng control software

github.com/waldhube16/Qbot_SW

Inirerekumendang: