Nica Alexandru Claudiu 335CB
Cum functioneaza
Proiectul reprezinta implementarea unui creion colorat inteligent, de tipul Stylus Pen. Culoarea creionului este citita de un senzor de lumina, care este mai apoi afisata pe un ecran LCD I2C si de asemenea printr-un LED RGB care atunci cand se aprinde va avea culoarea respectiva. Miscarea creionului se va realiza folosind un joystick analogic ale carui coordonate vor fi mapate la un unghi cuprins intre 0 si 360 grade. Informatiile despre creion (culoarea si miscarea) vor fi transmise prin Serial catre un program Python care implementeaza biblioteca grafica Turtle. Acest program va misca obiectul de tip Turtle cu culoarea si miscarea indicata.
Scopul proiectului
Scopul proiectului este de a pune in practica notiunile capatate de-a lungul semestrului, de a invata sa fac un proiect hardware de la 0 si de a-mi dezvolta creativitatea si spiritul ingineresc
Ideea proiectului
Ideea proiectului a pornit de la faptul ca mereu am fost curios de cum functioneaza touch-screen-ul si stylus-ul. De asemenea, am vrut sa implementez un proiect care se imbina si cu alte limbaje de programare si care transmite informatii prin serial.
Utilitatea proiectului
Consider ca proiectul este important pentru mine deoarece este ceva ce m-a motivat si a pornit din curiozitate. Pentru colegii mei, consider ca poate fi un mod distractiv de a realiza notite sau de a se distra prin testarea de diferite culori si desene
Descriere functionalitate
Creionul cunoaste implicit doar un set de culori predefinite: rosu, albastru, negru, verde, galben si alb. Culoarea creionului va fi citita de detectorul de culori TCS3200, iar in cazul in care este una cunoscuta, se va afisa pe ecranul LCD I2C un mesaj cu numele acesteia. De asemenea, am adaugat un LED RGB care va lumina culoarea citita.
Odata stiuta culoarea, creionul trebuie de asemenea sa se miste, lucru care se realizeaza folosind un joystick analogic. Acesta are 2 axe: X si Y, cu ajutorul carora se poate calcula usor unghiul facut de joystick fata de centrul sau. Unghiul rezultatul reprezinta directia de desenare a creionului.
Informatiile obtinute (culoarea si orientarea) sunt retinute intr-un mesaj de tip String care este transmis prin Serial catre un program Python care extrage datele necesare si misca cursorul de ecran. Cursorul va fi miscat folosind biblioteca Turtle si se va misca respectand culoarea si orientarea.
Creionul se misca in timp real si atata timp cat utilizatorul doreste si programul este pornit
Descriere functionare senzor TCS3200
Conform foii tehnice, TCS3200 este un convertor de lumină-frecvență color programabil, care combină fotodiodele de siliciu configurabile și un convertor curent-frecvență pe un singur circuit integrat CMOS monolitic. Ieșirea este o undă pătrată (50% ciclu de funcționare) cu frecvență direct proporțională cu intensitatea luminii (iradiere). Frecvența de ieșire la scară completă poate fi scalată cu una din cele trei valori presetate (2%, 20%, 100%) prin intermediul a doi pini de intrare de control (S0 și S1). Voi seta atat S0 cat si S1 la 100% pentru o acuratete cat mai mare.
In TCS3200, convertorul lumină-frecvență citește o matrice de 8 x 8 de fotodiode: 16 fotodiode au filtre verzi, 16 rosii, 16 albastre si 16 fara filtre.
Pinii S2 și S3 sunt utilizați pentru a selecta ce grup de fotodiode (roșu, verde, albastru, fara filtru) sunt active, deci teoretic sunt folositi pentru a seta culorile ce pot fi citite. Combinatiile LOW-HIGH, definite si in datasheet-ul senzorului de culori, permit selectarea a diferite fotodiode, deci permit citirea de componente R, G, B (rosu, verde, albastru). Pentru o acuratete mai mare, pentru fiecare verificare de culoare, voi masura fiecare componenta de 10 ori, iar in final voi retine media. Analizand valorile fiecarei componente pot deduce ce culoare a fost analizata de senzorul TCS
Schema bloc
Elemente folosite
Schema Hardware
Schema Electrica
Conectare componente hardware
Senzorul TCS3200:
LCD16x2 I2C:
Joystick analogic:
RGB LED
Mediu dezvoltare
Biblioteci folosite
Descriere functii
Dupa cum se observa si in imaginile atasate, detectorul de culori reuseste de cele mai multe ori sa detecteze culoarea. Nu este insa cel mai performant si citirea corecta depinde de lumina si cum este detectorul tinut fata de obiectul dorit. Pentru acest proiect insa, reuseste sa si faca treaba suficient de bine.
Becul se aprinde la culoarea citita, mai putin in cazul in care se citeste negru, intrucat nu se poate reda cu un LED RGB.
Informatiile de la joystick si detectorul de culori sunt cu succes transmise prin serial si pe ecran apare desenul de culoarea corecta si deplasat corect.
In concluzie, proiectul a atins, in opinia mea, toate cerintele pentru a demonstra notiunile invatate pe parcusul semestrului. De asemenea, consider ca mi-a dezvoltat mult abilitatile de a realiza un proiect hardware.
Arhiva cu cod ce contine:
PDF cu toata documentatia: