This shows you the differences between two versions of the page.
pm:prj2021:dbrigalda:blind_assistant [2021/06/04 01:53] oana.diaconescu0512 |
pm:prj2021:dbrigalda:blind_assistant [2021/06/04 02:31] (current) oana.diaconescu0512 |
||
---|---|---|---|
Line 9: | Line 9: | ||
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. | 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ă ===== | ===== Descriere generală ===== | ||
- | {{ :pm:prj2021:dbrigalda:schema_bloc_smart_cane.png?nolink&700 |}} | + | |
+ | {{ :pm:prj2021:dbrigalda:schema_bloc_smart_cane.jpg.jpg?direct&700 |}} | ||
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 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 fotodioda si apasa un buton care declanseaza functia de citire a datelor de la senzor. | + | 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. | 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. | ||
Line 33: | Line 34: | ||
* 2 Butoane | * 2 Butoane | ||
* Breadboard | * Breadboard | ||
- | {{ :pm:prj2021:dbrigalda:pm_schema_smart_cane.png?nolink&700 |}} | + | {{ :pm:prj2021:dbrigalda:pm_schema_smart_cane.png?direct&700 |}} |
===== Software Design ===== | ===== Software Design ===== | ||
Line 52: | Line 53: | ||
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 [[https://www.arduino.cc/en/reference/SD|SD.h]]. | 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 [[https://www.arduino.cc/en/reference/SD|SD.h]]. | ||
- | {{ :pm:prj2021:dbrigalda:smart_cane_4.png?nolink&200 |}} | + | {{ :pm:prj2021:dbrigalda:smart_cane_coords_jpg.jpg?direct&200 |}} |
Pentru citirea valorilor de la modulul GPS am folosit biblioteca [[https://github.com/SlashDevin/NeoSWSerial|NeoSWSerial]] care permite comunicarea seriala pe orice pini digitali pe langa pinii seriali nativi 0 si 1. Datele receptionate le-am parsat folosind biblioteca [[https://www.arduino.cc/reference/en/libraries/tinygps/|TinyGPS]], obtinand coordonatele sub forma de latitudine si longitudine. | Pentru citirea valorilor de la modulul GPS am folosit biblioteca [[https://github.com/SlashDevin/NeoSWSerial|NeoSWSerial]] care permite comunicarea seriala pe orice pini digitali pe langa pinii seriali nativi 0 si 1. Datele receptionate le-am parsat folosind biblioteca [[https://www.arduino.cc/reference/en/libraries/tinygps/|TinyGPS]], obtinand coordonatele sub forma de latitudine si longitudine. | ||
Line 64: | Line 65: | ||
Comunicarea cu placuta Arduino se realizeaza prin intermediul modulului Bluetooth, care permite selectarea dispozitivului pentru conectare si faciliteaza transmiterea de date. | Comunicarea cu placuta Arduino se realizeaza prin intermediul modulului Bluetooth, care permite selectarea dispozitivului pentru conectare si faciliteaza transmiterea de date. | ||
- | + | {{ :pm:prj2021:dbrigalda:smart_cane6.jpeg?direct&400 |}} | |
- | {{ :pm:prj2021:dbrigalda:smart_cane6.jpeg?nolink&400 |}} | + | |
Pentru comunicarea Bluetooth am folosit un principiu simplu, prin care se trimite un byte pe Serial corespunzator fiecarei comenzi: | 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 | + | * **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 | + | * **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) | + | * **6**, **7**, **8** si **9** semnifica identificarea uneia din culorile RED, BLUE, GREEN sau CLEAR (culoare necunoscuta) |
- | + | ||
- | + | ||
- | {{ :pm:prj2021:dbrigalda:smart_cane_blocks1.png?nolink&700 |}} | + | |
+ | {{ :pm:prj2021:dbrigalda:smart_cane_blocks_jpg.jpg?direct&700 |}} | ||
Aplicatia functioneaza in felul urmator: | 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 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 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". | + | * 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//". |
Line 88: | Line 85: | ||
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. | 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. | ||
- | {{ :pm:prj2021:dbrigalda:smart_cane1.jpg?nolink&300 |}} | + | {{ :pm:prj2021:dbrigalda:smart_cane1.jpg?direct&300 |}} |
- | {{ :pm:prj2021:dbrigalda:smart_cane_2.jpg?nolink&500 |}} | + | {{ :pm:prj2021:dbrigalda:smart_cane_2.jpg?direct&500 |}} |
- | {{ :pm:prj2021:dbrigalda:smart_cane3.jpg?nolink&500 |}} | + | {{ :pm:prj2021:dbrigalda:smart_cane3.jpg?direct&500 |}} |
===== Demo ===== | ===== Demo ===== | ||
- | [[https://www.youtube.com/watch?v=dlPbu20nvBQ |{{ :pm:prj2021:dbrigalda:smart_cane_yt.png?nolink&600 |}}]] | + | [[https://www.youtube.com/watch?v=dlPbu20nvBQ |{{ :pm:prj2021:dbrigalda:smart_cane_yt_jpg.jpg?direct&700 |}}]] |
===== Concluzii ===== | ===== 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. :-/ | 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. :-/ | ||
Line 113: | Line 110: | ||
* https://create.arduino.cc/projecthub/muhammedazhar/third-eye-for-the-blind-8c246d | * https://create.arduino.cc/projecthub/muhammedazhar/third-eye-for-the-blind-8c246d | ||
- | <note tip>Documentația în format <html><a class="media mediafile mf_pdf" href="?do=export_pdf">PDF</a></html></note> | + | <note tip>Documentația în format PDF <html><a class="media mediafile mf_pdf" href="?do=export_pdf">DiaconescuOana_SmartCane</a></html></note> |