Πίνακας περιεχομένων:

Σε πραγματικό χρόνο Rubik's Cube Blindfolded Solver Using Raspberry Pi and OpenCV: 4 βήματα
Σε πραγματικό χρόνο Rubik's Cube Blindfolded Solver Using Raspberry Pi and OpenCV: 4 βήματα

Βίντεο: Σε πραγματικό χρόνο Rubik's Cube Blindfolded Solver Using Raspberry Pi and OpenCV: 4 βήματα

Βίντεο: Σε πραγματικό χρόνο Rubik's Cube Blindfolded Solver Using Raspberry Pi and OpenCV: 4 βήματα
Βίντεο: Советы от менеджера по работе с партнерами | Анализ канала Майка Бойда 2024, Νοέμβριος
Anonim

Αυτή είναι η 2η έκδοση του εργαλείου κύβου του Ρούμπικ που φτιάχτηκε για επίλυση με δεμένα μάτια. Η 1η έκδοση αναπτύχθηκε από javascript, μπορείτε να δείτε το έργο RubiksCubeBlindfolded1

Σε αντίθεση με την προηγούμενη, αυτή η έκδοση χρησιμοποιεί βιβλιοθήκη OpenCV για τον εντοπισμό των χρωμάτων και την εισαγωγή των εισόδων και παρέχει καλύτερη τεχνική απεικόνισης.

Το μεγαλύτερο ζήτημα σε αυτή τη νεότερη έκδοση είναι η οπτικοποίηση των εξόδων, τα στοιχεία ακολουθίας εμφανίζονται στον συρμένο κύβο 1 κάθε φορά. Δεδομένου ότι ο κύβος έχει τρισδιάστατο σχήμα, είναι δύσκολο να εμφανιστούν όλες οι πλευρές ταυτόχρονα. Δείτε τα αποτελέσματα στο βίντεο του καναλιού μου στο YouTube

Χρησιμοποιώ κύβο χωρίς αυτοκόλλητο, αυτό χρειάζεται προσαρμοσμένη αναγνώριση και οι περισσότεροι κωδικοί ανοιχτού κώδικα δεν υποστηρίζονται. Χρησιμοποίησα αυτόν τον ανοιχτό κώδικα που αναπτύχθηκε από τον Kim Koomen, ο οποίος καθορίζει σταθερές περιοχές στο πλαίσιο της κάμερας για να ανιχνεύσει τα σωστά χρώματα του έργου των κύβων qbr

Βήμα 1: Απαιτούνται εξαρτήματα

  • Raspberry Pi
  • κάμερα web

ή μπορείτε να χρησιμοποιήσετε το φορητό υπολογιστή σας

Βήμα 2: Εξαρτήσεις

  • Python 3
  • μουδιασμένη βιβλιοθήκη
  • Βιβλιοθήκη OpenCV

$ sudo apt-get install python3-opencv

Συσκευασία Rubiks

$ pip3 εγκαταστήστε το RubiksBlindfolded

Βήμα 3: Προετοιμασίες

Πρέπει να βαθμονομήσετε την ανίχνευση χρώματος ως προκαταρκτικό βήμα. Οι χρωματικοί κώδικες HSV ποικίλλουν λόγω του φωτισμού, της ποιότητας και της ανάλυσης της κάμερας και των ίδιων των χρωμάτων του κύβου. Στην περίπτωσή μου, συνδυάζω λευκά και κίτρινα φώτα για να έχω σωστά αποτελέσματα.

Ενημερώστε τη λειτουργία get_color_name (hsv) στο colordetection.py

Ο αρχικός πηγαίος κώδικας χρησιμοποιεί το πακέτο kociemba για να λύσει τον κύβο, επιλύει βρίσκοντας τα αντίστροφα βήματα οποιασδήποτε ανακατεύσεως. Σε αυτήν την έκδοση, χρησιμοποίησα το δικό μου πακέτο επίλυσης με το όνομα RubiksBlindfolded που δημοσιεύτηκε στο PyPI. Δείτε την περιγραφή για να μάθετε πώς να το χρησιμοποιείτε RubiksBlindfolded

Βήμα 4: Χρήση

Χρήση
Χρήση
Χρήση
Χρήση

Μετά την εγκατάσταση όλων των εξαρτήσεων και τη ρύθμιση της κάμεράς σας, αυτή είναι η ώρα να εκτελέσετε το σενάριο blindfolded.py

Πρώτον, πρέπει να σαρώσετε τον κύβο σας στους σωστούς προσανατολισμούς. Αυτή είναι η δομή του κύβου, η σειρά σάρωσης των προσώπων δεν είναι σημαντική. Παρατηρήστε ότι αυτά είναι τα προεπιλεγμένα χρώματα των όψεων κύβου, μπορείτε να τα αλλάξετε ενημερώνοντας το λεξικό σημειώσεων στο σενάριο blindfolded.py

Για να κάνετε τη σάρωση, πατήστε το πλήκτρο διαστήματος για να αποθηκεύσετε το πλήκτρο προβολής και ESC μετά το τέλος

Δεύτερον, μπορείτε να δείτε τις ακολουθίες λύσεων στην κονσόλα και τον έλεγχο ισοτιμίας για να σας πει εάν πρέπει να εφαρμόσετε τον αλγόριθμο ισοτιμίας ή όχι

Τρίτον, θα δημιουργηθεί ένα νέο πλαίσιο που εμφανίζει 2 συρμένους κύβους για την ακολουθία των ακμών και τη γωνία. Μπορείτε να χρησιμοποιήσετε αριστερά και δεξιά βέλη για εναλλαγή μεταξύ των στοιχείων ακολουθίας και πλήκτρα βέλους πάνω και κάτω για εναλλαγή μεταξύ της άκρης και της γωνίας. το ανοιχτό γκρι χρώμα αντιπροσωπεύει την τρέχουσα ακολουθία.

Μπορείτε να δείτε τα χρώματα του τρέχοντος buffer που αλλάζουν δυναμικά με τα πλήκτρα βέλους. Τα γκρι χρώματα αντιπροσωπεύουν το κύβο στόχου και το ροζ χρώμα αντιπροσωπεύει το πρόσωπο που αλλάζει

Πηγαίος κώδικας

github.com/mn-banjar/blindfolded2

Συνιστάται: