Κανόνες Εργαστηρίου

traffic lights

    robotics
spike prime rover

Στροφές ακριβείας με Γυροσκόπιο.

Οι οδηγίες για την κατασκευή του Robot που χρησιμοποιούμε είναι εδώ. 

gyro yawΣτο μάθημα "Βασικές κινήσεις - Στροφέςπρογραμματίσαμε το robot να στρίβει δίνοντας κίνηση μόνο στον ένα κινητήρα. Έτσι με την εντολή  ορίσαμε πόσο πρέπει να περιστραφεί η μία ρόδα για να στρίψει το ρομπότ εκεί που θέλουμε. Το πρόβλημα που έχουμε με αυτόν τον τρόπο είναι ότι το robot δεν έχει εικόνα από το περιβάλλον γύρο του και το στρίψιμο εξαρτάται μόνο από την διάρκεια περιστροφής του κινητήρα. Μπορεί δηλαδή η σκόνη που μαζεύεται στις λαστιχένιες ρόδες να τις κάνει να γλιστρούν (σπινιάρουν) κι έτσι η στροφή να μην ολοκληρωθεί, παρά το γεγονός ότι ο κινητήρας τελείωσε την προγραμματισμένη κίνησή του. 


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

 Όπως έχουμε αναφέρει στο μάθημα για τους Αισθητήρες το Γυροσκόπιο μετράει διαρκώς την περιστροφή του robot στους τρεις βασικούς άξονες όπως φαίνεται στην εικόνα πιο κάτω.
yaw axis
Εάν για παράδειγμα θέλουμε να στρίψουμε 90 μοίρες δεξιά, η λογική είναι να περιστρέφεται ο κινητήρας Α μέχρι το yaw να γίνει 90. Το yaw είναι ένας δείκτης που μας δείχνει διαρκώς πόσες μοίρες περιστρέφεται η Κεντρική Μονάδα ως προς τον κατακόρυφο άξονά της (z).
Επειδή το robot δεν έχει πυξίδα πρέπει πριν κάνουμε κάποια στροφή να μηδενίζουμε το yaw ώστε να μετριέται από το μηδέν η γωνία που θα γίνει. Αυτό γίνεται με την εντολή yaw0.

 

Μέρος Α: Εντολές Αρχικοποίησης κινητήρων

Όπως είδαμε στο μάθημα "Βασικές κινήσεις - Στροφές" πρέπει πρώτα να ορίσουμε:

  • τις θύρες που είναι συνδεδεμένοι οι κινητήρες και
  • την ταχύτητα που θα κινηθούν. (Στις στροφές η ταχύτητα πρέπει να είναι πολύ μικρή για μεγαλύτερη ακρίβεια).

Έτσι λοιπόν ξεκινάμε με τις πιο κάτω εντολές: 

 start motors

Μέρος Β: 

  • Μηδενίζουμε τον δείκτη yaw και
  • ξεκινάμε δεξιά κίνηση 90 μοιρών.

right 90 

  • Με την εντολή WAIT UNTIL αφήνουμε τους κινητήρες να δουλεύουν μέχρι το yaw να γίνει 90.

right 90 yaw nextwait until

  • Αμέσως όταν το yaw ξεπεράσει τις 90 μοίρες τότε με την εντολή STOP MOVING σταματάμε τους κινητήρες

Έτσι λοιπόν το πρόγραμμά μας είναι το εξής:
right 90 example

Δραστηριότητα 1  

Δημιουργήστε ένα πρόγραμμα που να κάνει το robot να κινείται γύρω από ένα ορθογώνιο αντικείμενο στο εργαστήριο χωρίς να πέσει επάνω του. Προσοχή, το robot πρέπει να στρίβει χρησιμοποιώντας το γυροσκόπιο.
turns drastiriotita2

Δραστηριότητα 2

Γιατί το robot στρίβει περισσότερο από 90 μοίρες κάθε φορά; Μπορείτε να εξηγήσετε την αιτία και να βρείτε έναν τρόπο να μην συμβαίνει αυτό;