Étape 1: Vue d’ensemble du logiciel
Animatron8.3 est organisé en 6 modules. L’initialisation et la définition des fonctions, des données et des tâches prennent plus de la moitié du code. C’est ma philosophie que les lecteurs de données code ; pas l’inverse. J’utilise « #defines » afin que le code est auto documenter. Il est plus facile de comprendre ce qui est RandomMove, plutôt que de se souvenir quel moyen 10.
Les modules sont les suivants :
- Initialisation des objets globaux et définitions
- Définition communément des fonctions utilisées. Je vais utiliser une fonction avec un nombre variable d’arguments, pour simplifier une étape commune - comme fournissant des progrès ou de sortie de débogage. Je vais également utiliser une fonction pour séparer un code complexe où il est utilisé, afin de rendre la circulation plus facile à comprendre.
- Le programme d’installation est où ma communication série est définie, où la carte SD est initialisée, où le contrôleur de servo est initialisé, etc....
- Le programme principal commence par la définition et l’initialisation des variables locales. Voici les variables utilisées dans l’exécution, qui ne devaient pas être défini pour l’initialisation et le programme d’installation. Comme le tableau de "Joueurs". Ce tableau est utilisé pour enregistrer l’étape actuelle de script et le temps avant la prochaine étape doit être exécutée. Ces autres tableaux sont utilisés pour synchroniser les différentes parties du programme ou pour garder une trace de quel script est en cours d’exécution (dans le cas où vous spécifiez qu’une seule instance est autorisée).
- Le module étiquetés démarrer l’exécution est où l’esquisse effectue une boucle sur toutes les commandes actives. Cependant tout d’abord, il effectue deux tâches. Il y a un interrupteur dédié connecté à l’Arduino, à travers laquelle le programme peut être suspendu. Il vérifie qu’ici. Deuxièmement, le pingouin peut réagir aux stimuli externe. Dans l’Instructable étape qui décrit ce module, vous pouvez le voir vérifier pour l’audio (c’est pas peu dire) et contrôle le servo de bouche en conséquence. C’est également le cas dans l’avenir, détecteurs de mouvement et suivi, éventuellement la reconnaissance vocale et conversation, et autres réactions seront vérifiées.
- Le reste du code exécute le script. Il y a un interrupteur... affaire de structure et le code pour chaque fonctionnalité est implémentée dans le bloc case.