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

Arduino Controlled Robotic Arm W/ 6 Degrees of Freedom: 5 βήματα (με εικόνες)
Arduino Controlled Robotic Arm W/ 6 Degrees of Freedom: 5 βήματα (με εικόνες)

Βίντεο: Arduino Controlled Robotic Arm W/ 6 Degrees of Freedom: 5 βήματα (με εικόνες)

Βίντεο: Arduino Controlled Robotic Arm W/ 6 Degrees of Freedom: 5 βήματα (με εικόνες)
Βίντεο: Leap Motion SDK 2024, Ιούλιος
Anonim
Arduino Controlled Robotic Arm W/ 6 Degrees of Freedom
Arduino Controlled Robotic Arm W/ 6 Degrees of Freedom
Arduino Controlled Robotic Arm W/ 6 Degrees of Freedom
Arduino Controlled Robotic Arm W/ 6 Degrees of Freedom
Arduino Controlled Robotic Arm W/ 6 Degrees of Freedom
Arduino Controlled Robotic Arm W/ 6 Degrees of Freedom

Είμαι μέλος μιας ομάδας ρομποτικής και κάθε χρόνο η ομάδα μας συμμετέχει σε ένα ετήσιο Mini-Maker Faire. Από το 2014, αποφάσισα να δημιουργήσω ένα νέο έργο για κάθε εκδήλωση κάθε έτους. Εκείνη τη στιγμή, είχα περίπου ένα μήνα πριν από την εκδήλωση να συνθέσω κάτι και δεν είχα ιδέα τι ήθελα να κάνω.

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

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

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

Βήμα 1: Αυτό που χρειάζεστε - υλικό και ηλεκτρονικά

Τι χρειάζεστε - Υλικό & Ηλεκτρονικά
Τι χρειάζεστε - Υλικό & Ηλεκτρονικά
Τι χρειάζεστε - Υλικό & Ηλεκτρονικά
Τι χρειάζεστε - Υλικό & Ηλεκτρονικά

Ο αρχικός σχεδιαστής του έργου έζησε στην Ευρώπη και στη συνέχεια χρησιμοποίησε μετρήσεις και υλικά που ήταν κοινά εκεί. Για παράδειγμα, ο πίνακας τύπου που χρησιμοποίησε για το σώμα είχε ένα πρότυπο πάχους 5 mm. Παρόμοιο υλικό εδώ στις Η. Π. Α.

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

  • 22 - Αναστολές M3 x 0.5 x 23mm
  • 15 - M3 x 15mm Αποστάτες
  • 40 - Βίδες M3
  • M3 Hex καρύδια
  • M3 Βίδες 25mm
  • 1 - Άνοιξη
  • Ταινία τοποθέτησης διπλής όψης 3/4"
  • 5 - SG 5010 TowerPro Servo
  • 1 - SG92R TowerPro μίνι σερβο
  • 1 - SG90 TowerPro μίνι σερβο
  • Κεφαλίδα κεφαλής μονής σειράς 2,54 mm
  • 1 - Μισό μέγεθος Breadboard
  • 1 - Γυναικεία/αρσενικά καλώδια "Extension" Jumper - 40 x 6"
  • Μπλε ακρυλικό φύλλο 1 - 12 "x 24" ή κομμάτια κομμένα με λέιζερ από τον αγαπημένο σας πάροχο υπηρεσιών
  • 2 - 3mm x 20mm + 4mm x 5mm Διαχωριστικά ρουλεμάν αρμών 3D εκτυπωμένα (δείτε παρακάτω)
  • 1 - Πίνακας ελέγχου *Βλέπε Σημείωση στην ενότητα Καλωδίωση
  • 1 - Διάχυτο LED RGB (τριών χρωμάτων) 10mm
  • 1 - Arduino Uno
  • 1 - Τυπική οθόνη LCD 16x2 + επιπλέον - λευκό σε μπλε
  • Σακίδιο LCD 1 - i2c / SPI
  • 1-Adafruit 16-Channel 12-bit PWM/Servo Driver
  • 1 - MCP3008 - ADC 8 καναλιών 10 bit με διεπαφή SPI
  • 3 - Αισθητήρας μονάδας JoyStick Breakout Module *Δείτε την σημείωση στην ενότητα Καλωδίωση
  • DC Barrel Jack
  • Προσαρμογέας AC σε DC
  • Servo Extension καλώδια - διάφορα μήκη

Σχεδόν όλα τα μέρη για αυτόν τον βραχίονα κόπηκαν από ακρυλικό 1/8 της ίντσας. Ωστόσο, οι δύο αποστάτες ρουλεμάν αρμών πρέπει να εκτυπωθούν. Επίσης, ο αρχικός σχεδιασμός προέβλεπε ότι οι δύο βάσεις διαχωριστικών αρθρώσεων θα έχουν ύψος 7 mm στον άξονα του ρουλεμάν. Όταν ξεκίνησα τη συναρμολόγηση του άνω βραχίονα, έγινε γρήγορα σαφές ότι αυτά ήταν πολύ ψηλά λόγω του ύψους των σερβιτόρων TowerPro. Έπρεπε να έχω νέα αρθρωτά ρουλεμάν με βάση μόνο 3 χιλιοστά ύψος, το οποίο, παρεμπιπτόντως, ήταν ακόμα πολύ ψηλό αλλά διαχειρίσιμο. Θα θέλετε να λάβετε υπόψη το σχετικό ύψος των servos σας και να υπολογίσετε την απόσταση μεταξύ των δύο κάτω βραχιόνων:

Σέρβο ύψος + σερβοκόρνα + έδρανο αρμού + ταινία διπλής όψης = 47mm +/- 3mm.

Βήμα 2: Συναρμολόγηση βραχιόνων

Συναρμολόγηση βραχιόνων
Συναρμολόγηση βραχιόνων
Συναρμολόγηση βραχιόνων
Συναρμολόγηση βραχιόνων
Συναρμολόγηση βραχιόνων
Συναρμολόγηση βραχιόνων
Συναρμολόγηση βραχιόνων
Συναρμολόγηση βραχιόνων

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

  1. Συνδέστε το σερβιτόρο βάσης στην επάνω πλάκα βάσης χρησιμοποιώντας τις βίδες M3 25mm και τα εξαγωνικά παξιμάδια. Μην σφίγγετε υπερβολικά!
  2. Εάν χρησιμοποιείτε τη λίστα με τα εξαρτήματα που έχω παραπάνω, θα θελήσετε στη συνέχεια να συναρμολογήσετε τους 5 αποστάτες βάσης, βιδώνοντας μαζί 2 από τις προεξοχές M3 x 0,5 x 23mm και, στη συνέχεια, συνδέοντάς τες με το εξάγωνο παξιμάδι στην επάνω πλάκα βάσης.
  3. Συνδέστε την κάτω πλάκα βάσης στις προεξοχές με 5 βίδες Μ3.
  4. Συνδέστε την πλάκα ώμου στις δύο πλάκες στήριξης σερβομηχανισμού χρησιμοποιώντας ακρυλική ασφαλή κόλλα. Χρησιμοποίησα κόλλα Gorilla εδώ. ΣΗΜΕΙΩΣΗ: Κάθε μία από τις δύο σερβο πλάκες έχει μια τρύπα στο πίσω μέρος που επιτρέπει την τοποθέτηση ενός διαχωριστικού οπλισμού που τις συνδέει. Βεβαιωθείτε ότι οι τρύπες ευθυγραμμίζονται!* Ενώ έχετε την κόλλα στη διάθεσή σας, προχωρήστε και ενώστε την πλάκα στερέωσης στον καρπό με την κύρια πλάκα της λαβής.* Προαιρετικά, μπορείτε επίσης να κολλήσετε την πλάκα σερβομηχανισμού καρπού στις δύο πλάκες άρθρωσης καρπού. Δεν το έκανα αυτό εκλέγοντας αντί να τα βιδώσω μαζί με τις αντιδράσεις όπως περιγράφεται παρακάτω.

  5. Συνδέστε το πλέον ωριμασμένο συγκρότημα ώμων στο σερβο βάσης. Χρησιμοποίησα το φαρδύτερο κέρατο που περιλαμβανόταν με το σερβο που ήταν το κέρατο στερέωσης των έξι στελεχών.
  6. Η προσθήκη του πλαισίου του κάτω βραχίονα στα servos ώμων μπορεί να είναι δύσκολη. Προτείνω να στερεώσετε τα κέρατα στα πλαίσια του κάτω βραχίονα πριν προχωρήσετε. ΣΗΜΕΙΩΣΗ: Βεβαιωθείτε ότι έχετε συγκεντρώσει τα servos σας για το συγκρότημα ώμων ΠΡΙΝ τα στερεώσετε στο πλαίσιο. Αυτά τα δύο σερβίς πρέπει να κινούνται από κοινού και αν δεν είναι σωστά ευθυγραμμισμένα, θα προκαλέσουν τουλάχιστον σερβο τρεμούλα και, αν δεν είναι αρκετά ευθυγραμμισμένα, θα μπορούσαν να προκαλέσουν ζημιά στο πλαίσιο ή τα σερβίτσια. * Κάθε ένα από τα servos ώμων είναι τοποθετημένο με τα βραχίονά του στο πίσω μέρος των πλακών στήριξης αντί να περνάτε τα servos από τις πλάκες - αυτό θα σας επιτρέψει να σπρώξετε την κόρνα στον άξονα σερβο σε γωνία και να ασφαλίσετε τη βίδα. Μην στερεώνετε ακόμα το σερβο στην πλάκα στερέωσης. * Στη συνέχεια, προσθέστε το εσωτερικό σερβο και τοποθετήστε το βραχίονα

  7. Συναρμολογήστε το πλαίσιο του άνω βραχίονα και τα servos σπρώχνοντας τα servos μέσα στα διαστήματα των βραχιόνων και στη συνέχεια εισάγοντας τα διαχωριστικά μεταξύ των δύο πλακών του άνω βραχίονα και ασφαλίστε με βίδες Μ3.
  8. Προσθέστε κολλητική ταινία διπλής όψης στο πίσω μέρος του αποστάτη αγκώνων και κόψτε την περίσσεια.
  9. Συνδέστε το διαχωριστικό στο κάτω μέρος του σερβο που θα λειτουργήσει ως ενεργοποιητής αγκώνα.
  10. Περάστε το συγκρότημα του άνω βραχίονα στο πλαίσιο του συγκροτήματος του κάτω βραχίονα και στερεώστε τις βίδες σερβοκόρνας.
  11. Προσθέστε αντιδράσεις ενίσχυσης ανάμεσα σε δύο πλάκες κάτω βραχίονα. Χρησιμοποίησα δύο αντί για τέσσερις για να μειώσω το βάρος.
  12. Προσθέστε κολλητική ταινία διπλής όψης στο πίσω μέρος του άνω διαχωριστή του καρπού και κόψτε την περίσσεια.
  13. Συνδέστε το διαχωριστικό στο κάτω μέρος του σερβο που θα λειτουργήσει ως ενεργοποιητής καρπού.
  14. Συνδέστε την εξωτερική πλάκα στον καρπό σερβοκόρνα και στερεώστε τη με μια βίδα κέρατος.
  15. Συναρμολογήστε το πιάτο σερβομηχανισμού καρπού με τις δύο πλάκες άρθρωσης του καρπού και τις προεξοχές.
  16. Στερεώστε το σερβοφόρο καρπό στο πιάτο σερβο με την πλάκα σέρβο σφιγκτήρα.
  17. Θα χρειαστεί να στερεώσετε την κόρνα του καρπού στο σερβο, πριν συνδέσετε τη διάταξη λαβής σε αυτό το κέρατο λόγω του μπλοκαρίσματος του κοχλία ανοίγματος.
  18. Συναρμολογήστε χαλαρά τα κομμάτια πιασίματος για να ταιριάξουν πριν στερεώσετε το κέρατο σερβού πιασίματος στο σερβο. Αυτό θα σας επιτρέψει να χαλάσετε την κόρνα στο προηγούμενο βήμα.
  19. Συνδέστε το κέρατο της λαβής στο σερβο του και σφίξτε περαιτέρω τις βίδες που συγκρατούν τις αρθρώσεις πιασίματος. ΣΗΜΕΙΩΣΗ: Μην σφίγγετε εντελώς αυτά τα παξιμάδια και τα μπουλόνια καθώς πρέπει να είναι χαλαρά για να επιτρέψει τη λαβή να κινηθεί.

Βήμα 3: Καλωδίωση και πίνακας ελέγχου

Καλωδίωση και πίνακας ελέγχου
Καλωδίωση και πίνακας ελέγχου
Καλωδίωση και πίνακας ελέγχου
Καλωδίωση και πίνακας ελέγχου
Καλωδίωση και πίνακας ελέγχου
Καλωδίωση και πίνακας ελέγχου

Δημιούργησα αυτό το έργο ως πλατφόρμα ανάπτυξης για μερικές ιδέες που έχω για ένα μεταγενέστερο εκπαιδευτικό έργο. Έτσι, οι περισσότερες από τις συνδέσεις μου είναι απλοί συνδετήρες dupont. Η μόνη συγκόλληση που έκανα ήταν για το MCP3008. Εάν μπορείτε να βρείτε μια πλακέτα διάσπασης για αυτό το στοιχείο, τότε θα πρέπει να μπορείτε να κατασκευάσετε αυτήν τη συγκόλληση βραχιόνων δωρεάν.

Υπάρχουν 3 ομάδες συστατικών:

  1. Είσοδοι - Αυτά τα στοιχεία λαμβάνουν πληροφορίες από τον χρήστη και αποτελούνται από τα joystick και το mcp3008 ADC.
  2. Έξοδος - Αυτά τα στοιχεία μεταφέρουν δεδομένα στον κόσμο είτε εμφανίζοντας κατάσταση στον χρήστη είτε ενημερώνοντας τα servos με δεδομένα θέσης. Αυτά τα στοιχεία είναι η οθόνη LCD, το σακίδιο LCD, το LED RGB, η πλακέτα οδηγού Servo και τέλος τα servos.
  3. Επεξεργασία - Το Arduino ολοκληρώνει την τελευταία ομάδα που λαμβάνει τα δεδομένα από τις εισόδους και ωθεί τα δεδομένα προς τις εξόδους σύμφωνα με τις οδηγίες κώδικα.

Το παραπάνω διάγραμμα Fritzing περιγράφει λεπτομερώς τις συνδέσεις ακίδων για όλα τα εξαρτήματα.

Εισροές

Θα ξεκινήσουμε με τις εισόδους. Τα χειριστήρια είναι αναλογικές συσκευές - που σημαίνει ότι παρουσιάζουν μια μεταβλητή τάση ως είσοδο στο Arduino. Κάθε ένα από τα τρία χειριστήρια έχει δύο αναλογικές εξόδους για το Χ και το Υ (επάνω, κάτω, αριστερά δεξιά) κάνοντας συνολικά 6 εισόδους στο Arduino. Ενώ το Arduino Uno διαθέτει 6 αναλογικές εισόδους, πρέπει να χρησιμοποιήσουμε δύο από αυτές τις ακίδες για επικοινωνία I2C στην οθόνη και σερβο χειριστήριο.

Εξαιτίας αυτού, ενσωμάτωσα τον μετατροπέα αναλογικού σε ψηφιακό MCP3008 (ADC). Αυτό το τσιπ δέχεται έως και 8 αναλογικές εισόδους και τις μετατρέπει σε ψηφιακό σήμα μέσω των ακίδων επικοινωνίας του Arduino SPI ως εξής:

  • MCP Pins 1-6> Μεταβλητές έξοδοι των χειριστηρίων αντίχειρα
  • MCP Pins 7 & 8> Δεν υπάρχει σύνδεση
  • MCP Pin 9 (DGND)> Ground
  • MCP Pin 10 (CS/SHDN)> Uno Pin 12
  • MCP Pin 11 (DIN)> Uno Pin 11
  • MCP Pin 12 (DOUT)> Uno Pin 10
  • MCP Pin 13 (CLK)> Uno Pin 9
  • MCP Pin 14 (AGND)> Ground
  • MCP Pin 15 & 16> +5V

Οι συνδέσεις του joystick στο σχηματικό παρουσιάζονται για παράδειγμα. Ανάλογα με το ποια χειριστήρια αγοράζουν και πώς είναι τοποθετημένα, οι συνδέσεις σας μπορεί να διαφέρουν από τις δικές μου. Διαφορετικές μάρκες του χειριστηρίου μπορεί να έχουν διαφορετικό pinout και επίσης να προσανατολίζουν διαφορετικά τα Χ και Υ. Αυτό που είναι σημαντικό είναι να κατανοήσουμε τι αντιπροσωπεύει κάθε είσοδος στο ADC. Κάθε καρφίτσα αντιπροσωπεύει τις ακόλουθες σχέσεις στον κωδικό μου:

  • Καρφίτσα 1 - Η βάση - Τα αναλογικά δεδομένα σε αυτόν τον πείρο θα περιστρέψουν το χαμηλότερο σερβο στο ρομπότ
  • Καρφίτσα 2 - Ο ώμος - Τα αναλογικά δεδομένα σε αυτόν τον πείρο θα περιστρέψουν τα δύο servos πάνω από το βασικό σερβο
  • Καρφίτσα 3 - Ο αγκώνας - Τα αναλογικά δεδομένα σε αυτόν τον πείρο θα περιστρέψουν το επόμενο σερβο πάνω από τα servos ώμων
  • Pin 4 - UP/DN Wrist - Τα αναλογικά δεδομένα σε αυτόν τον πείρο θα περιστρέψουν το σερβο του καρπού, ανεβάζοντας και κατεβάζοντας το συγκρότημα της λαβής
  • Pin 5 - The Gripper - Τα αναλογικά δεδομένα σε αυτόν τον πείρο θα ανοίγουν και θα κλείνουν τη λαβή
  • Καρφίτσα 6 - Περιστροφή καρπού - Τα αναλογικά δεδομένα σε αυτόν τον πείρο θα περιστρέψουν τη λαβή

ΣΗΜΕΙΩΣΗ: Όταν αγοράζετε και τοποθετείτε τα χειριστήρια αντίχειρα που αναφέρονται στη λίστα εξαρτημάτων, λάβετε υπόψη ότι ο προσανατολισμός των μονάδων ενδέχεται να διαφέρει από τον δικό μου, οπότε δοκιμάστε τις εξόδους x και y για σωστή σύνδεση με το ADC. Επίσης, εάν χρησιμοποιείτε τον τρισδιάστατο εκτυπωμένο πίνακα ελέγχου μου, οι οπές στερέωσης ενδέχεται να μετατοπιστούν από τη δική μου.

Έξοδοι

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

Τα Servos συνδέονται ως εξής:

  • Θέση 0 - Σέρβο βάσης
  • Θέση 1 - Servo ώμου (Servo Y Cable)
  • Θέση 2 - Σέρβο αγκώνα
  • Θέση 3 - Καρπός 1 Servo
  • Θέση 4 - Gripper Servo
  • Θέση 5 - Καρπός 2 Servo

Επιπλέον, τα VCC και V + είναι και τα δύο συνδεδεμένα σε +5 Volts και το GND είναι συνδεδεμένο στο Ground.

ΣΗΜΕΙΩΣΗ 1: Μια ΜΕΓΑΛΗ σημείωση εδώ: Η τάση τροφοδοσίας για ολόκληρο το έργο εισέρχεται μέσω του μπλοκ ακροδεκτών ισχύος στον πίνακα ελέγχου Servo. Ο πείρος V+ στο Servo Controller τροφοδοτεί στην πραγματικότητα ισχύ από το μπλοκ ακροδεκτών στο υπόλοιπο κύκλωμα. Εάν πρέπει να προγραμματίσετε το Uno σας, συνιστώ ανεπιφύλακτα να αποσυνδέσετε τον πείρο V+ πριν συνδέσετε το Uno στον υπολογιστή σας, καθώς η τρέχουσα ανάληψη από τα servos θα μπορούσε να βλάψει τη θύρα USB.

ΣΗΜΕΙΩΣΗ 2: Χρησιμοποιώ προσαρμογέα τοίχου 6V AC σε DC για να τροφοδοτήσω το έργο. Προτείνω έναν προσαρμογέα που μπορεί να παρέχει τουλάχιστον 4Α ρεύματος, έτσι ώστε όταν συνδέεται ένα ή περισσότερα από τα servos, η ξαφνική άνοδος του ρεύματος δεν σβήνει το σύστημά σας και επαναφέρει το Arduino.

Η οθόνη LCD 16X2 συνδέεται με το σακίδιο πλάτης Adafruit LCD για να επωφεληθείτε από τη διεπαφή I2C που χρησιμοποιείται ήδη από το Servo Controller. Το SCL στο Servo Controller και το CLK στο Σακίδιο συνδέονται και τα δύο με το pin A5 στο Uno. Ομοίως, το SDA στο Servo Controller και το DAT στο σακίδιο συνδέονται και τα δύο στο Pin A4 στο Uno. Επιπλέον, 5V συνδέεται με +5 Volts και το GND είναι συνδεδεμένο στο Ground. Το LAT στο σακίδιο δεν συνδέεται με τίποτα.

Τέλος, το LED RGB συνδέεται με τις ακίδες 7 (RED), 6 (Green) και 5 (Blue) στο Uno. Το πόδι γείωσης του LED συνδέεται με τη Γείωση μέσω αντίστασης 330 Ohm.

Επεξεργασία

Τελευταίο αλλά εξίσου σημαντικό, οι υπόλοιπες συνδέσεις Arduino που δεν αναφέρονται παραπάνω είναι οι εξής: Το pin 5V συνδέεται με +5 Volts και το GND συνδέεται με το Ground.

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

Βήμα 4: Κωδικός

Κώδικας
Κώδικας

Όπως προαναφέρθηκε, αρχικά έχτισα αυτό το έργο ως επίδειξη για το τοπικό μου Maker Faire. Σκόπευα να είναι κάτι για παιδιά και ενήλικες να παίζουν μαζί στο περίπτερό μας. Όπως αποδείχθηκε, ήταν πολύ πιο δημοφιλές από ό, τι είχα φανταστεί - τόσο πολύ, που τα παιδιά τσακώνονταν γι 'αυτό. Έτσι, όταν ήρθε η ώρα για μια επανεγγραφή, ενσωμάτωσα μια "Λειτουργία επίδειξης" που εφαρμόζει ένα χρονικό όριο.

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

Βασική λειτουργία

Ο κώδικας που παρατίθεται στην παρακάτω ενότητα αναφοράς είναι αρκετά απλός. Ένας πίνακας παρακολουθεί τους 6 συνδέσμους με min, max εκτάσεις, μια αρχική θέση και την τρέχουσα θέση. Όταν ενεργοποιείται ο βραχίονας, η λειτουργία εκκίνησης καθορίζει τις βιβλιοθήκες που απαιτούνται για να μιλήσουν με το MCP3008, το LCD Backpack (και στη συνέχεια την οθόνη) και καθορίζει τις ακίδες LED. Από εκεί κάνει έναν βασικό έλεγχο συστημάτων και προχωρά στο σπίτι του βραχίονα. Η αρχική λειτουργία ξεκινά με τη λαβή και φτάνει μέχρι τη βάση, έτσι ώστε να ελαχιστοποιείται η πιθανότητα δέσμευσης υπό κανονικές συνθήκες. Εάν ο βραχίονας είναι πλήρως τεντωμένος, τότε ίσως είναι καλύτερο να στεγάσετε χειροκίνητα τον βραχίονα πριν τον τροφοδοτήσετε. Δεδομένου ότι τα γενικά servos δεν παρέχουν ανατροφοδότηση για τη θέση του, πρέπει να τοποθετήσουμε το καθένα σε ένα προκαθορισμένο σημείο και να παρακολουθούμε πόσο μακριά έχει μετακινηθεί το καθένα.

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

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

Βήμα 5: Σύνδεσμοι και πόροι

Βιβλιογραφικές αναφορές

  • Δημοσίευση που ενέπνευσε αυτό το έργο
  • Δημοσιεύσεις ιστολογίου αρχικών σχεδιαστώνΤο δικό μου ρομποτικό μπράτσο Μίνι σερβο λαβές και ολοκληρωμένος ρομποτικός βραχίονας Πολλαπλασιάστε τον ρομποτικό βραχίονα και τα ηλεκτρονικά
  • Thingiverse Arm
  • Thingiverse Mini Servo Gripper

Βιβλιοθήκες λογισμικού

  • Πόροι Adafruit PWM/Servo Controller
  • Βιβλιοθήκη MCP3008
  • Φύλλο δεδομένων MCP3008

Πίνακας Ελέγχου και Κωδικός

  • Tinkercad σχέδιο του Πίνακα που έφτιαξα
  • Τρέχον αποθετήριο κώδικα

Συνιστάται: