Ζώνη Βοήθειας – CoderDojo Votanikos (πρώην Coyote@Upthink dojo)

Ζώνη Βοήθειας – CoderDojo Votanikos (πρώην Coyote@Upthink dojo)

Εισαγωγή

Ζώνη Βοήθειας

Η Ζώνη Βοήθειας είναι μία συσκευή που μπορεί να ειδοποιεί τους τυφλούς όταν πλησίαζουν σε κάποιο εμπόδιο. Η έμπνευση ήρθε μετά από πρόσφατη επίσκεψη των παιδιών στο Μουσείο Αφής.

Οι πρώτες μας προσπάθειες επικεντρώθηκαν στην υλοποίηση με Raspberry Pi, επειδή το είχαμε χρησιμοποιήσει στα μαθήματά μας. Επειδή ωστόσο αντιμετωπίσαμε προβλήματα αστάθειας της λύσης, την μετατρέψαμε σε αντίστοιχη με Arduino. Λεπτομέρειες της παλιάς υλοποίησης έχουμε κρατήσει στο αποθετήριο.

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

Στο παρακάτω βίντεο φαίνονται τα βήματα της δημιουργίας της ζώνης.

[youtube https://www.youtube.com/watch?v=_6yKOi3dbrc&w=560&h=315]

 

Αποθετήριο

Το αποθετήριό μας βρίσκεται εδώ.

Ειδικά οι πληροφορίες για την πρώτη προσπάθειά μας με το Raspberry Pi βρίσκονται εδώ.
 

Υλικά

1. Κουτί 5.90 euros
2. Αισθητήρας υπερήχων 2.5 euros
3. Buzzer 0.4 euros
4. Arduino Uno 22.90 euros ή Funduino Uno 11.90 euros
5. Κλιπ μπαταρίας 9V για Arduino 0.90 euros
6. Jumper Wires Male to Male 1.80 euros το σετ
7. Breadboard 1.60 euros
8. 1 μπαταρία 9V 1.90 euros

Σύνολο: 37.90 euros (με Arduino) ή 26.90 euros (με Funduino)
 

Συνδεσμολογία

Συνδεσμολογία του Breadboard
Arduino 5V –> σε κάποιο σημείο στο breadboard (στο εξής θα λέγεται “τάση του breadboard”)
Arduino GND –> σε κάποιο σημείο στο breadboard (στο εξής θα λέγεται “γη του breadboard”)

Συνδεσμολογία του Αισθητήρα
VCC –> Τάση του Breadboard
GND –> Γη του Breadboard
TRIG –> Arduino 13
ECHO –> Arduino 12

Συνδεσμολογία του Buzzer
Αρνητικό ποδαράκι –> Γη του Breadboard
Θετικό ποδαράκι –> Arduino 5

 

Κώδικας

int echoPin = 12; // Ο αριθμός για το pin Echo της πλακέτας υπερήχων
int trigPin = 13; // Ο αριθμός για το pin Trigger της πλακέτας υπερήχων
int alarmPin = 5; // Ο αριθμός για το Buzzer
int alarmRange=30; // Η απόσταση στην οποία θα χτυπήσει συναγερμός
float duration, distance; //Ο χρόνος που κάνει ο παλμός να επιστρέψει και η απόσταση που υπολογίζουμε από αυτή

void setup() {
pinMode(trigPin, OUTPUT); //Το pin για το Trigger
pinMode(echoPin, INPUT); //Το pin για το Echo
pinMode(alarmPin, OUTPUT); //Το pin για το Buzzer
Serial.begin(9600); //επικοινωνία με τη σειριακή οθόνη για να βλέπουμε τα μηνύματα
}

void loop() {
//Δημιουργία του παλμού που στέλνει ο αισθητήρας
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
//Επιστροφή του παλμού και υπολογισμός του χρόνου που χρειάστηκε
duration = pulseIn(echoPin, HIGH);

//Υπολογισμός της απόστασης (σε cm) από τον χρόνο που έκανε να επιστρέψει ο παλμός και την ταχύτητα του ήχου.
distance = duration/58.2;

Serial.println(distance,2); //Εμφάνιση της απόστασης στην οθόνη

if(distance<alarmRange) //Αν η απόσταση είναι μικρότερη από αυτή που θέλουμε
digitalWrite(alarmPin,HIGH); // Άναψε το buzzer
else //αλλιώς
digitalWrite(alarmPin,LOW); // Σβήσε το buzzer
delay(50); //Περίμενε λιγο (50ms) πριν ξαναμετρήσεις
}

Ο παραπάνω κώδικας θα γραφτεί στο Arduino με το IDE

 

Νέες γνώσεις

  1. Είδαμε τη Φυσική πίσω από τον αισθητήρα υπερήχων. Εξηγήσαμε τι είναι οι υπέρηχοι και πως μας βοηθούν να μετρήσουμε την απόσταση. Αναφέραμε το παράδειγμα της νυχτερίδας.
  2. Κάναμε μία σύντομη περιγραφή του πως μπορούμε να υπολογίσουμε την απόσταση από τον χρόνο που κάνει να επιστρέψει ο παλμός. Αναφέραμε το παράδειγμα της αστραπής και της βροντής τις οποίες βλέπουμε και ακούμε με καθυστέρηση, οπότε μπορούμε να καταλάβουμε πόσο μακριά βρίσκεται μία καταιγίδα
  3. Τη συγκεκριμένη γνώση τη λάβαμε ενώ εργαζόμασταν με το Raspberry Pi και δεν ισχύει στην τελική λύση με Arduino. Ωστόσο αφιερώσαμε πολύ χρόνο και αν κάποια ομάδα θελήσει να δοκιμάσει με Raspberry Pi, καλό είναι να επιμείνει επίσης. Επειδή ο αισθητήρας υπερήχων επιστρέφει σήμα 5V, ενώ το Raspberry διαχειρίζεται σήματα 3V, μιλήσαμε για τον διαιρέτη τάσης και τι επιτυγχάνουμε με αυτόν. Για τα παιδιά της Ε’ Δημοτικού αξιοποιήθηκαν οι μαθηματικές γνώσεις της απλοποίησης κλασμάτων και των ανάγωγων κλασμάτων για να εξηγηθεί πως η επιλογή των αντιστάσεων 220Ω και 330Ω οδηγεί σε έναν διαιρέτη τάσης 3V/5V, ενώ για τα παιδιά της Γ’ Δημοτικού, που μόλις είχαν διδαχτεί τα κλάσματα,  διατυπώθηκε ότι ο διαιρέτης τάσης “μας δίνει τα 3/5 των 5V, άρα μας δίνει 3V”.

Προβλήματα που αντιμετωπίσαμε

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

1. Σε μία από τις πρώτες δοκιμές μας, παρατηρήσαμε ότι ο αισθητήρας ανέβασε θερμοκρασία. Τον αποσυνδέσαμε αμέσως και παρατηρήσαμε ότι είχαμε συνδέσει ανάποδα τα 5V με τη Γη.

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

3. Κάποια στιγμή παρατηρήσαμε ότι η συσκευή παρουσίαζε αστάθεια. Έδειχνε μόνιμα μηδέν απόσταση ή οι μόνες τιμές που έδειχνε ήταν 0 – 50 – 100 (σαν να μειώθηκε η διακριτική της ικανότητα). Η συμπεριφορά βελτιώθηκε όταν αντικαταστήσαμε τον αισθητήρα υπερήχων. Επίσης αντικαταστήσαμε το breadboard με άλλο στο οποίο οι συνδέσεις ήταν πιο σταθερές.

4. Κάποιες στιγμές ο αισθητήρας επέστρεφε σταθερά μηδενικές τιμές. Παρατηρήσαμε ότι είχε αποσυνδεθεί το καλώδιο των 5V.

 

Δυνατότητες βελτίωσης

1. Μικρότερη κατασκευή.
2. Ο χρήστης να μπορεί να ρυθμίζει ο ίδιος την απόσταση που θα χτυπάει ο buzzer.
3. Ο buzzer να έχει μεγαλύτερο εύρος εντοπισμού εμποδίων.
4. Να αλλάζει ο ήχος του buzzer ανάλογα με την απόσταση και το ύψος του εμποδίου.
5. Να υπάρχει και η επιλογή της δόνησης αντί για το buzzer (για χρήση πχ σε εξωτερικούς χώρους με θόρυβο).

 

Συμμετέχοντες
Μαθητές (CoderDojo Ninjas)
Βαλεντίνα Δάμου (Γ’ Δημοτικού)
Κρυσταλλένια Ζεάκη (Ε’ Δημοτικού)
Σμαράγδα Ζεάκη (Γ’ Δημοτικού)
Αγγελική Καράμπαμπα (Ε’ Δημοτικού)
Γιάννης Μαζαράκης (Ε’ Δημοτικού)
Γεωργία Παγκάκη (Ε’ Δημοτικού)
Πασχάλης Παπαδόπουλος (Ε’ Δημοτικού)
Χρύσα Χριστοπούλου (Ε’ Δημοτικού)

Εκπαιδευτικός (CoderDojo Champion)
Μάνος Ζεάκης (Φυσικός Ραδιοηλεκτρολόγος)