Table of Contents

2

Clepsidra Digitala

Introducere

Proiectul constă în crearea unei clepsidre digitale care va fi reprezentata de doua matrici 8×8 cu LED-uri. Scopul principal al proiectului este de a crea o reprezentare digitală a clepsidrei clasice, oferind o experiență vizuală atractivă și interactivă. Ideea de bază a pornit de la fascinația pentru clepsidre ca instrumente de măsurare a timpului

Descriere generală

O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează.

Proiectul este realizat cu ajutorul unei placute Arduino Nano ATMega328P. Se poate seta timpul de rulare al clepsidrei cu ajutorul butoanelor. Se va implementa un engine de particule pentru a rula animatia clepsidrei.

Cu ajutorul unui accelerometru vom detecta pozitia in spatiu pentru a determina directia de deplasare a particulelor.

Hardware Design

Piese necesare pentru acest proiect

Arduino Nano ATmega328P

Controlerul principal al proiectului. Arduino Nano va coordona funcționarea tuturor componentelor conectate, inclusiv afișarea pe matricele LED, citirea datelor de la accelerometru și gestionarea intrărilor de la butoane.

MODUL MATRICE LED MAX7219

Afișează “nisipul” clepsidrei digitale. Fiecare modul matrice LED de 8×8 va afișa o jumătate a clepsidrei.

Pinii utilizati:

Butoane

Permite utilizatorului să interacționeze cu clepsidra digitală, de exemplu, pentru a seta timpul de rulare.

Pinii utilizati: Am conectat butoanele la pinii D2, D3 si la GND.

Modul accelerometru si giroscop MPU6050

Detectează orientarea și mișcarea dispozitivului. Folosit pentru a simula efectul de întoarcere al clepsidrei.

Pinii utilizati:

Breadboard

Facilitarea conexiunilor electrice între componente fără a fi nevoie de lipire permanentă. Mi-as dori sa printez la o imprimanta 3d o carcasa pentru clepsidra pentru un aspect estetic mai placut.

Software Design

Biblioteci folosite

Pentru realizarea proiectului am folosit biblioteci pentru a facilita interactiunea cu accelerometrul si matricile LED.

am folosit biblioteci pentru timere(Timer.h), interactiunea cu butoanele(*EncButton*), pentru a abstractiza lucrul cu acestea si a scadea din complexitatea codului.

Elementul de noutate. Engine de particule

Am mai vazut video-uri pe internet cu implementari de astfel de clepsidre digitale, insa acestea aveau implementata miscarea particulelor de nisip foarte simplist, care nu semana deloc cu comportamentul nisipului in viata reala. De aceea elementul de noutate al proiectului il constituie engine-ul de particule, care incearca sa replice un comportament mai realist al nisipului digital.

Detalii de implementare

Reprezentarea logica nisipului in programul meu, este realizata printr-un array de bytes, fiecare byte reprezentand o linie din matricea 8×8 al matricei de LED-uri. Ideea de la care am pornit a fost de a detecta directia in care este inclinata clepsidra si de a misca particulele de nisip in directia respectiva, tinand cont de coliziunea dintre particule. Numarul optim de directii pe care le detecteaza accelerometrul este 16. Astfel putem obtine o miscare cat de cat fluida a particulelor.

Pentru asigurare miscarii impredictibile a particulelor, atunci cand o particula poate merge in mai multe celule se alege aleator urmatoarea pozitie.

Functii implementate

Rezultate Obţinute

In continuare voi prezenta cum functioneaza clepsidra.

Concluzii

Download

Repository: https://github.com/alexandru-trofim/arduino-hourglass

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF