Wie erstelle ich mit Arduino einen Smart Stick für Blinde?
Ich glaube fest an ein Zitat von Helen Keller, in dem es heißt "Das einzige, was schlimmer ist als blind zu sein, ist zu sehen, aber nicht zu sehen." Die Technologie könnte behinderten Menschen helfen, ein normales Leben zu führen, wie es andere Menschen tun. Jeder kennt das indische Mädchen namens Arunima Sinha die bei einem Zugunglück ihr Bein verloren hatte und für den Rest ihres Lebens auf den Beinprothesen laufen musste. Nach einem Unfall entschloss sie sich, den Mount Everest auf Beinprothesen zu besteigen, und daher ebnete die neueste Technologie ihr den Weg, ihren Traum zu verwirklichen.
Die Technologie kann tatsächlich die Behinderung des Menschen neutralisieren. Lassen Sie uns in diesem Sinne die Kraft von nutzen Arduino und einfache Sensoren zum Bau eines Blindmanns Das könnte ein Lebensretter für sehbehinderte Personen sein. In einem Stick wird ein Ultraschallsensor installiert, der die Entfernung einer Person von einem Hindernis erfasst, ein LDR zur Erfassung der Lichtverhältnisse und eine HF-Fernbedienung, mit der der Blinde seinen Stick aus der Ferne lokalisieren kann. Alle Anweisungen werden dem Blinden durch einen Summer gegeben. Wir können anstelle von Buzzer einen Vibrationsmotor verwenden und mit unserer Kreativität noch viel weiter vorankommen.
Wie verwende ich Arduino beim Entwerfen der Schaltung?
Nachdem wir nun die Zusammenfassung des Projekts kennen, lassen Sie uns vorwärts gehen und verschiedene Informationen sammeln, um mit der Arbeit zu beginnen. Wir werden zuerst eine Liste der Komponenten erstellen, sie dann kurz untersuchen und dann alle Komponenten zu einem funktionierenden System zusammenbauen.
Schritt 1: Erforderliche Komponenten (Hardware)
Schritt 2: Verwendete Komponenten (Software)
Schritt 3: Studieren der Komponenten
Jetzt haben wir eine Liste aller Komponenten erstellt, die wir in diesem Projekt verwenden werden. Lassen Sie uns noch einen Schritt weiter gehen und eine kurze Untersuchung aller Hauptkomponenten durchführen.
- Arduino Nano: Arduino Nano ist eine Mikrocontroller-Karte, mit der verschiedene Aufgaben in einer Schaltung gesteuert oder ausgeführt werden. Wir verbrennen a C-Code auf Arduino Nano, um dem Mikrocontroller-Board mitzuteilen, wie und welche Operationen auszuführen sind. Arduino Nano hat genau die gleiche Funktionalität wie Arduino Uno, ist jedoch recht klein. Der Mikrocontroller auf der Arduino Nano-Platine ist ATmega328p.
- Ultraschallsensor HC-SR04: Die HC-SR04-Karte ist ein Ultraschallsensor, mit dem der Abstand zwischen zwei Objekten bestimmt wird. Es besteht aus einem Sender und einem Empfänger. Der Sender wandelt das elektrische Signal in ein Ultraschallsignal um und der Empfänger wandelt das Ultraschallsignal wieder in das elektrische Signal um. Wenn der Sender eine Ultraschallwelle sendet, wird diese nach einer Kollision mit einem bestimmten Objekt reflektiert. Die Entfernung wird anhand der Zeit berechnet, die das Ultraschallsignal benötigt, um vom Sender zum Empfänger zurückzukehren.
- 433 MHz HF-Sender und -Empfänger: Es arbeitet mit einer bestimmten Frequenz von 433 MHz. Es gibt mehrere andere Hochfrequenzgeräte auf dem Markt, und im Vergleich dazu hängt die Leistung eines HF-Moduls von mehreren Faktoren ab, z. B. wenn wir die Leistung des Senders erhöhen, wird eine große Kommunikationsentfernung erfasst. Dies führt zu einem hohen Stromverbrauch des Sendegeräts, was zu einer kürzeren Lebensdauer der batteriebetriebenen Geräte führt. Wenn wir dieses Gerät mit höherer Sendeleistung verwenden, wird das Gerät Interferenzen mit anderen HF-Geräten verursachen.
- 7805 Spannungsregler:Spannungsregler haben in elektrischen Schaltkreisen eine bedeutende Bedeutung. Selbst wenn die Eingangsspannung schwankt, liefert dieser Spannungsregler eine konstante Ausgangsspannung. Wir können die Anwendung des 7805 IC in den meisten Projekten finden. Der Name 7805 bedeutet zwei Bedeutungen: "78" bedeutet, dass es sich um einen positiven Spannungsregler handelt, und "05" bedeutet, dass er 5 V als Ausgang liefert. Unser Spannungsregler liefert also eine Ausgangsspannung von + 5V. Dieser IC kann Strom um 1,5 A verarbeiten. Ein Kühlkörper wird für Projekte empfohlen, die mehr Strom verbrauchen. Wenn beispielsweise die Eingangsspannung 12 V beträgt und Sie 1 A verbrauchen, ist (12-5) * 1 = 7 W. Diese 7 Watt werden als Wärme abgeführt.
Schritt 4: Zusammenbau der Schaltung
Wir müssen zwei Schaltungen für dieses Projekt entwerfen. Der erste Stromkreis wird an einer geeigneten Stelle im Stock eines Blinden platziert und der zweite wird ein HF-Sender Schaltung und es wird verwendet, um die Hauptschaltung herauszufinden. Bevor wir die Schaltung auf Proteus entwerfen, müssen wir die Proteus-Bibliothek des HF-Empfängers in die Software aufnehmen. Sie können die Bibliothek von hier herunterladen und nach dem Herunterladen der Bibliothek die öffnen Bibliothek Ordner und Kopie MODULO_RF.LIB Datei und fügen Sie es in den Bibliotheksordner von Proteus ein. Wenn Sie den Bibliotheksordner nicht finden, klicken Sie auf (C: \ Programme (x86) \ Labcenter Electronics \ Proteus 8 Professional \ LIBRARY). Wenn Sie dies getan haben, öffnen Sie den MODELS-Ordner, kopieren Sie RX.MDF und fügen Sie es in den proteus MODELS-Ordner ein. Wenn Sie den Modellordner nicht finden, klicken Sie auf (C: \ Programme (x86) \ Labcenter Electronics \ Proteus 8 Professional \ MODELS).
Der Mikrocontroller, mit dem alle Sensoren in der Schaltung gesteuert werden, ist Arduino Nano. Die für die Arbeit der Schaltung verwendete Stromversorgung ist eine 9-V-Batterie, und diese 9-V-Spannung wird unter Verwendung von a auf 5 V gesenkt 7805 Spannungsregler. In der Schaltung ist zu sehen, dass die Ultraschallsensor wird vom Vout des Spannungsreglers gespeist. Die Trigger- und Echo-Pins des Sensors sind mit Pin 3 bzw. Pin 2 von Arduino verbunden. Das Lichtabhängiger Widerstand (LDR) ist an das Potentiometer mit dem Wert 10k und das angeschlossen Analog zu Digital Der Umwandlungsstift A1 von Arduino ist mit diesem Punkt verbunden, um die Spannungsdifferenz zu notieren. Wir müssen das Signal kennen, das vom HF-Empfänger ausgesendet wird, also haben wir den ADC-Pin A0 angeschlossen, um das Signal vom HF-Empfänger zu lesen. Die Ausgabe der gesamten Schaltung ist gegeben durch die Summer Daher ist der positive Pin des Summers mit dem Pin 12 von Arduino und der negative Pin mit der Masse des Ultraschallsensors verbunden.
Wir haben den HF-Sender nicht in unseren Schaltplan aufgenommen, da wir ihn separat auf Hardware montieren werden. Wenn wir einen 433-MHz-Überlagerungssender und -empfänger verwenden, benötigen wir einen Mikrocontroller, um sie damit zu verbinden. In diesem Projekt benötigen wir jedoch den einzigen Sender, der Signale an den Empfänger sendet. Daher haben wir den Daten-Pin des Senders mit dem Vcc verbunden. Der Datenstift des Empfängers wird durch das RC-Filter geleitet und dann mit dem Datenstift A0 des Arduino verbunden. Wir werden den Druckknopf am Sender wiederholt drücken und wenn der Knopf gedrückt wird, gibt der Empfänger einen konstanten Wert als Ausgang aus.
Schritt 5: Zusammenbau der Hardware
Da wir die Simulation Nein ausgeführt haben, sind wir in der Lage, einen Prototyp zu erstellen. Achten Sie beim Löten der Komponenten auf der Perf-Platine besonders auf die Stifte von Arduino Nano. Stellen Sie sicher, dass sich die Stifte nicht berühren. Andernfalls könnte Arduino beschädigt werden. Suchen Sie sich zu Hause einen Stick und schließen Sie die Schaltung aus Arduino und HF-Empfänger an. Sie können eine Heißklebepistole zum Anbringen des Stromkreises am Stick verwenden. Es ist besser, etwas Kleber auf die positiven und negativen Anschlüsse aufzutragen, damit die Drähte des Netzteils nicht gelöst werden, wenn der Stick fest auf dem Boden liegt.
Schritt 6: Erste Schritte mit Arduino
Wenn Sie mit Arduino IDE noch nicht vertraut sind, machen Sie sich keine Sorgen, denn unten sehen Sie klare Schritte zum Brennen von Code auf der Mikrocontroller-Karte mit Arduino IDE. Sie können die neueste Version von Arduino IDE hier herunterladen und die folgenden Schritte ausführen:
- Wenn die Arduino-Karte an Ihren PC angeschlossen ist, öffnen Sie "Systemsteuerung" und klicken Sie auf "Hardware und Sound". Klicken Sie dann auf "Geräte und Drucker". Suchen Sie den Namen des Ports, an den Ihre Arduino-Karte angeschlossen ist. In meinem Fall ist es "COM14", aber es kann auf Ihrem PC anders sein.
- Klicken Sie auf das Menü Tool. und setze das Board auf Arduino Nano aus dem Dropdown-Menü.
- Stellen Sie im selben Tool-Menü den Port auf die Portnummer ein, die Sie zuvor in der Geräte und Drucker.
- Stellen Sie im selben Tool-Menü den Prozessor auf ein ATmega328P (alter Bootloader).
- Laden Sie den unten angehängten Code herunter und fügen Sie ihn in Ihre Arduino IDE ein. Klick auf das hochladen Taste, um den Code auf Ihrer Mikrocontroller-Karte zu brennen.
Klicken Sie hier, um den Code herunterzuladen.
Schritt 7: Den Code verstehen
Der Code ist gut kommentiert und selbsterklärend. Trotzdem wird es unten erklärt:
- Zu Beginn des Codes werden alle Pins der Arduino Nano-Karte, die mit dem Ultraschallsensor und dem HF-Modul verbunden sind, initialisiert.
const int trigger = 3; // Trigger Pin des 1. Sensors const int echo = 2; // Echo Pin des 1. Sensors const int Buzz = 13; // Pin zum Verbinden des Summers const int Remote = A0; const int Light = A1; lange Zeit genommen; int dist; int Signal; int Intens; int Similar_count;
2. void setup () ist eine Funktion, mit der alle verwendeten Pins gesetzt werden, z EINGANG und AUSGABE.In dieser Funktion wird die Baudrate definiert. Die Baudrate ist die Kommunikationsgeschwindigkeit, mit der die Mikrocontroller-Karte mit den darin integrierten Sensoren kommuniziert.
void setup () {Serial.begin (9600); pinMode (Buzz, OUTPUT); digitalWrite (Buzz, LOW); pinMode (Trigger, OUTPUT); pinMode (Echo, INPUT); }}
3. Nun erstellen wir eine Funktion, die die Entfernung berechnet.
void berechne_Distanz (int Trigger, int Echo) {digitalWrite (Trigger, LOW); delayMicroseconds (2); digitalWrite (Trigger, HIGH); delayMicroseconds (10); digitalWrite (Trigger, LOW); time_taken = pulsIn (echo, HIGH); dist = time_taken * 0,034 / 2; wenn (dist> 300) dist = 300; }}
4.void loop () ist eine Funktion, die in einem Zyklus wiederholt ausgeführt wird. In dieser Funktion teilen wir der Mikrocontroller-Karte mit, wie und welche Vorgänge ausgeführt werden sollen. In der Hauptschleife lesen wir die Daten der Sensoren. Hier wird zuerst der Trigger-Pin so eingestellt, dass er ein Signal sendet, das vom Echo-Pin erkannt wird. Einige Bedingungen werden angewendet, um den Summer kontinuierlich zu ertönen, wenn ein Objekt in einer bestimmten Entfernung erkannt wird. Der Summer piept mit einer kleinen Unterbrechung, wenn er Dunkelheit erkennt, und mit einer etwas größeren Unterbrechung, wenn er Hell erkennt.
void loop () {// Endlosschleife berechne_Distanz (Trigger, Echo); Signal = analogRead (Remote); Intens = analogRead (Licht); // Überprüfen Sie, ob Remote gedrückt wird int temp = analogRead (Remote); like_count = 0; while (Signal == temp) {Signal = analogRead (Remote); like_count ++; } // Wenn die Fernbedienung gedrückt wird if (Similar_Count <100) {Serial.print (Similar_Count); Serial.println ("Remote Pressed"); digitalWrite (Buzz, HIGH); Verzögerung (3000); digitalWrite (Buzz, LOW); } // Wenn sehr dunkel if (Intens <200) {Serial.print (Intens); Serial.println ("Helles Licht"); digitalWrite (Buzz, HIGH), Verzögerung (200), digitalWrite (Buzz, LOW), Verzögerung (200), digitalWrite (Buzz, HIGH), Verzögerung (200); digitalWrite (Buzz, LOW); Verzögerung (200); Verzögerung (500); } // Wenn sehr hell if (Intens> 800) {Serial.print (Intens); Serial.println ("Low Light"); digitalWrite (Buzz, HIGH), Verzögerung (500), digitalWrite (Buzz, LOW), Verzögerung (500), digitalWrite (Buzz, HIGH), Verzögerung (500); digitalWrite (Buzz, LOW); Verzögerung (500); } if (dist <50) {Serial.print (dist); Serial.println ("Object Alert"); digitalWrite (Buzz, HIGH); für (int i = dist; i> 0; i--) Verzögerung (10); digitalWrite (Buzz, LOW); für (int i = dist; i> 0; i--) Verzögerung (10); } //Serial.print("dist= "); //Serial.println(dist); //Serial.print("Similar_count= "); //Serial.println(similar_count); //Serial.print("Intens= "); //Serial.println(Intens); }}
Schritt 8: Testen
Nachdem wir den Code verstanden, auf den Mikrocontroller hochgeladen und auch die Hardware zusammengebaut haben, ist es jetzt an der Zeit, unser Projekt zu testen. Stellen Sie vor dem Testen sicher, dass die Verbindungen korrekt hergestellt wurden, und überprüfen Sie den Durchgang des Stromkreises mit dem Digital Multi Meter. Zum Wenden AUF Beide Stromkreise verwenden eine 9-V-Batterie. Platzieren Sie ein Objekt auf der Oberfläche, an der Sie testen, und bewegen Sie den Ultraschallsensor davor. Es wird bemerkt, dass das Geräusch des Summers zunimmt, wenn sich der Sensor dem Objekt nähert. Es gibt zwei Möglichkeiten, wenn der LDR dunkel ist oder wenn Sie im Sonnenlicht testen, ertönt ein Signalton. Wenn der Druckknopf am HF-Sender gedrückt wird, piept der Summer lange. Wenn der Summer längere Zeit piept, bedeutet dies, dass der Alarm fälschlicherweise ausgelöst wird. Wenn Sie auf diese Art von Fehler stoßen, öffnen Sie den seriellen Monitor der Arduino IDE und suchen Sie nach den Parametern, die solche Probleme verursachen.
Dies war der einfachste Weg, mit Arduino einen intelligenten Stick für Blinde herzustellen. Befolgen Sie alle oben genannten Schritte und suchen Sie nach erfolgreichem Testen des Projekts nach einer behinderten Person und bieten Sie ihm dieses Projekt an, um ihm das Leben zu erleichtern.