- Komponenter krävs
- Hur man gör chassit för Color Sorting Robotic Arm
- TCS3200 Färgsensor
- Arduino Color Sorter Circuit Diagram
- Programmering Arduino Uno för sortering av färgglada bollar
Som namnet antyder är färgsortering helt enkelt att sortera sakerna efter deras färg. Det kan enkelt göras genom att se det, men när det finns för många saker att sortera och det är en upprepande uppgift är automatiska färgsorteringsmaskiner mycket användbara. Dessa maskiner har färgsensor för att känna färgen på alla föremål och efter att ha upptäckt färg servomotorn ta tag i saken och lägg den i respektive låda. De kan användas i olika applikationsområden där färgidentifiering, färgskillnad och färgsortering är viktigt. Några av applikationsområdena inkluderar jordbruksindustri (kornsortering på grundval av färg), livsmedelsindustri, diamant- och gruvindustri, återvinning etc. Applikationerna är inte begränsade till detta och kan vidare tillämpas på olika industrier.
Den mest populära sensorn för att upptäcka färgerna är TCS3200 färgsensor. Vi använde tidigare TCS3200-sensor med Arduino för att få RGB-komponenten (röd, grön, blå) av vilken färg som helst och kopplade den också till Raspberry Pi för att detektera färgen på något objekt.
Här i denna handledning kommer vi att göra en färgsorteringsmaskin med en färgsensor TCS3200, några servomotorer och Arduino-kort. Denna handledning innehåller sortering av färgade kulor och förvaring i relevant färgruta. Lådan kommer att vara i fast läge och servomotorn kommer att användas för att flytta sorteringshanden för att hålla bollen i den aktuella lådan.
Komponenter krävs
- Arduino UNO
- TCS3200 Färgsensor
- Servomotorer
- Tröjor
- Bakbord
Hur man gör chassit för Color Sorting Robotic Arm
För att göra den kompletta installationen inklusive chassi, arm, rulle, pad, har vi använt den vita Sunboard med 2 mm tjocklek. Den är lätt tillgänglig i stationära butiker. Vi har använt pappersklippare för att skära Sunboard Sheet och FlexKwik eller FeviKwik för att sammanfoga de olika delarna.
Nedan följer några steg för att bygga färgsorteringsarmen:
1) Ta solbrädan.
2) Klipp solbordets lakan i bitar efter att du har mätt alla sidor med skala och markör som visas i figuren.
3) Håll nu ihop de två bitarna av solbrädan och häll en droppe FeviKwik på den för att hålla ihop bitarna. Fortsätt sammanfoga bitarna genom att följa figuren.
4) Efter att ha sammanfogat alla bitar kommer denna färgsorteringsmaskin att se ut så här:
TCS3200 Färgsensor
TCS3200 är en färgsensor som kan upptäcka valfritt antal färger med rätt programmering. TCS3200 innehåller RGB-matriser (Red Green Blue). Som visas i figuren på mikroskopisk nivå kan man se de fyrkantiga rutorna inuti ögat på sensorn. Dessa fyrkantiga lådor är matriser med RGB-matris. Var och en av dessa rutor innehåller tre sensorer, en är för att känna av RÖD ljusintensitet, en är för att känna av GRÖN ljusintensitet och den sista för att känna av BLÅ ljusintensitet.
Var och en av sensormatrisen i dessa tre matriser väljs separat beroende på behovet. Därför är det känt som programmerbar sensor. Modulen kan presenteras för att känna av den specifika färgen och för att lämna de andra. Den innehåller filter för det urvalsändamålet. Det finns ett fjärde läge som kallas " inget filterläge" där sensorn känner av vitt ljus.
Arduino Color Sorter Circuit Diagram
Kretsschemat för denna Arduino Color Sorter är ganska lätt att göra och kräver inte mycket anslutningar. Schemat ger nedan.
Detta är kretsloppet bakom installationen av färgsorteringsmaskin:
Programmering Arduino Uno för sortering av färgglada bollar
Att programmera Arduino UNO är ganska enkelt och kräver en enkel logik för att förenkla stegen i färgsortering. Komplett program med en demonstration Video ges i slutet.
Eftersom servomotorn används så är servobiblioteket en viktig del av programmet. Här använder vi två servomotorer. Den första servon flyttar de färgade kulorna från utgångsläget till TCS3200-detektorposition och flyttar sedan till sorteringspositionen där kulan kommer att släppas. Efter att ha flyttat till sorteringsposition kommer den andra servon att släppa bollen med armen till önskad färgskopa. Se hela arbetet i videon som ges i slutet.
Det första steget är all inkludering av biblioteket och definiera servovariabler.
#omfatta
TCS3200-färgsensorn kan fungera utan bibliotek eftersom det bara behövs läsfrekvens från sensorstiftet för att bestämma färgen. Så definiera bara PIN-numren på TCS3200.
#define S0 4 #define S1 5 #define S2 7 #define S3 6 #define sensorOut 8 int frequency = 0; int färg = 0;
Gör valspinnarna som utdata, eftersom detta gör färgfotodioden hög eller låg och ta utstiften på TCS3200 som ingång. OUT-stiftet ger frekvens. Välj skalning av frekvens till 20% initialt.
pinMode (S0, OUTPUT); pinMode (S1, OUTPUT); pinMode (S2, OUTPUT); pinMode (S3, OUTPUT); pinMode (sensorOut, INPUT); digitalWrite (S0, LOW); digitalWrite (S1, HIGH);
Servomotorerna är anslutna vid stift 9 och 10 i Arduino. Den pickup servo som kommer pickup är färg bollar ansluten vid Stift 9 och droppservo som kommer att släppa de färgade bollar i enlighet med färgen är ansluten vid Pin10.
pickServo.attach (9); dropServo.attach (10);
Ursprungligen ställs pick-servomotorn i sitt ursprungsläge, som i detta fall är 115 grader. Det kan skilja sig och kan anpassas därefter. Motorn rör sig efter en viss fördröjning till detektorområdet och väntar på detekteringen.
pickServo.write (115); fördröjning (600); för (int i = 115; i> 65; i--) { pickServo.write (i); fördröjning (2); } fördröjning (500);
Den TCS 3200 läser färgen och ger frekvensen från Out Pin.
color = detectColor (); fördröjning (1000);
Beroende på färg detekteras rör sig servomotorn med en viss vinkel och släpper färgkulan till respektive låda.
växla (färg) { fall 1: dropServo.write (50); ha sönder; fall 2: dropServo.write (80); ha sönder; fall 3: dropServo.write (110); ha sönder; fall 4: dropServo.write (140); ha sönder; fall 5: dropServo.write (170); ha sönder; fall 0: bryta; } fördröjning (500);
Servomotorn återgår till utgångsläget för nästa boll att välja.
för (int i = 65; i> 29; i--) { pickServo.write (i); fördröjning (2); } fördröjning (300); för (int i = 29; i <115; i ++) { pickServo.write (i); fördröjning (2); }
Funktionen detectColor () används för att mäta frekvens och jämför färgfrekvensen för att göra slutsatsen av färg. Resultatet skrivs ut på den seriella bildskärmen. Därefter returnerar det färgvärdet för fall för att flytta droppservomotorns vinkel.
int detectColor () {
Att skriva till S2 och S3 (LOW, LOW) aktiverar de röda fotodioderna för att ta avläsningarna för röd färgdensitet.
digitalWrite (S2, LOW); digitalWrite (S3, LOW); frekvens = pulseIn (sensorOut, LOW); int R = frekvens; Serial.print ("Red ="); Serial.print (frekvens); // utskrift RÖD färgfrekvens Serial.print (""); fördröjning (50);
Att skriva till S2 och S3 (LOW, HIGH) aktiverar de blå fotodioderna för att ta avläsningarna för blå färgdensitet.
digitalWrite (S2, LOW); digitalWrite (S3, HIGH); frekvens = pulseIn (sensorOut, LOW); int B = frekvens; Serial.print ("Blue ="); Serial.print (frekvens); Serial.println ("");
Att skriva till S2 och S3 (HÖG, HÖG) aktiverar de gröna fotodioderna för att ta avläsningarna för grön färgdensitet.
digitalWrite (S2, HIGH); digitalWrite (S3, HIGH); // Läser utfrekvensfrekvensen = pulseIn (sensorOut, LOW); int G = frekvens; Serial.print ("Green ="); Serial.print (frekvens); Serial.print (""); fördröjning (50);
Därefter jämförs värdena för att fatta färgbeslut. Avläsningarna är olika för olika experimentella inställningar eftersom detektionsavståndet varierar för alla när du gör installationen.
om (R <22 & R> 20 & G <29 & G> 27) { color = 1; // Red Serial.print ("Detekterad färg är ="); Serial.println ("RÖDT"); } om (G <25 & G> 22 & B <22 & B> 19) { color = 2; // Orange Serial.println ("Orange"); } om (R <21 & R> 20 & G <28 & G> 25) { color = 3; // Green Serial.print ("Detekterad färg är ="); Serial.println ("GRÖN"); } om (R <38 & R> 24 & G <44 & G> 30) { color = 4; // Yellow Serial.print ("Detected Color is ="); Serial.println ("GUL"); } om (G <29 & G> 27 & B <22 & B> 19) { color = 5; // Blue Serial.print ("Detekterad färg är ="); Serial.println ("BLÅ"); } returfärg; }
Detta avslutar färgsorteringsmaskinen med TCS3200 och Arduino UNO. Du kan också programmera den för att upptäcka fler färger om det behövs. Om du är tveksam eller har några förslag, skriv till vårt forum eller kommentera nedan. Kolla även videon nedan.