Aller à : navigation, rechercher

Trieur de couleurs

Révision de 6 février 2019 à 14:51 par Admin (discuter | contributions)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
TrieurCouleur-2.gif

Description :

Cette fiche détaille la mise en œuvre du trieur de couleurs de Luca Nervetti (Cf. Sources). Malgré son apparente simplicité, ce projet présente deux difficultés qui le réserve plutôt aux personnes déjà à l'aise avec Arduino et avec le fer à souder. Il faudra, en effet, non seulement alimenter correctement l’ensemble mais surtout dessouder les diodes du capteur. (voir plus bas)

Le principe du trieur est le suivant : L’Arduino analyse les données reçues du capteur de couleurs et transmet ensuite une commande aux servomoteurs. Le servo supérieur assure le positionnement de la bille devant le capteur. Lorsqu’une couleur est détectée, il se déplace de manière à laisser passer la bille qui tombe alors dans une gouttière dont l’orientation est contrôlée par le servo inférieur. Il faudra au préalable placer des conteneurs afin de réceptionner convenablement les différentes couleurs selon les différents angles.

Approche physique de la couleur : Un détour sur Wikipédia nous apprend que la lumière est un rayonnement électromagnétique défini par son analyse spectrale, c'est-à-dire la répartition de l'intensité en fonction de la longueur d'onde. Un rayonnement monochromatique se définit comme ayant toute son énergie dans une seule longueur d'onde, et on peut lui faire correspondre une couleur.

Pour détecter une couleur le capteur TCS3200 fait briller une lumière blanche sur un objet, puis enregistre la couleur réfléchie. Grâce à des filtres de couleur rouge, vert et bleu, la photodiode au centre du capteur convertit la quantité de lumière en courant. Le convertisseur convertit ensuite le courant en tension que notre Arduino peut lire.

Matériel nécessaire :

  • Une imprimante 3D servira à imprimer 10 éléments. La partie supérieure devra être imprimée en noir.
  • Deux servomoteurs miniatures de type SG90 (j’ai utilisé deux es08ma II) avec leurs palonniers et leurs vis.
  • Un Arduino Nano (un Uno fonctionnera aussi)
  • Un capteur de couleur avec une puce TCS3200 (j’ai utilisé la version de DFRobot) Attention, tous les modèles à base de TCS3200 ne sont pas compatibles avec ce projet du fait de tailles différentes.
  • Une alimentation secteur pour l’arduino
  • Une alimentation pour le capteur et les servomoteurs
  • Un fer à souder et éventuellement une pompe à dessouder
  • Une quinzaine de câbles (M/F) et une plaque d’essai (uniquement pour les rails d’alimentation) seront nécessaires.
  • Des billes de couleur de diamètre 14mm (j’ai utilisé des dragibus) Il faudra aussi fixer le capteur dans le PLA (deux petites vis à bois suffisent)

    Montage :

    Les branchements vont consister à relier les broches du capteur de couleur (à gauche) à celles de l’Arduino (à droite) :

    S0 8
    S1 9
    S2 12
    S3 11
    Out 10

    Le servo 1 inférieur est relié à la broche 6. Le servo 2 supérieur est relié à la broche 5.

    Pour alimenter l’Arduino, le capteur, les deux servomoteurs et la del, les 500mA d’un port USB 2 ne suffiront pas, d’autant moins que ces éléments doivent fonctionner de concert. Une solution consiste à alimenter séparément les servos et à relier toutes les masses. Il faut mettre en place un rail de masse et un rail d’alimentation en se servant de la plaque d’essai. J’ai utilisé une alimentation secteur 5V 2A classique pour l’arduino et une alimentation 5v pour les servos et le capteur. J’utilise, pour ma part, une alimentation PS1502A qui dispose d’un potentiomètre pour réguler la tension.

    Le design de Luca Nervetti implique de dessouder les 4 DEL du capteurs et d’en reporter une, sur le côté, dans un trou prévu à cet effet. Son idée est d’isoler le capteur des pollutions lumineuses tout en rapprochant autant que possible la photodiode de l’objet à scanner. (Voir photo ci-dessous) CapteurDiodes.jpg

    Après avoir téléverser le code[1], il faudra calibrer les positions des servomoteurs en sachant que ces derniers ont une amplitude de 0° à 180°. Une manière simple consiste, après avoir observé leur comportement, à repositionner manuellement le palonnier en fonction de la position désiré. Remarque : A cause d’un phénomène de pic de tension au démarrage les moteurs peuvent avoir des comportements irréguliers les premières secondes. Pour information, le code reconnaît les quatre premières nouvelles couleurs qu’on lui présente. Si vous utilisez d’autres couleurs que ces quatre premières, il faudra redémarrer l’Arduino.

    Sources :

    Le projet original de Luca Nervetti alias lunix80 : https://www.thingiverse.com/thing:2762922

    Lien direct vers le fichier INO : https://www.thingiverse.com/asset:71627

    La licence du projet est de type Attribution 3.0 Unported (CC BY 3.0)

    Ce projet a été reproduit par les animateurs multimédia de la médiathèque du Bois Fleuri à Lormont