Πίνακας περιεχομένων:
Βίντεο: Σε πραγματικό χρόνο Rubik's Cube Blindfolded Solver Using Raspberry Pi and OpenCV: 4 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:31
Αυτή είναι η 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
Συνιστάται:
Πώς να χρησιμοποιήσετε μια μονάδα ρολογιού σε πραγματικό χρόνο (DS3231): 5 βήματα
Πώς να χρησιμοποιήσετε μια μονάδα ρολογιού σε πραγματικό χρόνο (DS3231): Το DS3231 είναι ένα χαμηλού κόστους, εξαιρετικά ακριβές ρολόι I2C σε πραγματικό χρόνο (RTC) με ενσωματωμένο κρυσταλλικό ταλαντωτή με αντιστάθμιση θερμοκρασίας (TCXO) και κρύσταλλο. Η συσκευή ενσωματώνει μια είσοδο μπαταρίας και διατηρεί ακριβή χρονομέτρηση όταν η κύρια τροφοδοσία
Μετρητής στάθμης νερού σε πραγματικό χρόνο: 6 βήματα (με εικόνες)
Ένας μετρητής στάθμης νερού σε πραγματικό χρόνο: Αυτές οι οδηγίες περιγράφουν τον τρόπο κατασκευής ενός μετρητή στάθμης νερού χαμηλού κόστους σε πραγματικό χρόνο για χρήση σε σκαμμένα πηγάδια. Ο μετρητής στάθμης νερού έχει σχεδιαστεί για να κρέμεται μέσα σε ένα σκαμμένο πηγάδι, να μετρά τη στάθμη του νερού μία φορά την ημέρα και να στέλνει τα δεδομένα μέσω WiFi ή κυψελοειδούς σύνδεσης
Μετρητής θερμοκρασίας νερού, αγωγιμότητας και στάθμης νερού σε πραγματικό χρόνο: 6 βήματα (με εικόνες)
Μετρητής θερμοκρασίας νερού, αγωγιμότητας και στάθμης νερού σε πραγματικό χρόνο: Αυτές οι οδηγίες περιγράφουν πώς να φτιάξετε ένα μετρητή νερού χαμηλού κόστους, σε πραγματικό χρόνο, για την παρακολούθηση της θερμοκρασίας, την ηλεκτρική αγωγιμότητα (EC) και τα επίπεδα νερού σε σκαμμένα πηγάδια. Ο μετρητής έχει σχεδιαστεί για να κρέμεται μέσα σε ένα σκαμμένο πηγάδι, να μετρά τη θερμοκρασία του νερού
Σχεδιάζοντας γράφημα σε πραγματικό χρόνο στο Android από το Arduino μέσω HC-05: 3 βήματα
Σχεδιάζοντας γράφημα σε πραγματικό χρόνο στο Android από το Arduino μέσω του HC-05: Γεια σας, εδώ είναι ένα σεμινάριο για το πώς να σχεδιάσετε ένα γράφημα τιμών σε πραγματικό χρόνο από έναν μικροελεγκτή όπως ένα Arduino στην εφαρμογή. Χρησιμοποιεί μια μονάδα Bluetooth όπως το HC-05 για να λειτουργήσει ως συσκευή ανταλλαγής μηνυμάτων για τη μετάδοση και λήψη των δεδομένων μεταξύ του Ar
Πώς να κάνετε υγρασία και θερμοκρασία σε πραγματικό χρόνο καταγραφέα δεδομένων με Arduino UNO και κάρτα SD - Προσομοίωση DHT11 Data-logger στο Proteus: 5 Βήματα
Πώς να κάνετε υγρασία και θερμοκρασία σε πραγματικό χρόνο καταγραφέα δεδομένων με Arduino UNO και κάρτα SD | Προσομοίωση DHT11 Data-logger στο Proteus: Εισαγωγή: γεια, αυτό είναι το Liono Maker, εδώ είναι ο σύνδεσμος του YouTube. Κάνουμε δημιουργικό έργο με το Arduino και δουλεύουμε σε ενσωματωμένα συστήματα. Data-Logger: Ένας καταγραφέας δεδομένων (επίσης data-logger ή data recorder) είναι μια ηλεκτρονική συσκευή που καταγράφει δεδομένα με την πάροδο του χρόνου