Proiectul la CHS este o lucrare pe intreaga durata a semestrului, cu predare in saptamana 14, si se propune crearea unui sistem inspirat din tematica de curs. Ideea centrala este de a crea un CPS (cyber physical system), adica o aplicatie, sau sistem embedded ce se foloseste de date citite din mediul inconjurator (prin senzori), proceseaza aceste date in timp real, si optional, ia o decizie de control sau ajustare in mediul inconjurator. Ca si exemple, va puteti gandi la orice de la un simplu termostat, pana la un pacemaker care regleaza ritmul cardiac.
Proiectul se doreste a fi de complexitate medie sau ridicata, in functie si de gradul de cunoastere a tehnologiilor ce vor fi folosite. Proiectul va fi insostit de o documentatie. Notarea se face la final, dar exista inca trei termene limita in timpul semestrului (M0, M1, M2) ce nu trebuie ratate. Planul de actiune arata astfel:
Saptamana 2: organziare, protectia muncii.
Saptamanile 3-4: se va discuta ideea propusa pentru proiect, se vor defini echipele, urmand sa se descrie cerintele si dificultatea aplicatiei. Vezi sugestii pentru teme de proiect in listate mai jos.
Saptamana 5 (M0 - 29.10): fiecare echipa isi contureaza ideea finala, o prezinta (2-3 min) in fata colegilor.
Saptamana 6: se discuta cerintele pentru M1 referitoare la specificatiile proiectului.
Saptamana 7: discutii punctuale cu fiecare echipa.
Saptamana 8 (M1 - 19.11): se vor prezenta specificatiile, alaturi de o digrama de tip UML: clase, use cases, diagrama de stari, sau activitati Android (in functie de ce se preteaza mai bine). In acest punct, ideea proiectului ar trebui sa fie bine conturata si finala.
Saptamana 9: elaborarea documentatiei - continut, formatare, elemente cheie.
Saptamana 12 (M2 - 17.12): se vor preda - o parte din documentatie (capitolele (1) introducere și motivatie, (2) state of the art) și minim un prototip de cod functional (oricat de simplu, dar sa ruleze si sa faca parte din planul proiectului).
Saptamana 14 (M3-Final - 14.01): se vor preda proiectul si documentatia in forma lor finala.
Lucrarile se pot realiza in echipe de 2 studenti (ideal) sau unul singur (situatiile exceptionale cu 3 membri trebuie discutate). Exista doua sugestii de implementare a proiectelor, in functie de preferintele studentilor:
abordarea "hardware": implementarea unui sistem embedded ce prelucreaza date de la unul sau mai multi senzori (e.g. folosind Arduino, Intel Galileo, RasPi, microcontrolere)
abordarea "software": dezvoltarea unei aplicatii mobile (in Android, iOS, sau Windows Phone - pentru aventurieri) de "orice" fel, cu mentiunea ca ea trebuie centrata pe folosirea a cel putin doi senzori disponibili pe telefon (adica inca un senzor pe langa ecranul tactil care este utilizat implicit). Exemple de senzori disponibili pe telefon: audio, foto/video, GPS, Wifi, Bluetooth, acceleratie, gravitatie, inclinare, temperatura interna, camp magnetic, lumina, presiune, orientare, amprenta, proximitate etc.
Idei de aplicatii mobile
Aplicatie pentru vreme, ce foloseste mai multe surse de informare despre vreme (weatherbug, foreca, yahoo weather, wunderground etc.) si creaza o medie mai accurata. Se va folosi neaparat detectarea automata a locatiei telefonului. Optional se pot adauga alerte de ploaie, intemperii pentru ziua respectiva.
Convertor valutar, informatii despre bursa (Forex) in functie de locatia telefonului. De exemplu, pe teritoriul Romaniei se va sugera automat conversia din lei in alta valuta straina.
Trip planner, sau aplicatie interactiva care semnaleaza locuri de interes aflate la distante mici, medii sau mari in directia in care este orientat telefonul. De exemplu, aplicatia poate sugera restaurante in apropiere, orase invecinate de interes turistic, sau orase mari aflate la sute de km, toate prin orientarea telefonului catre directia cardinala exacta.
Joc de tip Trivia (Vrei sa fii milionar?) in care cele patru raspunsuri pot fi date prin inclinarea telefonului in una din patru (sau doar doua) directii. App educational pentru elevi pentru pregatirea la BAC.
Joc de tip labirint, sau snake in care obiectul din joc este controlat prin giroscop (inclinarea telefonului) - ideal de realizat in Unity.
Joc cu zaruri sau carti, in care amestecarea se face prin scuturarea telefonului. Pentru complexitate, se pot sincroniza doua sau mai multe telefoane prin Bluetooth intr-un joc multiplayer.
Aplicatie de control al cursorului sau tastaturii unui PC prin conexiune bluetooth de pe telefon. De asemenea, se poate folosi giroscopul pentru a misca cursorul.
Aplicatie de tip seismograf care inregistreaza vibratiile asupra telefonului. Implementarea poate servi la: detectarea miscarii in pat in timpul somnului, calitatea soselelor, detectarea seismelor.
Aplicatie de tip vibrograf care inregistreaza sunetul din mediul inconjurator. Se poate imagina o aplicatie care ajuta la monitorizarea poluarii fonice, preluarea unor comenzi vocale, diagnosticarea unei aparaturi, diagnosticarea automata a unui PC folosind sunetele scoase de placa de baza etc.
Trainer personalizat de miscare, folosind accelerometrul pentru a detecta pasii obtinuti in fiecare zi. Aici, optiunile de dezvoltare sunt nelimitate.
Traducator automat dintr-o limba in alta folosind microfonul si prelucrare audio.
Traducator automat din limbajul semnelor in limba vorbita folosind prelurare video.
Cititor de limbaj Braille sau cod Morse folosind camera video.
Mecanism de deschidere a usilor fara cheie sau cartela, folosind propriul telefon autorizat intr-un sistem de administrare al unei cladiri. Se poate folosi comunicarea NFC sau un token generator pentru a crea parole unice temporare pentru deschis usi.
Scanner de coduri QR care transfera automat linkul extras pe mailul personal sau pe messenger pentru a putea fi accesibil de pe un PC. Alternativ, se poate face OCR (recunoastere de text) dintr-o fotografie, trimitandu-se textul selectat direct pe PC.
Manager de informatii (notite, poze, url-uri, alte fisiere binare) care cripteaza datele folosind o cheie conceputa din informatia de la senzorul de amprenta. Orice obiect nou poate fi adaugat (ex. send to "vault") folosind cheia stocata, si orice obiect poate fi vizualizat sau decriptat permanent fiind nevoie de amprenta utilizatorului.
Generator de desene/obiecte 3D realizate prin miscarea telefonului in spatiu. Se pot combina datele de la accelerometru si giroscop pentru a urmari miscarea relativa a telefonului in spatiu. Pentru fiecare miscare se poate folosi un brush type, brush size, alte efecte. Se pot gandi joculete, sau aplicatii educationale pe aceasta idee.
Generator de parole bazat pe gesturi (miscari) simple in spatiu ale telefonului. Ex. in loc de pattern deblocat cu degetul, pattern de miscare 3D.
Health app folosind o serie de senzori (bratara), sau un smart watch app pentru masurat pulsul, pasii, SpO2, sau administrat medicamente.
Utility apps: plata intretinere, chirie, split cheltuilei intre prieteni, plimbat caini, rezervari la medic/manichiura*.