Étape 3: La « magie » derrière le contrôle de l’agitation de Transfiguration
La plupart de la magie est juste bonne programmation. Les noms des classes sont choisies pour rendre le FiniteStateMachine code lisible par n’importe qui. Nous aurions donné État pour Look et Edge pour une Situation, mais le code est juste plus difficile à comprendre. Transfiguration.h est juste cette même idée. Vous devez télécharger le fichier Transfiguration.h et l’ajouter dans vos fichiers de projet. C’est généralement le même dossier que votre fichier .ino. Vous devrez arrêter et redémarrer l’environnement Arduino avant qu’il vous permet d’éditer le fichier dans l’environnement Arduino.
Vous n’avez pas besoin de faire les recommandations suivantes, que c’est juste pour ceux intéressés par ce qui est dans le fichier Transfiguration.h
Pragma est aidant une fois seulement le compilateur de savoir utiliser uniquement ce fichier une fois.
Inclut dans la partie supérieure apportent dans le NeoPixel, CurieIMU, CurieTime et les fonctions I2C.
Inclure le vecteur est spécial. C’est un ensemble de routines qui permettent de conserver une collection de choses. Dans notre cas, c’est une collection de longueurs ou couleurs, ou ressemble. Essentiellement, chaque fois que vous voyez vector, vous pouvez lire comme une collection de BlahBlah.
Classe de couleur est vraiment le côté logiciel de garder le rouge, le vert et le bleu des couleurs dans votre palette.
Couleurs est vraiment une collection de couleurs pour un Look. Il a une fonction magique appelée transfigurer qui calcule une couleur entre votre dernière couleur et votre couleur actuelle au fil du temps. La transition d’une couleur à l’autre n’est donc pas brusque.
Longueur juste stocke la palette longueur d’options.
Des longueurs comme couleurs est une collection de longueur et a une fonction de transfiguration qui n’est pas aussi compliquée que de couleurs.
Un coup d’oeil comme vous vous en doutez a couleurs et longueurs. Donc, bien que le code de démonstration pour la Machine à états finis utilise uniquement une couleur et la longueur. Ce code est prêt pour autant que l’Arduino 101 peut gérer.
#defines sont juste un moyen de rendre les constantes qui prennent pas de place sur votre Arduino.
Situation est l’idée générale d’une situation qui peut se produire. La touche de fonction est constatéedans aura la valeur true si la situation s’est produite.
Étape, Spin et le temps sont des versions spéciales juste de la Situation. Certains programmeurs avancés peuvent se demander pourquoi la Situation, étape, Spin et l’heure sont fait de cette façon, et la réponse est simple lisibilité. Heureux d’en discuter plus en détail dans un courriel.
Transition est une classe qui conserve l’aspect actuel, le prochain coup d’oeil et quelle situation s’est produite ce qui provoque la transition.
updateStepCount et eventCallback ont raison de la CurieIMU -> démo stepCount, moins certaines Outptut série.
Enfin la classe Occasion. Une collection de regards, une collection de Situations et une collection de règle de transition permettant de passer d’un État à un autre.
getPeg, setPeg sont juste un moyen de noter un temps quand quelque chose s’est produite. Nous considérer comme définissant une cheville dans le sol dans le temps et puis voir comment loin de cette cheville vous êtes.
Boucle traverse juste la situation pour voir si tout est survenu et vérifiant que le Look correspond à une transition.
Le programme d’installation fait toute l’installation pour l’IMU, le temps, le fil et le NeoPixel
Étonnamment, c’est tout. C’est 256 lignes de code, mais vraiment juste mise en œuvre des idées que chacun est logique.