Η Ομάδα
Η ομάδα ρομποτικής @robot7gymchai του σχολείου μας δημιούργησε μια υπο-ομάδα αποτελούμενη από δυο μαθήτριες της Β’ τάξης και έναν μαθητή της Α’, που μαζί με τον καθηγητή πληροφορικής, αποφάσισε να δημιουργήσει ένα “Κουίζ Ερωτήσεων με δύο πλήκτρα”.
Αναλυτική περιγραφή ιδέας:
Στα πλαίσια του Gamification, μια καλή ιδέα εναλλακτικής μάθησης είναι ένα παιχνίδι τύπου κουίζ με ερωτήσεις που απαντώνται από συναγωνιζόμενες ομάδες. Ο αρχηγός κάθε ομάδας πρέπει να προλάβει να πατήσει το φωτιζόμενο πλήκτρο του για απαντήσει. Οι ερωτήσεις, μαζί με τις δυνατές απαντήσεις προβάλλονται σε βιντεοπροβολέα.
Αναπτύξαμε μια εφαρμογή σε HTML/JavaScript που τρέχει τοπικά σε φυλλομετρητή και μέσω Web Serial επικοινωνούνται τα πατήματα των πλήκτρων μπάζερ που ελέγχονται από μικροελεγκτή Arduino και αντίστοιχο πρόγραμμα. Τόσο τα πλήκτρα, όσο και ο ελεγκτής και το breadboard περιέχονται σε κουτί εκτυπωμένο 3Δ.
Eκπαιδευτικοί στόχοι του έργου:
Οι μαθητές αναπτύξαν τις γνώσεις και δεξιότητές τους κατά την επιλογή και τον συνδυασμό των επιμέρους εξαρτημάτων, αλλά και κατά την συναρμολόγηση και τον έλεγχο της λειτουργίας τους. Οι γνώσεις αυτές ανήκουν στον 3Δ σχεδιασμό-κατασκευή, την ηλεκτρολογία και τον προγραμματισμό. Επίσης δουλέψαν και δεξιότητες όπως την κριτική σκέψη, τη συνεργασία μεταξύ τους και την επικοινωνία των ιδεών τους.
Η συνάφεια με το θέμα του διαγωνισμού είναι οι θεματικές
ΕΚΠΑΙΔΕΥΣΗ & ΜΑΘΗΣΗ, STEM Εκπαίδευση: Διαδραστικά εργαλεία μάθησης
ΠΡΟΣΒΑΣΙΜΟΤΗΤΑ & ΣΥΜΠΕΡΙΛΗΨΗ, Εκπαιδευτική Ένταξη: Υποστηρικτικά εργαλεία μάθησης
Το έργο αναπτύχθηκε με εργαλεία ανοιχτού λογισμικού και τα υλικά έχουν ανοιχτό και επαναχρησιμοποιούμενο χαρακτήρα.
Λίστα υλικών:
Εκτυπωτής 3D
νήμα εκτύπωσης
μικροελεγκτής Arduino Uno
τροφοδοτικό UPS
breadboard mini
μεγάλα πλήκτρα τύπου buzzer
Shield Logger με RTC, microSD Card, ICU
διάφορα καλώδια και βύσματα, πρέσα, κόλλα κλπ
Εργαλεία:
πολύμετρο και αμπεροτσιμπίδα, ηλεκτρικό κολλητήρι, κοφτάκι, πριόνι, τροχός, ψαλίδι, κοπίδι, πιστόλι θερμόκολλας, μυτοτσίμπιδο, κατσαβίδια, χάρακας, σπειροτόμος
Υλοποίηση
Βίντεο από φάσεις κατασκευής
Αποσυσκευάσαμε και συναρμολογήσαμε τα μεγάλα θολωτά πλήκτρα τύπου μπάζερ.
Μετατρέψαμε ένα χαρτοκούτι παπουτσιών σε βάση τους, κόβοντας τρύπες και βιδώνοντας τα πλήκτρα με τις ροδέλες τους.
Συνδέσαμε τους διακόπτες των πλήκτρων και τα φώτα λεντ τους με τα αντίστοιχα καλώδια σε μια πλακέτα breadboard και σε έναν ελεγκτή Arduino Uno.
Χρειάστηκε να σφίξουμε τα βύσματα για να μην έχουμε τυχαίες διακοπές στην σύνδεση.
Τα δυο πλήκτρα στέλνουν την κατάστασή τους σε μια ιστοσελίδα, μέσω μιας θύρας USB (σειριακής, Web Serial), ώστε να αλληλεπιδρούν με το παιχνίδι ερωτήσεων που είναι γραμμένο σε JavaScript. Η ιστοσελίδα είναι τοπικό αρχείο και δεν χρειάζεται webserver.
Κάθε πλήκτρο συνδέει το ένα άκρο (π.χ. NO, Normally Open) σε ψηφιακό πινάκι εισόδου (πχ D2), δηλωμένο INPUT_PULLUP και το άλλο άκρο (π.χ. COM, κοινή επαφή) σε γείωση. Εξάγει σήμα HIGH όταν είναι απάτητο και LOW όταν πατιέται.
Το αντίστοιχο λεντ συνδέει την άνοδο (+, μακρύ πόδι) σε 12 βολτ, που με τους περιεχόμενους αντιστάτες των 462 Ω περιορίζει το ρεύμα στα 26 mA. Η κάθοδος (-, κοντό πόδι) συνδέεται σε ψηφιακό πινάκι (πχ D3). Αλλιώς, στα 5 βολτ, με αλλαγή σε αντιστάτη σε 220 Ω, που περιορίζει το ρεύμα στα 22 mA.
Το πρώτο πάτημα πρέπει να ανάβει το φως του πλήκτρου και σβήνει 5″ μετά, κλειδώνοντας τη λειτουργία των πλήκτρων σε αυτό το διάστημα.
Τέλος το χαρτοκούτι επενδύθηκε με χρωματιστά χαρτιά για ομορφιά.
Προγραμματισμός και Βασικός αλγόριθμος
Αναπτύξαμε κώδικα σε γλώσσα C++/17 μεσα σε περιβάλλον Arduino IDE 2.x.
Ο βασικός αλγόριθμος είναι ο παρακάτω:
void loop() {
check_button_press(yellow);
check_button_press(green);
// Αν το πλήκτρο ήταν ελεύθερο (HIGH) αλλά τώρα πατήθηκε (LOW)
// Κράτα την πατημένη κατάσταση
// Άναψε το λεντ.
// Βόμβησε για ένα δευτερόλεπτο
// Στείλε χρώμα στην ιστοσελίδα
// Πάρε εντολή από την ιστοσελίδα για επαναφορά λεντ και πλήκτρου
delay(10); }
Δηλαδή συνεχώς επαναλαμβάνεται η ανάγνωση των διακοπτών των πλήκτρων (κίτρινο και πράσινο) και το πρώτο που θα πατηθεί ανάβει το φως του. Αμέσως ακούγεται ο βομβητής και ένα μήνυμα μεταφέρεται μέσω της θύρας USB στο υπολογιστή.
Αναπτύξαμε επίσης κώδικες σε γλώσσες HTML, CSS, JavaScript, SVG, JSON στον υπολογιστή.
Σε ένα PC η ιστοσελίδα του παιχνιδιού τρέχει κώδικα JavaScript που διαβάζει το μήνυμα και προσαρμόζει το χρώμα της εμφανιζόμενης ερώτησης στο χρώμα του πλήκτου που πατήθηκε. Αναμένει την επιλογή της απάντησης του χρήστη μέσω του ποντικιού και ανάλογα αν είναι σωστή ή λάθος, προσθέτει ή αφαιρεί πόντους στο γραφικό του πλήκτρου στην ιστοσελίδα. Μετά προχωρά στην επόμενη ερώτηση, επιστρέφοντας μήνυμα στο Arduino Uno, ώστε αυτό να σβύσει τα φώτα των πλήκτρων και να αναμένει νέο πάτημα από τον παίκτη. Με το τέλος των ερωτήσεων εμφανίζεται το σκορ των παικτών.
Για την δημιουργία ερωτήσεων, φτιάχτηκε ερωτηματολόγιο που μοιράστηκε σε όλους τους μαθητές του σχολείου και όσοι επιθυμούσαν συνεισέφεραν τις ερωτήσεις τους. Η κάθε ερώτηση περιλάμβανε τις δυνατές επιλογές απάντησης, την σωστή από αυτές, την κατηγορία της ερώτησης, το επίπεδο δυσκολίας και προαιρετικά το όνομα του δημιουργού της. Η καταχώρηση των 78 ερωτήσεων έγινε από μερικούς μαθητές μέσω μιας φόρμας γκουγκλ και εξαγωγή των ερωτήσεων πρώτα σε αρχείο XLS και μετά μετατροπή του με εργαλείο online σε αρχείο JSON.
Ο πλήρης κώδικας, δηλαδή τόσο του Arduino (C++), όσο και η ιστοσελίδα (HTML, SVG), μαζί με τις ερωτήσεις (JSON), το αρχείο στυλ (CSS) και ο κώδικας του παιχνιδιού (JavaScript) υπάρχουν στο GitHub με διεύθυνση αποθετηρίου: https://github.com/amachg/Quiz-Game
Το τελικό αποτέλεσμα και η λειτουργία φαίνεται στα δύο παρακάτω βίντεο:
Άδειες χρήσης λογισμικού και περιεχομένου
CC BY-NC-SA
Επαφή
Instagram: @robot7gymchai
email: amach@sch.gr
