poisso21.txt

                      Automate pour aquarium V 2.1
                      ----------------------------

                       (C) E+E CHAMOUARD 1998-2001


Ce document est a visualiser avec une police fixe (copie des affichages).


Historique :
------------
- Versions 1.x :
Premieres versions operationnelles avec horloge basee sur un compteur du 8031. Il etait donc necessaire d'assurer en permanence l'alimentation du 8031 avec une alimentation de secours par pile. De plus la prcision de l'horloge n'etait pas extraordinaire...
- Version 2.0 :
Version utilisant une horloge sauvegardee sur bus I2C dans un PCF8583.
- Version 2.1 :
Introduction du mode repas automatique et ameliorations de la version precedente (affichage des messages d'aide, simplification de la programmation des menus...).

Maniement general :
-------------------
L'automate comporte un clavier a 6 touches :
- 4 touches de direction (haut, bas, droite et gauche),
- 1 touche pour valider les entrees (enter),
- 1 touche pour abandonner l'operation ou pour retourner au menu (Menu/Cancel).
Le programme affiche fugitivement des messages d'aide. En regle generale, Enter valide la modification, Cancel permet de l'abandonner, gauche et droite changent le champs en cours de modification et haut et bas incrementent ou decrementent la donnee. 
Exemple : on est sur le menu 1, la case en haut a gauche clignote. Pour passer au menu 2 passer a droite puis en bas avec les touches directionnelles et appuyer sur Enter.
On trouvera dans cette documentation des copies des differents affichages :
                          --------------------
                          | Repas   Manuel   |
                          | Autom.  Menu 2   |
                          --------------------

Mise en route :
---------------
A la mise en route, l'automate pour aquarium affiche :
- un titre :
                          --------------------
                          |  Programmateur   |
                          |  pour Aquarium   |
                          --------------------
- la version du logiciel :
                          --------------------
                          |   Version 2.1    |
                          | (C) E.CHAMOUARD  |
                          --------------------
- puis connait deux comportements :
- soit les donnees contenues dans la memoire sauvegardee (PCF8583) sont valides (boot a chaud) :
                          --------------------
                          |   Programme OK   |
                          |   Boot a chaud   |
                          --------------------
  - le programme passe en mode automatique.
- soit les donnees de la memoire sauvegardee ne sont pas valides (boot a froid comme lors de la premiere mise en route) :
                          --------------------
                          | Pas de programme |
                          |   Boot a froid   |
                          --------------------
  - le programme passe au menu 1 en appliquant des donnees par defaut :
    - Repas manuel,
    - Heure=Lundi 00:00:00,
    - Programmation par defaut :
        - Tous les jours de 00:00 a 23:59 : Filtre et Reserve
        - En semaine     de 07:00 a 22:29 : Bulles
        - Le weekend     de 07:00 a 22:29 : Bulles
        - Tous les jours de 19:30 a 22:29 : Eclairage

Menu 1 :
--------
Le menu 1 comporte 4 options :
                          --------------------
                          | Repas   Manuel   |
                          | Autom.  Menu 2   |
                          --------------------
- Passage en mode repas (repas manuel),
- Passage en mode manuel,
- Passage en mode automatique,
- Passage au menu 2.

Menu 2 :
--------
Le menu 2 comporte 4 options :
                          --------------------
                          | Heure   Program. |
                          | Menu 1  Menu 3   |
                          --------------------
- Reglage de l'heure,
- Programmation des heures de fonctionnement,
- Passage au menu 1,
- Passage au menu 3.

Menu 3 :
--------
Le menu 3 comporte 4 options :
                          --------------------
                          | Rep.Opt Test     |
                          | Menu 1  Menu 2   |
                          --------------------
- Reglage des options du mode repas automatique,
- Mode de test,
- Passage au menu 1,
- Passage au menu 2.

Mode automatique :
------------------
Ce mode est accessible a partir du menu 1.
C'est le mode de reprise par defaut en cas de coupure secteur (a condition que les donnees dans la memoire sauvegardee soient valides).
Ainsi je peux utiliser la quatrieme sortie (appelee Reserve dans ce document) pour le chauffage d'un aquarium tropical (si le chauffage ne se remet pas en route, la duree de vie des poissons est comptee...).
C'est le mode normal de fonctionnement de l'automate. Dans ce mode, le programme explore en permanence la programmation des heures de fonctionnement et positionne les sorties (ON ou OFF) en fonction de l'heure et du jour.
L'affichage est de la forme :
                          --------------------
                          | Lun    15:23:30  |
                          | E=A B=A F=M R=M  |
                          --------------------
Avec :
- E le statut de la sortie Eclairage,
- B le statut de la sortie Bulles,
- F le statut de la sortie Filtre,
- R le statut de la sortie Reserve.
Et :
- A signifiant une sortie inactive (Arret),
- M signifiant une sortie active (Marche).
Les actions possibles sont :
- Retour au menu 1 en appuyant sur la touche Menu/Cancel,
- Passage en mode automatique (s'il est programm) en appuyant sur la touche Enter.

Mode repas automatique :
------------------------
Ce mode est accessible a partir du mode automatique.
C'est un mode qui permet de donner a manger aux poissons en :
- neutralisant les sorties filtre, bulles et reserve,
- forcant l'eclairage.
Ce mode automatique est centre autour d'un compte a rebours demarrant de la valeur programmee avec le mode de reglage des options du repas automatique. Des que le compte a rebours est arrive a echeance, on repasse en mode automatique.
Si la valeur programme est 0, ce mode n'est pas accessible.
L'affichage est de la forme :
                          --------------------
                          | Mode repas auto  |
                          |   Reste 05 min.  |
                          --------------------
La seule action possible est :
- Retour au mode automatique sans attendre la fin du compte a rebours en appuyant sur la touche Menu/Cancel.

Mode repas (manuel) :
---------------------
Ce mode est accessible a partir du menu 1.
C'est un mode qui permet de donner a manger aux poissons en :
- neutralisant les sorties filtre, bulles et reserve,
- forant l'eclairage.
Je n'utilise plus ce mode depuis la mise au point du mode repas automatique.
L'affichage est de la forme :
                          --------------------
                          |    Mode repas    |
                          |   Menu = Sortie  |
                          --------------------
La seule action possible est :
- Retour au menu 1 en appuyant sur la touche Menu/Cancel (pour limiter le nombre de touches a frapper, l'option mode automatique du menu 1 est automatiquement preselectionnee).

Mode manuel :
-------------
Ce mode est accessible a partir du menu 1.
C'est un mode utilise principalement lors de l'entretien de l'aquarium, lorsque l'on souhaite avoir la main sur les differentes fonctions (forcer l'eclairage, couper le systeme de filtrage si la pompe n'est plus alimentee en eau,...).
L'affichage est de la forme :
                          --------------------
                          |   Menu = Sortie  |
                          | E=A B=A F=M R=M  |
                          --------------------
Avec :
- E le statut de la sortie Eclairage,
- B le statut de la sortie Bulles,
- F le statut de la sortie Filtre,
- R le statut de la sortie Reserve.
Et :
- A signifiant une sortie inactive (Arret),
- M signifiant une sortie active (Marche).
Les actions possibles sont :
- Mise en marche ou arret de la fonction selectionnee par le curseur en appuyant sur les touches haut ou bas,
- Choix de la fonction selectionnee en appuyant sur les touches gauche ou droite,
- Retour au menu 1 en appuyant sur la touche Menu/Cancel.

Reglage de l'heure :
--------------------
Ce mode est accessible a partir du menu 2.
C'est le mode permettant la mise  l'heure de l'horloge sauvegardee. Elle doit etre effectuee lors de la premiere mise en route.
L'affichage est de la forme :
                          --------------------
                          | Jeu    12:15:00  |
                          |  Taper puis Menu |
                          --------------------
Menu permet la validation de l'heure affichee.
L'horloge redemarre lors de l'appui sur la touche Menu. Les secondes sont automatiquement placees a 0. Il est donc tres facile de synchroniser l'horloge avec une reference (horloge parlante par exemple).
Les actions possibles sont :
- Retour au menu 2 avec validation de l'heure programmee en appuyant sur la touche Menu,
- Incrementation ou decrementation du Jour, Heure ou Minute en appuyant sur les touches haut ou bas,
- Deplacement entre le jour/l'heure ou la minute en appuyant sur les touches droite ou gauche.

Programmation des heures de fonctionnement :
--------------------------------------------
Ce mode est accessible a partir du menu 2.
Il permet de programmer l'automate. Actuellement le programme gere 20 lignes de programmation. Cette version du logiciel ne teste pas le depassement de ces 20 lignes de programme et les resultats ne sont pas garantis au dela. Mais 20 lignes suffisent amplement...
L'affichage est de la forme :
                          --------------------
                          | E B F R Mercredi |
                          | De 07:00 a 20:59 |
                          --------------------
Avec :
- E, B, F, R l'etat que doivent prendre les sorties (l'etat ON correspond a l'affichage de la sortie concernee et l'etat OFF correspond a l'affichage d'un '.'),
- le jour ou les jours de fonctionnement (lundi a dimanche, semaine donc du lundi au vendredi, weekend donc samedi et dimanche, tous pour tous les jours de la semaine),
- les heures de debut et de fin de cette programmation.
Exemple, l'affichage :
                          --------------------
                          | E . F . Mercredi |
                          | De 07:00 a 20:59 |
                          --------------------
correspond a une programmation de l'eclairage et du filtre, tous les jours de la semaine (lundi au vendredi inclus) de 7 heures du matin a 21 heures le soir.
Les differentes actions possibles sont :
- Validation de l'entree courante en appuyant sur la touche Enter,
- Sortie vers le menu 2 en appuyant sur la touche Menu/Cancel,
- Passage d'un champs  l'autre en appuyant sur les touches droite ou gauche,
- Mise en route ou arret de la fonction (Eclairage, Bulles, Filtre ou Reserve) en appuyant sur les touches haut ou bas (le curseur etant positionne sur la fonction a modifier),
- Incrementation ou dcrementation du jour (lundi au dimanche, semaine, weekend ou tous les jours), d'une heure ou d'une minute de debut ou de fin de fonctionnement en appuyant sur les touches Haut ou Bas (le curseur etant positionne sur la donnee a modifier).
Deroulement d'une programmation :
- A l'entree dans ce mode, apres les messages d'aide, le programme affiche la premiere ligne de programmation.
- On modifie (si besoin) cette ligne de programmation et on la valide par appui sur la touche Enter.
- Le programme affiche alors la ligne de programmation suivante et ainsi de suite. Si la ligne n'existait pas dans la programmation existante, le programme affiche une ligne par defaut.
- La dernire ligne etant validee, il suffit de taper sur la touche Menu/Cancel pour revenir au menu 2.
- Si on souhaite effacer une ligne de programmation, il suffit de valider la ligne avec toutes les fonctions desactivees (E, B, F et R eteints soit remplaces par des '.').
Pour verifier une programmation, il suffit de lancer le mode de programmation et d'appuyer sur la toucher Enter, pour verifier chaque ligne, jusqu'a la derniere ligne (qui a toutes les fonctions desactivees par defaut) et d'appuyer sur Menu/Cancel.
Le programme interdit evidemment d'avoir une heure de fin inferieure a une heure de debut.

Reglage des options du repas (Rep.Opt) :
----------------------------------------
Ce mode est accessible a partir du menu 3.
Ce mode permet de programmer (donc d'installer) un mode repas automatique. 
L'affichage est de la forme :
                          --------------------
                          | Duree repas : 12 |
                          |  Taper puis Menu |
                          --------------------
La donnee a programmer est la duree du mode repas automatique en minutes (max 29 minutes). Une valeur de 0 correspond a un mode repas automatique desactive.
Les actions possibles sont :
- Retour au menu 3 avec validation de la donnee programmee en appuyant sur la touche Menu,
- Incrementation ou decrementation de la duree du mode repas automatique en appuyant sur les touches haut ou bas.

Mode de test :
--------------
Ce mode est accessible a partir du menu 3.
Ce mode permet un test rapide des differentes sorties de l'automate. Il est aussi possible d'utiliser le mode manuel et je pense enlever ce mode dans les versions futures du logiciel.
Le test consite a passer successivement toutes les configurations possibles des sorties. On change de configuration toutes les 2 secondes. L'eclairage change d'etat le plus rapidement (toutes les 2 secondes) et la reserve le plus lentement (toutes les 32 secondes). La donnee " Out " de l'affichage est un indicateur de l'avancement du test (passe de 0 a F et retourne a 0).
L'affichage est de la forme :
                          --------------------
                          | Mode test  Out=7 |
                          |   Menu = Sortie  |
                          --------------------
La seule action possible est :
- Retour au menu 3 en appuyant sur la touche Menu/Cancel.

Versions prochaines :
---------------------
Les prochaines versions du logiciel inclueront :
- une securite accrue par test des erreurs de communication I2C,
- ajout d'un cancel au mode de reglage de l'heure,
- un test pour brider le nombre de lignes de commande,
- peut-etre un fonctionnement en RAM interne pour pouvoir simplifier la realisation (carte processeur plus simple).

