Obsah:
- Krok 1: Návrh hardvéru
- Krok 2: Výber správnych motorov
- Krok 3: Konštrukcia základne
- Krok 4: Zostavenie hardvéru
- Krok 5: Elektronika
- Krok 6: Softvér a sériové rozhranie
- Krok 7: Záver
Video: Q -Bot - riešenie Rubikovej kocky s otvoreným zdrojovým kódom: 7 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
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.
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:
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.
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.
Zrýchlenie je v tomto prípade gravitačné zrýchlenie. Požadovaný krútiaci moment je teda daný hodnotou
Zapojenie všetkých hodnôt, vrátane polovice uhlopriečky Rubikovej kocky, konečne odhalí požadovaný krútiaci moment.
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.
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.
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.
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.
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.
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:
Riešiteľ so zaviazanými očami v reálnom čase Rubikovej kocky pomocou Raspberry Pi a OpenCV: 4 kroky
Riešiteľ Rubikovej kocky so zaviazanými očami v reálnom čase pomocou Raspberry Pi a OpenCV: Toto je druhá verzia nástroja Rubikova kocka vytvoreného na riešenie so zaviazanými očami. Prvú verziu vyvinul JavaScript, môžete si pozrieť projekt RubiksCubeBlindfolded1Na rozdiel od predchádzajúcej verzie táto verzia používa na detekciu farieb knižnicu OpenCV a
K -Ability V2 - prístupná klávesnica s otvoreným zdrojovým kódom pre dotykové obrazovky: 6 krokov (s obrázkami)
K-Ability V2-prístupná klávesnica s otvoreným zdrojovým kódom pre dotykové obrazovky: Tento prototyp je druhou verziou K-Ability. K-Ability je fyzická klávesnica, ktorá umožňuje používanie zariadení s dotykovým displejom osobám s patológiami, ktoré vedú k neuromuskulárnym poruchám. Existuje mnoho pomôcok. ktoré uľahčujú používanie výpočtovej
Ovládač vírivky s otvoreným zdrojovým kódom: 6 krokov
Open Source Hot Tub Controller: Našiel som použitú vírivku online, je to pár rokov stará a rozhodol som sa, že z toho môžem urobiť skvelý projekt. Vstavané ovládače boli už otravné a časovo náročné, takže som mal ďalší dôvod pohrávať si s nimi. Aby sme ušetrili energiu
Kontrola verzií hardvéru s otvoreným zdrojovým kódom: 10 krokov
Kontrola verzií pre hardvér s otvoreným zdrojovým kódom: Tím v spoločnosti Brainbow má pod pásmi niekoľko projektov v oblasti elektroniky a chceli sme sa podeliť o náš postup používania správy verzií na správu pracovného postupu pri navrhovaní elektroniky. Tento pracovný postup bol použitý pre veľké i malé projekty, od jednoduchých
Sklo Arduino - náhlavná súprava s rozšírenou realitou s otvoreným zdrojovým kódom: 9 krokov (s obrázkami)
Sklo Arduino - náhlavná súprava s rozšírenou realitou s otvoreným zdrojom: Uvažovali ste niekedy o kúpe náhlavnej súpravy s rozšírenou realitou? Tiež ste boli ohromení možnosťou rozšírenej reality a so zlomeným srdcom ste sa pozreli na cenovku? Áno, aj ja! Ale to ma tam nezastavilo. Pozbieral som odvahu a namiesto toho