Μετρώντας την βροχή με το Arduino και το Pictoblox

Μια εισαγωγική δραστηριότητα για τον τρόπο που δουλεύουν οι αισθητήρες με το Arduino, χρησιμοποιώντας την πλατφόρμα Pictoblox η οποία μας δίνει τη δυνατότητα να προγραμματίσουμε το Arduino χρησιμοποιώντας blocks όπως αυτά στο Scratch.

Τι θα χρειαστούμε;

Κάθε ομάδα μαθητών (3-5 άτομα) θα χρειαστεί να έχουν:

  • Ένα Arduino uno ή συμβατό με αυτό board και ένα καλώδιο USB για σύνδεση με υπολογιστή
  • Έναν αισθητήρα ανίχνευσης βροχής/χιονιού (Raindrops Rain/Snow detection sensor)
  • Έναν υπολογιστή/laptop με εγκατεστημένο το λογισμικό Pictoblox
  • Τρία καλώδια σύνδεσης dupont αρσενικό – θηλυκό
  • Δύο καλώδια σύνδεσης dupont θηλυκό – θηλυκό
  • Ένα ποτήρι με νερό
  • Ένα σταγονόμετρο

Πως δουλεύει ο αισθητήρας;

Ο αισθητήρας βροχόπτωσης διαθέτει μια επιφάνεια η οποία μπορεί να αντιληφθεί την ποσότητα του νερού που υπάρχει πάνω της με τον εξής τρόπο:

  • Όσο περισσότερο νερό υπάρχει στην επιφάνεια τόσο περισσότερη αγωγιμότητα έχει και λιγότερη αντίσταση στο ρεύμα. Δηλαδή το ρεύμα περνάει πιο εύκολα.
  • Όσο λιγότερο νερό υπάρχει στην επιφάνεια τόσο μικρότερη αγωγιμότητα έχει και μεγαλύτερη αντίσταση στο ρεύμα. Δηλαδή το ρεύμα περνάει πιο δύσκολα.

Βλέπουμε πως αλλάζει η αντίσταση του αισθητήρα στο ρεύμα ανάλογα με την ποσότητα νερού που έχει. Εικόνα από τους Last minute engineers

Πως θα συνδέσουμε τον αισθητήρα στο Arduino;

Για να συνδέσουμε τον αισθητήρα με το Arduino θα χρειαστούμε τρία καλώδια:

  • Ένα καλώδιο για την παροχή ρεύματος 5V από την υποδοχή VCC του αισθητήρα στην υποδοχή 5V του Arduino. Συνήθως βάζουμε κόκκινα καλώδια για αυτές τις συνδέσεις.
  • Ένα καλώδιο για την γείωση ώστε να κλείσει το κύκλωμα, από την υποδοχή GND του αισθητήρα στην υποδοχή GND του Arduino. Συνήθως βάζουμε μαύρα ή σκούρα καφέ καλώδια για αυτές τις συνδέσεις.
  • Ένα καλώδιο για την μεταφορά δεδομένων, από την υποδοχή A0 του αισθητήρα στην υποδοχή Α0 του Arduino.
Σχηματικό σύνδεσης με το Arduino

Σύνδεση Arduino με Pictoblox

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

Αφού έχουμε συνδέσει το καλώδιο, επιλέγουμε το μενού board από το pictoblox και από εκεί επιλέγουμε το Arduino Uno.

Επιλέγουμε το σωστό board

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

Επιλέγουμε την θύρα usb στην οποία βρίσκεται το Arduino

Προγραμματισμός

Υπάρχουν δυο βασικοί τρόποι να προγραμματίσουμε μια συσκευή Arduino από το Pictoblox. Μπορούμε να γράψουμε ένα πρόγραμμα το οποίο θα στείλουμε στη μνήμη του Arduino για να τρέχει αυτόνομα (upload mode), ή μπορούμε να γράψουμε ένα πρόγραμμα το οποίο θα τρέχει στον υπολογιστή παίρνοντας τιμές από το Arduino (stage mode). Εμείς θα κάνουμε αυτή τη φορά τον δεύτερο τρόπο, ο οποίος είναι και προεπιλεγμένος.

Κάθε φορά που ξεκινάμε το Pictoblox βρισκόμαστε αρχικά στο Stage mode

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

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

Ο tobi θα λέει συνεχώς την τιμή που διαβάζει από το Arduino στην θέση A0 και αντιστοιχεί στον αισθητήρα ανίχνευσης βροχής (raindrop)

Το βασικό μπλοκ που χρησιμοποιούμε σε αυτή την περίπτωση είναι το read analog sensor, το οποίο διαβάζει την τιμή ενός αισθητήρα από μια συγκεκριμένη θέση (pin) του Arduino. Οι αναλογικοί αισθητήρες συνδέονται σε κάποια από τις θέσεις από Α0 ως Α5 και μπορούν να μεταφράζουν τις τιμές ρεύματος που ανιχνεύουν σε αριθμούς από το 0 ως το 1023. Όσο περισσότερο ρεύμα περνάει (μικρότερη αντίσταση) τόσο περισσότερο αυξάνει και ο αριθμός.