Σε αυτό το έργο θα συνδέσουμε τη μονάδα αισθητήρα υπερήχων HC-SR04 με το Raspberry Pi για να μετρήσουμε την απόσταση. Έχουμε χρησιμοποιήσει προηγουμένως αισθητήρα υπερήχων με Raspberry Pi για την κατασκευή ρομπότ αποφυγής εμποδίων. Πριν προχωρήσουμε περισσότερο, ενημερώστε τον αισθητήρα υπερήχων.
Αισθητήρας υπερήχων HC-SR04:
Ο αισθητήρας υπερήχων χρησιμοποιείται για τη μέτρηση της απόστασης με υψηλή ακρίβεια και σταθερές μετρήσεις. Μπορεί να μετρήσει απόσταση από 2cm έως 400cm ή από 1 ίντσα έως 13 πόδια. Εκπέμπει κύμα υπερήχων στη συχνότητα των 40KHz στον αέρα και εάν το αντικείμενο θα έρθει στο δρόμο του τότε θα αναπηδήσει πίσω στον αισθητήρα. Χρησιμοποιώντας το χρόνο που χρειάζεται για να χτυπήσει το αντικείμενο και να επιστρέψει, μπορείτε να υπολογίσετε την απόσταση.
Ο αισθητήρας υπερήχων χρησιμοποιεί μια τεχνική που ονομάζεται «ECHO». Το "ECHO" είναι απλώς ένα ανακλώμενο ηχητικό κύμα. Θα έχετε ένα ECHO όταν ο ήχος αντανακλά πίσω αφού φτάσει σε αδιέξοδο
Η μονάδα HCSR04 δημιουργεί δονήσεις ήχου σε εμβέλεια υπερήχων όταν κάνουμε τον πείρο «Trigger» υψηλό για περίπου 10us, ο οποίος θα στείλει μια ηχητική έκρηξη 8 κύκλων με την ταχύτητα του ήχου και αφού χτυπήσει το αντικείμενο, θα ληφθεί από τον πείρο Echo. Ανάλογα με το χρόνο που απαιτείται από τη δόνηση ήχου για την επιστροφή, παρέχει την κατάλληλη έξοδο παλμού. Εάν το αντικείμενο είναι μακριά, τότε χρειάζεται περισσότερος χρόνος για να ακουστεί το ECHO και το πλάτος του παλμού εξόδου θα είναι μεγάλο. Και αν το εμπόδιο είναι κοντά, τότε το ECHO θα ακουστεί γρηγορότερα και το πλάτος παλμού εξόδου θα είναι μικρότερο.
Μπορούμε να υπολογίσουμε την απόσταση του αντικειμένου με βάση το χρόνο που χρειάζεται το υπερηχητικό κύμα για να επιστρέψουμε στον αισθητήρα. Εφόσον είναι γνωστή η ώρα και η ταχύτητα του ήχου, μπορούμε να υπολογίσουμε την απόσταση με τους ακόλουθους τύπους.
- Απόσταση = (Χρόνος x Ταχύτητα ήχου στον αέρα (343 m / s)) / 2.
Η τιμή διαιρείται με δύο αφού το κύμα κινείται προς τα εμπρός και προς τα πίσω καλύπτοντας την ίδια απόσταση. Έτσι, ο χρόνος για να φτάσετε στο εμπόδιο είναι μόλις ο μισός συνολικός χρόνος που απαιτείται
Έτσι Απόσταση σε εκατοστό = 17150 * Τ
Έχουμε κάνει προηγουμένως πολλά χρήσιμα έργα χρησιμοποιώντας αυτόν τον αισθητήρα υπερήχων και το Arduino, ελέγξτε τα παρακάτω:
- Μέτρηση απόστασης βάσει Arduino με χρήση αισθητήρα υπερήχων
- Συναγερμός πόρτας χρησιμοποιώντας αισθητήρα Arduino και υπερήχων
- Παρακολούθηση Dumpster βάσει IOT με χρήση του Arduino
Απαιτούμενα στοιχεία:
Εδώ χρησιμοποιούμε το Raspberry Pi 2 Model B με το Raspbian Jessie OS. Όλες οι βασικές απαιτήσεις υλικού και λογισμικού συζητήθηκαν προηγουμένως, μπορείτε να το αναζητήσετε στο Raspberry Pi Εισαγωγή και στο Raspberry PI LED Blinking για να ξεκινήσετε, εκτός από αυτό που χρειαζόμαστε:
- Raspberry Pi με προεγκατεστημένο λειτουργικό σύστημα
- Αισθητήρας υπερήχων HC-SR04
- Τροφοδοσία (5v)
- Αντίσταση 1KΩ (3 τεμάχια)
- Πυκνωτής 1000uF
- LCD 16 * 2 χαρακτήρων
Επεξήγηση κυκλώματος:
Οι συνδέσεις μεταξύ Raspberry Pi και LCD δίνονται στον παρακάτω πίνακα:
Σύνδεση LCD |
Σύνδεση Raspberry Pi |
GND |
GND |
VCC |
+ 5V |
VEE |
GND |
RS |
GPIO17 |
Ε / Δ |
GND |
ΕΝ |
GPIO27 |
Δ0 |
GPIO24 |
Δ1 |
GPIO23 |
Δ2 |
GPIO18 |
Δ3 |
GPIO26 |
Δ4 |
GPIO5 |
Δ5 |
GPIO6 |
Δ6 |
GPIO13 |
Δ7 |
GPIO19 |
Σε αυτό το κύκλωμα, χρησιμοποιήσαμε την επικοινωνία 8bit (D0-D7) για να συνδέσουμε την οθόνη LCD με το Raspberry Pi, ωστόσο αυτό δεν είναι υποχρεωτικό, μπορούμε επίσης να χρησιμοποιήσουμε την επικοινωνία 4-bit (D4-D7), αλλά με το πρόγραμμα επικοινωνίας 4 bit γίνεται λίγο πολύπλοκο για αρχάριους, οπότε απλώς πηγαίνετε με επικοινωνία 8 bit. Εδώ έχουμε συνδέσει 10 ακίδες LCD με Raspberry Pi, στις οποίες 8 ακίδες είναι καρφίτσες δεδομένων και 2 ακίδες είναι καρφίτσες ελέγχου.
Ακολουθεί το διάγραμμα κυκλώματος για τη σύνδεση αισθητήρα HC-SR04 και LCD με Raspberry Pi για τη μέτρηση της απόστασης.
Όπως φαίνεται στην εικόνα, ο αισθητήρας υπερήχων HC-SR04 έχει τέσσερις ακίδες,
- PIN1- VCC ή + 5V
- PIN2- TRIGGER (10us Υψηλός παλμός που δίνεται για να πει στον αισθητήρα να αισθανθεί την απόσταση)
- PIN3- ECHO (Παρέχει έξοδο παλμού του οποίου το πλάτος αντιπροσωπεύει απόσταση μετά τη σκανδάλη)
- PIN4- ΙΣΟΓΕΙΟ
Η καρφίτσα Echo παρέχει παλμό εξόδου + 5V που δεν μπορεί να συνδεθεί απευθείας στο Raspberry Pi. Έτσι θα χρησιμοποιούμε Voltage Divider Circuit (χτισμένο χρησιμοποιώντας R1 και R2) για να πάρουμε λογική + 3.3V αντί για λογική +5V
Επεξήγηση εργασίας:
Η πλήρης εργασία του Raspberry Pi Distance Measure έχει ως εξής, 1. Ενεργοποίηση του αισθητήρα τραβώντας τον πείρο σκανδάλης για 10uS.
2. Το ηχητικό κύμα αποστέλλεται από τον αισθητήρα. Μετά τη λήψη του ECHO, η μονάδα αισθητήρα παρέχει έξοδο ανάλογη με την απόσταση.
3. Θα καταγράψουμε τον χρόνο που ο παλμός εξόδου πηγαίνει από LOW σε HIGH και όταν πάλι όταν θα είναι από HIGH σε LOW.
4. Θα έχουμε χρόνο έναρξης και διακοπής. Θα χρησιμοποιήσουμε την εξίσωση απόστασης για να υπολογίσουμε την απόσταση.
5. Η απόσταση εμφανίζεται σε οθόνη LCD 16x2.
Κατά συνέπεια, έχουμε γράψει το πρόγραμμα Python για το Raspberry Pi για να κάνει τις ακόλουθες λειτουργίες:
1. Για να στείλετε τη σκανδάλη στον αισθητήρα
2. Καταγράψτε τον χρόνο έναρξης και διακοπής της εξόδου παλμού από τον αισθητήρα.
3. Για να υπολογίσετε την απόσταση χρησιμοποιώντας το χρόνο START και STOP.
4. Για να εμφανίσετε το αποτέλεσμα που λαμβάνεται στην οθόνη LCD 16 * 2.
Παρακάτω δίνονται πλήρες πρόγραμμα και βίντεο επίδειξης. Το πρόγραμμα εξηγείται καλά μέσω των σχολίων, εάν έχετε οποιαδήποτε αμφιβολία μπορείτε να ρωτήσετε στην ενότητα σχολίων παρακάτω.