- Komponenter kreves
- Hvordan lage chassiset for fargesorteringsrobot
- TCS3200 fargesensor
- Arduino fargesorter kretsdiagram
- Programmering Arduino Uno for sortering av fargerike baller
Som navnet antyder, er fargesortering ganske enkelt å sortere ting i henhold til fargen. Det kan enkelt gjøres ved å se det, men når det er for mange ting å sortere og det er en repeterende oppgave, er automatiske fargesorteringsmaskiner veldig nyttige. Disse maskinene har fargesensor for å føle fargen på gjenstander, og etter å ha oppdaget fargeservomotoren, ta tak i tingen og legg den i respektive boks. De kan brukes i forskjellige bruksområder der fargeidentifisering, fargeskille og fargesortering er viktig. Noen av applikasjonsområdene inkluderer landbruksindustri (kornsortering på grunnlag av farge), matindustri, diamant- og gruveindustri, gjenvinning etc. Applikasjonene er ikke begrenset til dette og kan videre brukes til forskjellige bransjer.
TCS3200 fargesensor er den mest populære sensoren for å oppdage fargene. Vi brukte tidligere TCS3200-sensor med Arduino for å få RGB-komponenten (rød, grønn, blå) av hvilken som helst farge og grensesnittet også med Raspberry Pi for å oppdage fargen på ethvert objekt.
Her i denne opplæringen vil vi lage en fargesorteringsmaskin ved hjelp av en fargesensor TCS3200, noen servomotorer og Arduino-kort. Denne opplæringen inkluderer sortering av fargede baller og oppbevaring i den aktuelle fargeboksen. Boksen vil være i fast posisjon, og servomotoren vil bli brukt til å bevege sorteringshånden for å holde ballen i den aktuelle boksen.
Komponenter kreves
- Arduino UNO
- TCS3200 fargesensor
- Servomotorer
- Gensere
- Brettbrett
Hvordan lage chassiset for fargesorteringsrobot
For å gjøre det komplette oppsettet inkludert chassis, arm, rulle, pad, har vi brukt den hvite Sunboard med 2 mm tykkelse. Den er lett tilgjengelig i stasjonære butikker. Vi har brukt papirskjærer for å kutte Sunboard Sheet og FlexKwik eller FeviKwik for å feste de forskjellige delene.
Nedenfor er noen trinn for å bygge fargesorteringsarmen:
1) Ta solbrettarket.
2) Skjær solbrettplaten i biter etter å ha målt alle sider med skala og markør som vist på figuren.
3) Hold nå de to stykkene av solbrettet sammen og hell en dråpe FeviKwik på den for å feste bitene sammen. Fortsett å bli med på stykkene ved å følge figuren.
4) Etter at alle delene er samlet, vil denne fargesorteringsmaskinen se ut slik:
TCS3200 fargesensor
TCS3200 er en fargesensor som kan oppdage et hvilket som helst antall farger med riktig programmering. TCS3200 inneholder RGB (rød grønn blå) matriser. Som vist i figuren på mikroskopisk nivå kan man se de firkantede boksene inne i øye på sensoren. Disse firkantede boksene er matriser av RGB-matrise. Hver av disse boksene inneholder tre sensorer, en er for å registrere RØD lysintensitet, en er for å registrere GRØNN lysintensitet og den siste for å registrere BLÅ lysintensitet.
Hver av sensorarrayene i disse tre gruppene velges separat avhengig av kravet. Derfor er det kjent som programmerbar sensor. Modulen kan presenteres for å føle den spesielle fargen og for å forlate de andre. Den inneholder filtre for det valgte formålet. Det er en fjerde modus kalt ' no filter mode' der sensoren oppdager hvitt lys.
Arduino fargesorter kretsdiagram
Kretsskjemaet for denne Arduino Color Sorter er ganske enkelt å lage og krever ikke mye tilkobling. Skjematisk er gitt nedenfor.
Dette er kretsløpet bak oppsettet av fargesorteringsmaskin:
Programmering Arduino Uno for sortering av fargerike baller
Programmering av Arduino UNO er ganske enkel og krever en enkel logikk for å forenkle trinnene som er involvert i fargesortering. Komplett program med en demonstrasjon Video er gitt til slutt.
Siden servomotoren brukes, er servobiblioteket en viktig del av programmet. Her bruker vi to servomotorer. Den første servoen vil flytte de fargede kulene fra utgangsposisjonen til TCS3200 detektorposisjon og deretter flytte til sorteringsposisjonen der ballen vil bli droppet. Etter å ha flyttet til sorteringsposisjon, vil den andre servoen slippe ballen med armen til ønsket fargebøtte. Se hele arbeidet i videoen gitt til slutt.
Det første trinnet er å inkludere alt bibliotek og definere servovariablene.
#inkludere
TCS3200 fargesensoren kan fungere uten bibliotek, da det bare er behov for lesefrekvens fra sensortappen for å bestemme fargen. Så bare definer PIN-koden til TCS3200.
#define S0 4 #define S1 5 #define S2 7 #define S3 6 #define sensorOut 8 int frequency = 0; int farge = 0;
Lag valgpinnene som utgang, da dette vil gjøre fargefotodioden høy eller lav og ta utpinnen på TCS3200 som inngang. OUT-pinnen gir frekvens. Velg skalering av frekvens som 20% i utgangspunktet.
pinMode (S0, OUTPUT); pinMode (S1, OUTPUT); pinMode (S2, OUTPUT); pinMode (S3, OUTPUT); pinMode (sensorOut, INPUT); digitalWrite (S0, LOW); digitalWrite (S1, HIGH);
Servomotorene er koblet til Pin 9 og 10 i Arduino. Den pickup servo som vil pickup farge kulene er forbundet ved tappen 9 og den fallet servo som vil slippe baller i mange farger i henhold til fargen er forbundet ved Pin10.
pickServo.attach (9); dropServo.attach (10);
Opprinnelig er pick servomotoren satt i utgangsposisjonen, som i dette tilfellet er 115 grader. Det kan variere og kan tilpasses deretter. Motoren beveger seg etter en viss forsinkelse til detektorområdet og venter på deteksjonen.
pickServo.write (115); forsinkelse (600); for (int i = 115; i> 65; i--) { pickServo.write (i); forsinkelse (2); } forsinkelse (500);
Den TCS 3200 leser fargen og gir frekvensen fra Out Pin.
farge = detectColor (); forsinkelse (1000);
Avhengig av hvilken farge som er oppdaget, beveger drop servomotoren seg med en spesiell vinkel og slipper fargekulen til den respektive boksen.
bytte (farge) { sak 1: dropServo.write (50); gå i stykker; sak 2: dropServo.write (80); gå i stykker; tilfelle 3: dropServo.write (110); gå i stykker; sak 4: dropServo.write (140); gå i stykker; sak 5: dropServo.write (170); gå i stykker; sak 0: pause; } forsinkelse (500);
Servomotoren går tilbake til utgangsposisjonen for neste ball å velge.
for (int i = 65; i> 29; i--) { pickServo.write (i); forsinkelse (2); } forsinkelse (300); for (int i = 29; i <115; i ++) { pickServo.write (i); forsinkelse (2); }
Funksjonen detectColor () brukes til å måle frekvensen og sammenligner fargefrekvensen for å konkludere med fargen. Resultatet skrives ut på den serielle skjermen. Deretter returnerer fargeverdien for tilfeller for å flytte vinkelen på servomotoren.
int detectColor () {
Ved å skrive til S2 og S3 (LAV, LAV) aktiveres de røde fotodiodene for å ta avlesningene for rød fargetetthet.
digitalWrite (S2, LOW); digitalWrite (S3, LOW); frekvens = pulseIn (sensorOut, LOW); int R = frekvens; Serial.print ("Red ="); Serial.print (frekvens); // utskrift RED fargefrekvens Serial.print (""); forsinkelse (50);
Å skrive til S2 og S3 (LAV, HØY) aktiverer de blå fotodioder for å ta avlesningene for blå fargetetthet.
digitalWrite (S2, LOW); digitalWrite (S3, HIGH); frekvens = pulseIn (sensorOut, LOW); int B = frekvens; Serial.print ("Blue ="); Serial.print (frekvens); Serial.println ("");
Å skrive til S2 og S3 (HIGH, HIGH) aktiverer de grønne fotodiodene for å ta avlesningene for grønn fargetetthet.
digitalWrite (S2, HIGH); digitalWrite (S3, HIGH); // Lesing av utgangsfrekvensfrekvensen = pulseIn (sensorOut, LOW); int G = frekvens; Serial.print ("Green ="); Serial.print (frekvens); Serial.print (""); forsinkelse (50);
Deretter sammenlignes verdiene for å ta fargebeslutningen. Avlesningene er forskjellige for forskjellige eksperimentelle oppsett, da deteksjonsavstanden varierer for alle når du gjør oppsettet.
hvis (R <22 & R> 20 & G <29 & G> 27) { color = 1; // Red Serial.print ("Detected Color is ="); Serial.println ("RØD"); } hvis (G <25 & G> 22 & B <22 & B> 19) { color = 2; // Oransje Serial.println ("Oransje"); } hvis (R <21 & R> 20 & G <28 & G> 25) { color = 3; // Green Serial.print ("Detected Color is ="); Serial.println ("GRØNN"); } hvis (R <38 & R> 24 & G <44 & G> 30) { color = 4; // Yellow Serial.print ("Detected Color is ="); Serial.println ("GUL"); } hvis (G <29 & G> 27 & B <22 & B> 19) { color = 5; // Blue Serial.print ("Detected Color is ="); Serial.println ("BLÅ"); } returfarge; }
Dette avslutter fargesorteringsmaskinen ved hjelp av TCS3200 og Arduino UNO. Du kan også programmere den for å oppdage flere farger om nødvendig. Hvis du er i tvil eller har noen forslag, så skriv til forumet vårt eller kommenter nedenfor. Sjekk også videoen nedenfor.