Αισθητήρες απόστασης υπερήχων

Αισθητήρες απόστασης υπερήχων

Εισαγωγή

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

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

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


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

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

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


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

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

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

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

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

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

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

  • Δυσκολεύονται να ανιχνεύσουν μικρά αντικείμενα, αν δεν είναι τοποθετημένα σε κατάλληλο σημείο.

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

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

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

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

File:HC SR04 Ultrasonic sensor 1480319 20 21 HDR Enhancer.jpg
Ο αισθητήρας HC-SR04. Αριστερά βρίσκεται το ηχείο (transmitter) και δεξιά το μικρόφωνο (receiver).
Πηγή: Wikimedia Commons

Πάμε να φτιάξουμε μια εφαρμογή με τον αισθητήρα στο Pictoblox

Κατασκευή διαδρόμου

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

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

Τοποθετήστε τον αισθητήρα απόστασης την φαρδιά οπή όπως φαίνεται στις παρακάτω εικόνες

Σύνδεση του αισθητήρα με το Arduino

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

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

Συνδέστε τον αισθητήρα υπερύχων που έχεται στο Arduino σας χρησιμοποιώντας την υποδοχή D2 για το TRIG και την υποδοχή D3 για το Echo

Προγραμματισμός του αισθητήρα

Θα προγραμματίσουμε μια φιγούρα στο Pictoblox έτσι ώστε να μας λέει την απόσταση στην οποία βλέπει εμπόδιο ο αισθητήρας.

Αρχικά διαλέξτε ένα υπόβαθρο που σας αρέσει και έναν χαρακτήρα. Μην ξεχάσετε να ρυθμίσετε το Pictoblox σε κατάσταση stage και να κάνετε upload firmware

Χρησιμοποιώντας τις παρακάτω εντολές προγραμματίστε τον χαρακτήρα σας έτσι ώστε να μας λέει “Η απόσταση του εμποδίου είναι — εκατοστά” όπου αντί για τις 3 παύλες θα έχει τα εκατοστά που βλέπει ο αισθητήρας.

Πηγαίνοντας παραπέρα

Πόσο χάκερ έχετε γίνει; Μήπως μπορείτε να προσθέσετε έναν ακόμα χαρακτήρα στην σκηνή ο οποίος θα κινείται μακριά ή κοντά από τον αρχικό χαρακτήρα ανάλογα με την απόσταση που βλέπει ο αισθητήρας μας;

7 Σχόλια

  1. ΚΎΡΙΕ ΓΙΑΝΝΗ ΕΙΜΑΙ Ο ΓΙΑΝΝΗΣ Ο ΓΙΟΣ ΤΟΥ ΔΗΜΗΤΡΗ ΤΟΥ ΠΑΠΑΔΟΠΟΥΛΟΥ ΓΡΑΦΩ ΑΠΟ ΤΟΝ ΛΟΓΑΡΙΑΣΜΟ ΤΟΥ ΔΗΜΟΣΤΕΝΗ ΣΤΥΛΙΑΔΗ ΑΝ ΜΕ ΘΥΜΑΣΤΕ ΝΑ ΞΕΡΕΤΕ ΟΤΙ ΘΕΛΩ ΝΑ ΕΡΘΩ ΣΤΟΥΣ ΜΙΚΡΟΥΣ HAKERS ΑΛΛΑ ΔΕΝ ΒΟΛΕΒΕΙ ΕΠΙΔΗ ΔΕΝ ΒΟΛΕΒΕ Η ΩΡΑ ΓΙΑΤΙ ΕΧΩ ΑΓΓΛΙΚΑ ΚΑΙ ΝΑ ΞΕΡΕΤΕ ΟΤΙ ΘΕΛΩ ΠΟΛΥ ΝΑ ΕΡΘΩ .ΑΝΤΙΟ!

Αφήστε μια απάντηση