Detector de culori

Introducere

Proiectul consta in detectarea culorilor obiectelor puse in fata aparatului si e perfect pentru momentele cand ai nevoie sa stii sigur care este culoarea unui obiect fara sa te mai chinui sa-ti amintesti culorile. Ideea de la care am pornit sunt automatele de sortare care au la baza asemenea mecanism si care pot lua ca input o cantitate mare de obiecte si le pot sorta in functie de culoarea lor. Deci implementand acest mecanism o sa poata fi folosit ulterior la construirea unor automate de sortat bomboane, lego sau alte chestii.

Descriere generală

  • Utilizatorul porneste detectorul prin apasarea butonului, apoi odata pornit, senzorul o sa poata detecta culorile obiectelor care apar in fata lui.
  • De la senzor datele vor ajunge la arduino unde codul arduino va determina culoarea si o va afisa pe ecranul LCD iar ledul RGB se va aprinde cu culoarea detectata.

Piese necesare:

  • Breadboard
  • Modul senzor de culoare TCS230
  • Arduino uno
  • RGB Led
  • Ecran LCD I2C
  • Buton
  • Rezistente
  • Fire

Hardware Design

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare: Arduino IDE si Visual Studio Code pentru aplicatia Python
  • librării şi surse 3rd-party: Pentru scriptul arduino am folosit libraria LiquidCrystal_I2C.h

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 :)

Rezultate Obţinute

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.

Concluzii

  • E multa bataie de cap la lucrul cu hardware. Primul lcd mi-a ajuns stricat si a trebuit sa fac rost de altul.
  • Senzorul de culori este destul de prost si m-am enervat maximal pana l-am calibrat ok pentru cele 6 culori pe care acum le poate determina.
  • Partea software a mers foarte ok.
  • Am reusit sa fac tot proiectul fara sa ard vreo piesa si am ramas cu piesele de backup.
  • Niciodata nu ai prea multe cabluri.
  • A fost o experienta diferita fata de celelalte din facultate.

Download

Codul sursa al proiectului: pm_project_src.zip

Jurnal

28.04.2023 - Alegere tema proiect.
06.05.2023 - Adaugare descriere, schema bloc si piese.
10.05.2023 - Comanda piese.
19-21.05.2023 - Schema hardware.
22-26.05.2023 - Realizare software, lipire led si buton, design final cutie.
28.05.2023 - Finalizare pagina wiki.

Bibliografie/Resurse

pm/prj2023/amocanu/color_detector.txt · Last modified: 2023/05/28 23:08 by dan.codreanu
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