Kazalo:

Q -Bot - odprtokodni reševalec Rubikove kocke: 7 korakov (s slikami)
Q -Bot - odprtokodni reševalec Rubikove kocke: 7 korakov (s slikami)

Video: Q -Bot - odprtokodni reševalec Rubikove kocke: 7 korakov (s slikami)

Video: Q -Bot - odprtokodni reševalec Rubikove kocke: 7 korakov (s slikami)
Video: More LEGO kocke 2024, November
Anonim
Image
Image
Slika
Slika

Predstavljajte si, da imate umešano Rubikovo kocko, saj poznate tisto uganko iz 80. let, ki jo imajo vsi, vendar nihče v resnici ne ve, kako jo rešiti, in jo želite vrniti v prvotni vzorec. Na srečo je danes zelo enostavno najti navodila za reševanje. Torej, pojdite na splet in si oglejte videoposnetek, kako se obrniti, da vam prinese veselje. Ko boste to naredili nekajkrat, boste ugotovili, da nekaj manjka. V notranjosti je luknja, ki je ni mogoče zapolniti. Inženirji/izdelovalec/heker v vas preprosto ne morejo biti zadovoljni z reševanjem nečesa tako neverjetnega na tako preprost način. Ali ne bi bilo veliko bolj poetično, če bi imeli stroj, ki bi vse rešil namesto vas? Če bi nekaj zgradili, bi bili vsi vaši prijatelji navdušeni? Zagotavljam vam, da ne bo veliko bolje, kot če opazujete, kako vaše ustvarjanje dela čudeže in rešuje Rubikovo kocko. Pridite in se mi pridružite na čudovitem potovanju pri izgradnji Q-Bota, odprtokodnega Rubikovega kockarskega reševalca, ki zagotovo ne bo premagal nobenega svetovnega rekorda, ampak vam bo prinesel ure veselja (potem ko boste seveda preživeli vse frustracije med gradnjo).

1. korak: Oblikovanje strojne opreme

Celoten reševalec je bil zasnovan s CAD -om v Catii. Tako bi lahko večino konstrukcijskih napak odkrili in odpravili pred izdelavo kakršnih koli fizičnih komponent. Večina reševalcev je bila 3D natisnjena v PLA s tiskalnikom prusa MK3. Poleg tega je bila uporabljena naslednja strojna oprema:

  • 8 kosov 8 mm aluminijaste palice (dolžina 10 cm)
  • 8 linearnih krogličnih ležajev (LM8UU)
  • nekaj manj kot 2 m zobatega jermena GT2 6 mm + nekaj jermenic
  • 6 bipolarnih koračnih motorjev NEMA 17
  • 6 gonilnikov korakov Polulu 4988
  • Arudino Mega kot kontrolor projekta
  • 12 V 3A napajalnik
  • pretvornik za zniževanje za varno napajanje arduina
  • nekaj vijakov in priključkov
  • nekaj vezanega lesa za podlago

Opis strojne opreme

Ta razdelek na kratko zajema delovanje Q-Bota in kje se uporabljajo zgoraj navedene komponente. Spodaj si lahko ogledate upodobitev popolnoma sestavljenega CAD modela.

Q-bot deluje tako, da ima štiri motorje, pritrjene neposredno na Rubikovo kocko s 3D natisnjenimi prijemali. To pomeni, da se lahko levo, desno, spredaj in zadaj obrača neposredno. Če je treba obrniti zgornjo ali spodnjo stran, je treba obrniti celotno kocko in tako odmakniti dva motorja. To naredite tako, da vsakega od prijemalnih motorjev pritrdite na sani, ki jih poganja drug koračni motor in zobati jermen vzdolž linearnega tirnega sistema. Tirni sistem je sestavljen iz dveh 8 krogličnih ležajev, ki sta vgrajeni v votline v sani, in celotne sani se vozijo na dveh 8 mm aluminijastih gredih. Spodaj lahko vidite podsklop ene osi reševalca.

Osi x in y sta si v bistvu enaki, razlikujeta se le po višini pritrdilne točke jermena, to je tako, da med polnjima trakoma ni trkov.

Slika
Slika

2. korak: Izbira pravih motorjev

Seveda je pri tem zelo pomembna izbira ustreznih motorjev. Glavni del je, da morajo biti dovolj močni, da lahko obrnejo Rubikovo kocko. Edina težava tukaj je, da noben proizvajalec Rubikovih kock ne da ocene navora. Zato sem moral improvizirati in narediti svoje meritve.

Na splošno je navor določen s silo, usmerjeno pravokotno na položaj rotacijske točke na razdalji r:

Slika
Slika
Slika
Slika

Če bi torej lahko nekako izmeril silo, ki deluje na kocko, bi lahko izračunal navor. Kar sem tudi storil. Kocko sem pritrdila na polico tako, da se je lahko premaknila le ena stran. Da se je okoli kocke privezala vrvica, na dnu pa pritrjena vrečka. Zdaj je ostalo le še počasi povečevati težo v vreči, dokler se kocka ni obrnila. Zaradi pomanjkanja natančnih uteži sem uporabil krompir in ga nato izmeril. Ni najbolj znanstvena metoda, ampak ker ne poskušam najti najmanjšega navora, je povsem dovolj.

Slika
Slika

Meritve sem naredil trikrat in izmeril najvišjo vrednost samo zato, da sem varen. Dobljena teža je bila 0,52 kg. Zdaj zaradi sira Isaaca Newtona vemo, da je sila enaka masnim časom pospeška.

Slika
Slika

Pospešek je v tem primeru gravitacijski pospešek. Potreben navor je torej podan z

Slika
Slika

Vključitev vseh vrednosti, vključno s polovico diagonale Rubikove kocke, končno razkrije potreben navor.

Slika
Slika

Šel sem s koračnimi motorji, ki lahko uporabljajo do 0,4 Nm, kar je verjetno preveč, vendar sem hotel biti varen.

3. korak: Konstrukcija baze

Podstavek je sestavljen iz zelo preproste lesene škatle in vsebuje vso potrebno elektroniko. Opremljen je z vtičem za vklop in izklop stroja, LED diodo, ki označuje, ali je vklopljen, vhodom USB B in vtičnico za napajanje. Izdelana je bila iz vezanega lesa 15 mm, nekaj vijakov in lepila.

Slika
Slika
Slika
Slika
Slika
Slika
Slika
Slika

4. korak: Sestavljanje strojne opreme

Zdaj je bil Q-bot z vsemi potrebnimi deli, vključno z bazo, pripravljen za sestavljanje. Deli po meri so bili 3D natisnjeni in po potrebi prilagojeni. Na koncu te številke lahko prenesete vse datoteke CAD. Montaža je vključevala pritrditev vseh 3D tiskanih delov na kupljene dele, podaljšanje kablov motorja in privijanje vseh delov na podlago. Poleg tega sem okoli kablov motorja položil rokave, da bi bil videti nekoliko bolj urejen, in na njihove konce dodal priključke JST.

Da bi poudarili pomen baze, ki sem jo zgradil, je tukaj posnetek pred in po tem, kako je izgledala montaža. Če vse skupaj malo popravite, lahko naredite veliko razliko.

Slika
Slika
Slika
Slika

5. korak: Elektronika

Kar zadeva elektroniko, je projekt precej preprost. Obstaja glavni 12V napajalnik, ki lahko odda do 3A toka, ki napaja motorje. Modul za zniževanje se uporablja za varno napajanje Arduina, zasnovan pa je tudi ščit po meri za Arduino, v katerem so nameščeni vsi gonilniki koračnih motorjev. Vozniki močno olajšajo upravljanje motorja. Vožnja koračnega motorja zahteva posebno zaporedje krmiljenja, vendar moramo z uporabo gonilnikov motorja ustvariti le visok impulz za vsak korak, ki ga mora motor obrniti. Poleg tega so ščitniku dodali nekaj priključkov jst za lažje povezovanje motorjev. Ščit za Arduino je bil trdno zgrajen na kosu perfboard -a, potem ko se je prepričal, da vse deluje tako, kot je bilo predvideno, ga je izdelal jlc pcb.

Tukaj je pred in po prototipu in izdelanem tiskanem vezju.

Slika
Slika
Slika
Slika

6. korak: Programska oprema in serijski vmesnik

Q-Bot je razdeljen na dva dela. Po eni strani je strojna oprema, ki jo nadzira Arduino, po drugi strani pa del programske opreme, ki izračuna pot reševanja za kocko na podlagi trenutnega šifriranja. Vdelano programsko opremo, ki se izvaja na Arduinu, sem napisal sam, vendar zato, da bi bil ta vodič kratek, tukaj ne bom šel v podrobnosti. Če si ga želite ogledati in se z njim poigrati, bo na koncu tega dokumenta na voljo povezava do mojega git skladišča. Programska oprema, ki izračuna rešitev, deluje na računalniku z operacijskim sistemom Windows in jo je napisal moj kolega. Na koncu te številke so spet povezave do njegove izvorne kode. Oba dela komunicirata s preprostim serijskim vmesnikom. Rešitev izračuna na podlagi dvofaznega algoritma Kociemba. Reševalna programska oprema pošlje ukaz, sestavljen iz dveh bajtov, reševalcu in počaka, da vrne "ACK". Na ta način lahko reševalca preizkusite in odpravite napake s preprostim serijskim monitorjem. Celoten nabor navodil najdete spodaj.

Slika
Slika

Ukazi za obračanje vsakega motorja za en korak so rešitev za težavo, pri kateri bi nekateri koračniki ob vklopu naključno izvedli majhne skoke. Da bi to kompenzirali, lahko motorje nastavite v začetni položaj pred postopkom reševanja.

7. korak: Zaključek

Po osmih mesecih razvoja, priseganja, udarjanja po tipkovnici in plesa Q-bot je bil končno na točki, ko je uspešno rešena njegova prva Rubikova kocka. Kockanje kocke je bilo treba ročno vstaviti v krmilno programsko opremo, vendar je vse delovalo dobro.

Nekaj tednov kasneje sem dodal nosilec za spletno kamero in moja šola je prilagodila programsko opremo za samodejno branje kocke iz posnetih slik. Vendar to še ni dobro preizkušeno in je še vedno treba izboljšati.

Slika
Slika

Če vam je ta pouk vzbudil zanimanje, ne oklevajte in začnite graditi svojo lastno različico Q-bota. Morda se na prvi pogled zdi zastrašujoče, vendar je vredno truda in če bi jaz to zmogel, lahko tudi vi.

Viri:

Izvorna koda vdelane programske opreme:

github.com/Axodarap/QBot_firmware

Izvorna koda programske opreme za nadzor

github.com/waldhube16/Qbot_SW

Priporočena: