- Απαιτούμενα υλικά:
- Διάγραμμα κυκλώματος τυφλού ραβδιού:
- Πρόγραμμα Arduino για Smart Blind Stick:
- Arduino Blind Stick σε δράση:
Έχετε ακούσει ποτέ για τον Hugh Herr; Είναι ένας διάσημος Αμερικανός ορειβάτης που έχει καταστρέψει τους περιορισμούς των αναπηριών του. Πιστεύει ακράδαντα ότι η τεχνολογία θα μπορούσε να βοηθήσει τα άτομα με ειδικές ανάγκες να ζήσουν μια φυσιολογική ζωή. Σε μια από τις συνομιλίες TED του, ο Herr είπε: « Οι άνθρωποι δεν είναι άτομα με ειδικές ανάγκες. Ένα άτομο δεν μπορεί ποτέ να σπάσει. Το δομημένο περιβάλλον μας, οι τεχνολογίες μας, είναι σπασμένα και απενεργοποιημένα. Εμείς οι άνθρωποι δεν χρειάζεται να αποδεχτούμε τους περιορισμούς μας, αλλά μπορούμε να μεταφέρουμε την αναπηρία μέσω της τεχνολογικής καινοτομίας ». Αυτά δεν ήταν μόνο λόγια, αλλά έζησε τη ζωή του σε αυτούς, σήμερα χρησιμοποιεί προσθετικά πόδια και ισχυρίζεται ότι ζει σε φυσιολογική ζωή. Ναι, η τεχνολογία μπορεί πράγματι να εξουδετερώσει την ανθρώπινη αναπηρία. Έχοντας αυτό κατά νου, ας χρησιμοποιήσουμε μερικές απλές πλακέτες και αισθητήρες ανάπτυξης για να χτίσουμε ένα υπερηχητικό ραβδί περπάτημα χρησιμοποιώντας το Arduino που θα μπορούσε να αποδώσει κάτι περισσότερο από ένα ραβδί για άτομα με προβλήματα όρασης.
Αυτό το έξυπνο ραβδί θα έχει έναν αισθητήρα υπερήχων για να ανιχνεύει την απόσταση από οποιοδήποτε εμπόδιο, LDR να ανιχνεύει τις συνθήκες φωτισμού και ένα τηλεχειριστήριο RF χρησιμοποιώντας το οποίο ο τυφλός θα μπορούσε να εντοπίσει από απόσταση το ραβδί του. Όλα τα σχόλια θα δοθούν στον τυφλό μέσω Buzzer. Φυσικά μπορείτε να χρησιμοποιήσετε έναν κινητήρα δονητή στη θέση του Buzzer και να προχωρήσετε πολύ περισσότερο χρησιμοποιώντας τη δημιουργικότητά σας.
Απαιτούμενα υλικά:
- Arduino Nano (Οποιαδήποτε έκδοση θα λειτουργήσει)
- Αισθητήρας υπερήχων HC-SR04
- LDR
- Buzzer και LED
- 7805
- Πομπός και δέκτης RF 433MHz
- Αντιστάσεις
- Πυκνωτές
- Πιέστε το κουμπί
- Διοικητικό Συμβούλιο Perf
- Σετ συγκόλλησης
- Μπαταρίες 9V
Μπορείτε να αγοράσετε όλα τα απαιτούμενα στοιχεία για αυτό το έξυπνο τυφλή ραβδί του έργου από εδώ.
Διάγραμμα κυκλώματος τυφλού ραβδιού:
Αυτό το έργο Arduino Smart Blind Stick απαιτεί δύο ξεχωριστά κυκλώματα. Το ένα είναι το κύριο κύκλωμα που θα τοποθετηθεί στο ραβδί του τυφλού. Το άλλο είναι ένα μικρό απομακρυσμένο κύκλωμα πομπού RF που θα χρησιμοποιηθεί για τον εντοπισμό του κύριου κυκλώματος. Το διάγραμμα κυκλώματος της κύριας πλακέτας για την κατασκευή ενός τυφλού ραβδιού χρησιμοποιώντας αισθητήρα υπερήχων φαίνεται παρακάτω:
Όπως μπορούμε να δούμε ένα Arduino Nano χρησιμοποιείται για τον έλεγχο όλων των αισθητήρων, αλλά μπορείτε επίσης να δημιουργήσετε αυτό το Smart blind stick χρησιμοποιώντας το arduino uno αλλά ακολουθώντας τα ίδια pinouts και πρόγραμμα. Ο πλήρης πίνακας τροφοδοτείται από μια μπαταρία 9V η οποία ρυθμίζεται σε + 5V χρησιμοποιώντας έναν ρυθμιστή τάσης 7805. Ο υπερηχητικός αισθητήρας τροφοδοτείται από 5V και η σκανδάλη και ο πείρος Echo συνδέονται με τον Arduino nano pin 3 και 2 όπως φαίνεται παραπάνω. Το LDR συνδέεται με μια αντίσταση της τιμής 10K για να σχηματίσει ένα διαχωριστικό δυναμικού και η διαφορά στην τάση διαβάζεται από τον πείρο A1 του Arduino ADC. Ο ακροδέκτης ADC A0 χρησιμοποιείται για την ανάγνωση του σήματος από τον δέκτη RF. Η έξοδος της πλακέτας δίνεται από το Buzzer που συνδέεται με τον πείρο 12.
Το απομακρυσμένο κύκλωμα RF φαίνεται παρακάτω. Η λειτουργία του εξηγείται επίσης περαιτέρω.
Έχω χρησιμοποιήσει ένα μικρό hack για να λειτουργήσει αυτό το κύκλωμα τηλεχειριστηρίου RF. Κανονικά κατά τη χρήση αυτής της μονάδας RF 433 MHz απαιτείται να λειτουργήσει ένας κωδικοποιητής και αποκωδικοποιητής ή δύο MCU, όπως στο προηγούμενο κύκλωμα πομπού και δέκτη RF που χρησιμοποιήσαμε τα HT12D και HT12E, αποκωδικοποιητή και IC κωδικοποιητή αντίστοιχα. Όμως, στην εφαρμογή μας χρειαζόμαστε απλώς τον δέκτη για να ανιχνεύσουμε εάν ο πομπός στέλνει κάποια σήματα. Έτσι, ο πείρος δεδομένων του πομπού συνδέεται με τη γείωση ή την Vcc της τροφοδοσίας.
Ο ακροδέκτης δεδομένων του δέκτη περνά μέσα από ένα φίλτρο RC και μετά δίνεται στο Arduino όπως φαίνεται παρακάτω. Τώρα, κάθε φορά που πατάτε το κουμπί, ο Δέκτης εξάγει κάποια σταθερή τιμή ADC επανειλημμένα. Αυτή η επανάληψη δεν μπορεί να παρατηρηθεί όταν δεν πατηθεί το κουμπί. Γι 'αυτό γράφουμε το πρόγραμμα Arduino για να ελέγξουμε τις επαναλαμβανόμενες τιμές για να ανιχνεύσουμε εάν πατηθεί το κουμπί. Έτσι λοιπόν ένας τυφλός μπορεί να παρακολουθεί το ραβδί του. Μπορείτε να δείτε εδώ: πώς λειτουργεί ο πομπός RF και ο δέκτης.
Έχω χρησιμοποιήσει έναν πίνακα για να κολλήσω όλες τις συνδέσεις έτσι ώστε να είναι άθικτο με το ραβδί. Όμως, μπορείτε επίσης να τα φτιάξετε σε ένα breadboard. Αυτοί είναι οι πίνακες που έφτιαξα για αυτό το έργο blind stick χρησιμοποιώντας το arduino.
Πρόγραμμα Arduino για Smart Blind Stick:
Μόλις είμαστε έτοιμοι με το υλικό μας, μπορούμε να συνδέσουμε το Arduino στον υπολογιστή μας και να ξεκινήσουμε τον προγραμματισμό. Ο πλήρης κωδικός που χρησιμοποιείται για αυτήν τη σελίδα βρίσκεται στο κάτω μέρος αυτής της σελίδας, μπορείτε να τον ανεβάσετε απευθείας στον πίνακα Arduino. Ωστόσο, αν είστε περίεργοι να μάθετε πώς λειτουργεί ο κώδικας διαβάστε περαιτέρω.
Όπως όλα τα προγράμματα ξεκινάμε με τη ρύθμιση άκυρης () για την προετοιμασία των καρφιτσών εξόδου εισόδου. Στο πρόγραμμά μας ο πείρος Buzzer and Trigger είναι μια συσκευή εξόδου και ο πείρος Echo είναι μια συσκευή εισόδου. Αρχικοποιούμε επίσης τη σειριακή οθόνη για εντοπισμό σφαλμάτων.
άκυρη ρύθμιση () {Serial.begin (9600); pinMode (Buzz, OUTPUT); digitalWrite (Buzz, LOW); pinMode (σκανδάλη, ΕΞΟΔΟΣ); pinMode (echo, INPUT); }
Μέσα στον κύριο βρόχο διαβάζουμε όλα τα δεδομένα των αισθητήρων. Ξεκινάμε με την ανάγνωση των δεδομένων αισθητήρα του υπερηχητικού αισθητήρα για απόσταση, LDR για ένταση φωτός και σήμα RF για να ελέγξουμε εάν πατηθεί το κουμπί. Όλα αυτά τα δεδομένα αποθηκεύονται σε μια μεταβλητή όπως φαίνεται παρακάτω για μελλοντική χρήση.
calcul_distance (σκανδάλη, ηχώ); Σήμα = analogRead (Remote) Intens = analogRead (Φως);
Ξεκινάμε με τον έλεγχο του απομακρυσμένου σήματος. Χρησιμοποιούμε μια μεταβλητή που ονομάζεται same_count για να ελέγξουμε πόσες φορές οι ίδιες τιμές επαναλαμβάνονται από τον δέκτη RF. Αυτή η επανάληψη θα πραγματοποιηθεί μόνο όταν πατηθεί το κουμπί. Έτσι ενεργοποιούμε το συναγερμό απομακρυσμένης συμπίεσης εάν ο αριθμός υπερβαίνει την τιμή των 100.
// Ελέγξτε εάν το Remote είναι πατημένο int temp = analogRead (Remote); παρόμοιο_κατάστημα = 0; ενώ (Signal == temp) {Signal = analogRead (Remote); παρόμοιο_έγγραφο ++; } // Εάν πατηθεί απομακρυσμένο εάν (παρόμοιο_count <100) {Serial.print (Similar_count) Serial.println ("Remote Pressed"); digitalWrite (Buzz, HIGH); καθυστέρηση (3000); digitalWrite (Buzz, LOW); }
Μπορείτε επίσης να το ελέγξετε στο Serial Monitor στον υπολογιστή σας:
Στη συνέχεια ελέγχουμε την ένταση του φωτός γύρω από τον τυφλό. Εάν το LDR δίνει τιμή μικρότερη από 200, θεωρείται πολύ σκοτεινή και του δίνουμε την προειδοποίηση μέσω βομβητή με συγκεκριμένο τόνο καθυστέρησης με 200ms. Εάν η ένταση είναι πολύ φωτεινή που είναι μεγαλύτερη από 800 τότε επίσης δίνουμε μια προειδοποίηση με άλλο τόνο. Ο τόνος και η ένταση του συναγερμού μπορούν εύκολα να μεταβληθούν αλλάζοντας την αντίστοιχη τιμή στον παρακάτω κώδικα.
// Εάν είναι πολύ σκοτεινό εάν (Intens <200) {Serial.print (Intens); Serial.println ("Φωτεινό φως"); digitalWrite (Buzz, HIGH); καθυστέρηση (200); digitalWrite (Buzz, LOW); καθυστέρηση (200); digitalWrite (Buzz, HIGH); καθυστέρηση (200); digitalWrite (Buzz, LOW); καθυστέρηση (200); καθυστέρηση (500) } // Εάν είναι πολύ φωτεινό εάν (Intens> 800) {Serial.print (Intens); Serial.println ("Χαμηλός φωτισμός"); digitalWrite (Buzz, HIGH); καθυστέρηση (500); digitalWrite (Buzz, LOW); καθυστέρηση (500); digitalWrite (Buzz, HIGH); καθυστέρηση (500); digitalWrite (Buzz, LOW); καθυστέρηση (500); }
Τέλος, αρχίζουμε να μετράμε την απόσταση από οποιοδήποτε εμπόδιο. Δεν θα υπάρχει συναγερμός εάν η μετρούμενη απόσταση είναι μεγαλύτερη από 50 εκατοστά. Όμως, εάν είναι μικρότερο από 50 εκατοστά, ο συναγερμός θα ξεκινήσει με ηχητικό σήμα του βομβητή. Καθώς το αντικείμενο πλησιάζει στον βομβητή, το διάστημα ήχου θα μειωθεί επίσης. Όσο πιο κοντά είναι το αντικείμενο τόσο πιο γρήγορα θα ηχήσει ο βομβητής. Αυτό μπορεί να γίνει δημιουργώντας μια καθυστέρηση ανάλογη με την απόσταση που μετρήθηκε. Δεδομένου ότι η καθυστέρηση () στο Arduino δεν μπορεί να δεχτεί μεταβλητές, πρέπει να χρησιμοποιήσουμε ένα βρόχο για βρόχο με βάση τη μετρούμενη απόσταση όπως φαίνεται παρακάτω.
εάν (dist <50) {Serial.print (dist); Serial.println ("Αντικείμενο ειδοποίησης"); digitalWrite (Buzz, ΥΨΗΛΟ); για καθυστέρηση (int i = dist; i> 0; i--) (10); digitalWrite (Buzz, LOW); για καθυστέρηση (int i = dist; i> 0; i--) (10); }
Μάθετε περισσότερα σχετικά με τη μέτρηση της απόστασης χρησιμοποιώντας τον αισθητήρα υπερήχων και το Arduino.
Το πρόγραμμα μπορεί εύκολα να προσαρμοστεί για την εφαρμογή σας αλλάζοντας την τιμή που χρησιμοποιούμε για σύγκριση. Χρησιμοποιείτε τη σειριακή οθόνη για εντοπισμό σφαλμάτων εάν ενεργοποιείται ένας λανθασμένος συναγερμός. Εάν έχετε κάποιο πρόβλημα, μπορείτε να χρησιμοποιήσετε την παρακάτω ενότητα σχολίων για να δημοσιεύσετε τις ερωτήσεις σας
Arduino Blind Stick σε δράση:
Τέλος, ήρθε η ώρα να δοκιμάσουμε το έργο μας στο ραβδί blind. Βεβαιωθείτε ότι οι συνδέσεις γίνονται σύμφωνα με το διάγραμμα κυκλώματος και το πρόγραμμα ανεβάζεται επιτυχώς. Τώρα, τροφοδοτήστε και τα δύο κυκλώματα χρησιμοποιώντας μια μπαταρία 9V και θα πρέπει να αρχίσετε να βλέπετε αποτελέσματα. Μετακινήστε τον αισθητήρα Ultra Sonic πιο κοντά στο αντικείμενο και θα παρατηρήσετε τον ήχο του βομβητή και αυτή η συχνότητα ηχητικού σήματος αυξάνεται καθώς το ραβδί πλησιάζει στο αντικείμενο. Εάν το LDR καλύπτεται στο σκοτάδι ή εάν υπάρχει πολύ φως, ο βομβητής θα ηχήσει. Εάν όλα είναι φυσιολογικά, ο βομβητής δεν θα ηχεί.
Όταν πατάτε το κουμπί στο τηλεχειριστήριο, ο βομβητής θα παράγει ένα μακρύ μπιπ. Η πλήρης λειτουργία αυτού του Smart Stick για τους τυφλούς χρησιμοποιώντας το Arduino εμφανίζεται στο βίντεο που δίνεται στο τέλος αυτής της σελίδας. Χρησιμοποιώ επίσης ένα μικρό ραβδί για να τοποθετήσω το πλήρες συγκρότημα, μπορείτε να χρησιμοποιήσετε ένα μεγαλύτερο ή ένα πραγματικό τυφλό ραβδί και να το βάλω σε δράση.
Εάν ο βομβητής σας ηχεί πάντα, αυτό σημαίνει ότι ο συναγερμός ενεργοποιείται ψευδώς. Μπορείτε να ανοίξετε τη σειριακή οθόνη για να ελέγξετε τις παραμέτρους και να ελέγξετε ποια είναι η κρίσιμη και να την προσαρμόσετε. Όπως πάντα, μπορείτε να δημοσιεύσετε το πρόβλημά σας στην ενότητα σχολίων για να λάβετε βοήθεια. Ελπίζω να καταλάβατε το έργο και να απολαύσατε κάτι.