U prvoj fazi projekta, cilj nam je napraviti sustav koji će omogućiti slijepim i slabovidnim osoboma brže kretanje po ravnom terenu. Sustav bi, na temelju senzora u naočalama i na koljenima, davao zvučni signal čija bi frekvencija beepova bila proporcionalna udaljenosti prepreke od korisnika, a “fokus” udaljenosti bi bio određen brzinom koraka.
U drugoj fazi projekta, postojeći sustav bi se nadogradio na način da omogući kretanje i po neravnom terenu s niskim zaprekama (kao što su npr. rupe, lokve, stepenice, različiti predmeti koji se nalaze na tlu itd.).
Druga faza projekta bi se izvršila u idealnoj situaciji, tj. ostavlja se na daljnju nadogradnju budućim generacijama i drugim zainteresiranim osobama.
Datum | Očekivani rezultat |
15.5.2017 19.5.2017 20.5.2017 22.5.2017 28.5.2017 30.5.2017 | Spajanje komponenata (početna verizija sa siganlizacijskim diodama) Pisanje programske podrške Spajanje zvučnika i prilagodba koda Testiranje uz prilagodbu parametara Lemljenje na perforiranu pločicu i spajanje slušalica Testiranje |
U sklopu projekta radio sam implementaciju programa za arduino pločicu - detekcija koraka i proračun brzine, osim signalizacije.
Da bi se detektirao korak, trebalo je očitati signal piezo senzora sa analognog ulaza mkrokontrolera. Pošto u signalu sa senzora uvijek postoji šum, stavio sam parametar kojim se može prilagoditi razina detekcije signala za korak. Također, trebalo je staviti i debounce kako se isti korak nebi detektirao više puta. Za proračun brzine hodanja implementirao sam strukturu koja će pratiti koračanje korisnika i na temelju toga izračunavati brzinu kretanja. Brzina kretanja se izračunava kroz prosjek od posljednjih pet koraka. Kako bi se mogla izračunati brzina iz frekvencije koračanja, koristio sam potenciometar kojim korisnik može namjestiti duljinu svojeg koraka. Kod sam implementirao tako da se ne radi signalizacija ako korisnik stoji na mjestu. Za odluku oko toga da li detektirani objekt predstavlja prepreku ili ne smislio sam jednadžbu koja uzima u obzir brzinu refleksa i brzinu kretanja korisnika (safetyD = speed * (REFLEX_T + 2 * steps.lastStepT) / 1000). Za upravljanje sonarom koristio sam biblioteku “NewPing”.
Kod sam organizirao kroz nekoliko datoteka radi bolje preglednosti i jasnoće. Svi parametri sustava (kao što su npr. brzina refleksa) izdvojio sam u posebnu datoteku što olakšava konfiguraciju sustava.
Također sam dobavio svu opremu koja je bila potrebna za izvedbu projekta.