La partea de software am programat senzorul de culoare sa citeasca pulse width-ul pentru cele trei canale R G B implementant functiile: int readRedPW(), int readGreenPW(), int readBluePW().
O culoare noua e citita la apasarea butonului iar determinarea culorii este facuta cu ajutorul functiei:
int checkColor(int redPW, int greenPW, int bluePW)
Prin intermediul serialului trimit date catre o aplicatie python prin functia void USART0_transmit(unsigned char* data)
Aplicatia python afiseaza la ecranul laptop-ului culoarea citita de senzor si valoarea ei rgb.
Senzorul este configurat pentru a determina 6 culori cu posibilitatea de a extinde numarul de culori :)
Am reusit sa configurez dispozitivul sa detecteze 6 culori, sa afiseze denumirea fiecarei culori la ecranul lcd si sa afiseze culoarea la laptop prin intermediul programului python.
Pentru utilizarea aparatului se introduce in stanga jos o bucata de hartie colorata si se apasa butonul pentru determinarea culorii.
Codul sursa al proiectului: pm_project_src.zip
Biblioteca LiquidCrystal I2C:
Piesele au fost cumparate de pe: