Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Blinde-staf navigator – Arduino-gebaseerd hulpmiddel voor visueel gehandicapten

Onderdelen en benodigdheden

OnderdeelAantal
1Sheeld1
Arduino UNO1
Android-apparaat1
Relais (generiek)1
Wisselschakelaar1
Ultrasonische sensor HC-SR041
DC-motor (generiek, voor trilling)1
Draadjes (jumper wires)1 set
9V batterij1

Apps en online diensten

  • Arduino IDE
  • 1Sheeld telefoonapps

Over dit project

Het idee ontstond toen ik een blinde persoon zag worstelen om obstakels zoals gatjes in de weg en trappen te ontwijken met een traditionele blindestaf. Dit motiveerde me om een prototype te bouwen, ook al was ik geen expert in elektronica. Met behulp van diverse internetbronnen heb ik het vorig jaar afgerond als mijn afstudeerproject. Ik heb het prototype uitgebreid met GPS-locatie. Dankzij 1Sheeld kon ik dit prototype binnen 6 maanden voltooien.

Stap 1: Voeding

De Blinde-staf Navigator heeft externe voeding nodig. Ik gebruikte een 9V-batterij met een USB-voedingsadapter op de Arduino Uno. Een nadeel is de beperkte batterijduur; een verbetering zou een zonnepaneel kunnen zijn.

Stap 2: Bluetooth en 1Sheeld app

Na het aanzetten moet de begeleider de Bluetooth-verbinding tussen de smartphone (Android) en de Arduino standhouden. Open de 1Sheeld-app en schakel GPS- en SMS-functies in. Ik weet dat blinden de smartphone niet zelf kunnen bedienen, maar met een aangepaste Android OS (bijv. met braille-toetsen) zou dit veel makkelijker zijn. Ik hoop op toekomstige verbeteringen.

Stap 3: Obstakeldetectie met ultrasoon

Volgens het blokdiagram communiceren de apparaten na inschakeling. Een blinde persoon zweept normaal de staf heen en weer om obstakels te voelen. De Navigator helpt door trillingsmeldingen te geven voor obstakels op midden- en laag niveau. Twee ultrasone sensoren (HC-SR04) zijn gemonteerd: één bovenaan en één onderaan de staf. Ik gebruikte PVC-buizen zodat de trillingsmotoren erin passen. De trillingsmodus kan in de code worden aangepast.

Stap 4: GPS-locatie en noodknop

De smartphone fungeert als GPS-provider. Een wisselschakelaar fungeert als noodknop: door erop te drukken (één of meerdere keren) stuurt de smartphone een SMS met "Ik heb hulp nodig! Ik ben op latitude: ... en longitude: ..." plus een Google Maps-link. Het ontvangernummer kan ingesteld worden (autoriteiten of begeleider). De lengte van de staf is verstelbaar aan de lengte van de gebruiker; de detectieafstand is in de code aanpasbaar.

Stap 5: Toekomstvisie

Ik hoop dat dit prototype wereldwijd gebruikt wordt of gecommercialiseerd wordt om blinden te helpen. Excuses voor eventuele taalfouten (mijn Engels is niet perfect). Alle projectdocumentatie (FYP 1 & 2, posters, video's) is via de links in de originele handleiding te vinden.

Code

#define CUSTOM_SETTINGS
#define INCLUDE_GPS_SHIELD
#define INCLUDE_SMS_SHIELD
#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

boolean isInRange = false;
float lat, lon;
String PhoneNumber = "0134087286";
String Message, Message1, Message2;
char latitude[10], 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);
  OneSheeld.begin();
}

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

  if (distanceL > 40) digitalWrite(Vib1, HIGH);
  else digitalWrite(Vib1, LOW);

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

  // GPS en SMS noodknop
  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);
}

Schema's

Fritzing-bestand: OneSheeldTONGKAT.fzz

Productieproces

  1. TinyML Taaldetector met Edge Impulse op Arduino Nano 33 BLE Sense
  2. Bouw een real-time gyroscoop-spel met Arduino Nano & MPU-6050 sensor
  3. Arduino Digitale Dobbelsteen: Bouw Je Eigen LCD-willekeurige Getalgenerator
  4. Bouw Je Eigen 37-LED Roulette-spel met Arduino Nano
  5. ATtiny85 Mini Arcade: Snake – Bouw een Handheld OLED Game Console
  6. Draagbare Afstandsdetector – Arduino Nano DIY Kit met HC-SR04, 18650 Accu en 3D-geprinte Behuizing
  7. Een audio-reactieve bureaulamp bouwen met Arduino Nano
  8. Autonome Gezichtsvolgende Robot Auto met Arduino Nano & OpenCV
  9. Koper Elektrolyseren Project: Bouw een Slim Systeem met Arduino UNO
  10. NeoPixel Matrix Pong op Arduino Nano: Bouw je eigen neon Pong-spel
  11. Indrukwekkende Lichtsequenties Maken met Arduino en Shift Register