Spisu treści:
Wideo: Rozwiązujący w czasie rzeczywistym kostkę Rubika z zasłoniętymi oczami za pomocą Raspberry Pi i OpenCV: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
Jest to druga wersja narzędzia kostki Rubika stworzona do rozwiązywania z zawiązanymi oczami. Pierwsza wersja została opracowana przez javascript, możesz zobaczyć projekt RubiksCubeBlindfolded1
W przeciwieństwie do poprzedniej, ta wersja wykorzystuje bibliotekę OpenCV do wykrywania kolorów i wprowadzania danych wejściowych oraz zapewnia lepszą technikę wizualizacji.
Największym problemem w tej najnowszej wersji jest wizualizacja wyjść, pozycje sekwencji są wyświetlane na rysowanym sześcianie po 1 na raz. Ponieważ sześcian ma kształt 3D, trudno jest wyświetlić jednocześnie wszystkie boki. Zobacz wyniki na moim kanale YouTube wideo YouTube
Używam kostki bez naklejek, wymaga to niestandardowego rozpoznawania, a większość kodów open source nie jest obsługiwana. Użyłem tego open source opracowanego przez Kim Koomen, który określa stałe obszary na ramie kamery, aby wykryć prawidłowe kolory projektu qbr sześcianów
Krok 1: Potrzebne komponenty
- Malina Pi
- kamerka internetowa
lub możesz użyć laptopa
Krok 2: Zależności
- Pyton 3
- pusta biblioteka
- Biblioteka OpenCV
$ sudo apt-get install python3-opencv
RubiksPakiet z zasłoniętymi oczami
$ pip3 zainstaluj Rubiks z zasłoniętymi oczami
Krok 3: Przygotowania
Najpierw musisz skalibrować wykrywanie kolorów. Kody kolorów HSV różnią się ze względu na oświetlenie, jakość i rozdzielczość kamery oraz same kolory kostki. W moim przypadku łączę światło białe i żółte, aby uzyskać prawidłowe wyniki.
Zaktualizuj funkcję get_color_name(hsv) na colordetection.py
Oryginalny kod źródłowy używa pakietu kociemba do rozwiązania kostki, rozwiązuje go, znajdując odwrotne kroki dowolnego zaszyfrowania. W tej wersji użyłem własnego pakietu do rozwiązywania problemów o nazwie RubiksBlindfolded, który został opublikowany na PyPI. Zobacz opis, aby wiedzieć, jak z niego korzystać RubiksBlindfolded
Krok 4: Użycie
Po zainstalowaniu wszystkich zależności i ustawieniu aparatu nadszedł czas na uruchomienie skryptu blindfolded.py
Najpierw musisz zeskanować kostkę we właściwych orientacjach. To jest struktura sześcianu, kolejność skanowania ścian nie jest istotna. Zauważ, że są to domyślne kolory ścian sześcianu, możesz je zmienić, aktualizując słownik notacji w skrypcie blindfolded.py
Aby wykonać skanowanie, naciśnij klawisz spacji, aby zapisać widok i klawisz ESC po zakończeniu
Po drugie, możesz zobaczyć sekwencje rozwiązań na konsoli i kontrolę parzystości, aby powiedzieć, czy musisz zastosować algorytm parzystości, czy nie
Po trzecie, zostanie wygenerowana nowa ramka, która wyświetli 2 narysowane sześciany dla sekwencji krawędzi i sekwencji narożników. Możesz użyć klawiszy strzałek w lewo i w prawo, aby przełączać się między elementami sekwencji, oraz klawiszy strzałek w górę iw dół, aby przełączać się między krawędzią a rogiem. jasnoszary kolor reprezentuje bieżącą sekwencję.
Możesz zobaczyć kolory bieżącego bufora, które zmieniają się dynamicznie za pomocą klawiszy strzałek. Kolory szare reprezentują kostkę docelową, a kolor różowy reprezentuje zamieniającą się twarz
Kod źródłowy
github.com/mn-banjar/blindfolded2
Zalecana:
Jak zrobić rejestrator danych wilgotności i temperatury w czasie rzeczywistym za pomocą Arduino UNO i karty SD - Symulacja rejestratora danych DHT11 w Proteus: 5 kroków
Jak zrobić rejestrator danych wilgotności i temperatury w czasie rzeczywistym za pomocą Arduino UNO i karty SD | Symulacja rejestratora danych DHT11 w Proteus: Wstęp: cześć, tu Liono Maker, tutaj link do YouTube. Tworzymy kreatywne projekty z Arduino i pracujemy na systemach wbudowanych.Data-Logger: Rejestrator danych (również rejestrator danych lub rejestrator danych) to urządzenie elektroniczne, które rejestruje dane w czasie w
Rozpoznawanie urządzeń w czasie rzeczywistym za pomocą śladów EM: 6 kroków
Rozpoznawanie urządzeń w czasie rzeczywistym przy użyciu śladów EM: To urządzenie jest przeznaczone do klasyfikowania różnych urządzeń elektronicznych zgodnie z ich sygnałami EM. Dla różnych urządzeń mają emitowane przez nie różne sygnały EM. Opracowaliśmy rozwiązanie IoT do identyfikacji urządzeń elektronicznych za pomocą Particle
Live Tracker Covid19 za pomocą ESP8266 i OLED - Pulpit nawigacyjny Covid19 w czasie rzeczywistym: 4 kroki
Live Tracker Covid19 za pomocą ESP8266 i OLED | Pulpit nawigacyjny Covid19 w czasie rzeczywistym: odwiedź witrynę Techtronic Harsh: http://techtronicharsh.comWszędzie istnieje ogromna epidemia nowego wirusa koronowego (COVID19). Konieczne stało się obserwowanie aktualnego scenariusza COVID-19 na świecie. Więc będąc w domu, to był punkt
Powiadomienia o zdarzeniach w czasie rzeczywistym za pomocą NodeMCU (Arduino), Google Firebase i Laravel: 4 kroki (ze zdjęciami)
Powiadomienia o zdarzeniach w czasie rzeczywistym za pomocą NodeMCU (Arduino), Google Firebase i Laravel: Czy kiedykolwiek chciałeś otrzymywać powiadomienia, gdy w Twojej witrynie zostanie wykonana akcja, ale e-mail nie jest odpowiedni? Czy chcesz słyszeć dźwięk lub dzwonek za każdym razem, gdy dokonujesz sprzedaży? Lub istnieje potrzeba natychmiastowej uwagi z powodu nagłego
BricKuber Project – robot rozwiązujący kostkę Rubiksa Raspberry Pi: 5 kroków (ze zdjęciami)
Projekt BricKuber – robot rozwiązujący kostkę Rubika Raspberry Pi: BricKuber może ułożyć kostkę Rubika w mniej niż 2 minuty.BricKuber to robot typu open source do rozwiązywania kostek Rubika, który możesz zbudować sam.Chcieliśmy zbudować Rubika Robot rozwiązujący kostkę z Raspberry Pi. Zamiast iść na