Une machine à états finis est diagramme utilisé pour organiser les tâches pour contrôler plusieurs systèmes insdustrial (production, radiateur, pompe, convoyeurs...).
Tous ces systèmes comprennent des États (associé à une « action », c’est à dire: Démarrer, exécuter, arrêter) certains d'entre eux sont « wanted » ou dit « stable », d’autres sont « indésirables » ou instables. La méthode de machine à états finis ou diagramme organise des États seulement stables. Quand un déclencheur ou une transition est vraie (c’est à dire: capteur, bouton enfoncé), l’état antérieur est désactivée et l’état suivant est mis en marche.
Pour plus d’informations :
http://en.wikipedia.org/wiki/Finite-state_machine
Autres diagrammes ont presque le même fonctionnement : machine de Moore, machine de Mealy, diagramme de SFC (GRAFCET en français).
Dans ce instructable je vais parler sur le point de mettre en œuvre une machine à États dans un arduino uno à l’aide de la bibliothèque de SM. Cette bibliothèque vous permet d’exécuter « États concurent » ou tâches parallèles (machines de temps réel): vous pouvez contrôler de nombreux autre machine ou système indépendant avec seulement un microcontrôleur. Il est très puissant et n’a pas besoin de trop de lignes de code.
Dans mon précédent instructables, j’utilise un moyen simple d’exécuter une machine à états finis sur mon arduino lumière variateur (sans n’importe quelle bibliothèque spéciale), mais je pense qu’il est impossible d’exécuter l’État concurent et il est très difficile d’utiliser l’arrêt d’urgence (essentiel et utile dans les systèmes d’indstrial pour la sécurité).
L’éditeur, j’ai utilisé, dessine des diagrammes UML et SYSML ou2 règles et fait finies affirme machines comme un mélange de Moore/Mealy.
J’ai implémenté 3 exemples de « réels » de machine d’État pour explorer la plupart des fonctionnalités de la bibliothèque SM.h.
PS: Cette méthode est adaptée, commun et bien connu des gens qui travaillent dans l’automatisation, de nombreux développeur informatique ne l’aime. Consultez l’article suivant :