Proiectul consta in implementarea unei rulete electronice care masoara distanta folosind un senzor ultrasonic si care afiseaza pe un display fie ultima distanta masurata, fie cicleaza intre masuratorile precedente, salvate pe cardul sd. Dispozitivul utilizeaza si un senzor de umiditate si temperatura pentru masuratori mai precise in conditii de mediu diferite. Dispozitivul consider ca este util pentru oamenii cu probleme de mobilitate si care au nevoie sa masoare distante in locuri innacesibile.
5
Schema Bloc
Schema circuitului. In-afara de cititorul de card SD pe care l-am conectat pe pinii dedicati pentru SPI, toate celelalte componente sunt conectate la pini digitali pentru ca asa e cel mai usor de lucrat si pentru ca senzorii trimit semnale digitale. Posibil sa schimb displayul si sa folosesc unul care va avea integrat un adaptator care foloseste I2C deoarece ocupa mai putini pini decat implementarea curenta. Difuzor nu am gasit inca din care as fi vrut iar butoanele o sa urmeze si ele sa fie montate(Sper ca pe cei 2 pini cu interrupt dedicat, parca PD3 si PD4, I may be wrong)
Circuitul IRL
Momentan doar senzorul ultrasonic stiu cu certitudine ca merge, displayul e functional si are backlight dar nu am reusit sa printez ceva pe el inca. Pozele absolut odioase sunt doar temporare si ca sa arat ca masor corect
Aici puneţi tot ce ţine de hardware design:
Ca functii, in-afara de loop() si setup() am avut doar o functie pentru scrierea pe cardul SD. Puteam sa mai separ codul din loop in mai multe functii ajutatoare dar pentru scala proiectului nu mi s-a parut necesar. Initializez fiecare senzor, calculez viteza de transmisie a sunetului pe baza informatiilor de la senzor si apoi le printez pe display. Am pus un delay de 0.2 secunde ca sa nu aiba o criza de epilepsie LCD-ul cand incerca sa printeze la fiecare 10 milisecunde. Daca aveam intrerupere pe un buton, salvam datele masurate la acel moment intr-un CSV. Daca aveam intrerupere scurta pe celalalt buton incepeam sa parsez datele deja salvate si sa le printez pe display. La o intrerupere lunga(peste 0.5 secunde) treceam inapoi pe modul de masurare. Ca protocoale am utilizat SPI, I2C si GPIO, cu inspiratii din laboaratoarele aferente.
Sincer, concluzia cea mai importanta pentru mine e ca e chiar fun sa lucrezi pe Arduino si foarte beginner friendly. Da, am avut dificultati cu componentele si a trebuit sa schimb ledul si cititorul de card SD initiale dar lucrul cu senzori a fost smooth sailing si fun. A fost fun si sa inteleg cum functioneaza ce am vrut eu sa fac si sa vin cu idei de a il imbunatati. Overall o experienta cool, would do again certainly.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.