Blame view

CR.md 6.3 KB
73f2ae9d   Geoffrey PREUD'HOMME   Outils de rédaction
1
2
3
  # Tutorat de microprocesseurs - Sujet 8 - Thermostat
  ## DJERABA Taky - HUBERT Thomas - PREUD'HOMME Geoffrey
  
b469a253   Geoffrey PREUD'HOMME   Récupération de c...
4
  # Sujet
73f2ae9d   Geoffrey PREUD'HOMME   Outils de rédaction
5
  
b469a253   Geoffrey PREUD'HOMME   Récupération de c...
6
  <!-- TODO Faire un bref résumé de ce qu'on nous demande -->
73f2ae9d   Geoffrey PREUD'HOMME   Outils de rédaction
7
  
39080e62   Taky Djeraba   Petites Modifs du...
8
9
  Une des fonctionnalitées prévu consiste à controler l'allumage de la chaudière en fonction de la température mesurée. Si celle-ci est 0.5°C inférieure à la consigne fixée, la chaudière s'allume. Si la température mesurée dépasse la consigne de 0.5°C, la chaudière s'eteint.
  
b469a253   Geoffrey PREUD'HOMME   Récupération de c...
10
  # Architecture matérielle
73f2ae9d   Geoffrey PREUD'HOMME   Outils de rédaction
11
  
b469a253   Geoffrey PREUD'HOMME   Récupération de c...
12
  ## Entrées
73f2ae9d   Geoffrey PREUD'HOMME   Outils de rédaction
13
  
733c078a   Geoffrey PREUD'HOMME   Configuration des...
14
  On utilisera 4 boutons : pour valider, revenir en arrière, incrémenter et décrémenter. Ils sont branchés sur les ports d'interruption INT0 à INT3 respectivement pour éviter une scrutation afin d'économiser de l'énergie.
73f2ae9d   Geoffrey PREUD'HOMME   Outils de rédaction
15
  
6244f6c8   Geoffrey PREUD'HOMME   Initialisation ADC
16
  Le capteur de température est connecté sur le convertisseur analogique-numérique numéro 8 (`ADC8`).
c79ef7bb   Geoffrey PREUD'HOMME   Instructions outi...
17
  
b469a253   Geoffrey PREUD'HOMME   Récupération de c...
18
  # Étude du fonctionnement
c79ef7bb   Geoffrey PREUD'HOMME   Instructions outi...
19
  
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
20
  ## Menu
73f2ae9d   Geoffrey PREUD'HOMME   Outils de rédaction
21
  
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
22
  Voici la hiérarchie du menu qui sera utilisée pour configurer le thermostat :
73f2ae9d   Geoffrey PREUD'HOMME   Outils de rédaction
23
  
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
24
25
26
27
28
29
30
31
32
33
34
35
  - Veille
      - Association mode ↔ heure de la semaine
          - Lundi
          - Mardi
          - Mercredi
          - Jeudi
          - Vendredi
          - Samedi
          - Dimanche
      - Température du mode jour
      - Témpérature du mode nuit
      - Réglage de la date et heure
aadee417   Geoffrey PREUD'HOMME   Définition des états
36
          - Jour de la semaine
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
37
38
          - Heures
          - Minutes
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
39
40
41
  
  On peut passer d'un menu à son menu hiérarchiquement supérieur (parent) avec le bouton retour. On passe d'un menu à un autre de niveau identique mais de même parent (frère) avec les boutons Incrémenter et Décrémenter. Lorsque l'on appuie sur le bouton valider, deux choses peuvent se produire : si le menu possède des sous-menus (enfants), il passe au premier enfant, sinon, il permettra l'édition d'une valeur que l'on poura incrémenter ou décrémenter avec les boutons du même nom, et qui seront sauvegardées à l'aide du bouton retour. 
  
39080e62   Taky Djeraba   Petites Modifs du...
42
43
44
45
  ## Contrôle de la température
  
  Concernant la régulation de la température, il a été prévu que celle-ci se fasse chaque 10 secondes. Puisque l'allumage de la chaudière est asservit en température, notre dispositif utilise un capteur de température, lequel fournit une tension variant de 0 à 5V, pour une plage de température allant de 5 à 30.6°C. Pour une précision de 0.1°C, cette plage correspond peut se coder sur 8bits en 256 valeurs. 
  La température mesurée (et convertie via le convertisseur ADC), ne doit pas dépasser un intervalle de plus ou moins 0.5°C par rapport à la température de référence. Il s'agit donc d'incémenter et de décrémenter de 5 octets la valeur de référence pour la comparer à la température mesurée. Pour éviter un dépassement lors de l'incrémentation ou de la décrémentation, on oblige l'utilisateur à choisir une température entre 5.5°C et 30.1°C.
aadee417   Geoffrey PREUD'HOMME   Définition des états
46
  
733c078a   Geoffrey PREUD'HOMME   Configuration des...
47
  ## États
39080e62   Taky Djeraba   Petites Modifs du...
48
  
aadee417   Geoffrey PREUD'HOMME   Définition des états
49
  - 0→1 : Veille (Heure, Température)
733c078a   Geoffrey PREUD'HOMME   Configuration des...
50
  - 2 : Menu Association mode ↔ Heure de la semaine
0f97c980   Geoffrey PREUD'HOMME   Bouton valider
51
52
  - 3→9 : Menu jours (Lundi - Dimanche)
  - 10→16 : Paramétrage des jours (Lundi - Dimanche)
733c078a   Geoffrey PREUD'HOMME   Configuration des...
53
54
55
56
  - 17 : Menu température du mode jour
  - 18 : Paramétrage température du mode jour
  - 19 : Menu température du mode nuit
  - 20 : Paramétrage température du mode nuit
aadee417   Geoffrey PREUD'HOMME   Définition des états
57
58
59
  - 21 : Menu réglage de la date et heure
  - 22→24 : Menu réglage du jour / heure / minute
  - 25→27 : Paramétrage du jour / heure / minute
733c078a   Geoffrey PREUD'HOMME   Configuration des...
60
  
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
61
62
63
64
65
66
  ## Stockage des données
  
  Les accès à la RAM nécessitant plus d'instructions et donc étant plus gourmands en énergie, on stockera le maximum d'informations dans les registres, de préférences les données étant lues/écrites les plus fréquemment. On y stockera donc :
  
  - **4 registres** : les 4 digits de l'afficheur 7 segments en cours d'affichage. Ces informations devant être récupérées 4 fois toutes les quelques millisecondes, on ne calculera leur représentation que lors de leur changement et on les stockera dans ces registres.
  - **1 registre (dont 6 bits inutilisés)** : afficheur 7 segment actuellement en cours d'affichage. Cela permet d'alterner les 4 dans l'ordre. <!-- TODO Voir si c'est pas possible d'utiliser le timer pour stocker ces infos -->
1d126a93   Geoffrey PREUD'HOMME   Commencé l'interr...
67
  - **3 registres** : Stockage du temps. Le compteur de temps le plus grand mais à la fois diviseur de la période de changement de mode veille et d'une heure sur l'Atmega 2560 est deux secondes. On comptera le temps de la semaine avec cette période de deux secondes. Il y a alors $\frac{7 \times 24 \times 60 \times 60 }{ 2 }$ $=302400$ valeurs possibles pour ce compteur de temps. On a donc besoin de 3 registres $\left( 2^{8 \times 2} = 65536 < 302400 < 16777216 = 2^{8 \times 3} \right)$ pour stocker cette valeur. Afin de simplifier, sur le premier registre on utilisera 3 bits pour stocker le jour de la semaine, 5 bits pour l'heure du jour, on utilisera le deuxième registre pour stocker la minute de l'heure, et le troisième registre pour stocker le 
73f2ae9d   Geoffrey PREUD'HOMME   Outils de rédaction
68
  
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
69
  Les associations de chaque heure de la semaine à son mode (jour/nuit) seront stockées dans la RAM. Bien qu'en théorie nous n'avons besoin que de $\frac{ \text{nb jours/semaine} \times \text{nb heures/jour} \times \text{nb bits pour stocker le mode} }{ \text{nb bits stockables sur une adresse} }$ $=\frac{7 \times 24 \times 1 }{ 8 }$ $=\frac{168}{8}$ $=21$ adresses pour stocker ces informations, on préfèrera utiliser une adresse par heure de la semaine, soit $168$ adresses. Bien que l'on perd en espace mémoire disponible, on garde en rapidité d'éxecution (et donc en énergie), en effet il n'est pas nécessaire d'utiliser des masques pour récupérer la valeur des bits individuels. Dans notre cas le microprocesseur n'abritera aucun autre programme avec qui il devra partager la RAM, et la consommation énergétique ne change pas selon le nombre d'adresses utilisées, il n'y a donc que des avantages à utiliser cette technique.
73f2ae9d   Geoffrey PREUD'HOMME   Outils de rédaction
70
  
b469a253   Geoffrey PREUD'HOMME   Récupération de c...
71
  # Configuration des interfaces
98814b45   Geoffrey PREUD'HOMME   Outils pour assem...
72
  
b469a253   Geoffrey PREUD'HOMME   Récupération de c...
73
  ## ADC
98814b45   Geoffrey PREUD'HOMME   Outils pour assem...
74
  
b469a253   Geoffrey PREUD'HOMME   Récupération de c...
75
76
77
78
79
  On le configurera de manière à mettre les 8 premiers bits de points forts sur un registre complet <!-- TODO comment ça s'appelle ce mode -->. En effet, les valeurs de témpératures allant de 5,0° à 30,6°, en choisissant une précision de 0,1° on obient 256 valeurs possibles, ce qui peut se stocker sur un seul régistre. Une précision supplémentaire ne semble pas nécessaire.
  
  Il sera de plus configuré pour s'activer sur demande et activera une interruption dès que la conversion est terminée afin d'éviter toute scrutation.
  
  # Algorithme
98814b45   Geoffrey PREUD'HOMME   Outils pour assem...
80
  
af2c171d   Geoffrey PREUD'HOMME   Rédaction du matin
81
82
  ## Pseudo-code
  !include(principal.txt lang=avrpseudo)