ΦΟΡΜΑ ΠΡΟΤΕΙΝΟΜΕΝΟΥ ΣΧΕΔΙΟΥ ΜΑΘΗΜΑΤΟΣ: Κατασκευή και Προγραμματισμός Συστήματος Καταγραφής Δεδομένων (Data Logging) με χρήση Arduino Uno για το hydrobot "Argolith" ΣΧΟΛΕΙΟ: 7ο Γενικό Λύκειο Τρικάλων ΗΜΕΡΟ ΜΗΝΙΑ: Σάββατο 28/03/2015 Arduino Day 2015 ΔΙΑΡΚΕΙΑ: 2 ώρες ΤΑΞΗ: Ομάδα Υδρορομποτικής 7ου Γ.Ε.Λ. Τρικάλων ΚΑΘΗΓΗΤΗΣ:, ΠΕ19 Πληροφορικής 1. Σκοπός: H ομάδα υδρορομποτικής του 7ου ΓΕΛ Τρικάλων θέλοντας να προσφέρει επιπλέον δυνατότητες στο hydrobot "Argolith" αποφάσισε να ενσωματώσει αισθητήρες μέτρησης της φωτεινότητας και της θερμοκρασίας του νερού μέσω δημιουργίας και προγραμματισμού κυκλώματος με χρήση μικροεπεξεργαστή Arduino Uno και χρήσης Data Logging Shield της Adafruit για καταγραφή των δεδομένων. 2. Μέθοδος Διδασκαλίας: Συνεργατική Μάθηση μέσω "Think-Pair- Share" (Σκέψου-Συνεργάσου-Μοιράσου), σύμφωνα με την οποία η κάθε ομάδα θα απαντάει στις δραστηριότητες και στη συνέχεια θα συζητά τις απαντήσεις με τις υπόλοιπες ομάδες. Απαιτείται ανομοιογένεια, ω ς προς το γνωστικό υπόβαθρο, των μελών της κάθε ομάδας, η οποία ρυθμίζεται μέσω επιλογής των μαθητών από τον καθηγητή. Με αυτόν τον τρόπο θα εξασφαλιστεί η ενεργός συμμετοχή από την πλειοψηφία των μαθητών. 3. Διδακτικοί στόχοι: 1
Να κατανοήσουν οι μαθητές την σημασία των αισθητήρων (sensors) στην καταγραφή δεδομένων (data logging) Να κατανοήσουν οι μαθητές πώς δημιουργούμε ένα κύκλωμα ( circuit) με χρήση μικροεπεξεργαστή Arduino Uno Να κάνουν χρήση της γλώσσας προγραμματισμού Wiring και να εφαρμόσουν γνώσεις που έχουν αποκτήσει από τον προγραμματισμό με ψευδογλώσσα Να μπορούν να εκτιμήσουν οι μαθητές τη σημασία οποιασδήποτε αλλαγής στον κώδικα του προγράμματος Μέσω της βιωματικής μάθησης, οι μαθητές να μπορούν να κάνουν απλή χρήση εργαλείων, καθώς και δοκιμέ ς στην συνδεσμολογία του κυκλώματος, ανάλογα με την επιθυμητή μέτρηση Να κατανοήσουν την λειτουργία και την σημασία της κάρτας μνήμης (SD Card) στο κύκλωμα 4. Εκπαιδευτικοί στόχοι: Οι μαθητές να συνεργαστούν και να δουλέψουν ομαδικά Οι μαθητές να πειραματιστούν και να καταλήξουν σε συμπεράσματα μέσα από εποικοδομητικό διάλογο και να επιλέξουν την κατάλληλη λύση για την κατασκευή τους Οι μαθητές να εξοικειωθούν με την ανάπτυξη στρατηγικών επίλυσης προβλημάτων 5. Διδακτική προσέγγιση: Οι μαθητές θα δημιουργήσουν το κύκλωμα συνδέοντας την πλακέτα επέκτασης του Arduino, την Data Logging Shield της Adafruit, με το Arduino 2
Προγραμματισμός του παραπάνω κυκλώματος Δοκιμή του κυκλώματος με ορισμό και έλεγχο του χρόνου ( Real Time Clock) και έλεγχο σύνδεσης και λειτουργίας της κάρτας μνήμης ( SD Card) Δημιουργία κυκλώματος μέτρησης της θερμοκρασίας του νερού Δημιουργία κυκλώματος μέτρησης της φωτεινότητας του νερού Καταγραφή του χρόνου και των μετρήσεων σε αρχείο της κάρτας μνήμης Δοκιμή του κυκλώματος Ενσωμάτωση του κυκλώματος στο hydrobot "Argolith" 6. Μέσα διδασκαλίας - Υλικά: Οι υπολογιστές του εργαστηρίου Πληροφορικής στους οποίους έχει εγκατασταθεί η γλώσσα προγραμματισμού " Wiring" για τον κώδικα του κυκλώματος Ένας μικροεπεξεργαστής Arduino Uno Μία πλακέτα επέκτασης (Data Logging Shield) της Adafruit Μία κάρτα μνήμης (SD Card) Breadboard Οι αισθητήρες μέτρησης θερμοκρασίας και φωτεινότητας Μία αδιάβροχη θήκη για την τοποθέτηση του κυκλώματος Ένα τρυπάνι για να γίνουν οι οπές στην αδι άβροχη θήκη και να περνάνε οι αισθητήρες μέσα από αυτές Εποξική κόλλα για ασφαλές κλείσιμο των οπών 7. Σύντομη περιγραφή: 3
Στο Ηydrobot "Argolith" θα ενσωματώσουμε έναν μικροεπεξεργαστή Arduino Uno, ο οποίος θα χρησιμοποιηθεί για την καταγραφή ερεθισμάτων - αρχικά τιμών φωτεινότητας και θερμοκρασίας στο νερό. Πέρα από το Arduino θα χρησιμοποιήσουμε και μια Data Logging Shield (πλακέτα επέκτασης του Arduino) της Αdafruit η οποία μας παρέχει έτοιμο τον Κύκλωμα Πραγματικού Χρόνου (RTC) και το κύκλωμα εγγραφής στη κάρτα μνήμης (SD Card) όπως φαίνεται παρακάτω. Adafruit Data Logging Shield 8. Δομή μαθήματος: Αναλυτική περιγραφή επιμέρους βημάτων διδασκαλίας : Δημιουργία και προγραμματισμός του κυκλώματος Σύνδεση του Shield στο Arduino Για να ξεκινήσει η διαδικασία, θα πρέπει πρώτα να μπορέσουμε να συνδέσουμε το shield στο Arduino. Για αυτό το σκοπό κόβουμε τους ακροδέκτες σύνδεσης (pin headers), τους συνδέουμε στο Arduino και στη συνέχεια κάνουμε τις απαραίτητες κολλήσεις ώστε να "κουμπώσει" το σύστημα. 4
Εικ όν α 2: Κ ό ψιμο τω ν ακρ οδ εκ τώ ν σύνδ εσης (he ader s ) Εικ όν α 3 : Σύ νδ εση τω ν σ υ νδ έσμων στο Ar du i no Εικ όν α 4: Τ ο ποθέτησ η το υ shie ld Εικ όν α 5: Κ ό λληση τω ν p in header πά νω στο Arduin o Δοκιμές πάνω στην πλακέτα επέκτασης Ορισμός και έλεγχος του χρόνου (Real Time Clock, RTC): Δεδομένου ότι θέλουμε να καταγράφουμε την θερμοκρασία και την φωτεινότητα θα πρέπει να χρησιμοποιήσουμε ένα μετρητή χρόνου, ο οποίος θα μας παρέχει την δυνατότητα να καταγράφουμε τις χρονικές στιγμές των μετρήσεων και ο οποίος θα λειτουργεί ανεξάρτητα από το αν παρέχεται ρεύμα στο Arduino η όχι. Το συγκεκριμένο shield έχει έναν μετρητή χρόνου (Real Time Clock) και η μπαταρία που ενσωματώνεται μας δίνει την δυνατότητα να μετράμε το χρόνο άσχετα από το αν παρέχεται ρεύμα ή όχι στο Arduino. Θα πρέπει όμως να δοκιμάσουμε αν λειτουργεί. Για αυτό ανοίγετε το αρχείο TEST_TIME.ino, στο οποίο και κάνετε τις απαραίτητες αλλαγές ώστε να οριστεί ο χρόνος. // Πρόγραμμα για τον έλεγχο του χρόνου ώστε να οριστεί μία αρχική τιμή και να ελέγξουμε αν λειτουργεί κανονικά. #include <Wire.h> #include "RTClib.h" 5
RTC_DS1307 RTC; void setup () { Serial.begin(57600); Wire.begin(); RTC.begin(); if (! RTC.isrunning()) {// Με την εγκατάσταση της μπαταρίας στο SHIELD //και αφού το θέσουμε σε λειτουργία θα πρέπει να οριστεί ο χρόνος //Το τμήμα αυτό πρέπει να εκτελεσ τεί μόνο μία φορά και για αυτό μπαίνει μέσα σε μία εντολή Αν ( if) //Serial.println("RTC is NOT running!"); //RTC.adjust(DateTime( DATE, TIME )); } } void loop () { DateTime now = RTC.now(); Serial.print(now.year(), DEC); Serial.print('/'); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.day(), DEC); Serial.print(' '); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.print(now.second(), DEC); Serial.println(); delay(3000); } Προσοχή θα πρέπει να βγάλετε τα σχόλια (//) από ένα τμήμα του προγράμματος προκειμένου να λειτουργήσει σωστά και να δείχνει τον πραγματικό χρόνο. Έλεγχος σύνδεσης και λειτουργίας της κάρτας μνήμης (SD Card): Αφού τα δεδομένα μας (οι μετρήσεις αλλά και ο χρόνος) πρέπει να καταγραφούν στη κάρτα μνήμης θα πρέπει να ελέγξουμε αν η κάρτα μνήμης λειτουργεί σωστά. Για αυτό το λόγο συνδέουμε την κάρτα μνήμης πάνω στο κύκλωμα και ανοίγουμε το πρόγραμμα CardInfo.ino και κάνουμε την απαραίτητη αλλαγή ώστε να λειτουργεί σωστά. Προσέξτε το σημείο που πρέπει να αλλάξετε. Αν 6
το πρόγραμμα λειτουργήσει κανονικά θα πρέπει στη serial να δείτε το παρακάτω αποτέλεσμα. Κύκλωμα μέτρησης της θερμοκρασίας Για να μετρήσουμε την θερμοκρασία στο νερό θα χρησιμοποιήσουμε ένα ν αδιάβροχο αισθητήρα θερμοκρασίας. Ο αισθητήρας που επιλέξαμε για το κύκλωμά μας είναι ο WaterProof LM35 o οποίος έχει τρεις ακροδέκτες. Εικ όν α 6: Ο αισθη τήρ ας θ ερμοκρ ασ ίας πο υ θ α χρησιμοποιήσ ου με. Ουσιαστικά ο τρόπος που λειτουργεί ο αισθητήρας είναι ότι ανάλογα με την τάση εισόδου προκαλείται μία αλλαγή στην τάση που επιστρέφει και διαβάζουμε από την αναλογική θύρα του Arduino. Στη συνέχεια κατασκευάζουμε το κύκλωμα μέτρησης της θερμοκρασίας όπως φαίνεται στην εικόνα παρακάτω: 7
Εικ όν α 7: Τ ο κύ κλωμα μέ τρησης της θ ερμοκρ ασ ίας Ανοίγουμε, στη συνέχεια, το πρόγραμμα temperature.ino και δοκιμάζουμε την θερμοκρασία που απεικονίζει. Στο πρόγραμμα αυτό κάνουμε τις απαραίτητες αλλαγές ώστε να απεικονίζει την θερμοκρασία μόνο σε βαθμούς κελσίου ( o C) και το αποθηκεύουμε. Εικ όν α 6: Ο αισθη τήρ ας θ ερμοκρ ασ ίας πο υ θ α χρ ησ ιμ ο πο ιή σουμ ε. Κύκλωμα μέτρησης της φωτεινότητας Για την μέτρηση της φωτεινότητας θα χρησιμοποιήσουμε ένα αισθητήρα στον οποίο μεταβάλλεται η τάση εξόδου ανάλογα με την φωτεινότητα που λαμβάνει. Εικ όν α 8: Ο αισθη τήρ ας μέτ ρησης της φω τε ινότη τας. αλλά στο pin εισόδου 1. Θα πρέπει στη συνέχεια να ενσωματώσουμε στο προηγούμενο κύκλωμα και το κύκλωμα μέτρησης της φωτεινότητας. Η συνδεσμολογία θα γίνει όπως φαίνεται στο παρακάτω σχήμα με μία διαφορά, ότι δεν θα συνδεθεί στο pin εισόδου 0 8
Εικ όν α 8: Ο α ισθη τήρ ας μέτρησης της φω τεινότητας. Ανοίγουμε το πρόγραμμα photocell.ino και δοκιμάζουμε τις μετρήσεις. Καταγραφή του χρόνου και των μετρήσεων σε αρχείο της κάρτας μνήμης. Μελετήστε το πρόγραμμα LOGGER.ino που σας δίνεται. Το πρόγραμμα αυτό καταγράφει μόνο την θερμοκρασία στο αρχείο της κάρτας μνήμης. Καλείστε να κάνετε τις εξής αλλαγές: 1. Να τροποποιήσετε το πρόγραμμα ώστε να καταγράφει τα δεδομένα στην κάρτα μνήμης άλλα στο αρχείο Argolith.csv 2. Να τροποποιήσετε το πρόγραμμα ώστε να καταγράφει και τις ενδείξεις της φωτεινότητας. 9
Δοκιμή του κυκλώματος Δοκιμάζουμε το κύκλωμα σε λειτουργία. Προσπαθούμε να φέρουμε τον αισθητήρα θερμοκρασίας κοντά σε μία θερμή πηγή (π.χ. τον κλείνουμε στην παλάμη μας), καλύπτουμε το πάνω μέρος του αισθητήρα φωτεινότητας και αφού λειτουργήσει για κάπου δυο με τρία λεπτά, το θέτουμε εκτός λειτουργίας. Ελέγχουμε το αρχείο που δημιουργήθηκε. Ενσωμάτωση στο Argolith Με το τρυπάνι κάνουμε τις απαραίτητες οπές στην ειδική αδιάβροχη θήκη του Hydrobot και στη συνέχεια περνάμε τους αισθητήρες μέσα από αυτές. Εικ όν α 9: Η αδ ιά βροχ η θή κη το υ Argolit h 10
Εικ όν α 10: Η τελική μορ φ ή του κυ κ λώματος μ έσ α σ τη ν ει δική αδ ι άβρ οχη θ ή κη Τοποθετούμε εποξική κόλλα στις οπές και είμαστε έτοιμοι. Δραστηριότητες μαθητών Οι δραστηριότητες που εκτέλεσαν οι μαθητές φαίνονται στην αναλυτική περιγραφή των παραπάνω επιμέρους βημάτων διδασκαλίας. Αξιολόγηση μαθητών Οι μαθητές ενθουσιάστηκαν με τα αποτελέσματα, αφού είδαν τα αποτελέσματα της προσπάθειά τους στην οθόνη του υπολογιστή με το αρχείο μετρήσεων, όπως φαίνεται και στην παρακάτω εικόνα. 11
Επιπλέον, στους μαθητές δόθηκε ερωτηματολόγιο αξιολόγησης του εκπαιδευτικού σεναρίου μέσω του Google Drive, στο οποίο όλοι οι συμμετέχοντες μαθητές διαθέτουν ηλεκτρονικό λογαριασμό, για να το συμπληρώσουν και το οποίο παρουσιάζεται παρακάτω. 12
Σύμφωνα με τις απαντήσεις των μαθητών στο ερωτηματολόγιο, οι μαθητές ενθουσιάστηκαν με τις γνώσεις και την εμπειρία που απέκτησαν, μιας και τους δόθηκε η δυνατότητα να συνεργαστούν μεταξύ τους, να αποφασίσουν για τις αλλαγές στον κώδικα -όπου χρειάζονταν- αλλά και να κάνουν τις συνδέσεις στον μικροεπεξεργαστή, εφαρμόζοντας θεωρητικές γνώσεις από το μάθημα της Φυσικής, στην πράξη. Όχι μόνο η ανταπόκρισή τους ήταν εντυπωσιακή, αλλά και η επιθυμία τους για επανάληψη υλοποίησης παρόμοιων εκπαιδευτικών σεναρίων υ πήρξε εμφανής. 13