Étape 6: Le génie de la lampe
euh, si vous pouvez penser d’une prestation, faites le moi savoir, j’ai eu des ennuis avec celui-là.
J’ai inclus le code dans un fichier texte, vous devez l’ouvrir dans un éditeur de texte, copiez et collez-le dans l’environnement Arduino. Ou, si vous le souhaitez, vous pouvez simplement ouvrir le logiciel Arduino et suivre comme nous allons l’écrire.
Pour la lampe de l’émulation j’utilise ma bibliothèque Moodlamp personnalisé, vous pouvez obtenir les fichiers de la bibliothèque et la documentation sur mon autre RGB Instructable, RGB Moodlamp avec bibliothèque personnalisée. Sinon vous pouvez simplement copier le capteur couleur handling code et cette sortie à votre lampe RGB de votre façon préférée.
Nous allons donc regarder le code.
Commencez avec la première image, ou suivre avec le fichier texte.
Nous commençons par une instruction include, suivie de quelques déclarations.
L’instruction include est pour la bibliothèque Moodlamp. La déclaration sous est juste en disant que notre instance de Moodlamp s’appellera lampe.
Puis nous avons mis en place quelques détenteurs de place.
Le premier est un tableau que nous allons utiliser pour résoudre les broches de la LED est connectées à. N’oubliez pas que nous avons connecté nos lumières de capteur à ces mêmes numéros de broche.
Les autres devraient être suffisamment claire par les notes dans l’image, sinon, n’ayez crainte, ils sont juste quelques détenteurs de place pour les valeurs que nous utiliserons plus tard.
L’espace réservé pour la lecture moyenne n’est pas spécial, il a obtenu sa propre image, parce qu’il a été presque oubliée.
Une fois toutes nos déclarations ont été faites, nous aurons maintenant à écrire la fonction de réglage. Nous commençons en assignant notre capteur de broches de sortie. Il est inutile de déclarer l’entrée analogique du capteur, et les broches de lampes sont pris en charge par la bibliothèque Moodlamp.
Puis nous commençons communication série de sorte que nous pouvons obtenir des informations de débogage de retour de notre lampe.
Après cela, nous pouvons procéder à notre fonction de boucle. La boucle est le code que l’Arduino fonctionnera encore et encore. Comme vous pouvez le voir, nous demandons quelques fonctions.
Nous avons d’abord appeler checkBalance pour voir si l’équilibre a été défini et réglez-le si nécessaire. (Quand il s’allume)
Ensuite, nous vérifions la couleur sous le capteur. Dès que nous aurons une couleur, nous l’imprimer à l’écran et puis définissez la couleur de la lampe. Le dernier appel à getReading ne fait rien d’utile à tous, laissé là par hasard. Eh bien, je pourrais prétendre que je gardais juste la lampe d’être trop paresseux.
Nous allons donc regarder les différentes fonctions.
CheckBalance est assez simple, il vérifie pour voir si il existe un équilibre, et si ce n’est pas, puis il affecte la valeur en appelant la fonction setBalance.
Penchons-nous sur la fonction setBalance, c’est le plus long.
Tout d’abord nous impulsions de la lumière rouge deux fois et puis blanc à l’aide de la bibliothèque Moodlamp. Il s’agit d’avertir l’opérateur que le scan blanc est sur le point d’avoir lieu. Laissant la lampe blanche (tous trois couleur sur) laisse autant de lumière parasite que possible pour nos scans de base qui les maintient tout aussi équilibré.
En quoi consiste la section suivante est lumière, le rouge, puis vert, puis vert LED tout en prenant un capteur lire à chaque étape. Cela nous donne quelques informations sur la quantité de chaque couleur a été renvoyée vers le capteur. Ces lectures soient élevées comme c’est blanc, qui doit refléter beaucoup pour chaque couleur.
Si le sens n’est pas déduit, vous devez placer un échantillon de blancs (une carte ou un document) sous le capteur, alors que cette analyse a lieu. Le tout dure environ trois secondes. L’analyse inférieure à un.
Lorsque vous avez terminé avec la numérisation de blanc, on analysera noir. Il y a encore quelques feux de détresse, un retard, puis l’analyse. Ici, vous voudrez un échantillon noir ou gris sous la lampe. Nous allons parler un peu plus sur ce que votre échantillon devrait être plus tard.
Une fois que les scans d’équilibrage sont terminées, la lampe s’éteint et nous définissons la valeur booléenne de si oui ou non des valeurs de pondération ont été établis à true.
Une fois que les soldes ont été fixés, notre programme va maintenant commencer à vérifier la couleur sous le capteur, les chances sont que dans le monde physique vous encore n’ont pas retiré de votre échantillon noir, mais jamais l’esprit, que nous parlions le code.
Si vous avez suivi ce qui se passait avec le scan d’équilibrage, nous sommes assez bien faire la même chose. La grande différence est que nous utilisons un peu de maths pour équilibrer notre lecture maintenant. Fondamentalement, nous allons changer notre lecture basée sur les lectures possibles maximum et minimum, et ce qui en fait une valeur nous pouvons utiliser, à savoir entre 0-255(roughly). Qui nous donne une représentation assez juste de la couleur.
Après cela, nous avons simplement définir la couleur. Nous devons juste tweek les numéros un peu, parce que le calcul ci-dessus revient souvent supérieure ou inférieure à nos valeurs acceptables. Puis nous avons mis les rouges verts et bleus les variables et utiliser la bibliothèque Moodlamp pour faciliter l’affichage de la couleur.
J’ai presque oublié de mentionner la fonction getReading, qui obtient une moyenne de lecture pour fois nombre de lectures. Pas strictement nécessaire, comme une seule lecture semble suffisant, mais je ne savais pas que dans le temps.
Les deux fonctions d’impression sont pour des fins de débogage et imprimez nos lectures sur le port série. Oui je sais j’ai appeler l’une dans la boucle, mais vous n’avez pas à. J’aime juste parfois des numéros de défilement. De plus, j’étais sortie de traitement pendant l’essai, pour voir exactement quelle couleur le capteur voit. Je vais essayer de trouver le temps de documenter et de télécharger ce croquis dans un proche avenir, mais pour l’instant, vous êtes sur votre propre. (Pas difficile si vous êtes familiarisé avec le traitement et la communication série)
Une fois que vous avez fini d’écrire votre code, transférez-le vers la lampe et commencer à jouer. En jouant, je veux dire essais... mais en s’amusant moyen.