Κυριακή 31 Μαΐου 2015

Robot Ισορροπιστής

Είχα ακούσει κατά καιρούς για την ύπαρξη του Arduino, αλλά η πρώτη μου επαφή με αυτό ήταν όταν κληρώθηκε ένα Arduino Uno για τη συμμετοχή μιας από τις τάξεις μου στο 4ο Φεστιβάλ Ψηφιακής Δημιουργίας για τη παρουσίαση του Υδροπνευματικού Αθροιστή 3-bit. Με την πρώτη γνωριμία μου με το Arduino, ξύπνησαν πάλι μέσα μου οι νεανικές μου αναζητήσεις για τα ηλεκτρονικά. Έτσι πολύ γρήγορα βρέθηκα να ψάχνω και να πειραματίζομαι με αυτόν το μικροελεγκτή και δεν άργησε να έρθει το πρώτο μου πρότζεκτ, που δεν ήταν τίποτε άλλο από ένα ρομπότ ισσοροπιστή (self-balancing robot). Ένα τέτοιο ρομπότ δεν μπορεί να χαρακτηριστεί εύκολη κατασκευή, αλλά είχα πολύ μεγάλο ενθουσιασμό, ένιωθα εξαιρετικά αισιόδοξος και θα ήταν αρκετά εντυπωσιακό και "πιασάρικο" όταν θα το παρουσίαζα στους μαθητές μου καθώς θα τους μιλούσα για τους μικροελεγκτές την επόμενη σχολική χρονιά.

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

Το επόμενο που χρειαζόμουν ήταν ένας τρόπος να ελέγχω το μοτέρ μέσα από το Arduino. Μετά από πολύ διάβασμα κατέληξα στο παρακάτω σχέδιο ελεγκτή/οδηγού που χρησιμοποιεί το διάσημο L293D H-Bridge.
Μετά από σχετικές δοκιμές πάνω σε breadboard όλα έδειχναν ότι λειτουργούσαν στην εντέλεια και το μόνο πράγμα που με προβλημάτιζε ήταν η υψηλή θερμοκρασία που αναπτυσσόταν πάνω στο ολοκληρωμένο L293D. Έτσι, στη τελική του μορφή πρόσθεσα μια αυτοσχέδια ψύκτρα από φύλλο χαλκού.

Το τελευταίο που έπρεπε να φτιάξω ήταν ο ανιχνευτής κλήσης. Δεν ήθελα να ξοδέψω επιπρόθετα χρήματα για την αγορά ενός επιταχυνσιόμετρου και γυροσκοπίου καθώς στόχος μου ήταν ο πειραματισμός και η απλότητα της κατασκευής. Έτσι ξεκίνησα αρχικά με τη κατασκευή καθαρά μηχανικών διακοπτών τύπου SPDT που χρησιμοποιούσαν μπαλίτσες από ρουλεμάν. Μετά από πολλές αποτυχημένες δοκιμές, προχώρησα σε ηλεκτρονικό-μηχανικούς διακόπτες που χρησιμοποιούσαν LED, φωτοαντιστάσεις και τις γνωστές μπαλίτσες από ρουλεμάν. Η τύχη δεν με βοήθησε ούτε τότε και κατάλαβα με τον πιο επίπονο τρόπο πως η αδράνεια σε τέτοιου είδους ανιχνευτές δεν είναι καλός σύμμαχος. Είχα αρχίσει να απογοητεύομαι όταν έπεσα τυχαία στο παρακάτω βίντεο.


Πέταξα λοιπόν κι εγώ τις άχρηστες μπαλίτσες των ρουλεμάν (που με παίδευαν τόσο καιρό) όπως και τα LED και χρησιμοποιώντας το παρακάτω απλό σχέδιο, έφτιαξα τον πολυπόθητο ανιχνευτή κλήσης, μόνο με δύο φωτοαντιστάσεις που "κοιτούν" αντικριστά άνω με μία γωνία 40 μοιρών περίπου (και δύο αντιστάσεις) σε κάποιο εξωτερικό σταθερό φωτισμό (φυσικό ή τεχνητό) πάνω από το ρομπότ.
Για το σκελετό του ρομπότ,  χρησιμοποιήθηκε το άχρηστο πλέον καπάκι από slot σκληρού δίσκου μιας κεντρικής μονάδας Η/Υ. Η θήκη μπαταρίων από το παιγνίδι που μου πρόσφερε ο συνάδελφος, έγινε η πηγή ενέργειας για το μοτέρ, ενώ η τροφοδοσία του Arduino γίνεται από μια ανεξάρτητη μπαταρία των 9V. Ο προγραμματισμός της ισορροπίας έγινε εφαρμόζοντας το γνωστό αλγόριθμο PID (Proportional Integral Derivative). Η επιλογή των κατάλληλων τιμών των παραμέτρων του αλγόριθμου έγινε με τη βοήθεια σχετικού λογισμικού από το μπλογκ του Patrik Olsson και μετά από προσαρμογή του στις δικές μου ανάγκες.


Στο παρακάτω βίντεο μπορείτε να δείτε το ρομπότ ισορροπιστή στη πρώτη του επιτυχημένη δοκιμή κάτω από τεχνητό φως (σ' αυτό οφείλεται κατά πάσα πιθανότητα η μάλλον αστεία παλινδρομική φαινομενικά ασταθή ισορροπία του).


Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου