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

Q -Bot - The Open Source Rubik's Cube Solver: 7 βήματα (με εικόνες)
Q -Bot - The Open Source Rubik's Cube Solver: 7 βήματα (με εικόνες)

Βίντεο: Q -Bot - The Open Source Rubik's Cube Solver: 7 βήματα (με εικόνες)

Βίντεο: Q -Bot - The Open Source Rubik's Cube Solver: 7 βήματα (με εικόνες)
Βίντεο: Reality, Evolution, Consciousness | Donald Hoffman Λ Philip Goff 2024, Ιούλιος
Anonim
Image
Image
Εικόνα
Εικόνα

Φανταστείτε ότι έχετε έναν ανακατεμένο κύβο Ρούμπικ, γνωρίζετε ότι το παζλ από τη δεκαετία του '80 που όλοι έχουν, αλλά κανείς δεν ξέρει πραγματικά πώς να το λύσει και θέλετε να το επαναφέρετε στο αρχικό του μοτίβο. Ευτυχώς αυτές τις μέρες είναι πολύ εύκολο να βρείτε λύσεις. Έτσι, μπείτε στο διαδίκτυο δείτε ένα βίντεο και μάθετε πώς να γυρίζετε τα πλάγια για να σας φέρει χαρά. Αφού το κάνετε μερικές φορές, ωστόσο, θα συνειδητοποιήσετε ότι κάτι λείπει. Μια τρύπα μέσα που δεν γεμίζει. Οι μηχανικοί/κατασκευαστής/χάκερ μέσα σας απλά δεν μπορούν να ικανοποιηθούν με την επίλυση κάτι τόσο εκπληκτικού με έναν τόσο απλό τρόπο. Δεν θα ήταν πολύ πιο ποιητικό αν είχατε μια μηχανή που θα έκανε όλη τη λύση για εσάς; Αν είχατε φτιάξει κάτι όλοι οι φίλοι σας θα εκπλαγούν; Μπορώ να σας εγγυηθώ ότι δεν είναι πολύ καλύτερο από το να βλέπετε τη δημιουργία σας να κάνει θαύματα και να λύνει έναν κύβο Ρούμπικ. Λοιπόν, ελάτε μαζί μου στο υπέροχο ταξίδι της κατασκευής του Q-Bot, του ανοιχτού κώδικα Rubik's Cube Solver που σίγουρα δεν θα κερδίσει κανένα παγκόσμιο ρεκόρ, αλλά θα σας χαρίσει ώρες χαράς (αφού φυσικά περάσετε όλες τις απογοητεύσεις κατά τη διαδικασία κατασκευής).

Βήμα 1: Σχεδιασμός του υλικού

Ο πλήρης επιλυτής σχεδιάστηκε με CAD στην Catia. Με αυτόν τον τρόπο τα περισσότερα από τα σφάλματα σχεδιασμού θα μπορούσαν να βρεθούν και να διορθωθούν πριν από την κατασκευή οποιωνδήποτε φυσικών εξαρτημάτων. Το μεγαλύτερο μέρος του διαλύτη εκτυπώθηκε 3D σε PLA χρησιμοποιώντας έναν εκτυπωτή prusa MK3. Επιπλέον, χρησιμοποιήθηκε το ακόλουθο υλικό:

  • 8 κομμάτια ράβδου αλουμινίου 8 mm (μήκος 10 cm)
  • 8 γραμμικά ρουλεμάν (LM8UU)
  • λίγο κάτω από 2 m ιμάντα χρονισμού GT2 6 mm + μερικές τροχαλίες
  • 6 διπολικοί βηματικοί κινητήρες NEMA 17
  • 6 προγράμματα οδήγησης stepper Polulu 4988
  • ένα Arudino Mega ως ελεγκτής για το έργο
  • τροφοδοτικό 12 V 3A
  • έναν μετατροπέα βήμα προς τα κάτω για να τροφοδοτήσει με ασφάλεια το arduino
  • μερικές βίδες και συνδετήρες
  • λίγο κόντρα πλακέ για τη βάση

Περιγραφή υλικού

Αυτή η ενότητα καλύπτει εν συντομία πώς λειτουργεί ακόμη και το Q-Bot και πού χρησιμοποιούνται τα παραπάνω συστατικά στοιχεία. Παρακάτω μπορείτε να δείτε μια απόδοση του πλήρως συναρμολογημένου μοντέλου CAD.

Το Q-bot λειτουργεί με τέσσερις κινητήρες συνδεδεμένους απευθείας στον κύβο του Rubik με τρισδιάστατες λαβές. Αυτό σημαίνει ότι αριστερά, δεξιά, εμπρός και πίσω μπορούν να γυρίσουν απευθείας. Εάν η επάνω ή η κάτω πλευρά πρέπει να γυρίσει, ολόκληρος ο κύβος πρέπει να γυρίσει και έτσι δύο από τους κινητήρες πρέπει να απομακρυνθούν. Αυτό γίνεται συνδέοντας κάθε έναν από τους κινητήρες λαβής σε έλκηθρα που κινούνται από άλλο βηματικό μοτέρ και έναν ιμάντα χρονισμού κατά μήκος ενός γραμμικού συστήματος σιδηροτροχιών. Το σύστημα σιδηροτροχιάς αποτελείται από δύο ρουλεμάν 8 που είναι τοποθετημένα σε κοιλότητες στο έλκηθρο και ολόκληρο το έλκηθρο οδηγεί σε δύο άξονες αλουμινίου 8mm. Παρακάτω μπορείτε να δείτε το υποσύνολο ενός άξονα του διαλύτη.

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

Εικόνα
Εικόνα

Βήμα 2: Επιλέγοντας τα σωστά μοτέρ

Φυσικά, η επιλογή των σωστών κινητήρων είναι πολύ σημαντική εδώ. Το κύριο μέρος είναι ότι πρέπει να είναι αρκετά δυνατά για να μπορούν να γυρίσουν τον κύβο του Ρούμπικ. Το μόνο πρόβλημα εδώ είναι ότι κανένας κατασκευαστής των κύβων του Rubik δεν δίνει βαθμολογία ροπής. Έτσι, έπρεπε να αυτοσχεδιάσω και να κάνω τις δικές μου μετρήσεις.

Γενικά η ροπή ορίζεται από τη δύναμη που κατευθύνεται κάθετα στη θέση του σημείου περιστροφής στην απόσταση r:

Εικόνα
Εικόνα
Εικόνα
Εικόνα

Έτσι, αν μπορούσα με κάποιο τρόπο να μετρήσω τη δύναμη που ασκείται στον κύβο, θα μπορούσα να υπολογίσω τη ροπή. Αυτό ακριβώς έκανα. Έσφιξα τον κύβο μου σε ένα ράφι με τρόπο που μόνο η μία πλευρά θα μπορούσε να κινηθεί. Ότι ένα κορδόνι δέθηκε γύρω από τον κύβο και μια τσάντα προσαρτημένη στο κάτω μέρος. Τώρα το μόνο που έμενε να κάνουμε ήταν να αυξήσουμε σιγά -σιγά το βάρος στη σακούλα μέχρι να γυρίσει ο κύβος. Για την έλλειψη ακριβών βαρών χρησιμοποίησα πατάτες και τις μέτρησα μετά. Δεν είναι η πιο επιστημονική μέθοδος αλλά επειδή δεν προσπαθώ να βρω την ελάχιστη ροπή είναι αρκετά επαρκής.

Εικόνα
Εικόνα

Έκανα τις μετρήσεις τρεις φορές και πήρα την υψηλότερη αξία μόνο για να είμαι ασφαλής. Το προκύπτον βάρος ήταν 0,52 kg. Τώρα, εξαιτίας του Sir Isaac Newton, γνωρίζουμε ότι η δύναμη ισούται με την επιτάχυνση των μαζών.

Εικόνα
Εικόνα

Η επιτάχυνση, σε αυτή την περίπτωση, είναι η βαρυτική επιτάχυνση. Άρα η απαιτούμενη ροπή δίνεται από

Εικόνα
Εικόνα

Συνδέοντας όλες τις τιμές, συμπεριλαμβανομένης της μισής διαγώνιας του κύβου του Rubik, αποκαλύπτεται τελικά η απαιτούμενη ροπή.

Εικόνα
Εικόνα

Πήγα με βηματικούς κινητήρες που είναι σε θέση να εφαρμόσουν έως και 0,4 Nm που είναι πιθανώς υπερβολικό, αλλά ήθελα να είμαι ασφαλής.

Βήμα 3: Κατασκευή της βάσης

Η βάση αποτελείται από ένα πολύ απλό ξύλινο κουτί και στεγάζει όλα τα απαιτούμενα ηλεκτρονικά. Διαθέτει ένα βύσμα για την ενεργοποίηση και απενεργοποίηση του μηχανήματος, μια λυχνία LED που δείχνει εάν είναι ενεργοποιημένη, μια θύρα USB B και μια πρίζα για την πρίζα. Κατασκευάστηκε χρησιμοποιώντας κόντρα πλακέ 15mm, μερικές βίδες και λίγη κόλλα.

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

Βήμα 4: Συναρμολόγηση του υλικού

Τώρα με όλα τα απαιτούμενα μέρη, συμπεριλαμβανομένης της βάσης, το Q-bot ήταν έτοιμο για συναρμολόγηση. Τα προσαρμοσμένα μέρη τυπώθηκαν σε 3D και προσαρμόστηκαν όπου χρειαζόταν. Μπορείτε να κατεβάσετε όλα τα αρχεία CAD στο τέλος αυτού του ible. Η συναρμολόγηση περιλάμβανε την τοποθέτηση όλων των τρισδιάστατων τμημάτων με τα αγορασμένα μέρη, την επέκταση των καλωδίων του κινητήρα και το βίδωμα όλων των εξαρτημάτων στη βάση. Επιπλέον, έβαλα μανίκια γύρω από τα καλώδια του κινητήρα, για να φαίνονται λίγο πιο προσεγμένα και πρόσθεσα συνδέσμους JST στα άκρα τους.

Για να τονίσω τη σημασία της βάσης που έχτισα, εδώ είναι μια λήψη πριν και μετά της εμφάνισης του συγκροτήματος. Αντιμετωπίζοντας τα πάντα λίγο μπορεί να κάνει μια τεράστια διαφορά.

Εικόνα
Εικόνα
Εικόνα
Εικόνα

Βήμα 5: Ηλεκτρονικά

Όσον αφορά τα ηλεκτρονικά, το έργο είναι μάλλον απλό. Υπάρχει ένα κύριο τροφοδοτικό 12V, το οποίο μπορεί να αποδώσει έως και 3Α ρεύματος, το οποίο τροφοδοτεί τους κινητήρες. Μια μονάδα αναβάθμισης χρησιμοποιείται για την ασφαλή τροφοδοσία του Arduino και σχεδιάστηκε μια προσαρμοσμένη ασπίδα για το Arduino που φιλοξενεί όλους τους οδηγούς βηματικών κινητήρων. Οι οδηγοί διευκολύνουν τον έλεγχο των κινητήρων. Η οδήγηση ενός βηματικού κινητήρα απαιτεί μια συγκεκριμένη ακολουθία ελέγχου, αλλά με τη χρήση οδηγών κινητήρα χρειάζεται μόνο να παράγουμε έναν υψηλό παλμό για κάθε βήμα που ο κινητήρας θα στρίψει. Επιπλέον, ορισμένοι σύνδεσμοι jst προστέθηκαν στην ασπίδα για να διευκολύνουν τη σύνδεση των κινητήρων. Η ασπίδα για το Arduino χτίστηκε σταθερά πάνω σε ένα κομμάτι σανίδων και αφού βεβαιωθήκατε ότι όλα λειτουργούν όπως υποτίθεται ότι κατασκευάστηκε από την jlc pcb.

Εδώ είναι το πριν και το μετά από το πρωτότυπο και το κατασκευασμένο PCB.

Εικόνα
Εικόνα
Εικόνα
Εικόνα

Βήμα 6: Λογισμικό και σειριακή διεπαφή

Το Q-Bot χωρίζεται σε δύο μέρη. Από τη μία πλευρά υπάρχει το υλικό που ελέγχεται από το Arduino, από την άλλη υπάρχει ένα κομμάτι λογισμικού που υπολογίζει τη διαδρομή επίλυσης για τον κύβο με βάση την τρέχουσα ανακατεύθυνση. Το υλικολογισμικό που εκτελείται στο Arduino γράφτηκε από τον εαυτό μου, αλλά για να κρατήσω σύντομο αυτόν τον οδηγό δεν θα αναφερθώ σε λεπτομέρειες εδώ. Αν θέλετε να το δείτε και να παίξετε μαζί του, ο σύνδεσμος προς το αποθετήριο git μου θα παρέχεται στο τέλος αυτού του εγγράφου. Το λογισμικό που υπολογίζει τη λύση τρέχει σε ένα μηχάνημα windows και γράφτηκε από έναν συνάδελφό μου, και πάλι οι σύνδεσμοι προς τον πηγαίο του κώδικα μπορούν να βρεθούν στο τέλος αυτής της εικόνας. Τα δύο μέρη επικοινωνούν χρησιμοποιώντας μια απλή σειριακή διεπαφή. Υπολογίζει τη λύση με βάση τον αλγόριθμο δύο φάσεων του Kociemba. Το λογισμικό επίλυσης στέλνει μια εντολή που αποτελείται από δύο byte στον επιλύτη και περιμένει να επιστρέψει ένα «ACK». Με αυτόν τον τρόπο ο λύτης μπορεί να δοκιμαστεί και να διορθωθεί χρησιμοποιώντας μια απλή σειριακή οθόνη. Το πλήρες σύνολο οδηγιών μπορείτε να το βρείτε παρακάτω.

Εικόνα
Εικόνα

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

Βήμα 7: Συμπέρασμα

Μετά από οκτώ μήνες ανάπτυξης, βρισιάς, χτυπήματος στο πληκτρολόγιο και χορού το Q-bot ήταν τελικά σε ένα σημείο όπου λύθηκε με επιτυχία ο πρώτος του Κύβος του Ρούμπικ. Το scramble του κύβου έπρεπε να εισαχθεί χειροκίνητα στο λογισμικό ελέγχου, αλλά όλα λειτούργησαν καλά.

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

Εικόνα
Εικόνα

Εάν αυτό το εκπαιδευτικό προκάλεσε το ενδιαφέρον σας, μη διστάσετε και ξεκινήστε να δημιουργείτε τη δική σας έκδοση του Q-bot. Μπορεί να φαίνεται τρομακτικό στην αρχή, αλλά αξίζει τον κόπο και αν μπορούσα να το κάνω, μπορείτε και εσείς.

Πόροι:

Πηγαίος κώδικας του υλικολογισμικού:

github.com/Axodarap/QBot_firmware

Πηγαίος κώδικας του λογισμικού ελέγχου

github.com/waldhube16/Qbot_SW

Συνιστάται: