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

BricKuber Project - a Raspberry Pi Rubiks Cube Solving Robot: 5 βήματα (με εικόνες)
BricKuber Project - a Raspberry Pi Rubiks Cube Solving Robot: 5 βήματα (με εικόνες)

Βίντεο: BricKuber Project - a Raspberry Pi Rubiks Cube Solving Robot: 5 βήματα (με εικόνες)

Βίντεο: BricKuber Project - a Raspberry Pi Rubiks Cube Solving Robot: 5 βήματα (με εικόνες)
Βίντεο: BricKuber Raspberry Pi Rubiks Cuber Solves in 90 Seconds 2024, Ιούνιος
Anonim
Image
Image

Το BricKuber μπορεί να λύσει τον κύβο του Rubik σε λιγότερο από 2 λεπτά.

Το BricKuber είναι ένα ανοιχτού κώδικα ρομπότ για τον κύβο του Rubik που μπορείτε να φτιάξετε μόνοι σας

Θέλαμε να φτιάξουμε ένα ρομπότ επίλυσης κύβων Rubiks με το Raspberry Pi. Αντί για ταχύτητα, προχωρήσαμε με απλότητα: αν έχετε Raspberry Pi, κιτ BrickPi και τυπικό LEGO Mindstorms EV3 ή NXT Kit, θα πρέπει να μπορείτε εύκολα να ακολουθήσετε τα βήματά μας. Το λογισμικό είναι γραμμένο στη γλώσσα προγραμματισμού Python. Μπορείτε να δείτε όλο τον πηγαίο κώδικα στο Github εδώ.

Ιστορικό Ο κύβος του Rubik άρχισε πρόσφατα να επιστρέφει. Εφευρέθηκε το 1974, είναι το παιχνίδι με τις περισσότερες πωλήσεις στον κόσμο. Αλλά η επίλυσή τους απαιτεί σκέψη, προσπάθεια και ικανότητα. Το Το οπότε γιατί να μην αφήσουμε ένα ρομπότ να το κάνει; Σε αυτό το έργο, παίρνουμε ένα Raspberry Pi, ένα BrickPi και ένα σύνολο LEGO Mindstorms και φτιάχνουμε ένα ρομπότ επίλυσης του κύβου του Rubik. Απλά τοποθετήστε έναν άλυτο κύβο Rubik στον λύτη, εκτελέστε το πρόγραμμα python και ο κύβος του Rubik σας λύνεται! Το έργο χρησιμοποιεί το Pi για να λύσει άμεσα τον κύβο του Rubik. Το BrickPi3 παίρνει τον άλυτο κύβο του Rubik και το Raspberry Pi τραβάει μια φωτογραφία κάθε πλευράς του κύβου του Rubik με την κάμερα Raspberry Pi. Το Pi δημιουργεί έναν χάρτη κειμένου των τετραγώνων χρώματος που δείχνει πού βρίσκονται στον κύβο. Όταν έχει χαρτογραφήσει πλήρως τον κύβο, το Pi χρησιμοποιεί τη βιβλιοθήκη python "kociemba" για να χαρτογραφήσει τις κινήσεις που απαιτούνται για την επίλυση του κύβου του Rubik. Αυτές οι πληροφορίες λαμβάνονται από το Pi και το BrickPi3 για να λύσουν τον κύβο του Rubik χρησιμοποιώντας τους κινητήρες LEGO. Το αποτέλεσμα: ένας λυμένος κύβος του Ρούμπικ.

Βήμα 1: Εργαλεία και υλικά

Κατασκευάστε το
Κατασκευάστε το
  • BrickPi3 - Θα χρησιμοποιήσουμε το BrickPi για να ελέγξουμε τους κινητήρες LEGO που λύνουν τον επιλυτή κύβων του Rubik.
  • Raspberry Pi - Το Pi θα κάνει την επεξεργασία, τη λήψη φωτογραφιών και την εντολή του BrickPi.
  • Κάμερα Raspberry Pi - Η κάμερα Pi θα τραβήξει μια φωτογραφία του άλυτου κύβου Rubiks.
  • Καλώδιο Ethernet - Θα χρειαστείτε το μηχάνημά σας για να είναι συνδεδεμένο στο διαδίκτυο. Αν θέλετε να το κάνετε αυτό μέσω wifi, είναι επίσης καλό!
  • Κάρτα SD Raspbian for Robots - Το λογισμικό που τρέχει το Raspberry Pi. Αυτό συνοδεύεται από το μεγαλύτερο μέρος του λογισμικού που απαιτείται για αυτό το σεμινάριο. Μπορείτε επίσης να κατεβάσετε το λογισμικό δωρεάν.
  • LEGO Mindstorms EV3 Kit (31313) - Θα χρειαστείτε ένα σωρό LEGO και δύο μεγάλους κινητήρες, έναν σερβοκινητήρα και έναν υπερηχητικό αισθητήρα.
  • Ένας κύβος του Ρούμπικ - Βρήκαμε έναν που γυρίζει αρκετά ελεύθερα εδώ. Μπορείτε να χρησιμοποιήσετε σχεδόν οποιονδήποτε κύβο Rubik 9x9x9.

Βήμα 2: Κατασκευάστε το

Κατασκευάστε το
Κατασκευάστε το
Κατασκευάστε το
Κατασκευάστε το

Χτίζοντας τον Λύση

Αυτός ο σχεδιασμός εμπνεύστηκε από το σχέδιο MindCub3r για το LEGO EV3. Για να χτίσετε το BricKuber, ξεκινήστε χτίζοντας το MindCub3r. Πλήρεις οδηγίες κατασκευής LEGO μπορείτε να βρείτε εδώ.

Ο σχεδιασμός λύσης κύβων Rubiks έχει τρία σημαντικά κινούμενα μέρη. Το πρώτο είναι ένα λίκνο που κρατά τον κύβο του Ρούμπικ. Το δεύτερο είναι το ανακάτεμα, ένας βραχίονας που χρησιμοποιείται για να ανατρέψει τον κύβο του Ρούμπικ.

Τέλος, προσθέτουμε έναν βραχίονα κάμερας. Στην αρχική σχεδίαση της MindCubr, αυτό κρατούσε τον αισθητήρα χρώματος EV3 πάνω από τον κύβο του Rubik. Στο τροποποιημένο μας σχέδιο, κρατά μια κάμερα Raspberry Pi πάνω από τον κύβο του Rubik. Χρησιμοποιούμε δύο κινητήρες LEGO Mindstorms για να χειριστούμε τον κύβο: ο πρώτος κάθεται κάτω από τη βάση για να περιστρέψει τον κύβο και ο δεύτερος μετακινεί τον βραχίονα ανακατεύοντας για να περιστρέψει τον κύβο σε έναν αντίθετο άξονα.

Συναρμολογήστε το BrickPi3

Μπορείτε να βρείτε οδηγίες συναρμολόγησης για το BrickPi3 εδώ. Θα χρειαστεί να συναρμολογήσουμε τη θήκη, να συνδέσουμε το BrickPi3, το Raspberry Pi, την κάμερα Raspberry Pi, να προσθέσουμε μια κάρτα SD και να προσθέσουμε μπαταρίες. Για να διευκολυνθεί η εγκατάσταση του λογισμικού, το Raspbian for Robots συνοδεύεται από το μεγαλύτερο μέρος του λογισμικού που θα χρειαστείτε ήδη. Θα χρειαστείτε τουλάχιστον μια κάρτα SD 8 GB και θα θέλετε να επεκτείνετε το δίσκο ώστε να ταιριάζει στο πλήρες μέγεθος της κάρτας SD.

Συνδέστε το BrickPi3

Προσθέτουμε το BrickPi3 στη διάταξη LEGO. Χρησιμοποιήσαμε τα "φτερά" του LEGO EV3 για να υποστηρίξουμε το BrickPi3 και να το κάνουμε ισοδύναμο με το σώμα του BricKuber. Αυτό είναι ένα καλό βήμα για να προσθέσετε μπαταρίες 8XAA στο τροφοδοτικό και να συνδέσετε το πακέτο ισχύος BrickPi3 στη διάταξη LEGO. Για προγραμματισμό μπορείτε να τροφοδοτήσετε το BrickPi3 μέσω τροφοδοσίας USB στο Raspberry Pi, ωστόσο για να μετακινήσετε τους κινητήρες θα χρειαστεί να τροφοδοτήσετε το Power Pack.

Συνδέστε τους κινητήρες στο BrickPi3

Συνδέστε το μοτέρ Shuffler στη θύρα κινητήρα "MD". Συνδέστε τον κινητήρα βάσης στη θύρα "MA" στο BrickPi3. Συνδέστε το μοτέρ αισθητήρα κάμερας στη θύρα "MC" (αυτός είναι ο μικρότερος σερβο μοτέρ). Παρόλο που δεν θα μετακινήσουμε την κάμερα, μπορεί να θέλετε να προσαρμόσετε τη θέση της κάμερας χρησιμοποιώντας τους κινητήρες.

Συνδέστε την κάμερα Raspberry Pi

Χρησιμοποιώντας την υποστήριξη κάμερας LEGO, επισυνάψτε την κάμερα. Ο μικρός μαύρος φακός της κάμερας πρέπει να ταιριάζει μεταξύ των δύο στηριγμάτων δέσμης LEGO. Ασφαλίστε τη φωτογραφική μηχανή στη θέση της στα στηρίγματα LEGO με κάποια ηλεκτρική ταινία. Αυτή είναι μια καλή στιγμή για να βεβαιωθείτε ότι η κάμερα είναι σε θέση να μπορεί να καταγράψει ολόκληρο τον κύβο του Ρούμπικ. Μπορείτε να τραβήξετε μια δοκιμαστική φωτογραφία με την εντολή raspistill

raspistill -o cam.jpg

Βεβαιωθείτε ότι ο κύβος είναι καλά κεντραρισμένος στη μέση της εικόνας.

Βήμα 3: Προετοιμάστε το Λογισμικό

Μπορείτε να χρησιμοποιήσετε οποιαδήποτε έκδοση του Raspbian ή του Raspbian για Robots, η προσαρμοσμένη εικόνα μας που συνοδεύει το BrickPi3 που είναι ήδη εγκατεστημένο. Εάν χρησιμοποιείτε μια τυπική έκδοση του Raspbian, μπορείτε να εγκαταστήσετε τις βιβλιοθήκες BrickPi3 χρησιμοποιώντας την εντολή

sudo curl -kL dexterindustries.com/update_brickpi3 | κτυπώ δυνατά

Αυτό το βήμα θα εγκαταστήσει όλες τις βιβλιοθήκες που απαιτούνται για την εκτέλεση του BrickPi3 στην Raspbian Image σας. Παραλείψτε αυτό το βήμα εάν χρησιμοποιείτε Raspbian για Robots: το BrickPi3 είναι ήδη εγκατεστημένο.

Τέλος, εγκαταστήστε όλες τις εξαρτήσεις έργου χρησιμοποιώντας την εντολή:

sudo curl https://raw.githubusercontent.com/DexterInd/Brick… | κτυπώ δυνατά

Για αυτό το βήμα, το BrickPi3 θα πρέπει να είναι συνδεδεμένο στο διαδίκτυο. Υπάρχουν αρκετές βιβλιοθήκες από τις οποίες εξαρτάται το έργο, συμπεριλαμβανομένων ορισμένων κρίσιμων από τον Daniel Walton (@dwalton76) στο Github, που χρησιμοποιούνται για την επίλυση του κύβου του Rubik.

Βήμα 4: Λύστε έναν κύβο Rubik

Λύστε έναν κύβο Rubik
Λύστε έναν κύβο Rubik
Λύστε έναν κύβο Rubik
Λύστε έναν κύβο Rubik
Λύστε έναν κύβο Rubik
Λύστε έναν κύβο Rubik

Τοποθετήστε έναν άλυτο κύβο Rubik στο λίκνο. Εκτελέστε την εντολή

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

Το ρομπότ θα γυρίσει τον κύβο σε κάθε πρόσωπο και η κάμερα θα τραβήξει 6 φωτογραφίες, μία από κάθε πλευρά του Κύβου. Το Raspberry Pi θα καθορίσει τη διαμόρφωση του κύβου από τις έξι εικόνες. Η διαμόρφωση Cube θα περάσει στη βιβλιοθήκη kociemba Python για να βρει μια αποτελεσματική λύση. Τέλος, το ρομπότ θα εκτελέσει τις κινήσεις για να λύσει τον κύβο του Ρούμπικ!

Βήμα 5: Ο πηγαίος κώδικας

Όλο τον πηγαίο κώδικα για το BricKuber μπορείτε να το βρείτε στο ανοιχτό μας gipub repo εδώ.

Αυτό το έργο χρησιμοποιεί τα ακόλουθα πακέτα λογισμικού που έχουν εγκατασταθεί από την εντολή

Συνιστάται: