Étape 5: Logiciel/programmation
Logique de Touch
Une des caractéristiques « cool-to-have » je voulais mettre en place était l’interrupteur tactile capacitif. Je n’avais jamais travaillé avec ce type d’entrée avant, mais une fois de plus les bibliothèques arduino fait vraiment simplement. Vous pouvez télécharger la bibliothèque j’ai utilisé ici : http://playground.arduino.cc//Main/CapacitiveSensor?from=Main.CapSense . Suffit d’extraire d’exemplaire à votre dossier de bibliothèques dans votre Arduino répertoire d’installation.
J’ai simplement ajouté des fonctionnalités de verrouillage afin que l’état du système pourrait inverser un chacun touch-ARRET.
La prémisse de la sensation de toucher est assez simple. L’IC pousse la broche Tx élevée et puis fois combien de temps il faut pour la broche Rx aller haut ainsi. Comme vous apportez votre doigt plus près de la plaque de métal touch, vous ajoutez capacité à la ligne et le temps qu’il faut pour Rx d’aller haut augmente. En jouant sur les seuils, vous pouvez régler le code fonctionne avec votre capteur.
CONDUIT de randomisation
J’ai trouvé quelques moyens astucieux et certains pas si intelligent de randomisant l’estompage des LEDs. Cependant, même le meilleur on qu'avait deux défauts principaux dans mon esprit, j’ai trouvé :
1. les LED a passé trop de temps dans la transition et le blanc
2. à l’occasion des trois canaux traverserait la valeur 0, ce qui provoquerait une brève, mais très ennuyeux scintillement des ténèbres.
Pour éviter ces et autres plaintes mineures, j’ai opté pour aller avec ma propre conception. Ce que j’ai fait au lieu de randomisant les 3 canaux, j’ai créé un tableau qui contenue 13 coloris différents que j’ai aimé et ensuite fait la transition en douceur entre les entrées aléatoires dans ce tableau. De cette façon, que j’ai été en mesure d’éviter tous les voyants éteindre en même temps, spécifier à quelle vitesse ils passés et combien de temps ils « reposaient » sur chaque couleur, et je pouvais influencer certaines couleurs que j’ai aimé le plus.
Une fois que j’ai été heureux avec le code sur l’Arduino, j’ai simplement changé les définitions de broche pour correspondre à la ATTINY, programmé de l’IC à l’aide de l’Arduino (voir le lien : http://hlt.media.mit.edu/?p=1695)et ensuite remettre le ATTINY sur ma maquette.
Le code attaché a beaucoup de déclarations impression et certaines fonctionnalités plus âgées que j’ai enlevé mais j’ai essayé de commenter abondamment le débogage. Je voudrais savoir si vous avez des questions ou des commentaires !
Voir code attaché (j’ai dû renommer la .ino arduino en .txt parce qu’il n’était pas de me laisser Télécharger autrement)