Smart Cane for the Blind

Diaconescu Oana

Grupa 334CB

Introducere

Proiectul consta intr-un baston pentru nevazatori, avand scopul de ajuta persoanele cu deficiente de vedere sa se deplaseze mai usor. Dispozitivul este conectat prin Bluetooth la o aplicatie de mobil si ofera mai multe functionalitati. Prin intermediul unui modul GPS si al unui card microSD, permite salvarea coordonatelor pentru un traseu predefinit si ghidarea persoanei nevazatoare catre o destinatie prin comenzi vocale simple transmise prin aplicatie. In plus, permite evitarea obstacolelor de pe traseu, avertizand persoana nevazatoare de apropierea unui obiect prin intermediul unei forme de feedback - sonor (un buzzer) sau tactil (un motor cu vibratie). De asemenea, bastonul are optiunea de identificare a culorii unui obiect la apasarea unui buton, culoarea rezultata fiind transmisa vocal prin aplicatie.

In implementarea proiectului am pornit de la ideea de a oferi o alternativa mai putin costisitoare la tehnologiile deja existente pentru persoane nevazatoare. In plus, dispozitivul functioneaza fara Internet, deci este accesibil si simplu de utilizat.

Descriere generală

Detectia obstacolelor se realizeaza pe baza senzorului de distanta. Distanta se citeste in mod continuu de catre senzor, iar in momentul in care aceasta depaseste o limita prestabilita se declanseaza buzzer-ul sau motorul cu vibratie. La apasarea unui buton se poate activa sau dezactiva modul silentios, selectand una dintre cele doua forme de feedback.

Detectia culorii se efectueaza prin intermediul senzorului de culoare, capabil sa intoarca valoarea RGB asociata culorii unui obiect. Pentru a determina culoarea obiectului, utilizatorul il apropie de fotodiodele plasate central si apasa un buton care declanseaza functia de citire a datelor de la senzor.

Functia de navigatie este limitata la un traseu prestabilit, ale carui coordonate se incarca pe cardul microSD. Modulul GPS furnizeaza locatia utilizatorului in timp real, iar aceasta este comparata cu traseul salvat in memorie pentru a transmite indicatii despre directia de mers.

Hardware Design

  • Arduino UNO ATMEGA328P
  • Senzor Ultrasonic HC-SR04
  • Modul Buzzer Activ
  • Motor cu Vibratii tip Buton
  • Modul GPS NEO-6M cu Antena
  • Modul Bluetooth HC-05
  • MicroSD 32GB
  • Modul Card Slot MicroSD
  • Tranzistor NPN 2n2222
  • Rezistente 10kohm, 1kohm, 330ohm
  • Baterie externa
  • 2 Butoane
  • Breadboard

Software Design

Detectia Obstacolelor

Senzorul de distanta emite un ultrasunet de 40kHz care travereseaza mediul pana la intalnirea unui obstacol, moment in care se reflecta inapoi catre acesta. Distanta fata de obiect se calculeaza in functie de viteza sunetului si de timpul de propagare al undei. Functia Arduino corespunzatoare activeaza pinul “Trigger” care transmite unda ultrasonica si citeste output-ul pe pin-ul “Echo” folosind functia pulseIn(). Aceasta functie intoarce timpul dintre momentul in care unda ultrasonica este transmisa (si are loc o tranzitie a pinului “Echo” de la LOW la HIGH) si momentul in care unda este receptionata inapoi (si pinul “Echo” devine LOW). Distanta va fi calculata ca: $$ d = \frac {t_{propagare} * v_{sunet}}{2} $$

Detectia Culorilor

Senzorul de culoare detecteaza culorile pe baza lungimilor de unda ale acestora. Acesta este bazat pe fotodiode carora li se aplica filtre rosii, verzi sau albastre astfel incat sa detecteze intensitatea celor 3 culori. Functia Arduino activeaza pe rand cele 3 filtre si mapeaza frecventele rezultate la valori de tip RGB. Culoarea dominanta este identificata si transmisa utilizatorului.

Traseul utilizat in testarea functiei de navigatie a fost stocat pe cardul microSD sub forma unui fisier .txt. Fiecare linie a fisierului contine coordonatele unui punct de interes (intersectie a doua strazi, cotitura, etc.), impreuna cu un cod asociat directiei in care utilizatorul trebuie sa mearga in continuare. Pentru a folosi modulul microSD am inclus biblioteca Arduino SD.h.

Pentru citirea valorilor de la modulul GPS am folosit biblioteca NeoSWSerial care permite comunicarea seriala pe orice pini digitali pe langa pinii seriali nativi 0 si 1. Datele receptionate le-am parsat folosind biblioteca TinyGPS, obtinand coordonatele sub forma de latitudine si longitudine.

Functia de navigatie compara coordonatele de locatie ale utilizatorului cu coordonatele primului punct de intersectie. Cand se detecteaza ca utilizatorul intra in aria primei intersectii, ii se semnaleaza directia de mers si se incrementeaza pozitia sa pe traseu. Acelasi proces continua pana cand utilizatorul ajunge la destinatie.

App

Aplicatia de mobil a fost realizata pentru platforma Android folosind MIT App Inventor. Interfata este simpla si afiseaza rezultatele celor 3 functionalitati pentru a ilustra functionarea corecta a acestora. In plus, foloseste modulul “Text-to-Speech” pentru a transmite comenzile primite de la Arduino in forma vocala.

Comunicarea cu placuta Arduino se realizeaza prin intermediul modulului Bluetooth, care permite selectarea dispozitivului pentru conectare si faciliteaza transmiterea de date.

Pentru comunicarea Bluetooth am folosit un principiu simplu, prin care se trimite un byte pe Serial corespunzator fiecarei comenzi:

  • 0, 1, 2, si 3 semnifica schimbarea directiei de mers la FRONT, LEFT, RIGHT sau TURN AROUND
  • 4 sau 5 semnifica activarea/dezactivarea modului silentios
  • 6, 7, 8 si 9 semnifica identificarea uneia din culorile RED, BLUE, GREEN sau CLEAR (culoare necunoscuta)

Aplicatia functioneaza in felul urmator:

  • La primirea unui cod de culoare identifica culoarea potrivita, coloreaza casuta din interfata si transmite mesajul vocal: ”Red”, ”Green” sau ”Blue
  • La primirea unui cod care semnifica activarea sau dezactivarea modului silentios, schimba iconita si transmite mesajul vocal ”Silent mode On” sau ”Silent Mode Off
  • La primirea unui cod care semnifica schimbarea directiei, modifica imaginea de pe ecran si transmite una din comenzile: ”Walk straight ahead”, ”Prepare to turn left”, ”Prepare to turn right” sau ”Turn around”.

Rezultate Obţinute

Proiectul indeplineste cu succes toate cele 3 functionalitati. Am aranjat componentele astfel incat dispozitivul sa fie usor de manevrat si de utilizat.

Ocazional, apar probleme din cauza lipsei de precizie a senzorilor. Senzorul GPS are o eroare de pana la 10 m, motiv pentru care nu poate determina cu precizie locatia utilizatorului, ci numai aria in care acesta se afla. Senzorul de culoare trebuie ajustat empiric in functie de masuratori proprii si astfel rezultatele pot sa difere in functie de lumina ambientala.

Demo

Concluzii

Proiectul a fost interesant de realizat, dar a fost o provocare, in special pentru ca senzorii nu erau suficient de performanti si a trebuit sa adaptez ideea proiectului in functie de asta. Imi doream initial sa conectez aplicatia la un API care sa simplifice functia de navigatie, dar eroarea data de modulul GPS era prea mare pentru a permite realizarea unor rute dinamice de mers. La fel si in cazul senzorului de culoare, pe care am incercat sa il ajustez cat mai precis pentru a identifica un spectru mai larg de culori. Fiind reglat empiric insa depindea foarte mult de lumina ambientala si atunci in lumina mai puternica avea momente cand detecta verdele ca fiind rosu sau invers. :-/

Per total insa, mi-a placut sa lucrez la proiect, desi nu sunt foarte priceputa pe partea de hardware si nu m-am descurcat asa bine cu letcon-ul sau pistolul de lipit. M-a impresionat in special faptul ca am reusit sa transform o idee care parea foarte abstracta in ceva care chiar functioneaza si are utilitate practica. Am descoperit intre timp ca exista ceva asemanator pe piata, dar sunt multumita ca am reusit sa reproduc chiar si o functionalitate minimala a dispozitivului :-D. Cu senzori mai buni si o dezvoltare a functiilor bastonului, cred ca ar putea deveni un ajutor real pentru persoanele nevazatoare.

Download

Bibliografie/Resurse

pm/prj2021/dbrigalda/blind_assistant.txt · Last modified: 2021/06/04 02:31 by oana.diaconescu0512
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0