Spisu treści:

BricKuber Project – robot rozwiązujący kostkę Rubiksa Raspberry Pi: 5 kroków (ze zdjęciami)
BricKuber Project – robot rozwiązujący kostkę Rubiksa Raspberry Pi: 5 kroków (ze zdjęciami)

Wideo: BricKuber Project – robot rozwiązujący kostkę Rubiksa Raspberry Pi: 5 kroków (ze zdjęciami)

Wideo: BricKuber Project – robot rozwiązujący kostkę Rubiksa Raspberry Pi: 5 kroków (ze zdjęciami)
Wideo: MINDCUB3R EV3 2024, Listopad
Anonim
Image
Image

BricKuber może ułożyć kostkę Rubika w mniej niż 2 minuty.

BricKuber to robot do rozwiązywania kostek Rubika o otwartym kodzie źródłowym, który możesz zbudować sam

Chcieliśmy zbudować robota do rozwiązywania kostek Rubiksa z Raspberry Pi. Zamiast dążyć do szybkości, poszliśmy z prostotą: jeśli masz Raspberry Pi, zestaw BrickPi i standardowy zestaw LEGO Mindstorms EV3 lub NXT, powinieneś być w stanie łatwo podążać naszymi śladami. Oprogramowanie napisane jest w języku programowania Python. Możesz zobaczyć cały kod źródłowy na Github tutaj.

Tło Kostka Rubika ostatnio zaczęła powracać. Wynaleziona w 1974 roku jest najlepiej sprzedającą się zabawką na świecie. Ale rozwiązanie ich wymaga przemyślenia, wysiłku i umiejętności… więc dlaczego nie pozwolić robotowi tego zrobić? W tym projekcie bierzemy Raspberry Pi, BrickPi i zestaw LEGO Mindstorms i budujemy robota rozwiązującego kostkę Rubika. Po prostu umieść nierozwiązaną kostkę Rubika w solverze, uruchom program Python, a Twoja kostka Rubika zostanie rozwiązana! Projekt wykorzystuje Pi do bezpośredniego rozwiązania kostki Rubika. BrickPi3 pobiera nierozwiązaną kostkę Rubika, a Raspberry Pi robi zdjęcie każdej strony kostki Rubika za pomocą kamery Raspberry Pi. Pi tworzy mapę tekstową kolorowych kwadratów, która pokazuje, gdzie się znajdują na sześcianie. Kiedy w pełni zmapuje kostkę, Pi używa biblioteki pytona „kociemba” do mapowania ruchów potrzebnych do rozwiązania kostki Rubika. Te informacje są pobierane przez Pi i BrickPi3, aby ułożyć kostkę Rubika za pomocą silników LEGO. Wynik: ułożona kostka Rubika.

Krok 1: Narzędzia i materiały

Zbuduj to
Zbuduj to
  • BrickPi3 - użyjemy BrickPi do sterowania silnikami LEGO, które rozwiązują kostkę Rubika.
  • Raspberry Pi – Pi będzie przetwarzał, robił zdjęcia i dowodził BrickPi.
  • Raspberry Pi Camera – Kamera Pi zrobi zdjęcie nierozwiązanej kostki Rubiksa.
  • Kabel Ethernet - będziesz potrzebować połączenia urządzenia z Internetem. Jeśli chcesz to zrobić przez Wi-Fi, to też w porządku!
  • Raspbian for Robots SD Card – Oprogramowanie obsługujące Raspberry Pi. Zawiera większość oprogramowania potrzebnego do tego samouczka. Oprogramowanie można również pobrać bezpłatnie.
  • Zestaw LEGO Mindstorms EV3 (31313) - będziesz potrzebować stosu klocków LEGO i dwóch dużych silników, jednego serwomotoru oraz czujnika ultradźwiękowego.
  • Kostka Rubika – Znaleźliśmy taką, która kręci się tutaj dość swobodnie. Możesz jednak użyć prawie każdej kostki Rubika 9x9x9.

Krok 2: Zbuduj to

Zbuduj to
Zbuduj to
Zbuduj to
Zbuduj to

Budowanie Solvera

Ten projekt został zainspirowany projektem MindCub3r dla LEGO EV3. Aby zbudować BricKubera, zacznij od zbudowania MindCub3r. Pełne instrukcje budowania LEGO można znaleźć tutaj.

Projekt rozwiązywania kostek Rubiksa składa się z trzech głównych ruchomych części. Pierwsza to kołyska do przechowywania kostki Rubika. Drugi to tasownik, ramię, które służy do odwracania kostki Rubika.

Na koniec dodajemy ramię aparatu. W oryginalnym projekcie MindCubr trzymał czujnik koloru EV3 nad kostką Rubika. W naszym zmodyfikowanym projekcie posiada kamerę Raspberry Pi nad kostką Rubika. Do manipulowania sześcianem używamy dwóch silników LEGO Mindstorms: pierwszy znajduje się pod kołyską, aby obrócić sześcian, a drugi porusza ramieniem przesuwającym, aby obrócić sześcian na przeciwnej osi.

Złóż BrickPi3

Tutaj znajdziesz instrukcję montażu BrickPi3. Będziemy musieli złożyć obudowę, podłączyć BrickPi3, Raspberry Pi, kamerę Raspberry Pi, dodać kartę SD i dodać baterie. Aby ułatwić konfigurację oprogramowania, Raspbian for Robots jest dostarczany z większością oprogramowania, które trzeba już skonfigurować. Będziesz potrzebować co najmniej karty SD o pojemności 8 GB i będziesz chciał rozszerzyć dysk, aby pasował do pełnego rozmiaru karty SD.

Podłącz BrickPi3

Do zestawu LEGO dodajemy BrickPi3. Użyliśmy „skrzydeł” LEGO EV3 do podparcia BrickPi3 i wyrównania go z korpusem BrickKuber. To dobry krok, aby dodać baterie 8XAA do zasilacza i podłączyć zasilacz BrickPi3 do zestawu LEGO. Do programowania można zasilać BrickPi3 przez USB z Raspberry Pi, jednak do poruszania silnikami potrzebne będzie zasilanie z Power Packa.

Podłącz silniki do BrickPi3

Podłącz silnik do tasowania do portu silnika „MD”. Podłącz silnik kołyski do portu „MA” w BrickPi3. Podłącz silnik czujnika kamery do portu „MC” (jest to mniejszy silnik podobny do serwo). Nawet jeśli nie będziemy przesuwać kamery, możesz chcieć dostosować położenie kamery za pomocą silników.

Podłącz kamerę Raspberry Pi

Korzystając ze wspornika LEGO Camera, przymocuj kamerę. Mały czarny obiektyw kamery powinien zmieścić się pomiędzy dwoma wspornikami belek LEGO. Przymocuj kamerę na miejscu do wsporników LEGO za pomocą taśmy elektrycznej. To dobry moment, aby upewnić się, że kamera jest ustawiona tak, aby móc uchwycić całą kostkę Rubika. Możesz zrobić zdjęcie testowe za pomocą polecenia raspistill

raspistill -o cam.jpg

Sprawdź, czy kostka jest dobrze wyśrodkowana na środku obrazu.

Krok 3: Przygotuj oprogramowanie

Możesz użyć dowolnej wersji Raspbian lub Raspbian for Robots, naszego niestandardowego obrazu dostarczanego z już zainstalowanym BrickPi3. Jeśli używasz standardowej wersji Raspbian, możesz zainstalować biblioteki BrickPi3 za pomocą polecenia

sudo curl -kL dexterindustries.com/update_brickpi3 | grzmotnąć

Ten krok zainstaluje wszystkie biblioteki potrzebne do uruchomienia BrickPi3 na obrazie Raspbian. Pomiń ten krok, jeśli używasz Raspbian for Robots: BrickPi3 jest już zainstalowany.

Na koniec zainstaluj wszystkie zależności projektu za pomocą polecenia:

sudo curl https://raw.githubusercontent.com/DexterInd/Brick… | grzmotnąć

Na tym etapie Twój BrickPi3 będzie musiał być podłączony do Internetu. Istnieje wiele bibliotek, od których zależy projekt, w tym kilka kluczowych autorstwa Daniela Waltona (@dwalton76) na Github, które są używane do rozwiązywania kostki Rubika.

Krok 4: Rozwiąż kostkę Rubika

Rozwiąż kostkę Rubika
Rozwiąż kostkę Rubika
Rozwiąż kostkę Rubika
Rozwiąż kostkę Rubika
Rozwiąż kostkę Rubika
Rozwiąż kostkę Rubika

Umieść nierozwiązaną kostkę Rubika w kołysce. Uruchom polecenie

sudo python ~/Dexter/BrickPi3/Projects/BricKuber/BricKuber.py

Robot obróci sześcian do każdej twarzy, a kamera wykona 6 zdjęć, po jednym z każdej strony sześcianu. Raspberry Pi określi konfigurację kostki na podstawie sześciu zdjęć. Konfiguracja kostki zostanie przekazana do biblioteki kociemba Python w celu znalezienia wydajnego rozwiązania. Wreszcie robot wykona ruchy, aby ułożyć kostkę Rubika!

Krok 5: Kod źródłowy

Cały kod źródłowy BricKubera można znaleźć w naszym otwartym repozytorium github tutaj.

Ten projekt używa następujących pakietów oprogramowania zainstalowanych przez polecenie

Zalecana: