Spisu treści:
- Krok 1: Projektowanie sprzętu
- Krok 2: Wybór odpowiednich silników
- Krok 3: Budowa bazy
- Krok 4: Montaż sprzętu
- Krok 5: Elektronika
- Krok 6: Oprogramowanie i interfejs szeregowy
- Krok 7: Wniosek
Wideo: Q-Bot - Open Source Rubik's Cube Solver: 7 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
Wyobraź sobie, że masz zaszyfrowaną kostkę Rubika, znasz tę zagadkę z lat 80., którą mają wszyscy, ale nikt tak naprawdę nie wie, jak ją rozwiązać, i chcesz przywrócić jej pierwotny wzór. Na szczęście w dzisiejszych czasach bardzo łatwo jest znaleźć instrukcje rozwiązywania problemów. Więc przejdź do trybu online, obejrzyj film, na którym nauczysz się odwracać strony, aby sprawić Ci radość. Jednak po kilkukrotnym wykonaniu zdasz sobie sprawę, że czegoś brakuje. Wewnątrz dziura, której nie można wypełnić. Inżynierowie/twórca/haker w tobie po prostu nie mogą być usatysfakcjonowani rozwiązaniem czegoś tak niesamowitego w tak prosty sposób. Czy nie byłoby o wiele bardziej poetyckie, gdybyś miał maszynę, która robiła wszystko za ciebie? Gdybyś coś zbudował, wszyscy twoi przyjaciele byliby zdumieni? Gwarantuję Ci, że nie ma nic lepszego niż oglądanie, jak Twoje dzieło czyni cuda i rozwiązuje kostkę Rubika. Więc przyjdź i dołącz do mnie w cudownej podróży budowania Q-Bot, open source'owego Solvera Kostki Rubika, który z pewnością nie pobije żadnych światowych rekordów, ale da Ci godziny radości (oczywiście po przejściu wszystkich frustracji w trakcie budowy).
Krok 1: Projektowanie sprzętu
Kompletny solwer został zaprojektowany w programie CAD w Catia. W ten sposób większość błędów projektowych można było znaleźć i skorygować przed wyprodukowaniem jakichkolwiek elementów fizycznych. Większość solvera została wydrukowana w 3D w PLA przy użyciu drukarki Prusa MK3. Dodatkowo zastosowano następujący sprzęt:
- 8 sztuk pręta aluminiowego 8 mm (długość 10 cm)
- 8 liniowych łożysk kulkowych (LM8UU)
- niecałe 2 m paska rozrządu GT2 6mm + kilka kół pasowych
- 6 bipolarnych silników krokowych NEMA 17
- 6 sterowników krokowych Polulu 4988
- Arudino Mega jako kontroler projektu
- zasilacz 12 V 3 A
- konwerter obniżający napięcie do bezpiecznego zasilania arduino
- trochę śrub i złączy
- trochę sklejki na podstawę
Opis sprzętu
Ta sekcja pokrótce opisuje, jak działa Q-Bot i gdzie są używane wyżej wymienione komponenty. Poniżej możesz zobaczyć rendering w pełni zmontowanego modelu CAD.
Q-bot działa dzięki czterem silnikom podłączonym bezpośrednio do kostki Rubika za pomocą chwytaków wydrukowanych w 3D. Oznacza to, że można bezpośrednio obracać w lewo, prawo, przód i tył. Jeśli trzeba obrócić górną lub dolną stronę, należy obrócić całą kostkę, a więc dwa silniki muszą zostać odsunięte. Odbywa się to poprzez przymocowanie każdego z silników chwytających do sań napędzanych przez inny silnik krokowy i pasek rozrządu wzdłuż liniowego systemu szynowego. System szyn składa się z dwóch 8 łożysk kulkowych, które są zamontowane w zagłębieniach sanek, a cały sanek porusza się na dwóch aluminiowych wałkach o średnicy 8 mm. Poniżej możesz zobaczyć podzespół jednej osi solwera.
Oś x i y są zasadniczo identyczne, różnią się jedynie wysokością punktu mocowania paska, dzięki czemu nie dochodzi do kolizji między dwoma paskami po całkowitym zmontowaniu.
Krok 2: Wybór odpowiednich silników
Oczywiście dobór odpowiednich silników jest tutaj bardzo ważny. Najważniejsze jest to, że muszą być wystarczająco mocne, aby móc obrócić kostkę Rubika. Jedynym problemem jest to, że żaden producent kostek Rubika nie podaje wartości momentu obrotowego. Musiałem więc improwizować i robić własne pomiary.
Generalnie moment obrotowy określa siła skierowana prostopadle do położenia punktu obrotowego w odległości r:
Tak więc, gdybym mógł jakoś zmierzyć siłę przyłożoną do sześcianu, mógłbym obliczyć moment obrotowy. I dokładnie to zrobiłem. Przymocowałem swoją kostkę do półki w taki sposób, że tylko jedna strona mogła się poruszać. Że wokół kostki zawiązano sznurek, a na dole przyczepiono torbę. Teraz pozostało tylko powoli zwiększać wagę w torbie, aż kostka się obróciła. Z braku dokładnych wag użyłem ziemniaków i zmierzyłem je później. Nie jest to najbardziej naukowa metoda, ale ponieważ nie staram się znaleźć minimalnego momentu obrotowego, jest całkiem wystarczająca.
Zrobiłem pomiary trzy razy i dla bezpieczeństwa przyjąłem najwyższą wartość. Otrzymana waga wynosiła 0,52 kg. Teraz dzięki Sir Isaacowi Newtonowi wiemy, że Siła równa się masa razy przyspieszenie.
Przyspieszenie w tym przypadku jest przyspieszeniem grawitacyjnym. Tak więc wymagany moment obrotowy jest podany przez
Włożenie wszystkich wartości, w tym połowy przekątnej kostki Rubika, ostatecznie ujawnia wymagany moment obrotowy.
Poszedłem z silnikami krokowymi, które są w stanie przyłożyć do 0,4 Nm, co prawdopodobnie jest przesadą, ale chciałem być bezpieczny.
Krok 3: Budowa bazy
Podstawa składa się z bardzo prostego drewnianego pudełka i mieści całą niezbędną elektronikę. Posiada wtyczkę do włączania i wyłączania maszyny, diodę LED wskazującą, czy jest włączona, port USB B i gniazdo do podłączenia zasilania. Została wykonana z 15mm sklejki, kilku śrub i odrobiny kleju.
Krok 4: Montaż sprzętu
Teraz ze wszystkimi wymaganymi częściami, w tym podstawą, Q-bot był gotowy do montażu. Niestandardowe części zostały wydrukowane w 3D i dostosowane w razie potrzeby. Możesz pobrać wszystkie pliki CAD na końcu tej ilustracji. Montaż obejmował spasowanie wszystkich części wydrukowanych w 3D z zakupionymi częściami, przedłużenie kabli silnika i przykręcenie wszystkich części do podstawy. Dodatkowo założyłem tulejki na kable silnika, żeby wyglądały trochę schludniej, a na ich końcach dodałem złącza JST.
Aby podkreślić znaczenie zbudowanej przeze mnie bazy, oto ujęcie przed i po tym, jak wyglądał zespół. Uporządkowanie wszystkiego może zrobić ogromną różnicę.
Krok 5: Elektronika
Jak na elektronikę projekt jest dość prosty. Istnieje główny zasilacz 12V, który może dostarczyć do 3A prądu, który zasila silniki. Moduł obniżający napięcie służy do bezpiecznego zasilania Arduino, a niestandardowa osłona dla Arduino została zaprojektowana, w której znajdują się wszystkie sterowniki silników krokowych. Sterowniki znacznie ułatwiają sterowanie silnikami. Sterowanie silnikiem krokowym wymaga określonej sekwencji sterującej, ale przy użyciu sterowników silników wystarczy generować wysoki impuls dla każdego kroku, który silnik ma obrócić. Dodatkowo do ekranu dodano kilka złączy jst, aby ułatwić podłączenie silników. Nakładka dla Arduino została najpierw zbudowana na kawałku płyty perforowanej i po upewnieniu się, że wszystko działa jak należy, została wyprodukowana przez jlc pcb.
Oto przed i po prototypie i wyprodukowanej płytce drukowanej.
Krok 6: Oprogramowanie i interfejs szeregowy
Q-Bot jest podzielony na dwie części. Z jednej strony mamy do czynienia ze sprzętem sterowanym przez Arduino, z drugiej strony jest oprogramowanie, które oblicza ścieżkę rozwiązywania kostki na podstawie aktualnego zaszyfrowania. Firmware działający na Arduino został napisany przeze mnie, ale aby ten przewodnik był krótki, nie będę tu wchodzić w szczegóły. Jeśli chcesz się z nim zapoznać i pobawić się nim, link do mojego repozytorium git zostanie podany na końcu tego dokumentu. Oprogramowanie obliczające rozwiązanie działa na komputerze z systemem Windows i zostało napisane przez mojego kolegę, ponownie linki do jego kodu źródłowego można znaleźć na końcu tej ilustracji. Dwie części komunikują się za pomocą prostego interfejsu szeregowego. Oblicza rozwiązanie w oparciu o dwufazowy algorytm Kociemby. Oprogramowanie rozwiązujące wysyła do solvera polecenie składające się z dwóch bajtów i czeka, aż zwróci „ACK”. W ten sposób solver może być testowany i debugowany za pomocą prostego monitora szeregowego. Kompletny zestaw instrukcji znajduje się poniżej.
Polecenia, aby obrócić każdy silnik o jeden krok, są obejściem problemu, w którym niektóre silniki krokowe wykonują losowo małe skoki po włączeniu zasilania. Aby to zrekompensować, silniki można ustawić w ich początkowej pozycji przed procesem rozwiązywania.
Krok 7: Wniosek
Po ośmiu miesiącach rozwijania, przeklinania, uderzania w klawisze i tańczenia Q-bot wreszcie znalazł się w punkcie, w którym pomyślnie rozwiązał swoją pierwszą kostkę Rubika. Wymieszanie kostki trzeba było włożyć ręcznie do oprogramowania sterującego, ale wszystko działało dobrze.
Kilka tygodni później dodałem uchwyt do kamery internetowej, a moja uczelnia dostosowała oprogramowanie, aby automatycznie odczytywać kostkę z wykonanych zdjęć. Jednak nie jest to jeszcze dobrze przetestowane i nadal wymaga pewnych ulepszeń.
Jeśli ta instrukcja wzbudziła Twoje zainteresowanie, nie wahaj się i zacznij budować własną wersję Q-bota. Na początku może się to wydawać zniechęcające, ale jest to bardzo warte wysiłku i jeśli ja mógłbym to zrobić, możesz to zrobić.
Zasoby:
Kod źródłowy oprogramowania układowego:
github.com/Axodarap/QBot_firmware
Kod źródłowy oprogramowania sterującego
github.com/waldhube16/Qbot_SW
Zalecana:
Zrób EASY Infinity Mirror Cube - BEZ drukowania 3D i BEZ programowania: 15 kroków (ze zdjęciami)
Zrób EASY Infinity Mirror Cube | BEZ drukowania 3D i BEZ programowania: Każdy lubi dobrą kostkę nieskończoności, ale wygląda na to, że trudno byłoby ją wykonać. Moim celem dla tego Instructable jest pokazanie ci krok po kroku, jak go wykonać. Nie tylko to, ale dzięki instrukcjom, które ci daję, będziesz mógł zrobić jeden
Magic Cube lub Micro-Controller Cube: 7 kroków (ze zdjęciami)
Magic Cube lub Micro-controller Cube: W tej instrukcji pokażę ci, jak zrobić Magic Cube z wadliwego mikrokontrolera. Ten pomysł pochodzi z tego, kiedy wziąłem wadliwy mikrokontroler ATmega2560 z Arduino Mega 2560 i zrobiłem kostkę . O sprzęcie Magic Cube zrobiłem jako
Zakamuflowany Liberator Power-Source: 8 kroków (ze zdjęciami)
Camoufled Power-Source Liberator: Proste rozwiązanie do zasilania niskonapięciowych urządzeń DC w miejscach publicznych. Kiedy to podłączysz, jedna z wtyczek zasila gniazdko w skrzynce połączeniowej wabika, a druga wtyczka zapewnia ciągłe źródło zasilania dla niskonapięciowego urządzenia prądu stałego. Ta
ARS - Arduino Rubik Solver: 13 kroków (ze zdjęciami)
ARS - Arduino Rubik Solver: ARS to kompletny system do rozwiązywania kostki Rubika: tak, kolejny robot do rozwiązywania kostki! ARS to trzyletni projekt szkolny wykonany z części drukowanych 3D i wycinanych laserowo struktur: Arduino otrzymuje poprawną wygenerowaną sekwencję przez domową kanapę
Apple G4 Cube Case Mod Rubik Style Hackintosh: 15 kroków (ze zdjęciami)
Apple G4 Cube Case Mod Rubik Style Hackintosh: Oryginalna kostka G4 zawierała procesor PowerPC 450 MHz i maksymalnie 1,5 GB pamięci RAM. Apple wyprodukował kostkę G4 od 2000 do 2001 roku w cenie około 1600 USD. Działał od Mac OS 9.04 do OS X 10.4 (PowerPC, nie Intel). Ma około 7,5 x 7,5 x 10 cali, wi