Εκπαιδευτική Ρομποτική
Κατασκευή ρομπότ Rover ακολουθώντας οδηγίες.

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

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

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

 Πιο κάτω βλέπετε ένα εκπαιδευτικό σύστημα ρομπότ Lego (είσοδοι, κεντρική μονάδα, έξοδοι).
Lego-Mindstorms-EV3-Brick-und-Sensoren

Το ρομπότ τύπου Rover που θα κατασκευάσουμε.

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

 rover2

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

Μέρος Α. (Κατασκευή ρομπότ)

Κάντε κλικ δίπλα και κατεβάστε τις οδηγίες κατασκευής:  Μέρος α. Μέρος β.

Μέρος Β. (Περιβάλλον προγραμματισμού)

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

commands1Εκτέλεση εντολών ακολουθιακά δηλαδή η μια εντολή μετά την άλλη.

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

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

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

repeat 

Γύρισε πίσω και επανέλαβε Ν φορές κάποιες εντολές ή

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

Στην τέταρτή μας αποστολή θα χρησιμοποιήσουμε τον αισθητήρα των υπερύθρων ο οποίος θα στέλνει πληροφορίες στο πρόγραμμα που θα δημιουργήσουμε για την απόσταση του τοίχου στα δεξιά του ρομπότ. Εάν η απόσταση είναι μεγαλύτερη από μια τιμή που θα ορίσουμε το ρομπότ θα στρίβει δεξιά (ώστε να πλησιάζει τον τοίχο) ενώ όταν η απόσταση γίνεται μικρότερη από την τιμή που έχουμε ορίσει το ρομπότ θα στρίβει αριστερά. Η κίνηση του ρομπότ θα μοιάζει με ζικ-ζάκ :

wall1wall2
      Στην εικόνα φαίνεται ο τρόπος που το Rov3r          Με την λογική αυτή το Rov3r εξερευνεί ένα δωμάτιο.
      ακολουθεί τοίχους. 

Πιο κάτω φαίνεται το μπλοκ εντολών για την τέταρτη αποστολή χρησιμοποιώντας εντολή επανάληψης η οποία εκτελεί το πρόγραμμα για άπειρες επαναλήψεις (μέχρι να πατήσουμε το stop).
wall3
Στην πέμπτη αποστολή μας θα αντικαταστήσουμε τον ακολουθιακό τρόπο εκτέλεσης των εντολών από το ρομπότ με αυτόν της επιλογής :
commands2 wall4