- Erforderliche Materialien:
- Blind Stick Schaltplan:
- Arduino-Programm für Smart Blind Stick:
- Arduino Blind Stick in Aktion:
Schon mal was von Hugh Herr gehört? Er ist ein berühmter amerikanischer Kletterer, der die Grenzen seiner Behinderung überwunden hat. Er ist fest davon überzeugt, dass Technologie behinderten Menschen helfen kann, ein normales Leben zu führen. In einem seiner TED-Vorträge sagte Herr: „ Menschen sind nicht behindert. Eine Person kann niemals gebrochen werden. Unsere gebaute Umwelt, unsere Technologien sind kaputt und behindert. Wir, die Menschen akzeptieren müssen nicht unsere Grenzen, sondern Behinderung durch technologische Innovation übertragen können “. Dies waren nicht nur Worte, sondern er lebte sein Leben für sie. Heute verwendet er prothetische Beine und behauptet, ein normales Leben zu führen. Ja, Technologie kann tatsächlich menschliche Behinderungen neutralisieren. Lassen Sie uns in diesem Sinne einige einfache Entwicklungsbretter und Sensoren verwenden, um mit Arduino einen blinden Ultraschall-Gehstock zu bauen das könnte mehr als nur einen Stock für sehbehinderte Personen leisten.
Dieser Smart Stick verfügt über einen Ultraschallsensor zur Erfassung der Entfernung zu Hindernissen, einen LDR zur Erfassung der Lichtverhältnisse und eine HF-Fernbedienung, mit der der Blinde seinen Stick aus der Ferne lokalisieren kann. Alle Rückmeldungen werden dem Blinden über einen Summer gegeben. Natürlich können Sie anstelle von Buzzer einen Vibrationsmotor verwenden und mit Ihrer Kreativität noch viel weiter vorankommen.
Erforderliche Materialien:
- Arduino Nano (Jede Version wird funktionieren)
- Ultraschallsensor HC-SR04
- LDR
- Summer und LED
- 7805
- 433 MHz HF-Sender und -Empfänger
- Widerstände
- Kondensatoren
- Druckknopf
- Perf Board
- Lötsatz
- 9V Batterien
Hier können Sie alle erforderlichen Komponenten für dieses Smart Blind Stick- Projekt kaufen.
Blind Stick Schaltplan:
Dieses Arduino Smart Blind Stick-Projekt erfordert zwei separate Schaltkreise. Einer ist der Hauptstromkreis, der auf dem Stock des Blinden montiert wird. Die andere ist eine kleine entfernte HF-Sendeschaltung, die zum Lokalisieren der Hauptschaltung verwendet wird. Das Schaltbild der Hauptplatine zum Aufbau eines Blindsticks mit einem Ultraschallsensor ist unten dargestellt:
Wie wir sehen können, wird ein Arduino Nano verwendet, um alle Sensoren zu steuern. Sie können diesen Smart Blind Stick aber auch mit Arduino Uno bauen, jedoch mit denselben Pinbelegungen und demselben Programm. Die komplette Platine wird von einer 9-V-Batterie gespeist, die mithilfe eines 7805-Spannungsreglers auf +5 V geregelt wird. Der Ultraschallsensor wird mit 5 V versorgt und der Trigger und der Echo-Pin sind wie oben gezeigt mit den Arduino Nano-Pins 3 und 2 verbunden. Der LDR ist mit einem Widerstand mit einem Wert von 10 K verbunden, um einen Potentialteiler zu bilden, und die Spannungsdifferenz wird vom Arduino ADC-Pin A1 gelesen. Der ADC-Pin A0 wird verwendet, um das Signal vom HF-Empfänger zu lesen. Die Ausgabe der Karte erfolgt über den Summer, der an Pin 12 angeschlossen ist.
Die HF-Fernschaltung ist unten dargestellt. Die Funktionsweise wird ebenfalls näher erläutert.
Ich habe einen kleinen Hack verwendet, damit diese HF-Fernbedienungsschaltung funktioniert. Normalerweise benötigen wir bei Verwendung dieses 433-MHz-HF-Moduls einen Codierer und einen Decodierer oder zwei MCUs, um zu arbeiten, wie in unserer vorherigen HF-Sender- und Empfängerschaltung. Wir haben den HT12D- und HT12E-, Decodierer- und Codierer-IC verwendet. In unserer Anwendung muss der Empfänger jedoch nur erkennen, ob der Sender einige Signale sendet. Der Daten-Pin des Senders ist also mit Masse oder Vcc der Versorgung verbunden.
Der Daten-Pin des Empfängers wird durch ein RC-Filter geleitet und dann wie unten gezeigt an das Arduino übergeben. Wenn nun die Taste gedrückt wird, gibt der Empfänger wiederholt einen konstanten ADC-Wert aus. Diese Wiederholung kann nicht beobachtet werden, wenn die Taste nicht gedrückt wird. Also schreiben wir das Arduino-Programm, um nach wiederholten Werten zu suchen und festzustellen, ob die Taste gedrückt wird. So kann ein Blinder seinen Stock verfolgen. Hier können Sie überprüfen, wie HF-Sender und -Empfänger funktionieren.
Ich habe eine Perf-Platine verwendet, um alle Verbindungen so zu löten, dass sie mit dem Stick intakt werden. Sie können sie aber auch auf einem Steckbrett herstellen. Dies sind die Boards, die ich für dieses Blind Stick-Projekt mit Arduino gemacht habe.
Arduino-Programm für Smart Blind Stick:
Sobald wir mit unserer Hardware fertig sind, können wir den Arduino an unseren Computer anschließen und mit der Programmierung beginnen. Der vollständige Code für diese Seite befindet sich unten auf dieser Seite. Sie können ihn direkt auf Ihr Arduino-Board hochladen. Wenn Sie jedoch neugierig sind, wie der Code funktioniert, lesen Sie weiter.
Wie alle Programme beginnen wir mit void setup () , um Input Output Pins zu initialisieren. In unserem Programm ist der Summer- und Trigger-Pin ein Ausgabegerät und der Echo-Pin ein Eingabegerät. Wir initialisieren auch den seriellen Monitor für das Debuggen.
void setup () {Serial.begin (9600); pinMode (Buzz, OUTPUT); digitalWrite (Buzz, LOW); pinMode (Trigger, OUTPUT); pinMode (Echo, INPUT); }}
Innerhalb der Hauptschleife lesen wir alle Sensordaten. Wir beginnen mit dem Lesen der Sensordaten des Ultraschallsensors für die Entfernung, des LDR für die Lichtintensität und des HF-Signals, um zu überprüfen, ob die Taste gedrückt wurde. Alle diese Daten werden für die zukünftige Verwendung in einer Variablen gespeichert, wie unten gezeigt.
berechne_Distanz (Trigger, Echo); Signal = analogRead (Remote); Intens = analogRead (Licht);
Wir beginnen mit der Überprüfung des Remote-Signals. Wir verwenden eine Variable namens Similar_Count , um zu überprüfen, wie oft dieselben Werte vom HF-Empfänger wiederholt werden. Diese Wiederholung tritt nur auf, wenn die Taste gedrückt wird. Wir lösen also den Fernbedienungsalarm aus, wenn die Anzahl einen Wert von 100 überschreitet.
// Ü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); }}
Sie können dies auch auf dem seriellen Monitor Ihres Computers überprüfen:
Als nächstes prüfen wir die Lichtintensität um den Blinden herum. Wenn der LDR einen Wert von weniger als 200 angibt, wird angenommen, dass er sehr dunkel ist, und wir geben ihm die Warnung durch einen Summer mit einem bestimmten Verzögerungston von 200 ms. Wenn die Intensität sehr hell ist und mehr als 800 beträgt, geben wir auch eine Warnung mit einem anderen Ton aus. Der Alarmton und die Intensität können leicht geändert werden, indem der jeweilige Wert im folgenden Code geändert wird.
// 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, wenn (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); }}
Schließlich beginnen wir , die Entfernung von jedem Hindernis zu messen. Es gibt keinen Alarm, wenn der gemessene Abstand mehr als 50 cm beträgt. Aber, wenn es weniger als 50 cm ist, wird der Alarm starten, indem Sie den Summer piepen. Wenn sich das Objekt dem Summer nähert, verringert sich auch das Pieptonintervall. Je näher das Objekt ist, desto schneller piept der Summer. Dies kann erreicht werden, indem eine Verzögerung erzeugt wird, die proportional zur gemessenen Entfernung ist. Da die delay () in Arduino keine Variablen akzeptieren kann, müssen wir eine for- Schleife verwenden, die auf der gemessenen Entfernung basiert, wie unten gezeigt.
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); }}
Erfahren Sie mehr über die Entfernungsmessung mit Ultraschallsensor und Arduino.
Das Programm kann einfach an Ihre Anwendung angepasst werden, indem Sie den Wert ändern, den wir zum Vergleichen verwenden. Sie verwenden den seriellen Monitor zum Debuggen, wenn ein Fehlalarm ausgelöst wird. Wenn Sie ein Problem haben, können Sie den Kommentarbereich unten verwenden, um Ihre Fragen zu posten
Arduino Blind Stick in Aktion:
Endlich ist es Zeit, unser Blind Stick Arduino Projekt zu testen. Stellen Sie sicher, dass die Verbindungen gemäß Schaltplan hergestellt sind und das Programm erfolgreich hochgeladen wurde. Versorgen Sie nun beide Stromkreise mit einer 9-V-Batterie, und Sie sollten erste Ergebnisse sehen. Bewegen Sie den Ultra Sonic-Sensor näher an das Objekt, und Sie werden feststellen, dass der Summer piept und diese Pieptonfrequenz zunimmt, wenn sich der Stick dem Objekt nähert. Wenn der LDR dunkel ist oder zu viel Licht vorhanden ist, piept der Summer. Wenn alles normal ist, piept der Summer nicht.
Wenn Sie die Taste auf der Fernbedienung drücken, ertönt ein langer Piepton. Die vollständige Funktionsweise dieses Smart Sticks für Blinde mit Arduino wird im Video am Ende dieser Seite gezeigt. Ich benutze auch einen kleinen Stock, um die komplette Baugruppe zu montieren. Sie können einen größeren oder einen tatsächlichen Blindstock verwenden und ihn in Aktion setzen.
Wenn Ihr Summer immer piept, bedeutet dies, dass der Alarm falsch ausgelöst wird. Sie können den seriellen Monitor öffnen, um nach den Parametern zu suchen und zu prüfen, welche kritisch sind, und diese anpassen. Wie immer können Sie Ihr Problem im Kommentarbereich veröffentlichen, um Hilfe zu erhalten. Ich hoffe, Sie haben das Projekt verstanden und es genossen, etwas zu bauen.