Μια από τις προτάσεις του ομίλου μας για τον 1ο Πανελλήνιο Διαγωνισμό Εκπαιδευτικής Ρομποτικής και Physical Computing Ανοιχτών Τεχνολογιών. Μπορείτε να βρείτε το έργου μας και στο Githb.
Επιλογή και Έρευνα θέματος
Αρχικά μέσα από μια δίωρη ιδεοθύελλα (brainstorming) δημιουργήσαμε τον εννοιολογικό χάρτη με τα γενικά θέματα τα οποία μας απασχολούν. Στην επόμενη συνάντηση μας, αφού μελετήσαμε τον εννοιολογικό χάρτη και τις πληροφορίες που είχαμε συλλέξει για τα θέματα που είχαν αποτυπωθεί σε αυτόν, ξεκινήσαμε να γράφουμε ιδέες και προτάσεις. Η συγγραφή και ο σχολιασμός ιδεών και προτάσεων διήρκησε τρεις εβδομάδες.
Μια από τις πιο δημοφιλείς προτάσεις, ήταν η δημιουργία ενός παιχνιδιού Virtual Reality. Ύστερα από συζητήσεις καταλήξαμε στην ιδέα να κατασκευάσουμε ένα χειριστήριο προσομοίωσης αιωρόπτερου για εφαρμογές εικονικής πραγματικότητας, το οποίο να μπορεί να συνδέεται με τον υπολογιστή ή το κινητό τηλέφωνο. Βασική πηγή έμπνευσης για τον τρόπο υλοποίησης, αποτέλεσε το παρακάτω βίντεο.
Σχεδιασμός λειτουργίας
Τι θέλουμε να πετύχουμε
Σκοπός μας είναι να δημιουργήσουμε ένα απλό και πρωτότυπο χειριστήριο για εφαρμογές εικονικής πραγματικότητας, με το οποίο οι χρήστες να μπορούν να μετακινούνται στον εικονικό τρισδιάστατο χώρο, έχοντας την αίσθηση ότι πετάν με αιωρόπτερο. Θέλουμε η κατασκευή μας να είναι απλή και να μπορεί να χρησιμοποιηθεί εύκολα. Θα περιλαμβάνει ένα γυροσκόπιο και θα στέλνει τα δεδομένα ασύρματα στην συσκευή που είναι το παιχνίδι. Το άτομο που θα παίζει το παιχνίδι θα την κρατάει στα χέρια του και ανάλογα με την κλίση που θα της δίνει, θα μετακινείται στον τρισδιάστατο χώρο του παιχνιδιού. Επίσης το χειριστήριο θα δίνει και ανατροφοδότηση στον χρήση με μικρές δονήσεις και έναν ανεμιστήρα που θα δημιουργεί την αίσθηση του αέρα.
Τρόπος λειτουργίας
- Ανάλογα τον τρόπο (κλίση) με τον οποίο το κρατάει ο χρήστης, μεταφέρει τα δεδομένα από το γυροσκόπιο στην εφαρμογή εικονικής πραγματικότητας στον υπολογιστή (processing), αλλάζοντας την περιστροφή του εικονικού 3Δ αντικειμένου.
- Αν οι γωνίες κλίσης είναι πάνω από 20 μοίρες, ενεργοποιούνται κινητήρες δόνησης και ανεμιστήρας ώστε να δίνεται η αίσθηση της ταχύτητας στον χρήστη.
Μελλοντικά σχέδια
Αυτή τη στιγμή το πρόγραμμα μας εκτελείται σε υπολογιστές και το χειριστήριο συνδέεται με καλώδιο USB για να στέλνει σειριακά τα δεδομένα. Στα άμεσα σχέδια μας είναι να το μεταφέρουμε σε κινητές συσκευές. Έχουμε ήδη αποκτήσει τις μονάδες bluetooth για το arduino και αυτό που μένει είναι να κάνουμε τις αλλαγές στα προγράμματα μας.
Λίστα Υλικών
Αποφασίσαμε να δημιουργήσουμε 2 χειριστήρια για να μπορέσουμε να δουλεύουμε πιο άνετα και σε μικρότερες ομάδες, αφού είμαστε αρκετά άτομα στον όμιλο. Τα ηλεκτρονικά μέρη που παραγγείλαμε για κάθε χειριστήριο είναι:
- 1 x Arduino Nano – 4,98 ευρώ
- 1 x Bluetooth module HC-05 zs-040 – 7,40 ευρώ.
- 1 x MPU-6050 3 Axis Gyroscope + Accelerometer Module – 4,80 ευρώ
- 1 x IIC I2C Bi-Directional Logic Level Converter Module (για την σύνδεση του Bluetooth με το Arduino Nano) – 1,25 ευρώ.
- 2 x DC 3V 12MM x 3.4MM Micro Motor – Coin Flat Vibrating Motor – 1,98 ευρώ
- 1 x 5V 1-CHANNEL SMALL RELAY MODULE BOARD FOR ARDUINO – 2 ευρώ.
Το συνολικό κόστος των υλικών για τα 2 χειριστήρια είναι 45 ευρώ.
Εκτός από τα ηλεκτρονικά μέρη που αγοράσαμε, χρησιμοποιήσαμε και υλικά από παλιούς υπολογιστές που έχουμε στο υπόγειο του σχολείου μας. Ειδικά οι ανεμιστήρες ήταν από τα βασικά εξαρτήματα που θέλαμε να τοποθετήσουμε πάνω στα χειριστήρια. Μπορείτε να δείτε περισσότερα από την διαδικασία ανάκτησης αυτών των υλικών στο εργαστήριο για τους κινητήρες DC.
Εργαλεία
Για την κατασκευή των οχημάτων χρειαστήκαμε διάφορα εργαλεία τα οποία διαθέτει το εργαστήριο μας:
- Κατσαβίδια,
- πένσες,
- κοπίδια,
- κόφτες και απογυμνωτές καλωδίων,
- πιστόλι σιλικόνης,
- χαράκια,
- κολλητήρι,
- δραπανοκατσάβιδο.
Επίσης κατασκευάσαμε και τα δικά μας απωθητικά οσμών από την διαδικασία της κόλλησης καλωδίων, αξιοποιώντας ανεμιστήρες από παλιούς υπολογιστές και φίλτρα από απορροφητήρες. Μπορείτε να δείτε περισσότερα από την διαδικασία κατασκευής τους σε αυτή την ανάρτηση.
Αναλώσιμα
Εκτός από τις βασικές μονάδες (αισθητήρες, ενεργοποιητές, ελεγκτές), χρησιμοποιήσαμε αρκετά αναλώσιμα τα οποία διαθέτει το εργαστήριο μας.
- Καλώδια dupont,
- breadboard,
- καλάι,
- βίδες,
- παξιμάδια,
- αποστάτες
- μακετόχαρτο,
- ράβδους σιλικόνης,
- ταινίες διπλής όψης,
- μπαταρίες AA
Μελέτη μηχανισμών και αισθητήρων
Πριν από την φάση της κατασκευής αλλά και κατά την διάρκεια της, πραγματοποιήθηκαν εργαστήρια στα οποία μελετήσαμε αναλυτικά τον τρόπο λειτουργίας των μηχανισμών και των αισθητήρων που περιλαμβάνουν τα αυτόνομα οχήματα μας.
Τι είναι οι έξυπνες συσκευές
Το πρώτο εργαστήριο που πραγματοποιήσαμε στην πρώτη συνάντηση του ομίλου μας για φέτος, είχε ως στόχο να συζητήσουμε και να κατανοήσουμε τον όρο “έξυπνη συσκευή”. Μπορείτε να δείτε λεπτομέρειες στην ανάρτηση που υπάρχει εδώ.
Εισαγωγή στους αισθητήρες
Σε αυτό το εργαστήριο μελετήσαμε τον τρόπο με τον οποίο μπορούμε να λαμβάνουμε τιμές από τον πραγματικό κόσμο και να τις μετατρέπουμε σε ψηφιακές, χρησιμοποιώντας το Arduino και διάφορους αισθητήρες. Μπορείτε να δείτε λεπτομέρειες στην ανάρτηση που υπάρχει εδώ.
Εργαστήριο Κινητήρων
Σε αυτό το εργαστήριο μελετήσαμε την αρχή λειτουργίας των κινητήρων DC, Servo και Stepper και τους τρόπους με τους οποίους μπορούμε να τους ελέγξουμε με την χρήση του Arduino. Στο πλαίσιο του εργαστηρίου κατασκευάσαμε και μερικούς ανεμιστήρες με φίλτρο, αξιοποιώντας παλιές συσκευές που υπάρχουν στο υπόγειο του σχολείου, τους οποίους χρησιμοποιήσαμε αργότερα για την απομάκρυνση των οσμών από την κόλληση καλωδίων. Μπορείτε να δείτε περισσότερες λεπτομέρειες στην ανάρτηση που υπάρχει εδώ.
Εργαστήριο 3Δ σχεδίασης και εκτύπωσης
Η ΕΛΛΑΚ έχει παραχωρήσει στον όμιλο μας έναν τρισδιάστατο εκτυπωτή RepRap Prusa, τον οποίο αξιοποιούμε κάθε χρόνο στις κατασκευές μας. Για την εισαγωγή των μαθητών στις έννοιες της 3Δ σχεδίασης και εκτύπωσης αφιερώσαμε μια συνάντηση στην πλατφόρμα tinkercad. Μπορείτε να δείτε παραπάνω λεπτομέρειες σε αυτή την ανάρτηση.
Μελέτη συστημάτων πλοήγησης αδράνειας
Η καρδιά του χειριστηρίου μας είναι η μονάδα IMU, η οποία θα βρίσκεται τοποθετημένη σε αυτό. Μια τέτοια μονάδα περιλαμβάνει δυο βασικούς αισθητήρες: επιταχυνσιομέτρο και γυροσκόπιο. Για την μελέτη αυτών των αισθητήρων αφιερώσαμε μια συνάντηση του ομίλου μας. Μπορείτε να δείτε αναλυτικά το εργαστήριο σε αυτή την ανάρτηση.
Εργαστήριο προγραμματισμού 3Δ
Για να πετύχουμε την αλληλεπίδραση του χειριστηρίου μας με άλλες ψηφιακές συσκευές (υπολογιστής, κινητό τηλέφωνο) αποφασίσαμε να χρησιμοποιήσουμε την γλώσσα προγραμματισμού Processing. Η εμπειρία αρκετών μαθητών του ομίλου που συμμετέχουν για 2η και 3η χρονιά, καθώς και η ομοιότητα με το περιβάλλον προγραμματισμού του Arduino έπαιξαν ρόλο για την απόφαση αυτή. Αφιερώσαμε μια από τις συναντήσεις μας σε ένα ταχύρυθμο εργαστήριο για το πως μπορούμε να προγραμματίσουμε 3Δ αντικείμενα στην Processing και να τους αλλάξουμε την θέση και την περιστροφή τους. Μπορείτε να δείτε λεπτομέρειες σε αυτή την ανάρτηση.
Διαδικασία κατασκευής
Ύστερα από αναζήτηση υλικών για την βάση του χειριστηρίου μας, ανακαλύψαμε στο υπόγειο του σχολείου 2 κομμάτια από ξύλο τα οποία μας βόλευαν για τις κατασκευές. Ήταν ελαφριά, είχαν το ιδανικό πάχος για να μπορέσουμε να τοποθετήσουμε τα ηλεκτρονικά μας μέρη και είχαν και ιδανικό μήκος.
Χρησιμοποιώντας γιαλόχαρτο τρίψαμε αρχικά τα κομμάτια του ξύλου για να γίνουν πιο λεία και να μην υπάρχουν σημεία που να είναι επικίνδυνα ή δυσάρεστα όταν τα πιάνουμε.
Χρησιμοποιώντας μολύβι και μαρκαδόρους σημειώσαμε πάνω στα κομμάτια του ξύλου τις θέσεις που θα τοποθετούνταν τα ηλεκτρονικά μας εξαρτήματα (arduino, μονάδα bluetooth, γυροσκόπιο κλπ). Πρέπει να προσέξουμε να τοποθετήσουμε το γυροσκόπιο μας όσο πιο κοντά γίνεται στο κέντρο του ξύλου για να έχουμε την καλύτερη δυνατή απόδοση.
Στις άκρες των δυο ξύλων τοποθετήσαμε χαρτόνι και μονωτική ταινία για να δημιουργήσουμε τα grip, δηλαδή τα σημεία από οποία θα πιάνει τα χειριστήρια ο παίκτης των παιχνιδιών.
Σύνδεση μονάδων – σχηματικά
Τα χειριστήρια μας, εκτός από το Arduino Nano περιλαμβάνουν μια μονάδα IMU (γυροσκόπιο), ένα ρελέ, 2 κινητήρες δόνησης και έναν ανεμιστήρα. Στα άμεσα σχέδια μας είναι να συνδέσουμε και την μονάδα bluetooth για να λειτουργεί το χειριστήριο μας και με κινητές συσκευές.
Σύνδεση ρελέ και κινητήρων
Για την ενεργοποίηση των 2 κινητήρων δόνησης και του ανεμιστήρα, αποφασίσαμε να χρησιμοποιήσουμε ένα ρελέ, έναν διακόπτη δηλαδή που μπορεί να ενεργοποιείται από το arduino nano. Όλοι οι κινητήρες είναι συνδεδεμένοι σε ένα κύκλωμα που περιλαμβάνει μπαταρίες και το ρελέ. Το Arduino μπορεί και ελέγχει αν το κύκλωμα θα είναι ανοιχτό (δεν περνάει ρεύμα) ή κλειστό (περνάει ρεύμα).
Σύνδεση μονάδας IMU
Η μονάδα IMU που έχουμε χρησιμοποιεί τα pins SDA και SCL (I2C bus) τα οποία στο Arduino nano βρίσκονται στα pin A4 και Α5 αντίστοιχα.
Προγραμματισμός
Προσθήκη βιβλιοθήκης και δοκιμή μονάδας
Υπάρχουν πολλές βιβλιοθήκες για την μονάδα που έχουμε επιλέξει. Μια από τις πιο εύκολες στη χρήση είναι η βιβλιοθήκη MPU6050_tockn.
Αφού κάνουμε εγκατάσταση την βιβλιοθήκη, μπορούμε να πάμε από το μενού Αρχείο στα Παραδείγματα και από εκεί να πάμε στην βιβλιοθήκη MPU6050_tockn και να διαλέξουμε το παράδειγμα GetAngle. Το φορτώνουμε στην κατασκευή μας, ανοίγουμε την σειριακή οθόνη και ελέγχουμε αν αναγνωρίζει τις αλλαγές την διεύθυνση του χειριστηρίου μας.
Το δικό μας πρόγραμμα που βρίσκεται στο Arduino στην ουσία το μόνο που κάνει είναι να στέλνει στην σειριακή θύρα τις γωνίες περιστροφής γύρω από κάθε άξονα (X,Y,Z), ενώ ελέγχει αν κάποια από αυτές τις τιμές είναι πάνω από 20 μοίρες, οπότε και ενεργοποιεί τους κινητήρες.
Το πρόγραμμα για το χειριστήριο είναι στο αποθετήριο μας στο Github.
Προγραμματισμός υπολογιστή
Στο τελευταίο εργαστήριο που κάναμε ασχοληθήκαμε με τον προγραμματισμό 3Δ αντικειμένων στην Processing. Πατώντας πάνω στα προγράμματα που είχαμε ήδη δημιουργήσει προχωρήσαμε στην ολοκλήρωση του προγράμματος, ώστε να παίρνει από την σειριακή θύρα τις τιμές του γυροσκοπίου και να αλλάζει τον προσανατολισμό του 3Δ μοντέλου μας. Το 3Δ μοντέλο που χρησιμοποιήσαμε το βρήκαμε ελεύθερα διαθέσιμο στην πλατφόρμα Free3D από τον χρήστη zakardian.
Η αρχική μας ιδέα ήταν να αντιστοιχήσουμε τις γωνίες X,Y,Z του γυροσκοπίου, σε αυτές του 3Δ αντικειμένου. Εκεί όμως είδαμε πως είχαμε κάποια προβλήματα. Αυτό συμβαίνει γιατί το γυροσκόπιο μας στο χειριστήριο είναι τοποθετημένο οριζόντια, ενώ η οθόνη στον υπολογιστή είναι κάθετα. Μπορείτε να παρατηρήσετε τα παρακάτω μοντέλα για να καταλάβετε τις διαφορές.
Παρατηρούμε ότι ο άξονας Ζ του χειριστηρίου είναι ο άξονας Υ της οθόνης, ενώ ο άξονας Υ του χειριστηρίου είναι ο άξονας Ζ της οθόνης. Επίσης ο άξονας Χ του χειριστηρίου αλλάζει ανάποδα τις τιμές από τον άξονα Χ τις οθόνης. Αυτό σημαίνει ότι:
γωνία_Χ_οθόνης = -γωνία_Χ_χειριστηρίου
γωνία_Υ_οθόνης = γωνία_Ζ_χειριστηρίου
γωνία_Ζ_οθόνης = γωνία_Υ_χειριστηρίου
Το τελικό πρόγραμμα στην Processing μπορείτε να το βρείτε στο αποθετήριο μας στο Github.
Φωτογραφίες και βίντεο
Μπορείτε να δείτε φωτογραφίες από τις φάσεις της κατασκευής σε αυτό το λεύκωμα.
πάρα πολύ ωραία κατασκευή