Machine à états finis sur un Arduino (2 / 7 étapes)

Étape 2: Mise en œuvre de la FSM manuellement sur un arduino

Quand on veut implémenter ce comportement sur l’Arduino, le code peut ressembler à cette substance. Le code n’est rien de trop spécial, il suffit de l’instruction switch-case contient une case pour chaque état possible et vérifie l’intérieur là si les conditions de transition sont remplies. Dans l’affirmative, l’État est modifié.

Comme vous pouvez le voir, le code est assez simple. Mais pouvez-vous imaginer ce qui se passe quand vous n’avez pas 2, mais 10 ou 100 États ? Ce n’est pas rare pour un FSM du monde réel. Le code obtient illisible et peut atteindre des longueurs de plusieurs mille lignes. En outre, normalement, nous voulons plan le FSM de manière graphique, parce que nous devons être en mesure de voir ce qu’il fait réellement aussi vite que possible. Ensuite, nous devons toujours la machine de l’état actuel du code, et nous devons être sûrs que notre conception graphique et notre code manuscrite en fait fassent la même chose. Cela peut être un énorme problème.
Pensez-y : pour chaque État a notre FSM, notre code a besoin d’une instruction « case », et pour chaque transition vers d’autres États, nous avons besoin d’une si ou une instruction case là-dedans. Si nous aurions une machine d’État où chaque État peut atteindre tous les autres États (cas le plus extrême), notre code grandirait avec carré de n, où n est le nombre d’États. Ainsi, nous aurions 3 cas pour 3 États, avec 3 ifs à l’intérieur, donc la longueur du code serait proportionnelle à 9. Lorsque nous avons 10 États, ce qui n’est pas beaucoup plus, la longueur du code serait proportionnelle à 100, et avec 20 Etats, le code est déjà quatre fois plus long. Une représentation graphique de ce FSM serait plus facile à saisir, et ce serait bien si nous n’aurions pas à gérer toutes ces déclarations de cas de commutateur. Si vous êtes familier avec les cartes qui décrivent les schémas pour les simulateurs – nous ne voudrais pas de concevoir des schémas avec cartes, soit. Alors, que faisons-nous au lieu de cela ? Voir dans la prochaine étape !

Articles Liés

Machine à états finis Arduino et multitâches

Machine à états finis Arduino et multitâches

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ém
Bateau pilote automatique - basée sur l’Arduino

Bateau pilote automatique - basée sur l’Arduino

Voici comment construire un pilote automatique qui peut diriger un RC bateau à waypoints ! Il est facile à construire, basé sur la populaire plate-forme Arduino et idéal pour les amateurs qui veulent certaine pratique soudure ! Avec ce pilote automat
Calculatrice simple basée sur l’Arduino MEGA

Calculatrice simple basée sur l’Arduino MEGA

De nos jours, faire des calculs n'est pas un problème du tout. Calculatrices puissants peuvent être achetés pour quelques euros ou faciles à installer sur les téléphones et les ordinateurs. Cependant, nous avons décidé de transformer notre Arduino en
Tachymètre optique axée sur l’Arduino

Tachymètre optique axée sur l’Arduino

plus de dix ans, j'ai mis en place une page web avec des instructions détaillées sur la construction d'un moteur électrique simple basé sur l'un de monde télévisé de le Beakman. Je l'ai appelé la page "moteur électrique de Beakman" et au fil des
Suivre votre voiture avec un Lojack axée sur l’Arduino

Suivre votre voiture avec un Lojack axée sur l’Arduino

Vol de voiture est un frein réel ! Augmentez vos chances de récupérer votre voiture en installant ce tracker simple axée sur l'Arduino dans votre voiture.Ce projet est assez simple et serait un bon projet pour un nouveau programmeur Arduino vous cher
Présentation Climaduino - Thermostat axée sur l’Arduino vous contrôler depuis votre téléphone !

Présentation Climaduino - Thermostat axée sur l’Arduino vous contrôler depuis votre téléphone !

Mise à jour :Il y a une nouvelle version de la Climaduino et le contrôleur Climaduino avec des changements très importants.Prend en charge plusieurs zonesUtilise la Arduino YúnFonctionne avec a/c centraleCommunique à l'aide du protocole MQTT (peut in
Animation sur un Arduino et K.K. Bossa chanson

Animation sur un Arduino et K.K. Bossa chanson

Que fait-elle ?Joue la chanson K.K. Bossa de Animal Crossing et une animation à l'aide d'un Arduino Uno, un piezo et un 16 X 2 LCD.L'animation est basée sur des Animal Crossing New Leaf.Le top vidéo est avec les villageois masculins et bas vidéo avec
Chronométrage sur ESP8266 & arduino uno sans un RTC (Real Time CLock) ?

Chronométrage sur ESP8266 & arduino uno sans un RTC (Real Time CLock) ?

Comme le titre l'indique, j'ai testé le suivi des temps sur mon arduino uno et l'ESP8266 / conseils Wemos D1 (programmés avec arduino) sans l'utilisation de bibliothèques, internet ou une unité de CCF. Beaucoup de grands instructables ici sur le site
Vous vérifier l’état de wifi avec Arduino Yun

Vous vérifier l’état de wifi avec Arduino Yun

Dans ce tutoriel, vous apprendrez comment obtenir votre Arduino Yun vers le haut et en cours d'exécution afin que vous puissiez exécuter des croquis d'exemple pour le Yun. Dans ce cas, je vais vous montrer comment faire pour exécuter l'exemple WiFiSt
CONDUIT comme lightsensor sur l’arduino

CONDUIT comme lightsensor sur l’arduino

je vous écris cette instructable comme une réponse à certaines des questions de Paolo.[J'ai fait quelques expériences plus sur ce sujet dans ce : Ible]Il n'est pas difficile à utiliser une une LED comme un capteur sur l'Arduino. Il suffit de mettre u
Utilisez vos capteurs de Téléphone android sur l’arduino !

Utilisez vos capteurs de Téléphone android sur l’arduino !

Bonjour, ceci est mon tout premier étape par étape instructable et aujourd'hui, nous allons apprendre comment les capteurs dans votre smartphone android peuvent communiquer avec votre arduino.Dans les smartphones modernes, il y a beaucoup de capteurs
Verre les ordinateurs basés sur l’Arduino Uno

Verre les ordinateurs basés sur l’Arduino Uno

Pour mon projet diplômés de masters ("Gowing ordinateurs, connexion corps, Cutting the Cord") de Konstfack Collège d'artisanat et de Design (céramique et verre/CRAFT), j'ai fait 3 verre ordinateurs basés sur les spécifications de l'Arduino Uno.
Une horloge de QR-code axée sur l’arduino

Une horloge de QR-code axée sur l’arduino

J'ai eu cette idée pendant un certain temps, mais j'ai jamais eu la chance de l'essayer. Vendredi, un collègue m'a donné un écran LCD pour Arduino, et j'ai pensé que c'était le bon moment pour construire une horloge qui communiquent à la fois par le
Plusieurs LED clignotant sur l’Arduino

Plusieurs LED clignotant sur l’Arduino

dans ce tutoriel, je vais vous montrer comment faire plusieurs LEDs clignotent avec Arduino.  Vous aurez besoin de trois LEDs, fils de raccordement, maquette et Arduino.Étape 1: Programmer l'Arduino Maintenant vous devez coller le code suivant dans l