ΙΔΕΑ ΤΟΥ ΕΡΓΟΥ: Η κυκλοφοριακή αγωγή αποτελεί έναν από τους βασικούς παράγοντες που επηρεάζουν το επίπεδο οδικής ασφάλειας. Πρόκειται για ένα θέμα διαχρονικό που μας αφορά όλους, μιας και είναι κοινή διαπίστωση όλων ότι η χώρα μας αντιμετωπίζει σοβαρά προβλήματα μ’ έναν υψηλό δείκτη τροχαίων ατυχημάτων ανάμεσα στις χώρες της Ευρώπης και με ανυπολόγιστες συνέπειες. Η κυκλοφορία είναι μία πολύπλοκη διαδικασία, όπου παρανοήσεις και λανθασμένες ενέργειες μπορούν να οδηγήσουν σε επικίνδυνες καταστάσεις. Είναι πολύ σημαντικό τα παιδιά να γνωρίζουν τους κανόνες και να μάθουν να τους ακολουθούν από μικρή ηλικία, ώστε να τους γίνουν βίωμα και να είναι πια μια συνήθεια όταν γίνουν ενήλικες. Πρώτιστο μέλημα των γονέων αλλά και των δασκάλων νομίζουμε ότι είναι η μόρφωση των παιδιών μας, αλλά ακόμη πιο σημαντικό είναι η προστασία τους. Την προσπάθειά μας αυτή την αφιερώνουμε στα παιδιά και στην ασφάλειά τους, που ουσιαστικά εξαρτάται από εμάς τους μεγάλους. Κάθε προσπάθεια προς την κατεύθυνση αυτή, έστω και μεμονωμένη, αξίζει τον κόπο. Και μία σταγόνα αίμα να σωθεί, εμείς θεωρούμε ότι η προσπάθεια αυτή έπιασε τόπο αφού η ασφάλεια των παιδιών προηγείται της μόρφωσης.
ΠΕΡΙΓΡΑΦΗ ΤΟΥ ΕΡΓΟΥ: Στο έργο που επιλέχθηκε τα παιδιά θα κατασκευάσουν σε μακέτα εξομοίωσης μια περιοχή με δρόμους και κτίρια. Στη μακέτα θα υπάρχουν φωτεινοί σηματοδότες, σήματα κυκλοφορίας και διαβάσεις. Τα παιδιά θα μπορούν να μετακινούν δύο ανθρωπάκια και να ελέγχουν με εύκολο τρόπο μέσω PC ή κινητού ένα προγραμματιζόμενο ρομπότ (είτε με κίνηση ενός βήματος τη φορά ή περισσότερων). Σ’ αυτή τη διαμορφωμένη πίστα τα παιδιά θα προγραμματίζουν την πορεία του ρομπότ, ώστε να καταλήγει στον επιθυμητό προορισμό, λαμβάνοντας υπόψη τις πινακίδες που συναντούν στη διαδρομή. Οι εκπαιδευτικοί θα έχουν τη δυνατότητα να διεξάγουν διάφορα σενάρια για την εκπαίδευση των μαθητών:
- Τα παιδιά θα αλληλοεπιδρούν κάποια ως πεζοί και κάποια ως οδηγοί των αυτοκινήτων (π.χ. πότε περνά και σταματά ο πεζός, πότε περνά και σταματά το αυτοκίνητο, τι πρέπει να κάνει το αυτοκίνητο όταν βλέπει αυτό το σήμα κ.α.).
- Τα παιδιά θα καλούνται να ολοκληρώσουν αποστολές (π.χ. βρείτε τον συντομότερο δρόμο για να πάτε στο σχολείο, βρείτε την συντομότερη διαδρομή για να πάτε στο σπίτι χωρίς να περάσετε μπροστά από το φαρμακείο, πηγαίνετε εκεί που εργάζονται οι φαρμακοποιοί κ.α.).
- Τα παιδιά θα καλούνται να προγραμματίσουν το ρομπότ. Εδώ λόγω μικρής ηλικίας θα απλουστευτεί ο τρόπος. Για παράδειγμα στην ερώτηση ¨Πως θα πρέπει να κινηθεί το αυτοκίνητο για να πάει στην πυροσβεστική;¨, οι μαθητές θα μετρούν τα βήματα (από την μια κουκίδα στην άλλη θα είναι 1 βήμα) και θα σχεδιάζουν τη διαδικασία για τον προγραμματισμό της διαδρομής του ρομπότ. Υπήρχε και μια όμορφη σκέψη να έρθουν οι μαθητές σε επαφή με προγραμματισμό για τη χρήση αισθητήρων και την υλοποίηση πιο ¨έξυπνων¨ συμπεριφορών για το ρομπότ (π.χ. να καταλαβαίνει το χρώμα του φαναριού και να σταματάει αυτόματα, αλλά λόγω καραντίνας και ελάχιστου χρόνου δεν επιτεύχθηκε ο συγκεκριμένος στόχος.
ΥΠΕΥΘΥΝΟΙ ΕΚΠΑΙΔΕΥΤΙΚΟΙ – ΣΤΟΧΟΙ
Οι εκπαιδευτικοί Κωστή Κυριακή, Κατσακιώρη Μαρίνα και Κατόπη Γεωργία σας καλωσορίζουν σε ένα υπέροχο ταξίδι γνώσης και περιπέτειας. Σ’ αυτό το ταξίδι θα έχουμε μαζί μας τον πολύ καλό μας φίλο, τον Άκη τον Ρομποτάκι. Θα είναι συνέχεια δίπλα μας για να μας μάθει να κυκλοφορούμε στο δρόμο με ασφάλεια, αλλά θα μας μάθει κι ένα σωρό άλλα πράγματα. Παρακάτω θα δείτε τα υλικά που χρησιμοποιήσαμε, το έργο μας και τους στόχους του που καταφέραμε να βγάλουμε εις πέρας, παρόλες τις δύσκολες καταστάσεις αυτής της σχολικής χρονιάς.
- Το έργο μας έχει σαν στόχο:
- Μια πρώτη επαφή των παιδιών με τη ρομποτική.
- Ανάπτυξη λογικομαθηματικής νοημοσύνης, καθώς οι μαθητές θα πρέπει να υπολογίσουν, να κρίνουν και να πειραματιστούν, ώστε να καταλήξουν στο σωστό αποτέλεσμα.
- Ανάπτυξη διαπροσωπικής νοημοσύνης των μαθητών με την επικοινωνία και συνεργασία μεταξύ τους και με τους εκπαιδευτικούς.
- Ανάπτυξη χωροταξικής νοημοσύνης και προσανατολισμού των μαθητών, κατανοώντας τις διαδρομές στο χώρο της μακέτας.
- Ανάπτυξη των δεξιοτήτων προβληματισμού και επίλυσης προβλημάτων.
- Να γνωρίσουν τους κανόνες οδικής κυκλοφορίας.
- Να υιοθετήσουν θετική στάση και να εξελιχθούν σε μελλοντικούς υπεύθυνους πολίτες (οδηγοί, πεζοί, άτομα με κινητικά προβλήματα).
- Να εξοικειωθούν με τον αλγοριθμικό τρόπο σκέψης.
ΥΛΙΚΑ
- Χαρτόνι μακέτας
- Υλικά για την κατασκευή σπιτιών, κτιρίων, διακοσμητικών, σημάτων κυκλοφορίας, δρόμων, κολώνες φωτισμού (χαρτόνια, μαρκαδόρους, κόλλα, γρασίδι, λουλούδια, διάφορα ξυλάκια, καλαμάκια, φωτάκια led, πλαστικό χρώμα, μονωτική ταινία)
- Φανάρια
- Δύο ανθρωπάκια (playmobil) και τέσσερα μικρά πυροσβεστικά αυτοκίνητα
- Ηλεκτρονικός εξοπλισμός:
- Raspberry Pi 3 – Model B+
- Memory Card microSDHC 32GB Class 10 – SanDisk Ultra SDSQUA4-032G-GN6MA
- Official Raspberry Pi 3 Red & White Case
- Power Supply 5V 2.5A – Raspberry Pi Official
- BBC Micro: bit V2 Board
- USB Cable 2.0 A to USB B micro
- LED Traffic Light Display Module 5V και LED φωτισμού
- αντιστάσεις 330ohm
- Breadboard 400 Tie Point – White (Half-Size)
- Ribbon 40wire 20cm – Female to Μale
Τα αρχικά σχέδια της μακέτας ήταν τα παρακάτω και τελικά υλοποιήσαμε αυτό με τα δύο μεγάλα πορτοκαλί οικοδομικά τετράγωνα, με κάποιες αλλαγές στις διαστάσεις λόγω της μακέτας που χρησιμοποιήσαμε:
Ήρθε η ώρα να ξεκινήσει η εικονική μας παρουσίαση και να βρεθείτε έστω και λίγο στην παρέα μας, στο μικρό μας σχολείο, το Νηπιαγωγείο Κάτω Τιθορέας. Επιβιβαστείτε και… καλό σας ταξίδι!!!
Πως ξεκίνησαν όλα….. Η γνωριμία μας με τον Άκη Ρομποτάκι πλησιάζει, αλλά αφού λέμε για ρομπότ ας φέρουμε κι από το σπίτι μας ένα. Για να δούμε τι είναι αυτό το ρομπότ? Έχουμε ξανακούσει γι’ αυτά τα περίεργα μηχανήματα? Ή μήπως είναι άνθρωποι? Από τι είναι φτιαγμένα τελικά και γιατί κατασκευάστηκαν?
Ο Πέτρος έφερε το δικό του ρομπότ, κινείται και έχει παντού πολύχρωμα φωτάκια…
Και αφού μάθαμε για τα ρομπότ ήρθε η ώρα να γίνουμε κι εμείς…
Στη συνέχεια μιλήσαμε για το δικό μας το ρομπότ τον Άκη Ρομποτάκι, που μας βοήθησε να μάθουμε τον κύριο Κ.Ο.Κ. Γίναμε αυτοκινητάκια, μηχανές, παίξαμε παιχνίδια και στις εργασιούλες μας τα καταφέραμε μια χαρά.
Σταματήσαμε στο κόκκινο φανάρι, αλλά είχε και διάβαση πεζών και ήταν αναμμένο το πράσινο για τους πεζούς, ο σχολικός τροχονόμος σταμάτησε τα αυτοκίνητα γιατί ήθελαν να περάσουν το δρόμο τα παιδιά, ελαττώσαμε την ταχύτητα γιατί εκεί κοντά στο δρόμο κάνανε κάποια έργα και παρκάραμε τα αυτοκίνητά μας στη σωστή θέση πάρκινγκ.
Και η κατασκευή της μακέτας ξεκίνησε. Σχεδιάσαμε τα οικοδομικά τετράγωνα, τους δρόμους, τα πεζοδρόμια και τα βάψαμε. Το χρώμα όμως έδωσε στην μακέτα μια περίεργη κλίση, οπότε αποφασίσαμε να την κολλήσουμε σε ένα ξύλο για να σταθεροποιηθεί, αλλά και για να είναι κρυμμένα τα καλώδια λόγω ασφάλειας.
Στη συνέχεια μας βοήθησαν οι συνεργάτες μας να βάλουμε τα φανάρια, τις κολώνες φωτισμού δρόμων (καλαμάκια με λαμπάκια led) και να συνδέσουμε όλα τα καλώδια που έχουν σχέση με το αυτοκίνητο-ρομπότ.
Βάλαμε χαρτοταινία και βάψανε τα παιδιά τους δρόμους. Αποφασίσαμε ποια κτίρια θέλουμε να βάλουμε (εκκλησία, σχολείο, πυροσβεστική, φαρμακείο, μίνι-μάρκετ και ένα σπιτάκι) και τι χρώμα να τα βάψουμε.
Έπειτα κολλήσαμε τα κτίρια, φτιάξαμε τα σήματα, τις διαβάσεις πεζών και βάλαμε στα πεζοδρόμια τα σήματα για τα άτομα με κινητικά προβλήματα. Μετρήσαμε και σημειώσαμε με κουκίδες τα βήματα που κάνει το ρομπότ για να μπορούν να μετράνε τα παιδιά το κάθε βήμα και φτιάξαμε στους δρόμους και βελάκια πορείας.
Αφού κολλήσαμε τα κτίρια, τα στολίσαμε και προσθέσαμε διάφορες λεπτομέρειες για να γίνουν πιο όμορφα. Επειδή στο φως της ημέρας τα φώτα από το ρομπ, τα φανάρια και τις λάμπες δεν φαινόντουσαν πολύ έντονα, την βγάλαμε φωτογραφία το βράδυ για να τη δείξουμε στα παιδιά, κάτι το οποίο τους ενθουσίασε. Τα βίντεο που δείχνουν τη δουλειά που κάναμε με τα παιδιά δυστυχώς σβήστηκαν και μας έμεινε μόνο ένα το οποίο συμπεριλαμβάνετε στο τελικό βίντεο. Και ιδού τα κτίρια μας και ολόκληρη η μακέτα μας…
Ευχαριστούμε πολύ τον Ιωάννη Σταμούλια και τον Θοδωρή Λεονάρδο για την πολύτιμη βοήθεια που μας πρόσφεραν στην υλοποίηση του έργου.
Δείτε το βίντεο στον σύνδεσμο
https://drive.google.com/file/d/18h1IrOWiW3eG9XBWr6PeHXdGcDA4ry75/view?usp=sharing
Μπορείτε να δείτε το έργο μας και στο αποθετήριο
https://github.com/tosxoleio-mou/-.git
Στα επόμενα υπό-κεφάλαια θα παρουσιαστούν τα ηλεκτρονικά μέρη που χρειάστηκαν για την υλοποίηση του έργου, όπως επίσης και τα προγράμματα – εφαρμογές που αναπτύχθηκαν.
Ηλεκτρονικός εξοπλισμός
Α) Εξοπλισμός στην μακέτα Ο βασικός ηλεκτρονικός εξοπλισμός που χρησιμοποιήθηκε στην μακέτα αποτελείται από ένα Raspberry Pi 3 – Model B+ και ένα BBC Micro: bit V2 τα οποία επικοινωνούν μέσω σειριακής σύνδεσης (καλώδιο USB σε micro USB). Επίσης, χρησιμοποιήθηκαν τέσσερις φωτεινοί σηματοδότες κυκλοφορίας και οκτώ LED φωτισμού, τα οποία συνδέθηκαν σε GPIO pin του Raspberry Pi 3 και τροφοδοτήθηκαν με ρεύμα μέσω αυτού.
Ακολουθεί λίστα με τα ηλεκτρονικά υλικά που χρησιμοποιήθηκαν στην μακέτα:
- RaspberryPi 3 – Model B+
- Memory Card microSDHC 32GB Class 10 – SanDisk Ultra SDSQUA4-032G-GN6MA
- Official Raspberry Pi 3 Red & White Case
- Power Supply 5V 2.5A – Raspberry Pi Official
- BBC Micro: bit V2 Board
- USB Cable 2.0 A to USB B micro
- LED Traffic Light Display Module 5V και LED φωτισμού
- αντιστάσεις 330ohm
- Breadboard 400 Tie Point – White (Half-Size)
- Ribbon 40wire 20cm – Female to Μale
Στην συνέχεια δίνεται η περιγραφή της σύνδεσης όλων των μερών του ηλεκτρονικού εξοπλισμού της μακέτας. Ο βασικός κόμβος ολόκληρης της υλοποίησης είναι το Raspberry Pi, με το οποίο επιτυγχάνεται ο έλεγχος του robot, των σηματοδοτών κυκλοφορίας και των LED φωτισμού. Στο Raspberry Pi έχει γίνει εγκατάσταση του λειτουργικού Raspberry Pi OS με έκδοση πυρήνα 5.10.
- Σε μια USB θύρα έχει συνδεθεί το BBC Micro: bit V2, με χρήση καλωδίου USB to micro USB, ώστε να επιτευχθεί η σειριακή επικοινωνία. Οι εντολές που επιθυμεί να στείλει ο χρήστης στο robot ετοιμάζονται αρχικά στην εφαρμογή που τρέχει στο Raspberry Pi, μεταφέρονται μέσω της σειριακής σύνδεσης στο τοπικό Micro: bit και από εκεί μέσω ασύρματης επικοινωνίας με radio καταλήγουν στο Micro: bit του robot.
- Στα GPIO pin 17, 18, 27 έχουν συνδεθεί τα LED Traffic Lights της κεντρική οδού (κόκκινο, κίτρινο και πράσινο χρώμα αντίστοιχα). Για την σύνδεση χρησιμοποιήθηκαν τρία καλώδια από τα pin προς την breadboard και σε αυτά συνδέθηκαν καλώδια προς του δύο σηματοδότες κυκλοφορίας που υπάρχουν στην κεντρική οδό. Επίσης, συνδέθηκε και μια γείωση του Raspberry στην breadboard, ώστε να συνδεθούν και οι γειώσεις των LED Traffic Lights.
- Στα GPIO pin 22, 23, 24 έχουν συνδεθεί τα LED Traffic Lights των κάθετων οδών (κόκκινο, κίτρινο και πράσινο χρώμα αντίστοιχα), με τον ίδιο τρόπο όπως και των σηματοδοτών της κεντρικής οδού.
- Στο GPIO pin 25 έχουν συνδεθεί όλα τα LED φωτισμού. Η σύνδεση έχει γίνει με τον ίδιο τρόπο όπως με τους σηματοδότες, με την μόνη διαφορά ότι σε αυτή την περίπτωση μεταξύ του pin του Raspberry Pi και των LED υπάρχουν και οι κατάλληλες αντιστάσεις. Στην περίπτωση των σηματοδοτών κυκλοφορίας οι αντιστάσεις υπάρχουν ενσωματωμένες στην πλακέτα.
Β) Εξοπλισμός του robot
Το robot αποτελείται από ένα BBC Micro: bit V2 και μια micro: Maqueen – Robot πλατφόρμα. Ακολουθεί λίστα με τα ηλεκτρονικά υλικά που χρησιμοποιήθηκαν στην μακέτα:
- BBC Micro: bit V2 Board
- micro: Maqueen – Robot Platform
- 3x AAA μπαταρίες
Ο έλεγχος του robot γίνεται μέσω ασύρματης επικοινωνίας radio με το Raspbbery Pi, όπου είναι συνδεδεμένος ο χρήστης.
Προγράμματα που αναπτύχθηκαν
Για τον απομακρυσμένο έλεγχο και χρήση του έργου έχει ενεργοποιηθεί ο VNC server στο Raspberry Pi. Μέσω του VNC server δίνεται η δυνατότητα στον χρήστη να συνδεθεί από οποιαδήποτε συσκευή που υποστηρίζει κάποιον VNC viewer, όπως PC, laptop, tablet και smartphone.
Για τις ανάγκες του έργου αναπτύχθηκε σε Python 3.7 μια εφαρμογή με γραφικό περιβάλλον, μέσω της οποίας ο χρήστης μπορεί να ελέγχει το robot και την πλατφόρμα. Αυτή η εφαρμογή δίνει την δυνατότητα στον χρήστη να στέλνει εντολές στο robot, εκμεταλλευόμενος την BBC Micro: bit V2 κάρτα, και να ενεργοποιεί και απενεργοποιεί τους σηματοδότες κυκλοφορίας και τα LED φωτισμού. Η εφαρμογή τρέχει στο Raspberry Pi και χρησιμοποιεί τις ακόλουθες βιβλιοθήκες:
- ‘tkinter’: Για την δημιουργία της γραφικής διεπαφής (GUI)
- ‘serial’: Για την σειριακή επικοινωνία του Raspberry Pi με το Micro: bit
- ‘subprocess’: Για την κλήση παράλληλων διεργασιών μέσω της εφαρμογής.
- ‘os’: Για τον τερματισμό διεργασιών που εκτελούνται στο Raspberry Pi
- ‘signal’: Για τον έλεγχο σημάτων συστήματος
- ‘time’: Για την μέτρηση χρόνου
- ‘RPi.GPIO’: Για την χρήση των GPIO pin του Raspberry Pi
Η ίδια εφαρμογή είναι δυνατόν να εκτελεστεί και σε οποιοδήποτε άλλο PC που έχει εγκατεστημένη Python, για την αποστολή εντολών στο robot. Η εκτέλεση της εφαρμογής σε άλλο σύστημα, εκτός του Raspberry Pi που υπάρχει στην μακέτα, γίνεται χωρίς να υπάρχει η δυνατότητα ελέγχου των σηματοδοτών κυκλοφορίας και των LED φωτισμού.
Τέλος, αναπτύχθηκαν και προγράμματα σε Microsoft MakeCode, τα οποία εκτελούνται στα Micro: bit. Στο Micro: bit, που υπάρχει στην μακέτα, το πρόγραμμα χρησιμοποιείται για την λήψη των εντολών από την σειριακή θύρα και την αποστολή τους μέσω radio. Στο Micro: bit, που υπάρχει στο robot, το πρόγραμμα χρησιμοποιείται για την λήψη των εντολών μέσω radio καθώς και για την κίνηση του robot.
Α) Βασική εφαρμογή έργου
Ακολουθεί περιγραφή των βασικών στοιχείων της εφαρμογής. Παρουσιάζονται εικόνες από την εφαρμογή, ώστε να γίνει και παρουσίαση της λειτουργίας της. Το βασικό script της εφαρμογής είναι το ‘SystemController.py’.
-
- Τρίτη καρτέλα
- Τρίτη καρτέλα
- Επιλογή Λειτουργικού
- Εικόνα 1. Επιλογή λειτουργικό κατά την έναρξη λειτουργίας της εφαρμογής
Με την έναρξη της εφαρμογής ο χρήστης καλείται να επιλέξει αν η εκτέλεση γίνεται στο Raspberry Pi ή σε κάποιο PC με Windows. Ταυτόχρονα μπορεί να αλλάξει και την θύρα στην οποία έχει συνδεθεί το Micro: bit. Στο παράθυρο που εμφανίζεται υπάρχουν κάποιες default τιμές. Με την επιλογή του λειτουργικού προετοιμάζονται οι μεταβλητές, που είναι απαραίτητες για την έναρξη της σειριακής επικοινωνίας. Θεωρείται πως έχει γίνει η σύνδεση του συστήματος με το Micro: bit πριν την εκτέλεση της εφαρμογής. Σε διαφορετική περίπτωση η εφαρμογή δεν ξεκινάει. Μια δεύτερη διαφοροποίηση που υπάρχει ανάμεσα στις δύο επιλογές είναι ότι με την επιλογή του λειτουργικού Raspberry ενεργοποιείται και η καρτέλα που υπάρχει στην εφαρμογή για την ενεργοποίηση και απενεργοποίηση των σηματοδοτών και των LED φωτισμού. Αυτή η καρτέλα απουσιάζει από την εκτέλεση της εφαρμογής σε PC.
- Πρώτη καρτέλα
Εικόνα 2.Πρώτη καρτέλα εφαρμογής, επιλογή κίνησης με πολλαπλά βήματα
Η πρώτη καρτέλα, με την οποία ξεκινάει η εφαρμογή, δίνει την δυνατότητα στον χρήστη να επιλέξει την κατεύθυνση κίνησης του robot και να δώσει το πλήθος των βημάτων που επιθυμεί να εκτελεστούν. Με βάση τις επιλογές του χρήστη προετοιμάζεται η εντολή για το robot και αποστέλλεται μέσω της σειριακής επικοινωνίας στο Micro: bit. Η εντολή αποτελείται από έναν χαρακτήρα (F, B, L, R) ανάλογα την κίνηση (μπροστά, πίσω, αριστερά, δεξιά) και μια τιμή για το πλήθος των βημάτων. Για το πλήθος των βημάτων έχει καθοριστεί ένας συντελεστής (μπορεί να αλλαχτεί στην τέταρτη καρτέλα) που καθορίζει το μήκος ενός βήματος. Επομένως, αυτό που αποστέλλεται στο Micro: bit είναι ένα πολλαπλάσιο αυτής της τιμής. Για την αποστολή της εντολής πρέπει να πατηθεί το κουμπί ‘Ναι’. Εσωτερικά στην εφαρμογή γίνεται έλεγχος αν στο πεδίο για το πλήθος των βημάτων έχει δοθεί αριθμός, σε διαφορετική περίπτωση βγαίνει μήνυμα λάθους.
- Δεύτερη καρτέλα
Εικόνα 3. Δεύτερη καρτέλα εφαρμογής, κίνηση ενός βήματος με τα κουμπιά της εφαρμογής ή το πληκτρολόγιο
Η δεύτερη καρτέλα δίνει την δυνατότητα στον χρήστη να κινήσει το robot είτε χρησιμοποιώντας κάποιο πληκτρολόγιο συνδεδεμένο στο σύστημα που εκτελείται η εφαρμογή είτε τα κουμπιά με τα βελάκια. Κάθε πάτημα ενός κουμπιού στέλνει εντολή κίνησης ενός βήματος με την κατάλληλη κατεύθυνση. Στην εφαρμογή έχουν αναπτυχθεί συναρτήσεις, που παρακολουθούν τα πατήματα πλήκτρων στο πληκτρολόγιο και των κουμπιών στην καρτέλα. Οι συναρτήσεις αυτές ετοιμάζουν την κατάλληλη εντολή και την αποστέλλουν στο Micro: bit. Μέσω της συνάρτησης που υπάρχει για να παρακολουθεί το πληκτρολόγιο δίνεται και η δυνατότητα τερματισμού της εφαρμογής και με το πλήκτρο ‘esc’. Τα μόνο πλήκτρα που υποστηρίζονται είναι τα βελάκια και το ‘esc’. Αν πατηθεί οποιοδήποτε άλλο πλήκτρο, ενώ είναι ενεργοποιημένη αυτή η καρτέλα, παράγεται μήνυμα λάθους.
- Τρίτη καρτέλα
Εικόνα 4. Τρίτη καρτέλα, ενεργοποίηση/απενεργοποίηση σηματοδοτών και LED φωτισμού Η τρίτη καρτέλα δίνει την δυνατότητα στον χρήστη να ενεργοποιήσει και να απενεργοποιήσει τους σηματοδότες και τα LED φωτισμού, που υπάρχουν στην μακέτα. Σε περίπτωση που η εκτέλεση της εφαρμογής δεν γίνεται στο Raspberry Pi, που υπάρχει στην μακέτα, τότε αυτή η καρτέλα είτε δεν λειτουργεί (αν έχει επιλεχθεί λειτουργικό Raspberry), είτε δεν εμφανίζεται καθόλου (αν έχει επιλεχθεί λειτουργικό Windows). Με την ενεργοποίηση των σηματοδοτών ξεκινάει η παράλληλη εκτέλεση του script ‘traffic_lights.py’, μέσω του οποίου το Raspberry Pi αλλάζει τα χρώματα στους σηματοδότες με την κατάλληλη σειρά. Για το έργο θεωρούμε πως έχουμε μια κεντρική οδό μονής κατεύθυνσης και κάθετους οδούς ξανά μονής κατεύθυνσης. Το script ‘traffic_lights.py’ υλοποιεί την λογική για τους δύο σηματοδότες στην διασταύρωση, δηλαδή όσο η κεντρική οδός έχει πράσινο ή κίτρινο χρώμα στην κάθετο έχουμε κόκκινο χρώμα και όταν γίνει κόκκινο χρώμα στην κεντρική οδό τότε έχουμε πράσινο ή κίτρινο στην κάθετη οδό. Για την απενεργοποίηση των σηματοδοτών τερματίζεται η διεργασία που εκτελείται από το ‘traffic_lights.py’ και απενεργοποιούνται όλα τα φώτα των σηματοδοτών με το script ‘traffic_lights_off.py’. Αντίστοιχος τρόπος υλοποίησης ακολουθήθηκε και για την ενεργοποίηση και απενεργοποίηση των LED φωτισμού. Σε αυτή την περίπτωση τα script που χρησιμοποιούνται είναι τα ‘lights.py’ και ‘lights_off.py’.
- Τέταρτη καρτέλα
Εικόνα 5. Τέταρτη καρτέλα, καθορισμός μήκος βήματος και γωνίας περιστροφής
Η τέταρτη καρτέλα δίνει την δυνατότητα στον χρήστη να αλλάξει το μήκος του ενός βήματος για το robot και την γωνία που θα στρίψει το robot, όταν δοθεί εντολή για δεξιά ή αριστερή κίνηση. Με αυτόν τον τρόπο μπορεί να τροποποιηθεί το εύρος κίνησης, ώστε να επιτευχθεί η επιθυμητή κίνηση ανάλογα με την επιφάνεια, στην οποία κινείται το robot και την χρήση που ο χρήστης επιθυμεί. Οι τιμές που φαίνονται στην εικόνα είναι κάποιες default τιμές που υπάρχουν αποθηκευμένες και στα δύο αρχεία, που διαχειρίζεται η εφαρμογή (‘fb_factor.dat’ και ‘lr_factor.dat’), ώστε να είναι διαθέσιμες οι επιλογές που γίνονται και μετά από επανεκκινήσεις της εφαρμογής. Για την τροποποίηση των τιμών θα πρέπει να πατηθεί το κουμπί ‘Ενημέρωση’, ώστε να γίνει η εγγραφή των νέων τιμών στα αρχεία για μελλοντική χρήση.
6.Περιγραφή δομής αρχείων εφαρμογής
Στον φάκελο του έργου ‘Akis_Robotakis’ υπάρχουν τρεις υπό-φάκελοι και το βασικό script ‘SystemController.py’. Στον πρώτο υπό-φάκελο ‘images’ υπάρχουν όλες οι εικόνες που χρησιμοποιούνται στην εφαρμογή (Arrow_down.png, Arrow_left.png, Arrow_right.png, Arrow_up.png, Raspberry.png, και Windows.png). Στον δεύτερο υπό-φάκελο ‘scripts’ υπάρχουν τα scripts που εκτελούνται μέσω του βασικού script (traffic_lights.py, traffic_lights_off.py, lights.py, και lights_off.py). Στον τρίτο φάκελο ‘settings’ υπάρχουν τα δύο αρχεία που αποθηκεύονται κάθε φορά οι συντελεστές κίνησης (fb_factor.dat και lr_factor.dat).
Β) Πρόγραμμα που εκτελείται στο Micro: bit της μακέτας
Το Micro: bit της μακέτας είναι υπεύθυνο μόνο για την λήψη των εντολών μέσω της σειριακής θύρας και την αποστολή τους ασύρματα μέσω radio στο Micro: bit του robot.
Εικόνα 6. Πρόγραμμα Micro: bit μακέτας, Εκτέλεση κατά την έναρξη
Κατά την έναρξη του προγράμματος δημιουργείται η σειριακή σύνδεση και η ομάδα για την αποστολή δεδομένων μέσω radio. Στην συνέχεια σε κάθε επανάληψη διαβάζεται η εντολή από την σειριακή θύρα, διαχωρίζεται ο χαρακτήρας και ο αριθμός της εντολής και αποστέλλονται μέσω radio. Οι επιστροφή των τιμών πίσω στην σειριακή θύρα γινόταν για την αποσφαλμάτωση του προγράμματος. Επίσης, γίνεται τύπωση βελών στα led του Micro: bit με την κατεύθυνση που έχει η εντολή που αποστέλλεται.
Εικόνα 7. Πρόγραμμα Micro: bit μακέτας, Εκτέλεση σε κάθε επανάληψη
Γ) Πρόγραμμα που εκτελείται στο Micro: bit του robot
Το Micro: bit του robot είναι υπεύθυνο για την λήψη των εντολών μέσω radio και την κίνηση του robot. Κατά την έναρξη δημιουργεί την ομάδα για την επικοινωνία μέσω radio και αρχικοποιεί μεταβλητές, που χρειάζονται για την λειτουργία του robot. Το robot έχει δύο καταστάσεις (mode) λειτουργίας, οι οποίες μπορούν να επιλεχθούν με την χρήση των κουμπιών Α και Β, που υπάρχουν πάνω στο Micro: bit του robot.
Στην πρώτη κατάσταση λειτουργίας (προεπιλογή) θεωρούμε πως στην μακέτα υπάρχει λευκή γραμμή στις διαδρομές που το robot μπορεί να ακολουθήσει. Επομένως, όταν λαμβάνει τις εντολές κίνησης, τις εκτελεί και ταυτόχρονα ελέγχει κάθε φορά αν βρίσκεται πάνω στην λευκή γραμμή. Κατά την κίνηση προς τα εμπρός διορθώνει σε κάθε βήμα την τοποθέτησή του, ώστε να βλέπουν την γραμμή και οι δύο αισθητήρες (πάχος γραμμής ~2εκ.). Κατά την κίνηση προς τα πίσω, δεν έχουμε διόρθωση σε κάθε βήμα, αλλά το robot σταματάει αν χάσει την γραμμή. Κατά τις κινήσεις αριστερά ή δεξιά το robot κάνει την προκαθορισμένη κίνηση με βάση τον συντελεστή γωνίας που έχουμε επιλέξει και στην συνέχεια διορθώνει την κίνηση του προς την αντίθετη φορά μέχρι να βρει την λευκή γραμμή. Θεωρούμε πως έχει επιλεχθεί τιμή συντελεστή γωνίας τέτοια, ώστε το robot να στρίβει περισσότερο από όσο χρειάζεται, δηλαδή να περνάει την γραμμή της νέας διαδρομής Γενικά αν χαθεί η γραμμή το robot σταματάει και αρχίζει δεξιά περιστροφή, μέχρι να ξανά βρει λευκή γραμμή.
Στην δεύτερη κατάσταση λειτουργίας το robot εκτελεί απλά τις εντολές κίνησης που στέλνονται από τον χρήστη. Εδώ θα πρέπει να αναφερθεί ότι η κίνησή του δεν είναι πάντα τέλεια και εξαρτάται από το υλικό της μακέτας, τυχούσες κλίσεις που υπάρχουν σε αυτή και από τα μοτέρ κίνησης της πλατφόρμας του robot, τα μοτέρ δεν έχουν τέλεια συγχρονισμένη κίνηση.
Τέλος, στα led του Micro: bit τυπώνονται ανάλογα την κίνηση τα γράμματα ‘Μ’ – μπροστά, ‘Π’ – πίσω, ‘Α’ – αριστερά, ‘Δ’ – δεξιά και ανάβουν τα led, που βρίσκονται κάτω από την πλατφόρμα του robot σε διάφορα χρώματα ανάλογα την κατεύθυνση της κίνησης.
Εικόνα 8. Πρόγραμμα Micro: bit robot, Αρχική εκτέλεση, επιλογή κατάστασης λειτουργίας και λήψη αριθμού βημάτων.
Εικόνα 9. Πρόγραμμα Micro: bit robot, Λήψη κατεύθυνση κίνησης και τύπωση χαρακτήρα στα led του Micro: bit
Εικόνα 10. Πρόγραμμα Micro: bit robot, Εκτέλεση σε κάθε επανάληψη (1/2). Διαδικασία για κάθε κατεύθυνση κίνησης που επαναλαμβάνεται για κάθε βήμα που ζητήθηκε.
Εικόνα 11. Εικόνα 10. Πρόγραμμα Micro: bit robot, Εκτέλεση σε κάθε επανάληψη (2/2). Διορθωτικές κινήσεις μετά την εκτέλεση της εντολής.