Obsah:

Q -Bot - riešenie Rubikovej kocky s otvoreným zdrojovým kódom: 7 krokov (s obrázkami)
Q -Bot - riešenie Rubikovej kocky s otvoreným zdrojovým kódom: 7 krokov (s obrázkami)

Video: Q -Bot - riešenie Rubikovej kocky s otvoreným zdrojovým kódom: 7 krokov (s obrázkami)

Video: Q -Bot - riešenie Rubikovej kocky s otvoreným zdrojovým kódom: 7 krokov (s obrázkami)
Video: Solving the huge Rubik's Cube 15X15 in record time 2024, Júl
Anonim
Image
Image
Obrázok
Obrázok

Predstavte si, že máte miešanú Rubikovu kocku, viete, že puzzle z 80. rokov, ktoré má každý, ale nikto nevie, ako ho vyriešiť, a chcete ho vrátiť do pôvodného vzoru. Našťastie v dnešnej dobe je veľmi ľahké nájsť pokyny na riešenie. Skúste si teda pozrieť video a zistite, ako otočiť strany, aby vám prinášali radosť. Keď to urobíte niekoľkokrát, uvedomíte si, že niečo chýba. Vnútri diera, ktorú nemožno vyplniť. Inžinieri/tvorcovia/hackeri vo vašom vnútri sa jednoducho nemôžu uspokojiť s riešením niečoho tak úžasného takým jednoduchým spôsobom. Nebolo by to oveľa poetickejšie, keby ste mali stroj, ktorý vyriešil všetko za vás? Ak by ste postavili niečo, čím by boli vaši priatelia ohromení? Môžem vám zaručiť, že to nebude oveľa lepšie, ako sledovať, ako váš výtvor robí zázraky a rieši Rubikovu kocku. Poďte sa teda so mnou vydať na úžasnú cestu budovania Q-Bot, open source riešenia Rubik's Cube Solver, ktoré určite neprekoná žiadne svetové rekordy, ale prinesie vám hodiny radosti (po tom, ako si samozrejme prejdete všetkými frustráciami) počas procesu stavby).

Krok 1: Návrh hardvéru

Kompletné riešenie bolo navrhnuté s CAD v Catii. Týmto spôsobom bolo možné nájsť a opraviť väčšinu konštrukčných chýb pred výrobou akýchkoľvek fyzických komponentov. Väčšina riešiteľa bola 3D vytlačená v PLA pomocou tlačiarne prusa MK3. Okrem toho bol použitý nasledujúci hardvér:

  • 8 kusov hliníkovej tyče 8 mm (dĺžka 10 cm)
  • 8 lineárnych guľkových ložísk (LM8UU)
  • niečo menej ako 2 m rozvodového remeňa GT2 6 mm + niekoľko kladiek
  • 6 bipolárnych krokových motorov NEMA 17
  • 6 krokových ovládačov Polulu 4988
  • Arudino Mega ako kontrolór projektu
  • napájanie 12 V 3A
  • stupňovitý prevodník na bezpečné napájanie arduina
  • niekoľko skrutiek a konektorov
  • nejaká preglejka na základňu

Popis hardvéru

Táto časť stručne popisuje, ako Q-Bot dokonca funguje a kde sa používajú vyššie uvedené komponenty. Nasleduje zobrazenie kompletne zostaveného CAD modelu.

Q-bot funguje tak, že má štyri motory pripevnené priamo k Rubikovej kocke pomocou 3D tlačených chápadiel. To znamená, že vľavo, vpravo, vpredu a vzadu je možné otáčať priamo. Ak je potrebné otočiť hornú alebo dolnú stranu, musí byť otočená celá kocka, a preto sa musia vzdialiť dva motory. To sa vykonáva pripevnením každého z uchopovacích motorov na sane poháňané iným krokovým motorom a rozvodovým remeňom pozdĺž systému lineárnej koľajnice. Železničný systém sa skladá z dvoch 8 guľkových ložísk, ktoré sú namontované do dutín v saniach a celé sane jazdia na dvoch 8 mm hliníkových hriadeľoch. Nižšie vidíte podzostavu jednej osi riešiteľa.

Os x a os y sú v zásade identické, líšia sa iba výškou upevňovacieho bodu pásu, a to preto, aby pri úplnom zostavení nedochádzalo ku kolíziám medzi dvoma pásmi.

Obrázok
Obrázok

Krok 2: Výber správnych motorov

Samozrejme, výber správnych motorov je tu veľmi dôležitý. Hlavná časť je, že musia byť dostatočne silné, aby dokázali otočiť Rubikovu kocku. Jediným problémom je, že žiadny výrobca Rubikových kociek neudáva krútiaci moment. Musel som teda improvizovať a urobiť si vlastné meranie.

Krútiaci moment je spravidla definovaný silou smerujúcou kolmo na polohu bodu otáčania vo vzdialenosti r:

Obrázok
Obrázok
Obrázok
Obrázok

Ak by som teda mohol nejako zmerať silu pôsobiacu na kocku, mohol by som vypočítať krútiaci moment. Presne to som urobil. Svoju kocku som upol na poličku spôsobom, ktorým sa mohla pohybovať iba jedna strana. Okolo kocky sa uviazala šnúrka a v spodnej časti bola pripevnená taška. Teraz už len zostávalo pomaly zvyšovať hmotnosť vo vrecku, kým sa kocka neotočila. Pre nedostatok presných váh som použil zemiaky a potom som ich zmeral. Nie je to naj vedeckejšia metóda, ale pretože sa nesnažím nájsť minimálny krútiaci moment, je to celkom dostačujúce.

Obrázok
Obrázok

Meral som trikrát a vzal som najvyššiu hodnotu, aby som bol v bezpečí. Výsledná hmotnosť bola 0,52 kg. Vďaka Sirovi Isaacovi Newtonovi teraz vieme, že Sila sa rovná hmotnostnému zrýchleniu.

Obrázok
Obrázok

Zrýchlenie je v tomto prípade gravitačné zrýchlenie. Požadovaný krútiaci moment je teda daný hodnotou

Obrázok
Obrázok

Zapojenie všetkých hodnôt, vrátane polovice uhlopriečky Rubikovej kocky, konečne odhalí požadovaný krútiaci moment.

Obrázok
Obrázok

Išiel som s krokovými motormi, ktoré sú schopné vyvinúť až 0,4 Nm, čo je pravdepodobne prehnané, ale chcel som byť v bezpečí.

Krok 3: Konštrukcia základne

Základňa pozostáva z veľmi jednoduchej drevenej škatule a je v nej uložená všetka požadovaná elektronika. Je vybavený zástrčkou na zapínanie a vypínanie zariadenia, LED diódou indikujúcou, či je zapnutá, portom USB B a zásuvkou na pripojenie napájacieho zdroja. Bola skonštruovaná z 15 mm preglejky, niekoľkých skrutiek a trochu lepidla.

Obrázok
Obrázok
Obrázok
Obrázok
Obrázok
Obrázok
Obrázok
Obrázok

Krok 4: Zostavenie hardvéru

Teraz so všetkými požadovanými časťami vrátane základne bol Q-bot pripravený na montáž. Vlastné diely boli vytlačené 3D a podľa potreby upravené. Na konci tejto príručky si môžete stiahnuť všetky súbory CAD. Zostava obsahovala montáž všetkých 3D tlačených dielov na zakúpené diely, predĺženie káblov motora a priskrutkovanie všetkých dielov k základni. Okrem toho som navliekol objímky okolo káblov motora, aby to vyzeralo trochu upravenejšie, a na ich konce som pridal konektory JST.

Aby som zdôraznil dôležitosť základne, ktorú som postavil, tu je záber pred a po, ako vyzerala zostava. Trochu upratanie všetkého môže znamenať obrovský rozdiel.

Obrázok
Obrázok
Obrázok
Obrázok

Krok 5: Elektronika

Pokiaľ ide o elektroniku, projekt je pomerne jednoduchý. K dispozícii je hlavný napájací zdroj 12V, ktorý dokáže dodať prúd až 3A, ktorý napája motory. Na bezpečné napájanie Arduina sa používa zostupný modul a bol navrhnutý vlastný štít pre Arduino, ktorý obsahuje všetky ovládače krokových motorov. Ovládače výrazne uľahčujú ovládanie motorov. Riadenie krokového motora vyžaduje špecifickú sekvenciu ovládania, ale pomocou ovládačov motora potrebujeme iba generovať vysoký impulz pre každý krok, ktorým sa motor otočí. Okrem toho boli na štít pridané niektoré jst konektory, aby sa uľahčilo pripojenie motorov. Štít pre Arduino bol pevne postavený na kuse perfboardu a po uistení sa, že všetko funguje tak, ako malo, bol vyrobený spoločnosťou jlc pcb.

Tu je pred a po prototype a vyrobenej doske.

Obrázok
Obrázok
Obrázok
Obrázok

Krok 6: Softvér a sériové rozhranie

Q-Bot je rozdelený na dve časti. Na jednej strane je hardvér, ktorý ovláda Arduino, na strane druhej je softvér, ktorý vypočítava cestu riešenia pre kocku na základe aktuálneho súboja. Firmvér bežiaci na Arduine som napísal sám, ale aby som nebol tento sprievodca krátky, nebudem sa tu o ňom rozpisovať. Ak sa na to chcete pozrieť a pohrať sa s tým, odkaz na moje úložisko git bude uvedený na konci tohto dokumentu. Softvér, ktorý vypočítava riešenie, beží na počítači so systémom Windows a napísal ho môj kolega, odkazy na jeho zdrojový kód nájdete opäť na konci tohto textu. Tieto dve časti komunikujú pomocou jednoduchého sériového rozhrania. Vypočíta riešenie na základe dvojfázového algoritmu Kociemba. Riešiaci softvér odošle riešiteľovi príkaz pozostávajúci z dvoch bytov a čaká, kým vráti „ACK“. Týmto spôsobom môže byť riešiteľ testovaný a ladený pomocou jednoduchého sériového monitora. Kompletnú sadu inštrukcií nájdete nižšie.

Obrázok
Obrázok

Príkazy na otočenie každého motora o jeden krok sú riešením problému, pri ktorom by niektoré zo stepperov po zapnutí náhodne vykonali malé skoky. Aby sa to vykompenzovalo, môžu byť motory pred procesom riešenia nastavené do svojej počiatočnej polohy.

Krok 7: Záver

Po ôsmich mesiacoch vývoja, nadávok, úderov na klávesnicu a tanca bol Q-bot konečne v bode, kde je úspešne vyriešená jeho prvá Rubikova kocka. Miešanie kocky bolo treba ručne vložiť do riadiaceho softvéru, ale všetko fungovalo dobre.

O niekoľko týždňov neskôr som pridal držiak na webovú kameru a moja vysoká škola upravila softvér tak, aby automaticky čítal kocku z nasnímaných obrázkov. Toto však ešte nie je dobre otestované a stále potrebuje určité vylepšenia.

Obrázok
Obrázok

Ak tento návod vyvolal váš záujem, neváhajte a začnite stavať svoju vlastnú verziu Q-robota. Na prvý pohľad sa to môže zdať skľučujúce, ale stojí to za to úsilie a ak to dokážem ja, dokážete to aj vy.

Zdroje:

Zdrojový kód firmvéru:

github.com/Axodarap/QBot_firmware

Zdrojový kód riadiaceho softvéru

github.com/waldhube16/Qbot_SW

Odporúča: