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

[WIP] Δημιουργία Drawbot που ελέγχεται από περιβραχιόνιο Myo: 11 βήματα
[WIP] Δημιουργία Drawbot που ελέγχεται από περιβραχιόνιο Myo: 11 βήματα

Βίντεο: [WIP] Δημιουργία Drawbot που ελέγχεται από περιβραχιόνιο Myo: 11 βήματα

Βίντεο: [WIP] Δημιουργία Drawbot που ελέγχεται από περιβραχιόνιο Myo: 11 βήματα
Βίντεο: 1993 Winston 500 (RAW SATELLITE FEED) 2024, Νοέμβριος
Anonim
[WIP] Δημιουργία ενός Drawbot που ελέγχεται από ένα περιβραχιόνιο Myo
[WIP] Δημιουργία ενός Drawbot που ελέγχεται από ένα περιβραχιόνιο Myo

Καλησπέρα σε όλους!

Πριν από μερικούς μήνες, αποφασίσαμε να προσπαθήσουμε να αντιμετωπίσουμε την ιδέα της κατασκευής ενός drawbot ανοιχτού πλαισίου που χρησιμοποίησε μόνο μια μπάντα Myo για να τον ελέγξει. Όταν ξεκινήσαμε για το έργο, ξέραμε ότι θα πρέπει να χωριστεί σε δύο διαφορετικές φάσεις. Η πρώτη κύρια φάση μας ήταν να προσπαθήσουμε να τυλίξουμε τα κεφάλια μας γύρω από ένα σχέδιο ανοιχτού πλαισίου για το bot bot μας. Αυτή είναι μια μη τυποποιημένη ρύθμιση και θέλαμε να δούμε ποια ήταν τα οφέλη αυτού του σχεδιασμού.

Δεύτερον, ξέραμε ότι η κατασκευή αυτού του πρωτοτύπου θα αποδειχθεί χρήσιμη μόνο για εμάς. Ο σχεδιασμός και το σχέδιό μας ήταν να μεταφέρουμε το τελικό μας πλαίσιο σε μέταλλο και χρησιμοποιώντας ένα arduino, να λάβουμε τη θέση μας από το επιταχυνσιόμετρο και το γυροσκόπιο που είναι ενσωματωμένα στην μπάντα Myo. Αυτές οι πληροφορίες θα σταλούν στη συνέχεια στους κινητήρες και θα αντιγράφουν την κίνηση του χρήστη. Γνωρίζαμε ότι αυτό θα έκανε τη δεύτερη φάση μας να ξεσπάσει σε τρεις κύριες πτυχές:

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

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

Βήμα 1: Τι σχεδιάσαμε να κάνουμε

Image
Image

Στόχος μας ήταν να συνδυάσουμε αυτά τα δύο προϊόντα με έναν τρόπο που δεν έχουμε δει ποτέ να χρησιμοποιούνται. Ξεκινήσαμε να κάνουμε ένα ζωντανό ρελέ μεταξύ του περιβραχιόνιου Myo και της δικής μας εκδοχής ενός σχεδίου εμπνευσμένου από το AxiDraw του Evil Mad Scientist.

Βήμα 2: Πρωτότυπη λίστα συστατικών

2 2 x 4 ξύλινες σανίδες 1 Ζώνη ή αλυσίδα μέτρησης> = 65”4 Ξύλινα καρφιά 3 Γρανάζια με δόντια που ταιριάζουν στη ζώνη ή την αλυσίδα 4 3 x 8 vex διάτρητες πλάκες 30 ⅜” Καουτσούκ αποστάτες 8 ροδέλες διαμέτρου 1 1”ξύλινες διαμέτρους πείρος 1 'μακρύς 8 Βίδες Vex 1' '8 ½' 'Βίδες Vex 8 2' 'Βίδες Vex 8' 'Καουτσούκ αποστάτες 48 Παξιμάδια Vex 1 Μικρή φερμουάρ

Βήμα 3: [Πρωτότυπο] Ξυλουργικές εργασίες στο εσωτερικό των όπλων και της μεταφοράς μας

[Πρωτότυπο] Ξυλουργικές εργασίες στο εσωτερικό των όπλων και της μεταφοράς μας
[Πρωτότυπο] Ξυλουργικές εργασίες στο εσωτερικό των όπλων και της μεταφοράς μας

Πιάσαμε δύο 2x4 και τα κόψαμε σε ίσα μήκη (33 ¼ )

Χρησιμοποιώντας ένα επιτραπέζιο πριόνι κάναμε μια εγκοπή κατά μήκος του στενού τμήματος των σανίδων ¼ "βαθιά και wide" φαρδιά στη μέση

Κόψτε τον πείρο σε 4 τεμάχια 2 ιντσών και ανοίξτε μια τρύπα στη μέση του πείρου σε διάμετρο περίπου ¼”χρησιμοποιώντας ένα τρυπάνι

Βήμα 4: [Πρωτότυπο] Κάνοντας τη μεταφορά μας

[Πρωτότυπο] Κάνοντας τη μεταφορά μας
[Πρωτότυπο] Κάνοντας τη μεταφορά μας
[Πρωτότυπο] Κάνοντας τη μεταφορά μας
[Πρωτότυπο] Κάνοντας τη μεταφορά μας
[Πρωτότυπο] Κάνοντας τη μεταφορά μας
[Πρωτότυπο] Κάνοντας τη μεταφορά μας

Ιδανικά θα χρησιμοποιούσαμε δύο κομμάτια 7x7 διάτρητου χάλυβα, αλλά το μόνο που είχαμε στη διάθεσή μας ήταν οι λωρίδες 2x7, οπότε τις βιδώσαμε σε μια διαμόρφωση "X"

Στοιβάζετε 5 από τα ελαστικά διαχωριστικά ⅜”και στερεώνετε τις γωνίες των vex πλακών μεταξύ τους

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

Χρησιμοποιώντας τις ve «vex βίδες, rubber» ελαστικά διαχωριστικά και τις ροδέλες διαμέτρου 1 »στερεώστε τις ροδέλες σε υπερυψωμένη θέση όπως φαίνεται στο σχήμα 1 (χρησιμοποιήσαμε πράσινες πλαστικές ταχύτητες επειδή δεν βρήκαμε τις κατάλληλες ροδέλες) βεβαιωθείτε ότι οι ροδέλες είναι σε θέση να περιστρέφεται εύκολα και να ταιριάζει στις εγκοπές του πίνακα.

Βήμα 5: [Πρωτότυπο] Το βάζουμε όλα μαζί

[Πρωτότυπο] Το βάζουμε όλα μαζί
[Πρωτότυπο] Το βάζουμε όλα μαζί
[Πρωτότυπο] Το βάζουμε όλα μαζί
[Πρωτότυπο] Το βάζουμε όλα μαζί
[Πρωτότυπο] Το βάζουμε όλα μαζί
[Πρωτότυπο] Το βάζουμε όλα μαζί
[Πρωτότυπο] Το βάζουμε όλα μαζί
[Πρωτότυπο] Το βάζουμε όλα μαζί

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

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

Τώρα η ζώνη πρέπει να στερεωθεί στο πλάι της σανίδας που δεν έχει γρανάζι. Χρησιμοποιήσαμε ένα επιπλέον καρφί και φερμουάρ για να στερεώσουμε το δικό μας. Αλλά η μέθοδος που χρησιμοποιείται δεν έχει σημασία εφόσον η ζώνη είναι αγκυρωμένη σε εκείνο το σημείο

Βήμα 6: [Πρωτότυπο] Ολοκληρώθηκε και μετακόμισε

Image
Image

Αυτό θα έπρεπε να είναι, τραβήξτε τη ζώνη σε διαφορετικούς συνδυασμούς και δείτε τα διαφορετικά εφέ που έχει στο μπράτσο!

Βήμα 7: Μεταφράζοντας το μοντέλο μας στο τελειωμένο μας σχέδιο

Μεταφράζοντας το μοντέλο μας στο ολοκληρωμένο μας σχέδιο
Μεταφράζοντας το μοντέλο μας στο ολοκληρωμένο μας σχέδιο
Μεταφράζοντας το μοντέλο μας στο ολοκληρωμένο μας σχέδιο
Μεταφράζοντας το μοντέλο μας στο ολοκληρωμένο μας σχέδιο

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

  1. Κλίμακα

    1. Το πρωτότυπό μας ήταν τεράστιο και δυσκίνητο, γεγονός που το έκανε επιρρεπές να ανατρέψει στην άκρη των βραχιόνων μας
    2. Η άμαξα ήταν πολύ μεγαλύτερη από ό, τι ήταν απαραίτητο και είχε πολύ χαμένο χώρο
    3. Η ζώνη μας (ένα πέλμα vex δεξαμενής) ήταν πολύ μεγαλύτερη από ό, τι ήταν απαραίτητο, γεγονός που εισήγαγε υπερβολικό χώρο μεταξύ των βραχιόνων
  2. Τριβή

    1. Τα vex πέλματά μας δεν περνούσαν εύκολα από τους ξύλινους κυλίνδρους πείρου σε όλα τα σημεία
    2. Το πλαστικό σε ξύλο έκανε το αμάξι απρόθυμο να κινηθεί σε πολλές περιπτώσεις
  3. Μηχανοκίνητος

    Χρειαζόμασταν να κάνουμε το σύστημα ισχυρό

Με αυτά τα πράγματα κατά νου, σχεδιάσαμε τα σχέδιά μας για τον τελικό σχεδιασμό. Θέλαμε να ελέγχεται το drawbot με ένα Myo μέσω ενός arduino και θέλαμε να κάνουμε το πλαίσιο αλουμινένιο και μικρότερο.

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

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

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

Βήμα 8: Κωδικοποίηση

Ενώ δούλευα αρκετά εκτενώς στο C πριν από μερικά χρόνια, δεν είχα εμπειρία με το lua ή το C ++, και αυτό σήμαινε ότι έπρεπε να αφιερώσω ένα αξιοσημείωτο χρόνο ψάχνοντας την τεκμηρίωση. Iξερα ότι το γενικό καθήκον που θα προσπαθούσα να ολοκληρώσω ήταν να πάρω τη θέση του χρήστη σε χρονικά διαστήματα και στη συνέχεια να το μεταφέρω στους κινητήρες. Αποφάσισα να χωρίσω το έργο για τον εαυτό μου για να αφομοιώσω καλύτερα τα μέρη που θα χρειαστώ.

1. Λάβετε δεδομένα από το Myo (lua)

Knewξερα ότι έπρεπε να βρω έναν τρόπο συλλογής των πληροφοριών από το Myo. Αυτό ήταν το πρώτο μέρος της πρόκλησης που ήθελα να προσεγγίσω. Για να γίνει αυτό, ήθελα να ζητήσω από τον χρήστη να βαθμονομήσει το μέγεθος του καμβά του πριν αρχίσει να σχεδιάζει. Αυτό θα μου επέτρεπε να έχω ένα όριο από το οποίο θα δουλέψω. Στη συνέχεια, θα μπορούσα να εξομαλύνω το πρόγραμμα μεταξύ διαφορετικών χρηστών, λαμβάνοντας απλώς ένα ποσοστό του μέγιστου καμβά, καθώς τα δεδομένα μου θα περάσουν. Αποφάσισα να έχω ένα σενάριο σενάριο που θα πραγματοποιούσε έλεγχο getOrientation κάθε μισό δευτερόλεπτο, καθώς θα επέτρεπε στους ελέγχους να μην εκτελούν ποτέ ένα άγριο άλμα από το οποίο θα έπρεπε να μαντέψετε (για παράδειγμα, εάν ο χρήστης γυρνούσε άγρια προς τα πίσω και Εμπρός).

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

Aroundταν περίπου εκείνη την εποχή του σχεδιασμού που ξεκίνησαν οι εργασίες στην ηλεκτρική πτυχή και ανέστειλα την εργασία σε αυτήν την πτυχή του κώδικα. Ο σκοπός είναι να μάθουμε πώς οι κινητήρες μας αλληλεπιδρούν με το arduino.

2. Εργασία γύρω από το Arduino (C ++)

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

Αποφάσισα ότι η λειτουργία αναμονής πρέπει να αποθηκευτεί, εάν δεν εφαρμοστεί με τον ίδιο τρόπο όπως πριν. Για να γίνει αυτό, δημιούργησα ένα διάνυσμα συστοιχιών. Αυτό μου επέτρεψε όχι μόνο να διατηρήσω το πνεύμα του προηγούμενου σχεδίου μου σχετικά άθικτο, σήμαινε επίσης ότι δεν έπρεπε να παρακολουθώ τη θέση μου στο αρχείο ούτε για ανάγνωση ούτε για γραφή. Αντ 'αυτού, τώρα το μόνο που έπρεπε να κάνω ήταν απλώς να προσθέσω μια νέα τιμή στο διάνυσμά μου εάν ο χρήστης μετακινούνταν (οι προκαταρκτικές δοκιμές ήταν λιγότερες από 1% της διαφοράς μεγέθους καμβά τόσο στο x όσο και στο y από την τελευταία καταγεγραμμένη θέση δεν είχε ως αποτέλεσμα την καταγραφή δεδομένων) Το Θα μπορούσα τότε να πάρω την παλαιότερη τιμή στο διάνυσμά μου και με μια κίνηση, να την στείλω στο χειριστήριο του κινητήρα, να την γράψω στο αρχείο μας και μετά να την αφαιρέσω από το διάνυσμά μου. Αυτό καθάρισε πολλές από τις ανησυχίες μου σχετικά με τη συνεχή λειτουργία ροής IO.

Βήμα 9: Ηλεκτρικό

Image
Image
Ηλεκτρικός
Ηλεκτρικός

Ενώ είχα παρακολουθήσει μαθήματα ηλεκτρονικών στο παρελθόν και δούλεψα αρκετά για arduinos. Ποτέ δεν έκανα βαθιά να κάνω το arduino να λαμβάνει πληροφορίες από εξωτερική πηγή (myo), έχω μόνο εμπειρία στην εξαγωγή πληροφοριών μέσω του arduino. Ωστόσο, πήρα να συνδέσω τους κινητήρες στο drawbot μας και να δουλέψω κώδικα για να μπορέσουν να δουλέψουν με τον κωδικό myo.

Υλικά που χρησιμοποίησα:

2 x Stepper κινητήρες

1 x Breadboard

1 x Arduino (Uno)

2 x IC Driver IC L293DE

40 x καλώδια Jumper

2 x θαυμαστές

1. Σύνδεση της Stepper Motors και του ανεμιστήρα στο Breadboard

Ακολουθώντας το διάγραμμα κυκλώματος, μπορούμε να συνδέσουμε ένα βηματικό μοτέρ στον οδηγό στον πίνακα ψωμιού. Στη συνέχεια, ακολουθώντας το ίδιο διάγραμμα, ισχύει για τον δεύτερο οδηγό και τον κινητήρα, ωστόσο, τα καλώδια των βραχυκυκλωτήρων θα πρέπει να συνδεθούν σε ένα διαφορετικό σύνολο ακίδων στο arduino (αφού ο πρώτος κινητήρας καταλαμβάνει το χώρο 4 άλλων).

Προειδοποίηση/Συμβουλή:

Οι οδηγοί είναι πολύ μικροί και οι ακίδες είναι πολύ κοντά μεταξύ τους. Θα ήταν σοφό να απομακρύνετε τους δύο οδηγούς, ώστε τα καλώδια να μην μπερδεύονται.

Το επόμενο είναι να καλωδιώσουμε τους ανεμιστήρες. Αυτό είναι αρκετά απλό, οι ανεμιστήρες που είχα διαθέσιμο ήταν βασικοί ανεμιστήρες επεξεργαστή υπολογιστών, οι οποίοι έχουν θετικό και έδαφος. Συνδέστε αυτά τα δύο στις αντίστοιχες +/- καρφίτσες τους στο breadboard και γωνίστε το καθένα προς κάθε οδηγό. (Διαπιστώσαμε ότι επειδή οι βηματικοί κινητήρες λαμβάνουν εκρήξεις πληροφοριών και εντολών για μεγάλο χρονικό διάστημα, οι οδηγοί τείνουν να υπερθερμαίνονται και να μυρίζουν. Με την προσθήκη ανεμιστήρα για ψύξη διορθώθηκε αυτό το ζήτημα).

2. Κωδικός Arduino

Αυτό είναι το εύκολο μέρος!

Ανοίξτε το Arduino IDE μεταβείτε στην καρτέλα "Αρχείο" και μετά μεταβείτε στην καρτέλα "παράδειγμα", η οποία θα πέσει ακόμα πιο κάτω και θα σας δείξει μια καρτέλα "stepper" Στη συνέχεια, θέλετε να ανοίξετε το "Stepper_OneStepAtATime"

Αυτό θα φορτώσει ένα παράδειγμα κώδικα που είναι σχεδόν plug-and-play στην καλωδίωση arduino/μοτέρ. Θα πρέπει να κάνουμε μικρές προσαρμογές γιατί θα έχουμε δύο κινητήρες, τους οποίους θα δείξω παρακάτω. Μπορεί επίσης να χρειαστεί να κάνετε μικρές προσαρμογές ανάλογα με τις καρφίτσες που έχετε αποφασίσει να χρησιμοποιήσετε, αφού το Arduino IDE είναι προεπιλεγμένο στις καρφίτσες 8-11.

Ο κώδικας που χρησιμοποίησα για να κινηθούν οι δύο κινητήρες σε "συγχρονισμό" είναι παρακάτω:

//#περιλαμβάνω

const int stepsPerRevolution = 200;

Stepper myStepper1 (βήματαPerRevolution, 9, 10, 11, 12);

Stepper myStepper2 (βήματαPerRevolution, 4, 5, 6, 7);

int stepCount = 0;

void setup () {// αρχικοποίηση της σειριακής θύρας: Serial.begin (9600); }

void loop () {

myStepper1.step (1);

Serial.print ("βήματα:");

Serial.println (stepCount);

stepCount ++;

καθυστέρηση (0,5).

myStepper2.step (1); καθυστέρηση (0,5). }

3. Πιθανά Προβλήματα

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

Βεβαιωθείτε ότι το πρόγραμμα οδήγησης που χρησιμοποιείτε είναι ικανό να ελέγχει έναν κινητήρα

Ελέγξτε τον σειριακό αριθμό και ελέγξτε τις προδιαγραφές του

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

Έπρεπε να χρησιμοποιήσω ένα πολύμετρο για να ελέγξω κάθε καλώδιο

Και ελέγχετε πάντα διπλά τον κωδικό σας για μικρά σφάλματα, όπως λείπει το τέλος ";" εντολή

Βήμα 10: Μηχανικό

Μηχανικός
Μηχανικός
Μηχανικός
Μηχανικός
Μηχανικός
Μηχανικός
Μηχανικός
Μηχανικός

1. Υλικό

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

Χρησιμοποιήσαμε φύλλα αλουμινίου 032 μετρητών κομμένα σε 9,125 "x 17,5" και ανιχνεύσαμε το μοτίβο από το σχέδιο που παρουσιάστηκε στο προηγούμενο βήμα.

2. Κατασκευή

Χρησιμοποιώντας το σφυρί (το μπλε μηχάνημα) προσθέσαμε στρίφωμα που βλέπει αντίθετες κατευθύνσεις έτσι ώστε όταν το κομμάτι σπάσει και διπλωθεί, τα δύο στρίφια αλληλοσυνδέονται σχηματίζοντας ένα ενιαίο πλήρες κομμάτι.

Για τις μεγάλες στροφές χρησιμοποιήσαμε το tennismith, λόγω της υψηλής ακρίβειας.

Τώρα για τις μικρότερες στροφές, θα θελήσετε να χρησιμοποιήσετε ένα μηχάνημα με μικρότερο πόδι, εδώ μπαίνει ένα μηχάνημα όπως το roto-die. Λόγω του μικρότερου ποδιού του, επιτρέπει να γίνονται μικρότερα διαλείμματα, δυστυχώς, η στρογγυλή μήτρα στη διάθεσή μας ήταν ακόμα πολύ μεγάλη για τη ράγα μας και ήταν παραμορφωμένη.

** Εναλλακτικά, εάν δεν έχετε πρόσβαση στον κατάλληλο εξοπλισμό ή εργαλεία, τότε μπορεί να γίνει αντικατάσταση. **

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

3. Η Ζώνη

Για τις ζώνες χρησιμοποιήσαμε μερικές παλιές ζώνες 3D εκτυπωτή που μπορέσαμε να σώσουμε.

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

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

4. Μεταφορά

Και τελικά η άμαξα ήταν κατασκευασμένη από ένα φύλλο 5 "x 5" από αλουμίνιο 032, με τρυπάνι τρυπημάτων πατημένο εκεί που προορίζονται οι αντίστοιχες βίδες και ροδέλες. Η απόσταση θα ποικίλει ανάλογα με το πόσο μεγάλο είναι το ράγα σας και πόση απόσταση έχετε στις ροδέλες σας.

Βήμα 11: Αντανακλάσεις

Δυστυχώς, κάθε πλευρά του έργου μας έπεσε στο σημαντικό φράγμα του χρόνου και δεν μπορέσαμε να ολοκληρώσουμε το σχεδιασμό μας μέχρι την ημερομηνία -στόχο μας. Κάθε μέλος της ομάδας μας κατέληξε να συνεργάζεται σε κάθε άλλη πτυχή του σχεδιασμού μας, τουλάχιστον σε κάποιο βαθμό, οδηγώντας σε κάποιες πτώσεις του χρόνου καμπύλης μάθησης. Αυτό, σε συνδυασμό με την επιθυμία να σχεδιαστεί ένα προϊόν με όσο το δυνατόν λιγότερους εξωτερικούς πόρους (καθώς όλοι θέλαμε να δημιουργήσουμε τα αντίστοιχα εξαρτήματά μας από την αρχή), οδήγησε σε ένα μεγάλο αριθμό αναθεωρημένων τροχών.

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

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

Συνιστάται: