ΧΡΩΜΑΤΙΚΟΣ ΤΑΞΙΝΟΜΗΤΗΣ ΜΕ ΡΟΜΠΟΤΙΚΟ ΒΡΑΧΙΟΝΑ ΚΑΙ ΧΡΗΣΗ ΤΟΥ ΜΙΚΡΟΕΛΕΓΚΤΗ BASIC STAMP ΤΗΣ PARALLAX Γιαννακόπουλος Νίκος Εκπαιδευτικός ΠΕ19- ΜΔΕ σπουδές στην εκπαίδευση ΕΑΠ, 3ο ΓΕΛ Πάτρας gianakop@gmail.com ΠΕΡΙΛΗΨΗ H παρούσα εργασία αναφέρεται στην κατασκευή και στον προγραμματισμό ενός χρωματικού ταξινομητή με χρήση του μικροελεγκτή Basic Stamp της εταιρίας Parallax. Ο χρωματικός αυτός ταξινομητής έχει τη δυνατότητα να αντιλαμβάνεται πέντε διαφορετικών χρωμάτων μπάλες του πινγκ πονγκ χρησιμοποιώντας τον χρωματικό αισθητήρα ColorPAL της Parallax. Στη συνέχεια με χρήση ενός πρωτότυπου ρομποτικού βραχίονα ταξινομεί τις μπάλες ανάλογα με το χρώμα τους και σύμφωνα με τα σενάρια ταξινόμησης που δίνει ο προγραμματιστής-χρήστης. Ενδιαφέρον από εκπαιδευτική άποψη παρουσιάζουν οι αλγόριθμοι των διαφορετικών σεναρίων ταξινόμησης. Λέξεις κλειδιά: Xρωματικός ταξινομητής, ρομποτικός βραχίονας, μικροελεγκτής Basic Stamp. 1 ΕΙΣΑΓΩΓΗ Οι χρωματικοί ταξινομητές (ΧΤ) είναι συστήματα τα οποία με χρήση τεχνολογίας αναγνώρισης χρώματος μπορούν να διαχωρίζουν και να ταξινομούν αντικείμενα βάσει του χρώματός τους. Στη βιομηχανία χρησιμοποιούνται σε μεγάλο βαθμό στη διαλογή και ταξινόμηση γεωργικών προϊόντων (σχήμα 1α). Στην εκπαίδευση το γνωστό πακέτο εκπαιδευτικής ρομποτικής Lego Mindstorm παρέχει αρκετές προτάσεις για κατασκευή χρωματικού ταξινομητή (σχήμα 1β), καθώς διαθέτει εύκολα υλοποιήσιμες μηχανικά λύσεις, αφού διαθέτει έτοιμα δομικά στοιχεία με δυνατότητα σύνδεσης τριών σερβομηχανισμών καθώς και τον ειδικό αισθητήρα χρώματος που προγραμματίζεται μέσα από ένα φιλικό για το χρήστη προγραμματιστικό περιβάλλον. Σχήμα 1: (α)βιομηχανικός ΧΤ φρούτων, (β) ΧΤ με το πακέτο Lego NXT, (γ) Πειραματικός ΧΤ. (Πηγή: Internet) Επίσης και άλλες ρομποτικές πειραματικές κατασκευές έχουν να παρουσιάσουν ενδιαφέροντα αποτελέσματα (σχήμα 1γ). Κοινό σημείο σε όλες τις κατασκευές αυτού του είδους είναι η χρήση ενός χρωματικού αισθητήρα, κάποιου ή κάποιων μοτέρ τα
οποία κινούν τα μηχανικά μέρη της κατασκευής που κάνει τη χρωματική επιλογή και τέλος η χρήση ενός προγραμματιζόμενου μικροελεγκτή ο οποίος διαχειρίζεται και συντονίζει συνολικά τις λειτουργίες της συσκευής. 1.1 Περιγραφή του χρωματικού ταξινομητή Ο χρωματικός ταξινομητής που περιγράφει αυτή η εργασία (σχήμα 2β), αποτελείται από ένα μηχανισμό που παρέχει αυτόματα χρωματιστές μπάλες με εντελώς τυχαία σειρά, μία βαλβίδα πάνω στην οποία τοποθετούνται οι μπάλες όπου και γίνεται η αναγνώριση του χρώματός τους από τον ειδικό αισθητήρα χρώματος ColorPAL (Parallax 2009) και από ένα ρομποτικό βραχίονα (Γιαννακόπουλος 2010) με τρεις βαθμούς ελευθερίας, ο οποίος παίρνει τις μπάλες από την ειδική βαλβίδα αφού έχει αναγνωριστεί το χρώμα τους και τις τοποθετεί στην ανάλογη θέση-δοχείο. Το σύστημα ελέγχεται από το Parallax BasicStamp Board το οποίο φέρει και τον μικροελεγκτή, ενώ σαν συσκευή εξόδου χρησιμοποιεί μία μικρή LCD οθόνη στην οποία εμφανίζονται το χρώμα της μπάλας, η θέση που θα τοποθετηθεί και οι τιμές των μετρητών που καταμετρούν τις μπάλες. Σχήμα 2: (α) Σχέδιο του χρωματικού Ταξινομητή με το Google SketchUP (β) Υλοποίηση της κατασκευής με χρήση του Parallax microcontroller. Ο σχεδιασμός του συστήματος έγινε αρχικά με το λογισμικό Google SketchUP 7 (σχήμα 2α) ενώ η κατασκευή του ρομποτικού βραχίονα καθώς και ολόκληρης της συσκευής τα οποία είναι πρωτότυπα και έγιναν από το συγγραφέα της εργασίας. Ο ρομποτικός βραχίονας του συστήματος προτάθηκε επίσης από τον συγγραφέα στην Parallax για εμπορική εκμετάλλευση στο εκπαιδευτικό ρομπότ Boe-Bot. O χρωματικός ταξινομητής ελέγχεται συνολικά από τον μικροελεγκτή BasicStamp της Parallax ο οποίος εκτός από τον ειδικό αισθητήρα χρώματος ColorPAL (#28380) που αντιλαμβάνεται το χρώμα της κάθε μπάλας (Parallax 2009), διαχειρίζεται πέντε τυπικούς σερβοκινητήρες (standard mini servos) και ένα απλό μοτέρ (DC/motor). Οι τέσσερις σερβοκινητήρες ανήκουν στο ρομποτικό βραχίονα ο οποίος πιάνει και διανέμει τις μπάλες και ο πέμπτος είναι αυτός που ανοιγοκλείνει την πόρτα του μηχανισμού που παρέχει τις μπάλες. Και οι πέντε σερβοκινητήρες ελέγχονται επιπλέον από τον Parallax Servo Controller (#28023) (Parallax 2005). Το απλό μοτέρ (DC motor) χρησιμεύει για να ανακατεύει τις μπάλες στο μηχανισμό που παρέχει τις μπάλες και ελέγχεται από τον ελεγκτή Parallax DC motor Board Rev D, ο οποίος φέρει δύο
ολοκληρωμένα κυκλώματα L293DNE. Τέλος ο μικροελεγκτής ελέγχει την οθόνη μηνυμάτων (Parallax Serial LCD Display) (Parallax 2006), στην οποία εμφανίζονται το χρώμα της μπάλας, η θέση που θα τοποθετηθεί και οι τιμές των μετρητών που καταμετρούν τις μπάλες Το κύκλωμα με τη συνδεσμολογία των ηλεκτρονικών μερών φαίνεται στο σχήμα 3: Σχήμα 3: Κύκλωμα συνδεσμολογίας ηλεκτρονικών μερών του Χρωματικού Ταξινομητή Η συνδεσμολογία που χρησιμοποιήθηκε και συμφωνεί με τον κώδικα προγραμματισμού του συστήματος ήταν η ακόλουθη: Οι σερβοκινητήρες του βραχίονα 1, 2, 3 και 4 συνδέθηκαν με τα κανάλια ch5, ch6, ch2 και ch10 του servo controller αντίστοιχα, και ο σερβοκινητήρας 5 του μηχανισμού που παρέχει τις μπάλες στο κανάλι ch11. Ο servo controller συνδέθηκε με την κεντρική πλακέτα, Parallax Board of Education, στη θύρα P12 και τροφοδοτήθηκε με τάση 4,5 V. Ο αισθητήρας χρώματος ColorPAL συνδέθηκε στη θύρα P15 και η LCD οθόνη στη Θύρα P1 (σχήμα 3). 1.2 Ανάλυση προβλήματος αλγόριθμος Ας υποθέσουμε ότι έχουμε τοποθετήσει χρωματιστές μπάλες μαύρου, κόκκινου, μπλε, λευκού και πράσινου χρώματος μέσα στο μηχανισμό και θέλουμε να τις ταξινομήσουμε στα αντίστοιχα δοχεία 1, 2, 3, 4 και 5 και να μετρήσουμε και τον αριθμό των μπαλών από κάθε ένα χρώμα που επιλέξαμε.
Σχήμα 4: Αλγόριθμος απλής ταξινόμησης μπαλών σε συγκεκριμένες θέσεις βάσει του χρώματος Το διάγραμμα ροής του προγράμματος φαίνεται στο σχήμα 4. Αρχικά μηδενίζονται όλοι οι μετρητές, στη συνέχεια δίνεται εντολή να ανοίξει η πόρτα του αυτόματου παροχέα μπαλών ενεργοποιώντας τον 5 ο σερβοκινητήρα. Στο σημείο αυτό γίνεται ταυτόχρονα και ανακάτεμα των μπαλών με ενεργοποίηση του DC motor. Κατόπιν αναγνωρίζεται το χρώμα της μπάλας και αυξάνεται κατά ένα ο αντίστοιχος μετρητής. Στη συνέχεια ενεργοποιείται ο ρομποτικός βραχίονας ο οποίος τοποθετεί την μπάλα στο αντίστοιχο δοχείο παίρνοντας από τον servo controller το αντίστοιχο σετ εντολών περιστροφής για τον 1 ο, 2 ο, 3 ο και 4 ο σερβοκινητήρα. Ο αλγόριθμος σταματάει όταν δεν υπάρχει καμία μπάλα. Τότε το χρώμα που θα διαβαστεί δεν είναι κανένα από τα πέντε χρώματα μαύρο, κόκκινο, μπλε, λευκό ή πράσινο και ουσιαστικά γίνεται ανίχνευση του κενού. 2 Αναγνώριση χρώματος Ο αισθητήρας ColorPAL της Parallax Στον παραπάνω αλγόριθμο ενδιαφέρον παρουσιάζει η διαδικασία διαβάσματος χρώματος της μπάλας. Η διαδικασία αυτή επιτυγχάνεται αυτόματα με τον αισθητήρα ColorPAL της Parallax. Ο αισθητήρας αυτός χρησιμοποιεί ένα RGB LED το οποίο φωτίζει δειγματοληπτικά ανά χρονικά διαστήματα και ένας ευρέως φάσματος μετατροπέας φωτός σε τάση μετράει το φως που ανακλάται πίσω. Η ποσότητα του φωτός που ανακλάται σε κάθε δειγματοληψία χρησιμοποιείται για να αποφασιστεί το χρώμα του δείγματος (Parallax 2009). Εκτελώντας τον σχετικό κώδικα που δίνεται μαζί με τον αισθητήρα μπορεί κανείς να δει τις διαφορετικές τριάδες τιμών για τις RGB μεταβλητές που επιστρέφει ο αισθητήρας βάζοντας μπροστά του διάφορα χρωματιστά αντικείμενα ή το κενό. Η εντολή η οποία λαμβάνει τις τιμές των μεταβλητών R, G, B από τον αισθητήρα είναι η: SERIN sio, baud, [WAIT("$"), R, G, B], όπου sio: η θύρα του μικροελεγκτή στην οποία είναι συνδεδεμένος ο αισθητήρας, και baud μία σταθερά που χαρακτηρίζει τα διάφορα μοντέλα μικροελεγκτών BasicStamp, (Parallax 2007 & Parallax 2009). Σχήμα 5: Δειγματοληπτικές τιμές R,G,B, για μπάλες διαφόρων χρωμάτων & κενό Κάνοντας αυτό το πείραμα τοποθετώντας μπροστά από τον αισθητήρα για μερικά δευτερόλεπτα με τη σειρά μία μαύρη, μία κόκκινη, μία μπλε, μία λευκή και μία πράσινη μπάλα και μετά το κενό παίρνουμε τιμές παρόμοιες με αυτές που φαίνονται στο σχήμα 5. Όπως παρατηρούμε σε πλήθος σαράντα μετρήσεων ακόμα και για το ίδιο χρώμα οι τιμές RGB δεν είναι σταθερές αλλά παρουσιάζουν κάποιες μεταβολές. Το ζητούμενο σε
αυτή την περίπτωση είναι ένας αλγόριθμος ο οποίος έχοντας σαν είσοδο μία οποιαδήποτε τυχαία τριάδα μεταβλητών R,G,B να αποφαίνεται με ασφάλεια σε ποιού χρώματος μπάλα ανήκει ή αν δεν ανήκει σε καμία οπότε είναι η αίσθηση του κενού. Σχήμα 6: Μέσοι όροι & αθροίσματα τιμών R,G,B - Αλγόριθμος αναγνώρισης χρώματος Η πληροφορία που πρέπει να αξιοποιηθεί σε αυτή την περίπτωση είναι το άθροισμα και των τριών μεταβλητών R, G, B, όπου για το λευκό χρώμα έχει πάντα μεγαλύτερη τιμή από το 190, για το κενό έχει τιμές 0 ή 1 και για το μαύρο τιμές από 5 μέχρι 26. Όταν το άθροισμα παίρνει τιμές από 26 μέχρι 190 τότε το χρώμα είναι Κόκκινο, Πράσινο ή Μπλε και υπολογίζεται εύκολα από την εύρεση του μεγίστου (ΜΑΧ) των τριών μεταβλητών R, G, B, (σχήμα 6). 3 Συμπεράσματα Η κατασκευή και ο προγραμματισμός ενός χρωματικού ταξινομητή είναι ένα θέμα που συνδυάζει κατασκευαστικές, τεχνικές και προγραμματιστικές προκλήσεις. Καλεί τον εμπλεκόμενο να αναλύσει το πρόβλημα, να σχεδιάσει και να υλοποιήσει αλγοριθμικές λύσεις, συνδυάζοντας γνώσεις από διάφορα επιστημονικά πεδία προκειμένου να πετύχει το σκοπό του. Η χρήση του χρωματικού αισθητήρα ColorPAL αποτελεί μία αρκετά καλή, οικονομική και αξιόπιστη λύση για την αναγνώριση του χρώματος. Παράλληλα η χρήση του Parallax servo controller μας δίνει τη δυνατότητα να προγραμματίσουμε ταυτόχρονα περισσότερους από ένα σερβοκινητήρες υλοποιώντας και προγραμματίζοντας όχι μόνο ρομποτικούς βραχίονες αλλά και άλλες ενδιαφέρουσες και εντυπωσιακές αρθρωτές ρομποτικές κατασκευές, όπως για παράδειγμα ρομποτικά εξάποδα ή οχήματα με χρήση πολλών κινητήρων για την πλοήγηση και τη λειτουργικότητά τους και να δημιουργήσουμε αλγόριθμους για την κίνησή τους. 4 ΒΙΒΛΙΟΓΡΑΦΙΑ Parallax, (2005). Parallax servo controller 28023 REV B Ver2.4, PARALLAX Inc, pp. 1-9. Ανακτήθηκε 21/12/2009 από το δικτυακό τόπο: http://www.parallax.com/portals/0/downloads/docs/prod/motors/servocontrollermanu alrev%20b%20v2_4.pdf Parallax, (2006). Serial LCD #27976 V 2.0, PARALLAX Inc, pp. 1-11. Ανακτήθηκε 21/12/2009 από το δικτυακό τόπο: http://www.parallax.com/portals/0/downloads/docs/prod/audiovis/seriallcd-v2.0.pdf
Parallax, (2007). BASIC Stamp Syntax and Reference Manual Version 2.2, Parallax Inc, pp. 393-414. Ανακτήθηκε 21/12/2009 από το δικτυακό τόπο: http://www.parallax.com/dl/docs/prod/stamps/web-bsm-v2.2.pdf. Parallax, (2009). ColorPAL: Color and Ambient Light Sensor and Color Generator, PARALLAX Inc, pp. 1-12. Ανακτήθηκε 15/03/2010 από το δικτυακό τόπο: http://www.parallax.com/portals/0/downloads/docs/prod/sens/28380colorpal.pdf Γιαννακόπουλος, Ν. (2010). "Ρομποτικός βραχίονας με χρήση του μικροελεγκτή Basic Stamp της Parallax και εκπαιδευτικές δραστηριότητες, στο Γρηγοριάδου Μ. (επιμ.), Πρακτικά 5ου Πανελλήνιου Συνεδρίου "Διδακτική της Πληροφορικής", Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής & Τηλεπικοινωνιών, Εκδόσεις Νέων Τεχνολογιών, σ. 224-229, Αθήνα. Διαθέσιμο στο δικτυακό τόπο: http://www.etpe.gr/files/proceedings/25/1273088065_gianakopoulos.pdf & http://hermes2.di.uoa.gr:8080/didinf5/templates/themza_j15_13/proceedings- 5thPanHellenicConference-DidacticsOfInformatics.pdf 5 Πηγές στο διαδίκτυο Google SketchUp color sorter. YouTube video στον δικτυακό τόπο του YouTube που κάνει μία εικονική παρουσίαση του χρωματικού ταξινομητή μέσα από το 3D περιβάλλον του λογισμικού Google SketchUP 7. Ανακτήθηκε 29/06/2010 από: http://www.youtube.com/watch#!v=tvux3gylvms&feature=related Color Sorter. (2010). Δημοσίευση του project στον επίσημο δικτυακό τόπο της Αμερικανικής εταιρείας Parallax με σχετικές λεπτομέρειες της κατασκευής. Ανακτήθηκε 15/07/2010 από: http://www.parallax.com/tabid/870/default.aspx Parallax color sorter. YouTube video στον δικτυακό τόπο του YouTube που παρουσιάζει υλοποίηση ενός σεναρίου ταξινόμησης χρωματισμένων μπαλών με χρήση του χρωματικού ταξινομητή. Ανακτήθηκε 31/03/2010 από: http://www.youtube.com/watch?v=ntmpa4efguy Χρωματικός ταξινομητής. (2010). Το σχετικό σχολικό project με θέμα τον χρωματικό ταξινομητή, διαθέσιμο στο δικτυακό τόπο του 3ου Γενικού Λυκείου Πάτρας στο Πανελλήνιο σχολικό δίκτυο. Ανακτήθηκε 15/07/2010 από: http://3lykpatras.ach.sch.gr/colorsorter.htm.