Pour un projet de robot qui a la capacité de résoudre un Rubik’s cube, j’ai fabriqué un capteur de couleur pour analyser le cube. Le robot complet ne fonctionne pas mais je suis assez fière du capteur de couleurs.
Le principe est d’analyser la surface en l’éclairant successivement par trois couleurs (rouge, vert, bleu). Et de récupérer la valeur de la lumière réfléchie. Selon la couleur de la surface et de la couleur de la DEL allumée la valeur sera différente.
Une DEL RVB (rouge, vert, bleu) pour l’éclairage. Plus petit que trois DEL.
Pour mesurer l’intensité lumineuse on utilise une photorésistance branchée en pont diviseur.
La variation de tension constituera notre information. Elle varie entre 0V et 5V. La valeur obtenue par la photorésistance est analogique. On a donc juste a recevoir la valeur avec un microcontrôleur, comme un Arduino.
Le fil est un peu long, des perturbations modifiait la valeur qui était donc fausse. J’ai donc blinder le fil avec du papier d’aluminium de cuisine.
Pour connaître la couleur de la surface on doit initialiser le capteur en mesurant la lumière sur une surface noir puis blanche. Ces valeurs peuvent changer selon la lumière ambiante.
Avec ces deux valeurs, on calcule des « pourcentages » de couleurs. Finalement on compare les trois pourcentages de couleur pour indiquer la couleur de la surface qui est une des 6 couleurs du cube (Noir, Bleu, Jaune, Orange, Rouge, Vert).
Donc la c’est la photo de capteur en phase de test. Il a évolué après.
Je posterais une photo du montage un peu plus évolue plus tard avec une vidéo sûrement.
Mais pour l’utiliser il faut certainement le recalibrer pour votre capteur. En modifiant les valeurs de la dernière fonction couleurCube().
Le code que voilà :