Mihai ŞTEFĂNESCU - Brightness Adjuster

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul isi propune sa modifice luminozitatea unui notebook, prin prelucrarea semnalelor trimise de doi senzori(unul de lumina, celalalt de proximitate) atasati placutei din cadrul laboratorului. Printre avantajele oferite de aceast sistem se numara reducerea consumului de energie(luminozitatea scade dinamic in functie de distanta user-ului in raport cu display-ul, iar notebook-ul intra intr-un fel de standby atunci cand nu mai este detectata prezenta umana in fata sa), precum si o “dieta” sanatoasa pentru ochi(utilizatorul va percepe acelasi contrast, indiferent de calitatea luminii ambiante / nu va fii “orbit” de un backlight prea puternic la apropierea sa spre display-ul laptop-ului).

Descriere generală

Calculatorul si microcontroller-ul impartasesc interfata de comunicare prin V-USB(se folosesc mesaje de tip usb_control_message). Microcontroller-ul asculta printr-un mecanism de usb polling eventualele mesaje, si raspunde prin structura usbMsgPtr. Deocamdata, este realizata doar interfatarea cu senzorul de proximitate(US-100 ultrasonic sensor module). Se activeaza trigger-ul prin setarea unui bit corespunzator si se asteapta inceperea, respectiv terminarea ecoului(e vorba de ultrasunete). Pentru a masura distanta, am folosit timer-ul 1(cel pe 16 biti), al microcontroller-ului, si am prelucrat timpul obtinut in functie de frecventa utilizata, viteza sunetului, etc(nu am uitat, de exemplu, ca trebuie ca rezultatul sa fie impartit la 2 → rising edge / falling edge). Apoi, pe PC, se realizeaza intr-o bucla interogarea senzorului, creandu-se un nou proces la fiecare iteratie, care sa aiba rolul de handler de brightness adjusting(am folosit utilitarul xrandr pentru reglarea luminozitatii si a setarii in modul standby).

Noua luminozitate nu este calculata instant, ci am preferat sa se realizeze o mediere a ultimelor 10 valori, pentru a nu avea erori neglijabile care sa ofere neplaceri(user-ul intinde mana sa bea un pahar cu apa, senzorul detecteaza miscarea si ca urmare ecranul se intuneca — nu are sens).

Hardware Design

Nume piesă Preț
Plăcuță 7 RON
Microcontroller ATMega324PA și componente pentru plăcuță 55 RON
Senzor lumina TSL2561 10 RON
Senzor miscare US-100 15 RON
Fire de conexiune mamă-mamă 6 RON

Software Design

Componentele software necesare:

Nume Rol
binutils assambler, linker
gcc-avr cross-compiler pentru avr
avr-libc utility functions
libusb helper for V-USB
V-USB pentru comunicatia prin usb

Rezultate Obţinute

Am reusit ce mi-am propus, mai putin pe partea de senzor de lumina, deoarece ar fi trebuit sa implementez si comunicarea prin i2c si nu am mai avut timp. Este posibila ajustarea distantei de la care se stinge ecranul, pasul cu care se schimba intensitatea luminoasa a acestuia, precum si a altor parametri din interiorul sursei.

Concluzii

Un proiect interesant, practic, util si de la care am avut multe de invatat. Regret, totusi, ca nu am putut duce la capat ideea din cauza interfatarii cu senzorul de lumina(care era destul de complicata, iar referintele pe internet erau foarte rare si nu prea de ajutor).

Download

Bibliografie/Resurse

pm/prj2015/amocanu/1234567.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0