Στροφές ακριβείας με Γυροσκόπιο.
Οι οδηγίες για την κατασκευή του Robot που χρησιμοποιούμε είναι εδώ.
Στο μάθημα "Βασικές κινήσεις - Στροφές" προγραμματίσαμε το robot να στρίβει δίνοντας κίνηση μόνο στον ένα κινητήρα. Έτσι με την εντολή ορίσαμε πόσο πρέπει να περιστραφεί η μία ρόδα για να στρίψει το ρομπότ εκεί που θέλουμε. Το πρόβλημα που έχουμε με αυτόν τον τρόπο είναι ότι το robot δεν έχει εικόνα από το περιβάλλον γύρο του και το στρίψιμο εξαρτάται μόνο από την διάρκεια περιστροφής του κινητήρα. Μπορεί δηλαδή η σκόνη που μαζεύεται στις λαστιχένιες ρόδες να τις κάνει να γλιστρούν (σπινιάρουν) κι έτσι η στροφή να μην ολοκληρωθεί, παρά το γεγονός ότι ο κινητήρας τελείωσε την προγραμματισμένη κίνησή του.
Για μεγαλύτερη ακρίβεια και για να μην σταματά να περιστρέφεται ο κινητήρας εάν δεν ολοκληρωθεί η στροφή του robot θα χρησιμοποιήσουμε έναν πολύ βασικό αισθητήρα που λέγεται Γυροσκόπιο και βρίσκεται ενσωματωμένος στην Κεντρική Μονάδα.
Όπως έχουμε αναφέρει στο μάθημα για τους Αισθητήρες το Γυροσκόπιο μετράει διαρκώς την περιστροφή του robot στους τρεις βασικούς άξονες όπως φαίνεται στην εικόνα πιο κάτω.
Εάν για παράδειγμα θέλουμε να στρίψουμε 90 μοίρες δεξιά, η λογική είναι να περιστρέφεται ο κινητήρας Α μέχρι το yaw να γίνει 90. Το yaw είναι ένας δείκτης που μας δείχνει διαρκώς πόσες μοίρες περιστρέφεται η Κεντρική Μονάδα ως προς τον κατακόρυφο άξονά της (z).
Επειδή το robot δεν έχει πυξίδα πρέπει πριν κάνουμε κάποια στροφή να μηδενίζουμε το yaw ώστε να μετριέται από το μηδέν η γωνία που θα γίνει. Αυτό γίνεται με την εντολή .
Μέρος Α: Εντολές Αρχικοποίησης κινητήρων
Όπως είδαμε στο μάθημα "Βασικές κινήσεις - Στροφές" πρέπει πρώτα να ορίσουμε:
- τις θύρες που είναι συνδεδεμένοι οι κινητήρες και
- την ταχύτητα που θα κινηθούν. (Στις στροφές η ταχύτητα πρέπει να είναι πολύ μικρή για μεγαλύτερη ακρίβεια).
Έτσι λοιπόν ξεκινάμε με τις πιο κάτω εντολές:
Μέρος Β:
- Μηδενίζουμε τον δείκτη yaw και
- ξεκινάμε δεξιά κίνηση 90 μοιρών.
- Με την εντολή WAIT UNTIL αφήνουμε τους κινητήρες να δουλεύουν μέχρι το yaw να γίνει 90.
- Αμέσως όταν το yaw ξεπεράσει τις 90 μοίρες τότε με την εντολή STOP MOVING σταματάμε τους κινητήρες
Έτσι λοιπόν το πρόγραμμά μας είναι το εξής:
Δραστηριότητα 1
Δημιουργήστε ένα πρόγραμμα που να κάνει το robot να κινείται γύρω από ένα ορθογώνιο αντικείμενο στο εργαστήριο χωρίς να πέσει επάνω του. Προσοχή, το robot πρέπει να στρίβει χρησιμοποιώντας το γυροσκόπιο.
Δραστηριότητα 2
Γιατί το robot στρίβει περισσότερο από 90 μοίρες κάθε φορά; Μπορείτε να εξηγήσετε την αιτία και να βρείτε έναν τρόπο να μην συμβαίνει αυτό;