- Composants requis
- Comment faire le châssis pour le bras robotique de tri des couleurs
- Capteur de couleur TCS3200
- Schéma du circuit du trieur de couleurs Arduino
- Programmation Arduino Uno pour trier les boules colorées
Comme son nom l'indique, le tri des couleurs consiste simplement à trier les choses en fonction de leur couleur. Cela peut être facilement fait en le voyant, mais quand il y a trop de choses à trier et que c'est une tâche répétitive, les machines de tri automatique des couleurs sont très utiles. Ces machines ont un capteur de couleur pour détecter la couleur de tous les objets et après avoir détecté le servomoteur de couleur, saisissez la chose et mettez-la dans la boîte respective. Ils peuvent être utilisés dans différents domaines d'application où l'identification des couleurs, la distinction des couleurs et le tri des couleurs sont importants. Certains des domaines d'application comprennent l'industrie agricole (tri des grains sur la base de la couleur), l'industrie alimentaire, l'industrie du diamant et des mines, le recyclage, etc. Les applications ne sont pas limitées à cela et peuvent être appliquées à différentes industries.
Le capteur le plus populaire pour détecter les couleurs est le capteur de couleur TCS3200. Nous avons précédemment utilisé le capteur TCS3200 avec Arduino pour obtenir le composant RVB (rouge, vert, bleu) de n'importe quelle couleur et l'avons également interfacé avec Raspberry Pi pour détecter la couleur de n'importe quel objet.
Ici, dans ce tutoriel, nous allons fabriquer une machine de tri des couleurs en utilisant un capteur de couleur TCS3200, des servomoteurs et une carte Arduino. Ce tutoriel comprendra le tri des boules colorées et leur conservation dans la case de couleur appropriée. La boîte sera en position fixe et le servomoteur sera utilisé pour déplacer la main du trieur pour garder la balle dans la boîte appropriée.
Composants requis
- Arduino UNO
- Capteur de couleur TCS3200
- Moteurs servo
- Cavaliers
- Planche à pain
Comment faire le châssis pour le bras robotique de tri des couleurs
Pour réaliser la configuration complète comprenant le châssis, le bras, le rouleau, le coussin, nous avons utilisé le Sunboard blanc de 2 mm d'épaisseur. Il est facilement disponible dans les magasins de papeterie. Nous avons utilisé un coupe-papier pour couper la feuille de Sunboard et FlexKwik ou FeviKwik pour assembler les différentes pièces.
Voici quelques étapes pour construire le bras de tri des couleurs:
1) Prenez la feuille de Sunboard.
2) Coupez la feuille de sunboard en morceaux après avoir mesuré tous les côtés avec l'échelle et le marqueur comme indiqué sur la figure.
3) Maintenant, maintenez les deux morceaux de sunboard ensemble et versez une goutte de FeviKwik dessus pour coller les morceaux ensemble. Continuez à joindre les pièces en suivant la figure.
4) Après avoir assemblé toutes les pièces, cette machine de tri des couleurs ressemblera à ceci:
Capteur de couleur TCS3200
TCS3200 est un capteur de couleur qui peut détecter n'importe quel nombre de couleurs avec une bonne programmation. TCS3200 contient des matrices RVB (rouge vert bleu). Comme le montre la figure au niveau microscopique, on peut voir les cases carrées à l'intérieur de l'œil sur le capteur. Ces boîtes carrées sont des tableaux de matrice RVB. Chacune de ces boîtes contient trois capteurs, un pour détecter l'intensité de la lumière ROUGE, un pour détecter l'intensité de la lumière VERTE et le dernier pour détecter l'intensité de la lumière BLEUE.
Chacun des réseaux de capteurs de ces trois réseaux est sélectionné séparément en fonction des besoins. Par conséquent, il est connu sous le nom de capteur programmable. Le module peut être présenté pour détecter la couleur particulière et laisser les autres. Il contient des filtres à cette fin de sélection. Il existe un quatrième mode appelé «mode sans filtre» dans lequel le capteur détecte la lumière blanche.
Schéma du circuit du trieur de couleurs Arduino
Le schéma de circuit de ce trieur de couleurs Arduino est assez facile à réaliser et ne nécessite pas beaucoup de connexions. Le schéma est donné ci-dessous.
Voici le circuit derrière la configuration de la machine de tri des couleurs:
Programmation Arduino Uno pour trier les boules colorées
La programmation d'Arduino UNO est assez simple et nécessite une logique simple pour simplifier les étapes impliquées dans le tri des couleurs. Programme complet avec une vidéo de démonstration à la fin.
Puisque le servomoteur est utilisé, la bibliothèque d'asservissements est une partie essentielle du programme. Ici, nous utilisons deux servomoteurs. Le premier servo déplacera les billes colorées de la position initiale à la position du détecteur TCS3200, puis se déplacera vers la position de tri où la balle sera lâchée. Après être passé en position de tri, le deuxième servo laissera tomber la balle à l'aide de son bras vers le seau de couleur souhaité. Voir le travail complet dans la vidéo donnée à la fin.
La première étape consistera à inclure toutes les bibliothèques et à définir les variables d'asservissement.
#comprendre
Le capteur de couleur TCS3200 peut fonctionner sans bibliothèque car il suffit de lire la fréquence à partir de la broche du capteur pour décider de la couleur. Définissez donc simplement les numéros de broches du TCS3200.
#define S0 4 #define S1 5 #define S2 7 #define S3 6 #define sensorOut 8 int fréquence = 0; couleur int = 0;
Faites les broches de sélection comme sortie car cela rendra la photodiode couleur haute ou basse et prendra la broche Out du TCS3200 comme entrée. La broche OUT fournira la fréquence. Sélectionnez initialement la mise à l'échelle de la fréquence à 20%.
pinMode (S0, SORTIE); pinMode (S1, OUTPUT); pinMode (S2, SORTIE); pinMode (S3, SORTIE); pinMode (sensorOut, INPUT); digitalWrite (S0, LOW); DigitalWrite (S1, HIGH);
Les servomoteurs sont connectés aux broches 9 et 10 d'Arduino. Le servo de ramassage qui ramassera les boules de couleur est connecté à la broche 9 et le servo de chute qui déposera les boules de couleur en fonction de la couleur est connecté à la broche 10.
pickServo.attach (9); dropServo.attach (10);
Initialement, le servomoteur de sélection est réglé dans la position initiale qui dans ce cas est de 115 degrés. Il peut différer et être personnalisé en conséquence. Le moteur se déplace après un certain temps vers la région du détecteur et attend la détection.
pickServo.write (115); retard (600); pour (int i = 115; i> 65; i--) { pickServo.write (i); retard (2); } retard (500);
Le TCS 3200 lit la couleur et donne la fréquence de la broche Out.
couleur = detectColor (); retard (1000);
En fonction de la couleur détectée, le servomoteur de chute se déplace avec un angle particulier et dépose la boule de couleur dans sa boîte respective.
commutateur (couleur) { cas 1: dropServo.write (50); Pause; cas 2: dropServo.write (80); Pause; cas 3: dropServo.write (110); Pause; cas 4: dropServo.write (140); Pause; cas 5: dropServo.write (170); Pause; cas 0: pause; } retard (500);
Le servomoteur revient à la position initiale pour la prochaine balle à ramasser.
pour (int i = 65; i> 29; i--) { pickServo.write (i); retard (2); } retard (300); pour (int i = 29; i <115; i ++) { pickServo.write (i); retard (2); }
La fonction detectColor () est utilisée pour mesurer la fréquence et compare la fréquence de couleur pour faire la conclusion de la couleur. Le résultat est imprimé sur le moniteur série. Ensuite, il renvoie la valeur de couleur des boîtiers pour déplacer l'angle du servomoteur de baisse.
int detectColor () {
L'écriture sur S2 et S3 (FAIBLE, FAIBLE) active les photodiodes rouges pour prendre les lectures pour la densité de couleur rouge.
DigitalWrite (S2, LOW); digitalWrite (S3, LOW); fréquence = pulseIn (sensorOut, LOW); int R = fréquence; Serial.print ("Red ="); Serial.print (frequency); // impression de la fréquence de couleur ROUGE Serial.print (""); retard (50);
L'écriture sur S2 et S3 (BAS, HAUT) active les photodiodes bleues pour prendre les lectures pour la densité de couleur bleue.
DigitalWrite (S2, LOW); digitalWrite (S3, HIGH); fréquence = pulseIn (sensorOut, LOW); int B = fréquence; Serial.print ("Blue ="); Serial.print (fréquence); Serial.println ("");
L'écriture sur S2 et S3 (HIGH, HIGH) active les photodiodes vertes pour prendre les lectures pour la densité de couleur verte.
DigitalWrite (S2, HIGH); digitalWrite (S3, HIGH); // Lecture de la fréquence de sortie fréquence = pulseIn (sensorOut, LOW); int G = fréquence; Serial.print ("Vert ="); Serial.print (fréquence); Serial.print (""); retard (50);
Ensuite, les valeurs sont comparées pour prendre la décision de couleur. Les lectures sont différentes pour différentes configurations expérimentales car la distance de détection varie pour tout le monde lors de la configuration.
si (R <22 & R> 20 & G <29 & G> 27) { color = 1; // Red Serial.print ("La couleur détectée est ="); Serial.println ("RED"); } si (G <25 & G> 22 & B <22 & B> 19) { color = 2; // Orange Serial.println ("Orange"); } si (R <21 & R> 20 & G <28 & G> 25) { color = 3; // Green Serial.print ("La couleur détectée est ="); Serial.println ("VERT"); } si (R <38 & R> 24 & G <44 & G> 30) { color = 4; // Yellow Serial.print ("La couleur détectée est ="); Serial.println ("JAUNE"); } si (G <29 & G> 27 & B <22 & B> 19) { couleur = 5; // Blue Serial.print ("La couleur détectée est ="); Serial.println ("BLUE"); } couleur de retour; }
Ceci termine la machine de tri des couleurs utilisant TCS3200 et Arduino UNO. Vous pouvez également le programmer pour détecter plus de couleurs si nécessaire. Si vous avez des doutes ou avez des suggestions, écrivez sur notre forum ou commentez ci-dessous. Consultez également la vidéo ci-dessous.