Μετρώντας την απόσταση με τον ήχο

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

Ένας από τους πιο απλούς, οικονομικούς και σχετικά ακριβείς τρόπους για να μετράμε αποστάσεις, είναι αξιοποιώντας τους αισθητήρες υπερήχων. Η λειτουργία τους στηρίζεται στην ιδιότητα του ήχου να αντανακλάται στα περισσότερα αντικείμενα και υλικά. Οι αισθητήρες αυτοί διαθέτουν ένα ηχείο για να στέλνουν υπερήχους (ήχος σε πολύ υψηλή συχνότητα τον οποίο δεν μπορούμε να τον ακούσουμε) και ένα μικρόφωνο για να αντιλαμβάνονται τους υπερήχους όταν επιστρέφουν. Από την στιγμή που γνωρίζουμε την ταχύτητα του ήχου στον αέρα (343 m/sec), αν μετρήσουμε την ώρα που έκανε ο υπέρηχος για να επιστρέψει στον αισθητήρα μπορούμε να βρούμε την απόσταση που διένυσε.

Διάφοροι αισθητήρες υπερήχων – 1: Αισθητήρας για το Arduino και το Raspberry pi, 2: Αισθητήρας για το MakeBlock, 3: Αισθητήρας για το Lego EV3, 4: Αισθητήρας με το ηχείο και το μικρόφωνο ενσωματωμένα στην ίδια κατασκευή

Τρόπος λειτουργίας.

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

Ο υπέρηχος φεύγει από το ηχείο, ταξιδεύει στον αέρα μέχρι να βρει εμπόδιο στο οποίο αντανακλάται και επιστρέφει στο μικρόφωνο.

Αν υποθέσουμε ότι ο ήχος χρειάστηκε 10 χιλιοστά του δευτερολέπτου για να επιστρέψει στον αισθητήρα, τότε:

  • Αυτό σημαίνει ότι χρειάστηκε 0,01 δευτερόλεπτα.
  • Γνωρίζοντας ότι ο ήχος ταξιδεύει με περίπου 343 μέτρα το δευτερόλεπτο στον αέρα, μπορούμε να υπολογίσουμε την απόσταση σε μέτρα που διένυσε πολλαπλασιάζοντας τον χρόνο με το 343, δηλαδή 0,01 x 343 = 3,43 μέτρα.
  • Ο ήχος λοιπόν ταξίδεψε 3,43 μέτρα από τον αισθητήρα μέχρι το εμπόδιο και από το εμπόδιο ξανά πάλι στον αισθητήρα. Άρα το εμπόδιο βρίσκεται σε απόσταση 3,43/2 = 1,715 μέτρα.

Πλεονεκτήματα και περιορισμοί.

Τα κύρια πλεονεκτήματα των αισθητήρων υπερήχων σε σχέση με άλλους αισθητήρες απόστασης μπορούν να συνοψιστούν στα εξής τέσσερα:

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

Εξαιτίας του τρόπου λειτουργίας τους, οι αισθητήρες υπερήχων έχουν και κάποιους σημαντικούς περιορισμούς.

  • Δυσκολεύονται να ανιχνεύσουν μικρά αντικείμενα, αν δεν είναι τοποθετημένα σε κατάλληλο σημείο.
Ένα μικρό σε μέγεθος αντικείμενο μπορεί να δυσκολέψει τον αισθητήρα και να μην μπορέσει να ανακλάσει τον ήχο με τέτοιο τρόπο ώστε να γίνει αντιληπτό από το μικρόφωνο.
  • Επίσης ιδιαίτερη σημασία έχει ο τρόπος με τον οποίο είναι τοποθετημένο κάποιο αντικείμενο, ώστε να μπορέσει να ανακλάσει σωστά τους υπερήχους.
Στο παραπάνω παράδειγμα η γωνία με την οποία αντανακλούν οι υπέρηχοι στο αντικείμενο τους κάνει μη ανιχνεύσιμους από τον αισθητήρα.
  • Αντικείμενα τα οποία είναι από υλικά που απορροφούν τον ήχο (π.χ. σφουγγάρια) δεν είναι εύκολο να εντοπιστούν καθώς δεν αντανακλούν τους υπερήχους.

Διαλέγοντας αισθητήρα.

Υπάρχει αρκετά μεγάλη ποικιλία αισθητήρων υπερήχων στην αγορά, σχεδόν για όλες τις πλατφόρμες ρομποτικής. Για όσους προτιμούν να ασχοληθούν με την πλατφόρμα της Lego, τα EV3 και τα παλαιότερα NXT διαθέτουν στα βασικά τους πακέτα αισθητήρα υπερήχων. Μπορείτε να δείτε κάποια παραδείγματα αξιοποίησης τους στην τάξη εδώ:

Αν είστε περισσότερο φαν του Arduino ή του Raspberry pi και θέλετε να βουτήξετε περισσότερο στον τρόπο λειτουργίας των αισθητήρων, τότε υπάρχουν αρκετές επιλογές τις οποίες μπορείτε να βρείτε σε ελληνικά ή ξένα καταστήματα στο διαδίκτυο. Η πιο συνηθισμένη και οικονομική επιλογή είναι ο αισθητήρας HC-SR04, ο οποίος κοστίζει περίπου 2 ευρώ από Ελλάδα και 1 ευρώ στο ebay (Τιμές Αυγούστου 2018). Για περισσότερες λεπτομέρειες και συγκριτικά τεστ με διάφορους αισθητήρες υπερήχων μπορείτε να παρακολουθήσετε τα δύο πολύ αναλυτικά βίντεο (εδώ και εδώ) του Andreas Spiess στο Youtube.

Ο αισθητήρας HC-SR04. Αριστερά βρίσκεται το ηχείο (transmitter) και δεξιά το μικρόφωνο (receiver).

Σύνδεση στο Arduino και προγραμματισμός.

Ο αισθητήρας HC-SR04 διαθέτει 4 pins:

  • Το VCC, στο οποίο δέχεται 5V για να μπει σε λειτουργία,
  • το GND, το οποίο το συνδέουμε στη γείωση,
  • το TRIG (Trigger), το οποίο ενεργοποιεί το ηχείο για να στείλει το υπέρηχο και
  • το ECHO, το οποίο είναι συνδεδεμένο με την είσοδο του μικροφώνου και αντιλαμβάνεται την επιστροφή του ήχου.

Υπάρχουν δυο τρόποι για να συνδέσουμε τον αισθητήρα στο Arduino:

  • Είτε συνδέουμε το TRIG και το ECHO σε διαφορετικά digital pins και αναλαμβάνουμε στο πρόγραμμα μας να κάνουμε εμείς όλη την σκληρή δουλειά του υπολογισμού της απόστασης,
  • είτε συνδέουμε το TRIG και το ECHO στο ίδιο digital pin και χρησιμοποιούμε μια έτοιμη βιβλιοθήκη που μας απαλλάσσει από αυτό το φορτίο.

Όπως είναι κατανοητό, ο πρώτος τρόπος μας δίνει μεγαλύτερο έλεγχο στο πως θα υπολογίσουμε την απόσταση και έχει μεγαλύτερο εκπαιδευτικό ενδιαφέρον. Θα ξεκινήσω λοιπόν με τον δεύτερο (εύκολο τρόπο) και παρακάτω θα ασχοληθώ με τα πιο ενδιαφέροντα.

Σύνδεση σε ένα pin και αξιοποίηση της NewPing library.

Ο εύκολος τρόπος: Συνδέω το TRIG και το ECHO σε ένα digital pin, στο συγκεκριμένο παράδειγμα στο pin 4

Ο συγκεκριμένος τρόπος υλοποίησης απαιτεί να εγκαταστήσω την βιβλιοθήκη NewPing στο Arduino IDE. Ανοίγοντας τον διαχειριστή βιβλιοθήκης (Σχέδιο –> Συμπερίληψη Βιβλιοθήκης –> Διαχείριση Βιβλιοθηκών), μπορώ να αναζητήσω την βιβλιοθήκη NewPing και να την εγκαταστήσω με ένα κλικ.

Η NewPing είναι πλέον εγκατεστημένη στο Arduino IDE

Μετά την εγκατάσταση της βιβλιοθήκης μπορώ να γράψω ένα μικρό και απλό πρόγραμμα για να διαβάζω τις τιμές απόστασης σε εκατοστά που εντοπίζει ο αισθητήρας και να τις εμφανίζω στην σειριακή οθόνη (Serial monitor).

Μπορώ να φορτώσω τώρα το πρόγραμμα μου στο Arduino και να κάνω μερικές δοκιμές για να δω την συμπεριφορά του αισθητήρα.

Δοκιμή 1: Τοποθετώ ένα εμπόδιο στα 25 εκατοστά. Ο αισθητήρας στέλνει στην σειριακή οθόνη την σωστή τιμή.
Δοκιμή 2: Μεταφέρω το εμπόδιο στα 15 εκατοστά. Ο αισθητήρας μεταφέρει την σωστή τιμή στην σειριακή οθόνη.
Δοκιμή 3: Μεταφέρω το εμπόδιο στα 2 εκατοστά. Ο αισθητήρας μεταφέρει την σωστή τιμή στην σειριακή οθόνη.
Δοκιμή 4: Τοποθετώ ένα λεπτό εμπόδιο στα 10 εκατοστά. Ο αισθητήρας δεν μπορεί να το εντοπίσει (δεν γίνεται καλή αντανάκλαση των υπέρηχων σε αυτό) και επιστρέφει την απόσταση του τοίχου που βρίσκεται πίσω από το αντικείμενο.
Δοκιμή 5: Τοποθετώ το εμπόδιο με τέτοια κλίση ώστε να μην γίνεται αντανάκλαση των υπέρηχων στο μικρόφωνο και πάλι ο αισθητήρας δεν μπορεί να το εντοπίσει (επιστρέφει την απόσταση του τοίχου).
Δοκιμή 6η: Τοποθετώ ένα σφουγγάρι στα 25 εκατοστά από τον αισθητήρα και παρατηρώ πως απορροφά τους υπερήχους. Ο αισθητήρας επιστρέφει στην σειριακή οθόνη την τιμή μηδέν που σημαίνει πως δεν επέστρεψε πίσω καθόλου ήχος.
Δοκιμή 7η: Μεταφέρω το σφουγγάρι κοντά στον αισθητήρα (5 εκατοστά) και παρατηρώ πως πάλι απορροφά όλους τους υπερήχους.

Σύνδεση στο Arduino με δυο pins – υπολογισμός της απόστασης από τον χρόνο.

Αν θέλουμε να καταλάβουμε πλήρως την λειτουργία του αισθητήρα και τον τρόπο με τον οποίο υπολογίζουμε την απόσταση ενός εμποδίου χρησιμοποιώντας υπερήχους, θα πρέπει να αφήσουμε την πολυτέλεια της βιβλιοθήκης NewPing και να κάνουμε μόνοι μας τους υπολογισμούς. Το πρώτο βασικό βήμα είναι να αλλάξουμε τον τρόπο σύνδεσης του αισθητήρα στο Arduino, αξιοποιώντας δυο digital pins.

Συνδέω το TRIG στο digital pin 4 και το ECHO στο digital pin5.

Πριν ξεκινήσω να γράφω τον αλγόριθμο μου, θα πρέπει να καταλάβω τον τρόπο με τον οποίο λειτουργούν τα δυο pins (TRIG και ECHO).

  • Το TRIG (Trigger) είναι αρχικά σε κατάσταση LOW και όταν εμείς του στείλουμε HIGH τότε ενεργοποιείτε και στέλνει υπερήχους.
  • Το ECHO όταν λαμβάνει τον επιστρεφόμενο ήχο δημιουργεί έναν παλμό HIGH.
  • Η μέτρηση του χρόνου θα γίνει με τη συνάρτηση pusleIn, η οποία επιστρέφει τον χρόνο σε μικροδευτερόλεπτα (εκατομμυριοστά του δευτερολέπτου).

Με βάση τα παραπάνω ο αλγόριθμος μου περιλαμβάνει τα εξής βήματα:

  1. Ενεργοποιώ το TRIG pin.
  2. Περιμένω πολύ λίγο (10 μικροδευτερόλεπτα).
  3. Απενεργοποιώ το TRIG pin.
  4. Μετράω την χρονική διάρκεια του παλμού στο ECHO pin (επιστροφή του υπερήχου) σε μικροδευτερόλεπτα.
  5. Μετατρέπω τα μικροδευτερόλεπτα σε δευτερόλεπτα (διαιρώ με το 1.000.000).
  6. Γνωρίζοντας ότι ο ήχος ταξιδεύει με 343 μέτρα ανά δευτερόλεπτο, υπολογίζω την απόσταση που διένυσε, πολλαπλασιάζοντας τα δευτερόλεπτα με το 343.
  7. Τώρα έχω την απόσταση σε μέτρα. Για να την μετατρέψω σε εκατοστά πολλαπλασιάζω με το 100.
  8. Η απόσταση που έχω υπολογίσει αφορά το ταξίδι του ήχου μέχρι το εμπόδιο και την επιστροφή του. Άρα η απόσταση μέχρι το εμπόδιο είναι η μισή. Διαιρώ λοιπόν τα εκατοστά με το 2.

Φορτώνοντας το παραπάνω πρόγραμμα στο Arduino ο αισθητήρας δουλεύει με την ίδια ακρίβεια όπως και με την βιβλιοθήκη NewPing και από την στιγμή που δήλωσα τις μεταβλητές float, οι τιμές που παίρνω είναι δεκαδικές.

Πηγαίνοντας ακόμα πιο μακριά – Λαμβάνω υπόψη θερμοκρασία και υγρασία.

Οι δυο τρόποι με τους οποίους μέτρησα την απόσταση ενός εμποδίου από τον αισθητήρα, βασίζονται στην παραδοχή πως η ταχύτητα του ήχου στον αέρα είναι 343 μέτρα ανά δευτερόλεπτο. Αν θέλουμε όμως να είμαστε επιστημονικά πιο σωστοί θα πρέπει να λάβουμε υπόψη μας μερικές ακόμα παραμέτρους.

Η ταχύτητα του ήχου εξαρτάται από το “πόσο πυκνό” είναι το σώμα στο οποίο ταξιδεύει. Έτσι ο ήχος έχει πολύ μεγάλη ταχύτητα όταν ταξιδεύει σε στερεά σώματα, λιγότερη όταν ταξιδεύει σε υγρά και ακόμα πιο μικρή όταν ταξιδεύει σε αέρια.

Όσον αφορά τον αέρα (η περίπτωση μας), η ταχύτητα του ήχου εξαρτάται κυρίως από την θερμοκρασία, λιγότερο από την υγρασία και πολύ λίγο από την ατμοσφαιρική πίεση. Για παράδειγμα σε συνθήκες μιας ατμόσφαιρας (1 Atm) και

  • σε θερμοκρασία 0 βαθμούς Κελσίου και σχετική υγρασία 50%, η ταχύτητα του ήχου είναι 331.61 m/sec,
  • σε θερμοκρασία 20 βαθμούς Κελσίου και σχετική υγρασία 50%, η ταχύτητα του ήχου είναι 343.99 m/sec,
  • σε θερμοκρασία 30 βαθμούς Κελσίου και σχετική υγρασία 50%, η ταχύτητα του ήχου είναι 350,31 m/sec και
  • σε θερμοκρασία 30 βαθμούς Κελσίου και σχετική υγρασία 90%, η ταχύτητα του ήχου είναι 351,24 m/sec.

Μπορείτε να χρησιμοποιήσετε την ιστοσελίδα http://www.sengpielaudio.com/calculator-airpressure.htm, η οποία περιλαμβάνει ένα online εργαλείο υπολογισμού της ταχύτητας του ήχου.

Από την στιγμή λοιπόν που έχω έναν φθηνό αισθητήρα θερμοκρασίας – υγρασίας να κάθεται στο γραφείο μου (DHT11 Temperature and Humidity Sensor), αποφάσισα να βελτιώσω το πρόγραμμα εντοπισμού εμποδίων λαμβάνοντας υπόψη τις δυο αυτές τιμές.

Αρχικά συνέδεσα τον αισθητήρα υγρασίας – θερμοκρασίας στο κύκλωμα μου. Οι τυπικοί DHT11 αισθητήρες έχουν 3 pins (5V, GND και SIGNAL) ή 4 pins (5V, GND, SIGNAL και NULL). Η σύνδεση που έκανα έχει ως εξής:

  • 5V DHT11 –> 5V Arduino
  • GND DHT11 –> GND Arduino
  • SIGNAL DHT11 –> A0 pin Arduino
Προσθέτοντας τον αισθητήρα DHT11 στο κύκλωμα μου.

Το επόμενο βήμα ήταν να προσθέσω στο πρόγραμμα την μέτρηση της θερμοκρασίας και της υγρασίας, αξιοποιώντας την βιβλιοθήκη dht.h την οποία μπορείτε να την κατεβάσετε και να την προσθέσετε στο Arduino IDE από εδώ. Ακολούθησα βήμα προς βήμα το πολύ καλό tutorial από το Brainy Bits και το μόνο που μου έμενε ήταν να υπολογίσω την σωστή ταχύτητα του ήχου χρησιμοποιώντας την υγρασία και την θερμοκρασία.

Περίμενα πως με μια απλή αναζήτηση στο Google θα έβρισκα κάποιον απλό τύπο για να τον προσθέσω στο πρόγραμμα μου. Δυστυχώς τα πράγματα δεν ήταν τόσο απλά. Η φόρμουλα υπολογισμού που χρειαζόμουν έχει δημοσιευτεί το 1993 από τον Owen Cramer, στην εργασία του με τίτλο “The variation of the specific heat ratio and the speed of sound in air with temperature, pressure, humidity, and CO2 concentration.”. Μετά από αρκετή ώρα αναζήτησης ευτύχισα να βρω τον τρόπο υπολογισμού, που βασίζεται σε αυτή τη φόρμουλα, σε μορφή αρχείου JAVA, από μια ερευνητική ομάδα του Πανεπιστημίου του Σάο Πάολο. Με λίγες τροποποιήσεις τον ενσωμάτωσα στο πρόγραμμα μου το οποίο έχει ως εξής:

Φόρτωσα το πρόγραμμα στο Arduino και ξεκίνησα αμέσως να το δοκιμάζω. Πλέον ο υπολογισμός της απόστασης εντός αντικειμένου δεν γίνεται θεωρώντας ως σταθερή την ταχύτητα του ήχου όπως έκανα στο προηγούμενο πρόγραμμα, αλλά εξαρτάται από τις συνθήκες θερμοκρασίας και υγρασίας που επικρατούν εκείνη τη στιγμή και επηρεάζουν την ταχύτητα του ήχου.

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

Αξιοποιώντας τον αισθητήρα υπερήχων στην τάξη

Η αξιοποίηση του αισθητήρα υπερήχων σε μαθήματα εκπαιδευτικής ρομποτικής είναι πολύ συνηθισμένη και υπάρχουν εκατοντάδες παραδείγματα στο διαδίκτυο, είτε με την πλατφόρμα Lego, είτε με το Arduino. Στην πλατφόρμα tinkercad υπάρχει πλέον έτοιμη και μια εντολή block που διαβάζει την απόσταση από τον αισθητήρα.

Το πρόγραμμα μας έτοιμο με τρία μόνο block.

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

Σε παλαιότερο project (Έξυπνος κάδος), που υλοποίησα με τα παιδιά του Ομίλου Μικροί Χάκερ, δώσαμε μεγάλο βάρος στο πως μπορούμε να υπολογίσουμε αρχικά μόνοι μας την απόσταση που ταξιδεύει ο ήχος, χρησιμοποιώντας ένα ειδικά σχεδιασμένο φύλλο εργασίας. Ο προγραμματισμός έγινε χρησιμοποιώντας μια γλώσσα block style (Ardublockly) μεταφέροντας τα αλγοριθμικά βήματα από το φύλλο εργασίας.

Τα βήματα υπολογισμού της απόστασης του εμποδίου με τον αισθητήρα υπερήχων στην Ardublockly

Ο έξυπνος κήπος

Το τελευταίο project της φετινής χρονιάς (2017-2018) με τα παιδιά του Ομίλου «Μικροί Χάκερ», ήταν ο έξυπνος κήπος. Απαιτητικό και χρονοβόρο έργο το οποίο μας πήρε αρκετές συναντήσεις και μήνες για να το ολοκληρώσουμε.

Η τελική κατασκευή μπορεί να φιλοξενήσει δυο γλάστρες και να ελέγχει την υγρασία του εδάφους τους, την θερμοκρασία του αέρα καθώς και την φωτεινότητα.

  • Αν η υγρασία πέφτει κάτω από μια συγκεκριμένη τιμή, τότε η κατασκευή ενεργοποιεί την συγκεκριμένη αντλία νερού για να ποτίσει το φυτό.
  • Αν η φωτεινότητα πέσει κάτω από κάποια συγκεκριμένη τιμή, τότε η κατασκευή ενεργοποιεί μια ταινία led για να δίνει συνεχές φως στα φυτά.
  • Αν η θερμοκρασία του αέρα ανέβει πάνω από κάποια συγκεκριμένη τιμή, τότε ενεργοποιείται ο ανεμιστήρας της κατασκευής.

Ο έξυπνος κήπος επικοινωνεί με Bluetooth με το κινητό μας τηλέφωνο ή tablet με την βοήθεια εφαρμογής που κατασκευάσαμε και μπορούμε να βλέπουμε τις τιμές των αισθητήρων, καθώς και να αλλάζουμε τα όρια στα οποία ενεργοποιούνται οι αντλίες, τα φώτα και ο ανεμιστήρας.

Ήδη με τα παιδιά είχαμε χρησιμοποιήσει αισθητήρες φωτός και κινητήρες σε προηγούμενα έργα, οπότε εδώ επικεντρωθήκαμε αρχικά στην υγρασία του εδάφους. Αρχικά μελετήσαμε την λειτουργία ενός τέτοιου αισθητήρα αξιοποιώντας το παρακάτω φύλλο εργασίας.

Φύλλο εργασίας – υγρασία εδάφους

Κατασκευάζοντας τους δικούς μας αισθητήρες

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

Φύλλο εργασίας – Δοκιμή αισθητήρα υγρασίας εδάφους

Φύλλο εργασίας – Κατασκευή αισθητήρα υγρασίας εδάφους

Δοκιμάζοντας τους αισθητήρες

Μετά περάσαμε στον αισθητήρα θερμοκρασίας, τον οποίο και πάλι δοκιμάσαμε αξιοποιώντας το παρακάτω φύλλο εργασίας.

Φύλλο εργασίας – Δοκιμή αισθητήρα Θερμοκρασίας

Αφού ολοκληρώσαμε την εργασία με τους αισθητήρες, περάσαμε στα φώτα και τους κινητήρες. Για τον φωτισμό του κήπου αξιοποιήσαμε μια παλιά 12V ταινία led που είχαμε στο εργαστήριο, ενώ για τον αερισμό του κήπου αξιοποιήσαμε έναν από τους πολλούς ανεμιστήρες από παλιά PC που έχουμε στο υπόγειο του σχολείου.

Για τις δυο αντλίες χρησιμοποιήσαμε κινητήρες από CD-ROM από τους ίδιους παλιούς υπολογιστές ενώ εκτυπώσαμε στον 3D Printer του σχολείου διάφορα έτοιμα σχέδια από αντλίες που βρήκαμε στο thingiverse.

αντλίες με παλιούς κινητήρες από CD ROM

Επίσης από το thingiverse βρήκαμε και τα σχέδια για τις γλάστρες τα οποία εκτυπώσαμε και πάλι στον 3Δ εκτυπωτή.

Για να ελέγξουμε τις 2 αντλίες, τον ανεμιστήρα και την ταινία led με το Arduino χρησιμοποιήσαμε και 4 relay στα οποία συνδέσαμε έναν μετασχηματιστή 12 Volt.

Αναλυτικό σχηματικό έξυπνου κήπου

Ο προγραμματισμός της κατασκευής έγινε σε δυο στάδια. Αρχικά ξεκινήσαμε με τον προγραμματισμό του Arduino, χρησιμοποιώντας την πλατφόρμα tinkercad όπως και με τα προηγούμενα έργα μας. Κατορθώσαμε να κάνουμε το μεγαλύτερο μέρος του προγράμματος από εκεί αλλά επειδή δεν υποστηρίζει ακόμα όλες τις εντολές του Arduino και την προσθήκη κάποιων βιβλιοθηκών αναγκαστήκαμε να ολοκληρώσουμε το πρόγραμμα πληκτρολογώντας τον υπόλοιπο κώδικα.

Το δεύτερο μέρος του προγραμματισμού αφορούσε την δημιουργία της εφαρμογής η οποία θα επικοινωνεί με τον έξυπνο κήπο με Bluetooth. Αξιοποιήσαμε την πλατφόρμα AppInventor και κατασκευάσαμε μια εφαρμογή η οποία μπορεί να παίρνει τις τιμές της θερμοκρασίας, της υγρασίας και του φωτισμού από τον κήπο, καθώς και να αλλάζει τα όρια στα οποία ενεργοποιούνται τα φώτα, οι αντλίες και ο ανεμιστήρας. Μπορείτε να κατεβάσετε ελεύθερα τα αρχεία apk και aia της εφαρμογής από εδώ: Προγράμματα

Ο σχεδιασμός της εφαρμογής στο AppInventor
Μέρος από τον κώδικα για την επικοινωνία της εφαρμογής με τον κήπο

Ο έξυπνος κήπος παρουσιάστηκε από τα παιδιά του Ομίλου στις εκδηλώσεις για την Παγκόσμια Ημέρα Περιβάλλοντος που έγιναν στο Νέο Πάρκο της Φλώρινας, καθώς και στην διήμερη έκθεση «Τα παιδιά της πόλης μας δημιουργούν» που συνδιοργάνωσε το σχολείο μας με τον ΦΣΦ Αριστοτέλη.

Παρουσίαση κατασκευής στις εκδηλώσεις για την Παγκόσμια Ημέρα Περιβάλλοντος
Παρουσίαση κατασκυεής στην έκθεση “Οι μαθητές της πόλης μας δημιουργούν”

Αυτόματα περιστρεφόμενος ηλιακός συλλέκτης

Ο αυτόματα περιστρεφόμενος ηλιακός συλλέκτης κατασκευάστηκε στο πλαίσιο των συναντήσεων του Ομίλου Μικροί Χάκερ κατά το σχολικό έτος 2017-2018. Απαιτητική κατασκευή η οποία χρειάστηκε αρκετές συναντήσεις για να ολοκληρωθεί. Περιλαμβάνει ένα μικρό ηλιακό πάνελ 5V το οποίο το περιστρέφει σε δυο άξονες ώστε να έχει την μέγιστη δυνατή απόδοση.

Αρχικά μελετήσαμε με τα παιδιά του ομίλου τον τρόπο λειτουργίας των ηλιακών πάνελ και ειδικά των περιστρεφόμενων. Εισαγωγική Παρουσίαση

Στη συνέχεια αναζητήσαμε και εκτυπώσαμε στον 3Δ εκτυπωτή του σχολείου ένα έτοιμο σχέδιο για ένα περιστρεφόμενο πάνελ δυο αξόνων από το thingiverse.

Ο σχεδιασμός των ηλεκτρονικών κυκλωμάτων έγινε στην πλατφόρμα tinkercad. Εκτός από το Arduino τα ηλεκτρονικά που χρησιμοποιήσαμε είναι:

  • Δυο κινητήρες servo
  • Τέσσερις αισθητήρες φωτός
  • Δυο ποτενσιόμετρα
  • Ένα push button
  • Δυο λαμπάκια led
  • Διάφορες αντιστάσεις

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

Ομάδες εργασίας
Κατά την διάρκεια της κατασκευής
Μόνωση καλωδίων
Κόλληση καλωδίων
Βίδωμα – συναρμολόγηση

Θέλαμε η κατασκευή μας να έχει δυο δυνατότητες λειτουργίας:

  • Χειροκίνητη, όπου θα περιστρέφαμε τους κινητήρες με τα δυο ποτενσιόμετρα
  • Αυτόματη, όπου η θέση του φωτοβολταϊκού θα ελέγχονταν από τους αισθητήρες φωτός.

Για αυτόν τον λόγο προγραμματίσαμε την συσκευή να αλλάζει κατάσταση με την χρήση ενός push button και να μας ειδοποιεί για την κατάσταση με δύο φωτάκια led. Το πρόγραμμα έγινε με την χρήση της πλατφόρμα tinkercad. Μπορείτε να κατεβάσετε ένα pdf με την επεξήγηση του προγράμματος εδώ:Κώδικας φωτοβολταικού

Τα παιδιά παρουσίασαν την κατασκευή τους στο 8ο Μαθητικό Φεστιβάλ Ψηφιακής Δημιουργίας, στις εκδηλώσεις για την Παγκόσμια Ημέρα Περιβάλλοντος και στην διήμερη έκθεση «Τα παιδιά της πόλης μας δημιουργούν» που συνδιοργανώθηκε από το Πειραματικό Δημοτικό Σχολείο Φλώρινας και τον ΦΣΦ Αριστοτέλη.

Παρουσίαση των παιδιών στο 8 Μαθητικό Φεστιβάλ Ψηφιακής Δημιουργίας

Από την έκθεση “Τα παιδιά της πόλης μας Δημιουργούν”

Αυτόματο όχημα που ακολουθεί μαύρη γραμμή με το Arduino

Το αυτοκινούμενο όχημα το οποίο ακολουθεί μια μαύρη γραμμή είναι μια συνηθισμένη δραστηριότητα με τα Lego Mindstorms και την έχω αξιοποιήσει με τροποποιήσεις πολλές φορές στο μάθημα.

Αυτή τη φορά στο πλαίσιο του Ομίλου «Μικροί Χάκερ» που λειτουργεί στο Πειραματικό Δημοτικό Σχολείο Φλώρινας, δοκιμάσαμε με τα παιδιά να υλοποιήσουμε το αυτόματο όχημα με την χρήση Arduino ως ελεγκτή.

Τα βασικά υλικά που χρησιμοποιήσαμε ήταν τα εξής:

  • 1 Arduino Uno
  • 2 κινητήρες με πλαστικές ρόδες (dc gear motors)
  • 1 L293D driver για να ελέγξουμε τους 2 κινητήρες
  • 1 αισθητήρα υπέρυθρων αποφυγής εμποδίων (Infrared Obstacle Avoidance Sensor)
  • 1 αισθητήρα υπέρυθρων αναγνώρισης μαύρου και άσπρου (Infrared Tracking sensor)
  • 2 μπαταριοθήκες ΑΑΑ και μπαταρίες
  • 1 διακόπτη
  • Καλώδια σύνδεσης
  • 1 Breadboard

Αρχικά χρησιμοποιήσαμε για το όχημα έναν έτοιμο σκελετό από λεπτό πλέξι γκλας , όμως στη συνέχεια τα παιδιά δημιούργησαν τον δικό τους σκελετό από μακετόχαρτο. Ως ρόδα στήριξης χρησιμοποιήσαμε ένα μπαλάκι του ping pong το οποίο προσαρμόσαμε σε ένα έτοιμο σχέδιο (https://www.thingiverse.com/thing:1728714) που εκτυπώσαμε στον 3Δ εκτυπωτή του σχολείου.

Για την σύνδεση των κινητήρων και του Arduino στον οδηγό L293D ακολουθήσαμε οδηγίες που βρήκαμε στο διαδίκτυο και παρουσιάζονται στην παρακάτω εικόνα.

Συνδέσαμε τους κινητήρες σε pins που υποστηρίζουν PWM ώστε να μπορούμε να ελέγχουμε και την ταχύτητα τους (με τιμές από 0 εως 255) και όχι απλά να τους ενεργοποιούμε και να τους απενεργοποιούμε με HIGH και LOW.

Ο σχεδιασμός και ο προγραμμα της κατασκευής έγινε με την χρήση της υπηρεσίας tinkercad στην οποία όλα τα παιδιά διαθέτουν μαθητικούς λογαριασμούς. Μπορείτε να εξερευνήσετε τα τελικά σχέδια και προγράμματα εδώ: https://www.tinkercad.com/things/0ZTQYQ60tYK

Τα παιδιά του Ομίλου παρουσίασαν την κατασκευή τους στο 8ο Μαθητικό Φεστιβάλ Ψηφιακής Δημιουργίας που έγινε στην πόλη των Ιωαννίνων, καθώς και στην έκθεση με τίτλο «Τα παιδιά της πόλης μας δημιουργούν» η οποία πραγματοποιήθηκε στις εγκαταστάσεις του ΦΣΦ Αριστοτέλη, στην πόλης της Φλώρινας.

Αυτόματο όχημα – παρουσίαση – μαθητών στο Μαθητικό Φεστιβάλ

Φυλλάδιο παρουσίασης της κατασκευής στην έκθεση που πραγματοποιήθηκε στον ΦΣΦ Αριστοτέλη

Το τελικό αποτέλεσμα
Η κατασκευή με μακετόχαρτο
Η κατασκευή με μακετόχαρτο
Η κατασκευή με πλέξι γκλας