Table of Contents

Aparat Sortare Bomboane

Autor

Ioniță Bogdan Andrei 331CB

Introducere

Acest aparat sorteaza bombonele dupa culori, de exemplu: skittles, m&m, intr-o zona pentru fiecare culoare.

Descriere generală

Hardware Design

Componente:
Schema electrica

Software Design

Pentru programarea componentelor am folosit Arduino IDE. Am folosit biblioteca <Servo.h> pentru a putea programa servomotoarele. Am declarat urmatoarele variabile global:
- #define S0 4 - am definit S0 de pe senzorul de culoarea pe pinul 4
- #define S1 5 - am definit S1 de pe senzorul de culoarea pe pinul 5
- #define S2 6 - am definit S2 de pe senzorul de culoarea pe pinul 6
- #define S3 7 - am definit S3 de pe senzorul de culoarea pe pinul 7
- #define sensorOut 8 - am definit iesirea senzorului de culoare pe pinul 8
- Servo topServo - servomotorul care muta bomboana pentru a fi verificata de senzor
- Servo botServo - servomotorul care pozitioneaza unde ar trebui sa ajunga bomboana
- int pos - variabila folosita la miscarea servomotoarelor

Functii:

- void setColorRGB - primeste ca parametrii 3 intregi, red, green, blue si seteaza intensitatea fiecarei culori ale led-ului RGB; pinul 9 este culoarea rosie, pinul 10 este culoarea verde si pinul 11 este culoarea albastra;

- void setup - in aceasta functie am setat culoarea led-ului la 0, pinii de la S0 la S3 i-am setat pe OUTPUT si sensorOut pe INPUT; S0 il setez pe HIGH si S1 pe LOW pentru avea scalarea de frecventa de 20%; topServo l-am legat la pinul 12 si botServo la pinul 3, apoi am activat Serial;

- int get_color - primeste ca parametrii 3 intregi, red, green, blue si verifica in ce interval se afla culorile primite si intoarce culoarea bomboanei

- void loop - se afla implementarea aparatului de sortat

Initial setez topServo la 180 de grade, astept 500 de milisecunde, apoi voi rotii servomotorul la 120 de grade, sub senzorul de culoare. Apoi senzorul de culoare va citii frecventa pentru cele 3 culori. Pentru culoarea rosie setez S2 si S3 pe LOW, citesc frecventa cu functia pulseIn, si o salvez in variabila red. Pentru culoarea verde setez S2 si S3 pe HIGH, citesc frecventa cu functia pulseIn, si o salvez in variabila green. Pentru culoarea rosie setez S2 pe LOW si S3 pe HIGH, citesc frecventa cu functia pulseIn, si o salvez in variabila blue.

Dupa ce iau frecventele filtrelor, iau culoare folosind get_color si apoi folosesc un switch pentru a muta botServo la grupul de bomboane la care trebuie pusa, si setez culoarea led-ului RGB.

Dupa ce botServo a fost setat, topServo muta bomboana pentru a cadea la grupul de bomboane. La final topServo se muta la pozitia initiala de 180 de grade.

Rezultate Obţinute

Setup aparat sortare



Bomboanele sunt puse in tub, primul servomotor ia bomboana si muta sub senzorul de culoare, al doilea servomotor va muta in directia specifica, dupa primul servomotor muta bomboana apoi aceasta va cadea. Un demo poate fi gasit la aceasta adresa Demo.

Concluzii

Poriectul m-a ajutat mai mult sa inteleg cum se lucreaza in Arduino, mai ales ca la laborator in contextul actual am lucrat in Tinkercad. Programarea componentelor nu a fost dificila, in schimb a fost mai greu calibrarea senzorului, o mica schimbare a pozitiei sau a luminii conectate la senzor poate schimba mult datele citite. O alta parte dificila a fost montarea setup-ului, erau multe piese care trebuiau lipite pentru stabilitate dar spatiile erau cam stramte pentru a lucra usor.

Download

Arhiva contine codul sursa a implementarii si un readme aparat_sortare_ionitabogdan_331cb.zip

Jurnal

Bibliografie/Resurse

PDF

https://randomnerdtutorials.com/arduino-color-sensor-tcs230-tcs3200/
https://steemit.com/utopian-io/@sikul/arduino-using-tcs230-to-make-color-sensing
https://howtomechatronics.com/tutorials/arduino/arduino-color-sensing-tutorial-tcs230-tcs3200-color-sensor/
http://www.w-r-e.de/robotik/data/opt/tcs230.pdf
Schema bloc am realizat-o in app.diagrams.net.
Schema electrica am realizat-o in TINKERCAD.