Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Blind Stick Navigator – Arduino-basiertes Assistenzsystem für Sehbehinderte

Komponenten und Zubehör

1Sheeld ×1
Arduino UNO ×1
Android-Gerät ×1
Relais (generisch) ×1
Kippschalter ×1
Ultraschallsensor HC-SR04 ×1
DC-Motor (generisch, für Vibration) ×1
Jumper-Kabel (generisch) ×1
9V-Batterie (generisch) ×1

Apps und Online-Dienste

Über dieses Projekt

Blind Stick Navigator – Arduino-basiertes Assistenzsystem für Sehbehinderte

Die Geschichte begann, als ich einen blinden Menschen sah, der sich mühsam durch Hindernisse wie Straßenlöcher, Treppen usw. mit seinem traditionellen Blindenstock kämpfte. Das hat mich wirklich dazu gebracht, diesen Prototyp zu bauen, obwohl ich nicht genug Expertise im Umgang mit elektronischen Geräten hatte. Mithilfe verschiedener Internetquellen habe ich es letztes Jahr während meines Abschlussprojekts fertiggestellt. Außerdem habe ich den Prototyp durch Hinzufügen der GPS-Ortung verbessert. Dank 1Sheeld konnte ich diesen Prototyp innerhalb von 6 Monaten fertigstellen.

Blind Stick Navigator – Arduino-basiertes Assistenzsystem für Sehbehinderte

Schritt 1: Stromversorgung

Um den Blind Stick Navigator einzuschalten, muss er mit externer Stromversorgung betrieben werden. Ich verwende eine 9V-Batterie als Demonstration der Fähigkeiten. Aus meiner Beobachtung hatte mein Prototyp den Nachteil, keine langfristige Stromversorgung zu bieten. Daher bedarf es einer Verbesserung wie Solarmodul/-strom.

Blind Stick Navigator – Arduino-basiertes Assistenzsystem für Sehbehinderte

Schritt 2: Bluetooth-Verbindung & 1Sheeld App

Nach dem Einschalten über die Batterie, die an den USB-Stromadapter am Mikrocontroller Arduino Uno angeschlossen ist, muss der Betreuer immer die Bluetooth-Verbindung (Android-Smartphone) zum Mikrocontroller aufrechterhalten. Dann muss man die 1Sheeld-App öffnen, die bereits auf dem Smartphone installiert ist, und die GPS- und SMS-Funktionen aktivieren.

**Ja, ich weiß, dass blinde Menschen das Smartphone nicht sehen und bedienen können, aber wenn ich oder du die Modifikation am Android-OS-Smartphone hinbekommen, wird es viel einfacher. Ich habe bereits versucht, ein besseres Smartphone mit Braille-Tasten zu finden, aber ich scheiterte. Daher hoffe ich, dass es in Zukunft ein Upgrade für meinen Prototyp geben wird.

Blind Stick Navigator – Arduino-basiertes Assistenzsystem für Sehbehinderte

Schritt 3: Hinderniserkennung & Vibration

Basierend auf dem obigen Blockdiagramm siehst du, wie die Verbindung zwischen den Geräten funktioniert. Nachdem beide eingeschaltet sind, kann der blinde Mensch den Blind Stick Navigator nutzen. Basierend auf der Beobachtung des traditionellen weißen Stocks schwingt der blinde Mensch den Stock immer hin und her, um eine Bestätigung über die Umgebung zu erhalten. Mit dem Blind Stick Navigator erhält er Vibrationsbenachrichtigungen über Hindernisse in mittlerer und unterer Höhe. Die Hinderniserkennung erfolgt über den Ultraschallsensor HC-SR04. Er wurde am oberen und unteren Ende des Stocks befestigt. Ich verwende PVC-Rohr, weil ich den Vibrations-DC-Motor darin unterbringen kann. Der Vibrationsmodus kann im Code über die Arduino IDE Software angepasst werden.

Schritt 4: GPS-Ortung & Notfall-SMS

Außerdem kann der Blind Stick Navigator Längen- und Breitengrad des Standorts des blinden Menschen anzeigen. Das Smartphone fungiert als Anbieter und liefert die GPS-Position für diesen Prozess. Der Kippschalter wurde hinzugefügt, um es dem blinden Menschen zu erleichtern, den Notfallknopf zu drücken, um den Empfänger zu informieren, dass er/sie sich verirrt hat oder in Gefahr ist. Durch einmaliges oder mehrfaches Drücken sendet das Smartphone eine Nachricht, die mitteilt, dass Hilfe benötigt wird, und bittet, ihn basierend auf GPS und Google Maps Link zu suchen. Die Nummer des Empfängers kann eingestellt werden, ob die Nachricht an die Behörden oder nur an den Betreuer gesendet werden soll. Die Länge des Stocks ist an die Körpergröße des Benutzers anpassbar. Für diesen Prototyp verwende ich eine bestimmte Länge, und die Erkennungsreichweite kann im Code angepasst werden.

Schritt 5: Ausblick

Last but not least hoffe ich, dass mein Prototyp weltweit eingesetzt oder kommerzialisiert wird und somit blinden Menschen auf ihrer Reise/ihrem Leben hilft. Außerdem entschuldige ich mich für meine Grammatik, da mein Englisch nicht ganz gut ist. Ich weiß nicht, wie ich das in diesem Post besser beschreiben soll. Alle Informationen habe ich im Anhang zusammengestellt. Du kannst mehr über dieses Projekt über die unten angegebenen Links erfahren.

Code

OneSheeldBlindStickNavigator (C/C++)

#define CUSTOM_SETTINGS
#define INCLUDE_GPS_SHIELD
#define INCLUDE_SMS_SHIELD
/* Include 1Sheeld library.*/
#include <OneSheeld.h>
#include <string.h>

#define trigPinL 4
#define echoPinL 5
#define trigPinH 6
#define echoPinH 7
#define Vib1 12
#define Vib2 13
#define SW 8

/* Define a boolean flag. */
boolean isInRange = false;
float lat;
float lon;
String PhoneNumber = "0134087286";
String Message;
String Message1;
String Message2;
char latitude[10];
char longitude[10];

void setup() {
  pinMode(trigPinL, OUTPUT);
  pinMode(echoPinL, INPUT);
  pinMode(trigPinH, OUTPUT);
  pinMode(echoPinH, INPUT);
  pinMode(Vib1, OUTPUT);
  pinMode(Vib2, OUTPUT);
  pinMode(SW, INPUT);
  /* Start communication.*/
  OneSheeld.begin();
  // Serial.begin(9600);
}

void loop() {
  long durationL, distanceL, durationH, distanceH, MixDist;
  digitalWrite(trigPinL, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPinL, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPinL, LOW);
  durationL = pulseIn(echoPinL, HIGH);
  distanceL = (durationL/2) / 29.1;

  digitalWrite(trigPinH, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPinH, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPinH, LOW);
  durationH = pulseIn(echoPinH, HIGH);
  distanceH = (durationH/2) / 29.1;

  if (distanceL > 40) { digitalWrite(Vib1, HIGH); }
  if (distanceL < 40) { digitalWrite(Vib1, LOW); }
  if (distanceH < 100) {
    digitalWrite(Vib1, HIGH);
    delay(200);
    digitalWrite(Vib1, LOW);
    delay(200);
  }

  /* Always check if the smartphone's GPS and a given longitude and latitude are in a range of 100 meters. */
  // if(GPS.isInRange(30.0831008,31.3242943,100)) { ... }

  lat = GPS.getLatitude();
  lon = GPS.getLongitude();
  Message1 = String(lat, 8);
  Message2 = String(lon, 8);
  if (digitalRead(SW) == 0) {
    Message = "I need Help! I'm at latitude: " + Message1 + " and longitude: " + Message2;
    Message = "Google Maps - https://www.google.co.in/maps/place/" + Message1 + "," + Message2;
    SMS.send(PhoneNumber, Message);
    delay(3000);
  }
  delay(1000);
}

Schaltplan

OneSheeldTONGKAT.fzz

Herstellungsprozess

  1. TinyML Spracherkennung mit Edge Impulse auf Arduino Nano 33 BLE Sense
  2. Echtzeit-Gyroskop-Spiel mit Arduino Nano & MPU-6050
  3. Arduino Digitaler Würfel: LCD-Würfel mit Zufallszahlen (1–6)
  4. 37-LED-Roulette-Spiel mit Arduino Nano bauen – Europäisches Layout
  5. ATtiny85 Mini-Arcade: Snake – Handheld OLED-Spielekonsole selbst bauen
  6. Tragbarer Entfernungsmesser – Arduino Nano DIY-Kit mit HC-SR04, 18650-Akku und 3D-gedrucktem Gehäuse
  7. Audio-reaktive Schreibtischlampe mit Arduino Nano bauen
  8. Autonomes Gesichtsverfolgungs-Robotercar mit Arduino Nano & OpenCV
  9. Kupfer-Galvanik-Projekt: Intelligentes System mit Arduino UNO bauen
  10. NeoPixel-Matrix Pong auf Arduino Nano: Neon-Pong selbst bauen