Το VEX IQ Smart Motor διαθέτει πολλές λειτουργίες για χρήση κατά την κωδικοποίηση στο VEXcode IQ. Αυτό μπορεί να φανεί χρήσιμο κατά την κωδικοποίηση βραχιόνων, δαγκάνων και εισαγωγών, καθώς και συστημάτων μετάδοσης κίνησης και άλλων μηχανισμών που δημιουργούνται με το VEX IQ. Η κατανόηση του τρόπου κωδικοποίησης των κινητήρων θα βοηθήσει στην άμβλυνση προβλημάτων όπως η καθυστέρηση των έργων ή η μη λειτουργία των κινητήρων όπως προβλέπεται.
Κωδικοποιητής κινητήρα
Ο έξυπνος κινητήρας VEX IQ όχι μόνο μετατρέπει την ηλεκτρική ενέργεια σε μηχανική ενέργεια, όπως κάνουν οι περισσότεροι κινητήρες, αλλά διαθέτει επίσης χαρακτηριστικά που δεν διαθέτουν οι περισσότεροι κινητήρες, τα οποία τον καθιστούν «έξυπνο». Ένα από τα κύρια χαρακτηριστικά του είναι ο κωδικοποιητής τετραγωνισμού. Αυτός ο κωδικοποιητής είναι τοποθετημένος στο εσωτερικό του κινητήρα για να παρακολουθεί την ταχύτητα ή/και τη θέση του άξονα του κινητήρα.
Οι αναφορές από τον κωδικοποιητή του VEX IQ Smart Motor καθιστούν δυνατή την ενημέρωση:
- Η κατεύθυνση περιστροφής του κινητήρα (εμπρός/πίσω ή άνοιγμα/κλείσιμο)
- Η θέση του κινητήρα και η ποσότητα στροφών και θέσης του κινητήρα (είτε σε στροφές είτε σε μοίρες)
- Η ταχύτητα περιστροφής του κινητήρα (βάσει της θέσης του κωδικοποιητή με την πάροδο του χρόνου)
Επειδή ο κωδικοποιητής αναφέρει τις καταστάσεις του κινητήρα, αυτές μπορούν να χρησιμοποιηθούν σε υπολογισμούς στο παρασκήνιο για να λειτουργήσουν πολλές από τις εντολές Κίνησης και Αισθητήρα εντός του VEXcode IQ.
Κωδικοποίηση μεμονωμένων κινητήρων
Πριν ξεκινήσετε τον κωδικοποίηση μεμονωμένων έξυπνων κινητήρων στο VEXcode IQ, πρέπει να διαμορφώσετε τον κινητήρα. Μεμονωμένοι κινητήρες χρησιμοποιούνται συχνά για πρόσθετους μηχανισμούς όπως εισαγωγές, βραχίονες και δαγκάνες. Ωστόσο, όλες οι πληροφορίες εξακολουθούν να ισχύουν για άλλους μηχανισμούς που χρησιμοποιούν μεμονωμένους κινητήρες.
Ακολουθήστε τα βήματα σε αυτό το άρθρο για να διαμορφώσετε τον δικό σας κινητήρα στο VEXcode IQ.
Με έναν μόνο κινητήρα διαμορφωμένο, οι εντολές για τον έλεγχο αυτού του κινητήρα θα εμφανίζονται στην Εργαλειοθήκη. Θα παρατηρήσετε ότι υπάρχουν διαφορετικοί τύποι εντολών: αναμονή και μη αναμονή.
Εντολές αναμονής έναντι εντολών μη αναμονής
Σημειώστε ότι όλες οι εικόνες εδώ δείχνουν μπλοκ. Όλα αυτά τα έργα μπορούν να ανακατασκευαστούν σε Python ή C++ και να περιέχουν την ίδια λειτουργικότητα με τα μπλοκ.
Οι εντολές αναμονής εμποδίζουν τη συνέχιση του έργου μέχρι να ολοκληρωθεί η συμπεριφορά. Αυτές περιλαμβάνουν εντολές όπως [Περιστροφή για] και [Περιστροφή στη θέση].
Το έργο που εμφανίζεται εδώ χρησιμοποιεί ένα πρότυπο Clawbot (2 κινητήρων) και όλες οι εντολές είναι σε αναμονή. Έτσι, σε σειρά, ο κινητήρας με δαγκάνα θα έκλεινε κατά 90 μοίρες, το ρομπότ θα κινούνταν αντίστροφα και στη συνέχεια ο βραχίονας θα περιστρεφόταν προς τα πάνω για να φτάσει στη θέση 180 μοίρες.
Αντίθετα, υπάρχουν εντολές που δεν αναμένουν. Μια εντολή που δεν βρίσκεται σε αναμονή θα εκτελεί τη συμπεριφορά επ' αόριστον ή μέχρι να της ζητηθεί να αλλάξει σε μια άλλη συμπεριφορά. Αυτές περιλαμβάνουν εντολές όπως [Spin].
Το έργο που παρουσιάζεται εδώ χρησιμοποιεί ένα BaseBot με προσθήκη εισαγωγής αέρα. Εδώ ο κινητήρας εισαγωγής θα άρχιζε να περιστρέφεται. Η εντολή [Αναμονή] είναι μια εντολή αναμονής, επομένως η εισαγωγή θα συνεχίσει να περιστρέφεται μέχρι να περάσουν τα 2 δευτερόλεπτα και στη συνέχεια θα μεταβεί στην επόμενη εντολή στο έργο, η οποία είναι η εντολή [Διακοπή]. Τότε ο κινητήρας θα σταματούσε να περιστρέφεται.
Χρονικά όρια κινητήρα
Όταν κωδικοποιείτε έναν κινητήρα ως μέρος ενός βραχίονα ή ενός νυχιού, είναι σημαντικό να θυμάστε τη διαφορά μεταξύ των μπλοκ αναμονής και των μπλοκ που δεν αναμένουν και πώς αυτά θα επηρεάσουν την κίνηση του ρομπότ σας. Τα χρονικά όρια του κινητήρα σάς επιτρέπουν να ορίσετε ένα χρονικό όριο για να φτάσει ο κινητήρας στην προβλεπόμενη θέση-στόχο. Εάν δεν έχει φτάσει σε αυτήν τη θέση όταν λήξει ο χρόνος, ο κινητήρας θα σταματήσει να προσπαθεί να περιστραφεί και το έργο θα μετακινηθεί στην επόμενη εντολή.
Σε αυτό το παράδειγμα, το χρονικό όριο του κινητήρα έχει οριστεί σε 2 δευτερόλεπτα. Εάν το νύχι δεν πλησιάσει τις 90 μοίρες εντός 2 δευτερολέπτων, ο κινητήρας θα σταματήσει να περιστρέφεται στο σημάδι των 2 δευτερολέπτων, στη συνέχεια θα προχωρήσει στην επόμενη εντολή και θα κινηθεί προς τα εμπρός.
Εάν δεν είστε σίγουροι για την απόσταση που πρέπει να μετακινήσετε έναν κινητήρα, χρησιμοποιήστε τον πίνακα ελέγχου με αισθητήρες. Ο πίνακας ελέγχου αναφέρει τη θέση του κινητήρα σε μοίρες και στροφές, επομένως καθώς κινείτε έναν κινητήρα (όπως ανοίγοντας και κλείνοντας ένα νύχι) οι αριθμοί θα αλλάζουν. Χρησιμοποιήστε αυτήν τη δοκιμή για να προσδιορίσετε πόσες μοίρες ή περιστροφές χρειάζονται για να κλείσετε ένα δάχτυλο, να σηκώσετε έναν βραχίονα, να περιστρέψετε μια εισαγωγή κ.λπ.
Δείτε αυτά τα άρθρα για να μάθετε πώς να χρησιμοποιείτε τον πίνακα ελέγχου αισθητήρων.
Κωδικοποίηση Έξυπνων Κινητήρων ως Μέρος ενός Συστήματος Μετάδοσης Κίνησης
Πριν ξεκινήσετε τον κωδικοποίηση ενός συστήματος μετάδοσης κίνησης στο VEXcode IQ, πρέπει να διαμορφώσετε το σύστημα μετάδοσης κίνησης, συμπεριλαμβανομένων των κινητήρων που χρησιμοποιούνται. Οι κινητήρες έχουν διαμορφωθεί εντός του συστήματος μετάδοσης κίνησης ώστε να διασφαλίζεται ότι ελέγχονται με τις ίδιες εντολές όπως [Drive] και [Drive for].
Εντολές αναμονής και μη αναμονής
Κατά τον κωδικοποίηση ενός συστήματος μετάδοσης κίνησης, είναι διαθέσιμες εντολές αναμονής και μη αναμονής για τον έλεγχο της κίνησης του ρομπότ.
Οι εντολές αναμονής εμποδίζουν τη συνέχιση του έργου μέχρι να ολοκληρωθεί η συμπεριφορά. Αυτές περιλαμβάνουν εντολές όπως [Οδηγήστε για] [Στρίψτε για] και [Στρίψτε προς την κατεύθυνση].
Το έργο που εμφανίζεται εδώ χρησιμοποιεί ένα πρότυπο Clawbot (2 κινητήρων) και όλες οι εντολές είναι σε αναμονή. Έτσι, σε σειρά, το ρομπότ θα κινείται προς τα εμπρός για 200 χιλιοστά και στη συνέχεια θα στρίβει δεξιά χρησιμοποιώντας το σύστημα μετάδοσης κίνησης.
Αντίθετα, υπάρχουν εντολές που δεν αναμένουν. Μια εντολή που δεν βρίσκεται σε αναμονή θα εκτελεί τη συμπεριφορά επ' αόριστον ή μέχρι να της ζητηθεί να αλλάξει σε μια άλλη συμπεριφορά. Αυτές περιλαμβάνουν εντολές όπως [Drive].
Το έργο που παρουσιάζεται εδώ χρησιμοποιεί ένα BaseBot. Εδώ το ρομπότ θα κινούνταν επ' αόριστον μέχρι να πατηθεί ο διακόπτης προφυλακτήρα. Στη συνέχεια, το έργο θα προχωρούσε στην επόμενη εντολή και το ρομπότ θα σταματούσε να οδηγεί και θα στρίβει δεξιά κατά 90 μοίρες.