Spisu treści:

Q-Bot - Open Source Rubik's Cube Solver: 7 kroków (ze zdjęciami)
Q-Bot - Open Source Rubik's Cube Solver: 7 kroków (ze zdjęciami)

Wideo: Q-Bot - Open Source Rubik's Cube Solver: 7 kroków (ze zdjęciami)

Wideo: Q-Bot - Open Source Rubik's Cube Solver: 7 kroków (ze zdjęciami)
Wideo: Rubik’s cube robot is FAST 2024, Grudzień
Anonim
Image
Image
Obraz
Obraz

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.

Obraz
Obraz

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:

Obraz
Obraz
Obraz
Obraz

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.

Obraz
Obraz

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.

Obraz
Obraz

Przyspieszenie w tym przypadku jest przyspieszeniem grawitacyjnym. Tak więc wymagany moment obrotowy jest podany przez

Obraz
Obraz

Włożenie wszystkich wartości, w tym połowy przekątnej kostki Rubika, ostatecznie ujawnia wymagany moment obrotowy.

Obraz
Obraz

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.

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

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ę.

Obraz
Obraz
Obraz
Obraz

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.

Obraz
Obraz
Obraz
Obraz

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.

Obraz
Obraz

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ń.

Obraz
Obraz

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: