Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
PAR BIGONOFF
Révision 3
2
1. CARACTÉRISTIQUES ................................................................................................................................... 5
1.1 PRÉSENTATION............................................................................................................................................... 5
1.2 CARACTÉRISTIQUES TECHNIQUES PARTIE PIC................................................................................................ 6
1.3 CARACTERISTIQUES TECHNIQUES PARTIE QT60161B.................................................................................... 7
2. RÉALISATION PRATIQUE DE LA CARTE PIC® .................................................................................... 9
2.1 GÉNÉRALITÉS................................................................................................................................................. 9
2.2 SCHÉMA DE LA CARTE .................................................................................................................................... 9
2.3 LE TYPON ..................................................................................................................................................... 10
2.4 L’IMPLANTATION ......................................................................................................................................... 11
2.5 PHOTOS DE LA CARTE TERMINÉE .................................................................................................................. 11
3. RÉALISATION PRATIQUE DE LA CARTE QT ...................................................................................... 13
3.1 GÉNÉRALITÉS............................................................................................................................................... 13
3.2 LISTE DES COMPOSANTS ............................................................................................................................... 13
3.3 LE TYPON ..................................................................................................................................................... 14
3.4 L’IMPLANTATION ......................................................................................................................................... 16
3.5 LES PHOTOS ................................................................................................................................................. 16
4. REALISATION PRATIQUE DES TOUCHES SENSITIVES ................................................................... 19
4.1 GENERALITES............................................................................................................................................... 19
4.2 LES TYPONS ................................................................................................................................................. 19
4.3 PHOTOS DES TOUCHES SENSITIVES ............................................................................................................... 20
4.4 CONNEXION ET IDENTIFICATION DES TOUCHES ............................................................................................ 21
5. CONNEXION DE L’ENSEMBLE ................................................................................................................ 23
5.1 CONNEXION DES TOUCHES ........................................................................................................................... 23
5.2 CONNEXION DES LEDS TEMOINS ................................................................................................................... 24
5.3 CONNEXION ENTRE CARTE PIC® ET CARTE QT ............................................................................................ 26
6. PARAMÉTRAGE DU FICHIER SOURCE................................................................................................. 29
6.1 PARAMÈTRES PAR DÉFAUT ........................................................................................................................... 29
6.2 MODIFICATION DES PARAMÈTRES GÉNÉRAUX .............................................................................................. 29
6.3 PARAMETRAGE DES TOUCHES ET FONCTIONS ............................................................................................... 32
6.4 AUTRES PARAMETRES ET MEMOIRE EEPROM ................................................................................................ 32
7. INSTALLATION SUR SITE ......................................................................................................................... 33
7.1 CONFIGURATION .......................................................................................................................................... 33
7.2 MATERIEL .................................................................................................................................................... 33
7.2 PREPARATION DU BLOCHET.......................................................................................................................... 38
7.3 MONTAGE MECANIQUE DES TOUCHES .......................................................................................................... 40
7.4 LA VITRE ...................................................................................................................................................... 40
7.5 LE CALQUE ................................................................................................................................................... 41
7.6 MONTAGE FINAL .......................................................................................................................................... 42
8. LES COMMUNICATIONS ........................................................................................................................... 45
8.1 LISTES DES COMMANDES GÉRÉES ................................................................................................................. 45
8.2 LES TRAMES INTERCEPTEES ......................................................................................................................... 47
8.3 ERREUR SPECIFIQUE ..................................................................................................................................... 48
8.4 TYPES D’ACTIONS ........................................................................................................................................ 48
8.5 TYPES DE FONCTIONS ................................................................................................................................... 48
8.6 GROUPE DE FONCTIONS ................................................................................................................................ 49
8.7 STATUT DES DIFFÉRENTES FONCTIONS ......................................................................................................... 50
8.7.1 Statut pour les touches sensitives ......................................................................................................... 50
8.7.2 Statut pour les portes logiques ............................................................................................................. 51
8.7.3 Statut pour les timers et décompteurs .................................................................................................. 51
8.8 MODE SUPERVISEUR ET MODE UTILISATEUR ................................................................................................ 52
8.9 DÉTAILS DES COMMANDES SPÉCIFIQUES ...................................................................................................... 53
3
8.9.1 Cmd_WStatF ........................................................................................................................................ 53
8.9.2 Cmd_RStatF ......................................................................................................................................... 55
8.9.3 Cmd_WStatFE...................................................................................................................................... 55
8.9.4 Cmd_RStatFE....................................................................................................................................... 55
8.9.5 Cmd_RunTimer .................................................................................................................................... 56
8.9.6 Cmd_StopTimer.................................................................................................................................... 56
8.9.7 Cmd_RMdTimers ................................................................................................................................. 56
8.9.8 Cmd_LoadTd........................................................................................................................................ 57
8.9.9 Cmd_AddValTD ................................................................................................................................... 57
8.9.10 Cmd_CAct .......................................................................................................................................... 58
8.9.11 Cmd_WAct ......................................................................................................................................... 58
8.9.12 Cmd_RAct .......................................................................................................................................... 59
8.9.13 Cmd_WNameInSens ........................................................................................................................... 59
8.9.14 Cmd_RNameInSens............................................................................................................................ 60
8.9.15 Cmd_WNbBtC .................................................................................................................................... 60
8.9.16 Cmd_WLevel ...................................................................................................................................... 61
8.9.17 Cmd_SendQT ..................................................................................................................................... 61
8.9.18 Cmd_WQtSpeed ................................................................................................................................. 62
8.9.19 Cmd_WLedsVB .................................................................................................................................. 63
8.9.20 Cmd_WLedsT ..................................................................................................................................... 64
8.9.21 Cmd_RLedsT ...................................................................................................................................... 65
8.9.22 Cmd_WRedirIn................................................................................................................................... 65
8.9.23 Cmd_RRedirIn.................................................................................................................................... 67
8.9.24 Cmd_StatF ......................................................................................................................................... 67
8.9.25 Cmd_StatFE ....................................................................................................................................... 68
8.9.26 Cmd_MDTimers................................................................................................................................. 68
8.9.27 Cmd_ActC .......................................................................................................................................... 68
8.9.28 Cmd_Act............................................................................................................................................. 69
8.9.29 Cmd_NameInSens .............................................................................................................................. 69
8.9.30 Cmd_DataQT ..................................................................................................................................... 70
8.9.31 Cmd_RedirIn ...................................................................................................................................... 70
8.9.32 Cmd_LedsT ........................................................................................................................................ 71
8.10 PARTICULARITÉS DE LA COMMANDE CC_CARTE ....................................................................................... 71
9. UTILISATION DU PRESENT DOCUMENT ............................................................................................. 73
4
1. Caractéristiques
1.1 Présentation
Cette carte permet en effet d’effectuer toutes les opérations et fonctions de la carte 16
entrées, déjà décrite, mais en utilisant des touches sensitives au lieu de boutons-poussoirs
ordinaires.
Il faudra évidemment placer cette carte à chaque endroit où vous désirez des touches
sensitives, pour ma part, pratiquement tous les « interrupteurs » de mon habitation sont
constitués de touches de ce type.
Chaque carte peut recevoir de 1 à 16 touches sensitives, nous verrons comment utiliser
tout ça.
Ce qui m’a causé le plus de difficultés a été de réaliser le côté « mécanique » du projet,
c’est-à-dire obtenir un résultat fini digne d’une réalisation professionnelle, en évitant le côté
« bricolage » tout en respectant les deux conditions suivantes :
Comme je vous le disais, ce projet inclut toutes les fonctions présentes dans la carte 16
entrées (timers, décompteurs, portes logiques etc.), je vous suggère donc de lire le document
relatif à la carte 16 entrées avant celui-ci, car je ne reprendrai ici que les fonctions
supplémentaires inhérentes à la carte à touches sensitives.
Le choix du CMS m’a été imposé, d’une part parce que le microcontrôleur chargé du
pilotage des touches, un QT60161B, n’existe qu’en version CMS, et d’autre part pour
économiser de la place.
Rassurez-vous, vous verrez que sans aucun outillage spécifique, avec un peu de méthode
et de propreté, il ne suffit que d’un bon fer à souder pour s’en sortir.
Avant de lire ce document, vous êtes sensés avoir lu les précédents, principalement le
document « présentation » et celui concernant la carte 16 entrées, sinon vous risquez bien de
ne rien comprendre.
5
Comme les autres cartes Domocan, le bootloader est intégré au logiciel. Concernant le
QT, rassurez-vous il est préprogrammé d’usine en ROM, et donc non effaçable.
6
1.3 Caractéristiques techniques partie QT60161B
Je vous renvoie au datasheet du QT60161B (joint dans le répertoire fichiers) pour plus de
détails techniques. Je profite de cet exemple pour signaler aux nombreux étudiants qui
m’écrivent, parfois en grandes difficultés pour interfacer un composant avec leur PIC®, que,
dans leur vie professionnelle, voici un exemple type de ce qui va leur arriver :
Le but est de faire communiquer les deux pour une application particulière, et,
éventuellement, d’écrire un logiciel de paramétrage. C’est exactement ce qui est fait pour
cette application. Lisez le datasheet du QT60161B et vous comprendez qu’il est logique de ne
pas toujours y arriver en 5 minutes. Le tout est de prendre point par point, de ne pas avoir peur
de relire, et surtout de ne pas paniquer devant la taille du datasheet.
1) Je lis plusieurs fois en détails le datasheet, comme un livre de chevet. Une fois fait, j’ai en
tête les fonctions principales du circuit, et sa philosophie.
2) J’étudie ensuite chapitre par chapitre, pour voir si ça colle à ce que j’ai compris, sinon je
relis le tout
3) Je crée le prototype permettant de communiquer
4) Je fais des bouts de codes simples pour voir si ce que j’ai compris est exact
5) Je finalise le projet
7
S’asseoir devant un tel datasheet, puis m’envoyer un mail en me disant «au secours, mon
tpe est pour demain », ça s’appelle tout simplement une mission impossible (ou alors vous
êtes bien plus intelligents que moi, mais dans ce cas, inutile de m’appeler).
8
2. Réalisation pratique de la carte PIC®
2.1 Généralités
Le source est conçu pour pouvoir gérer un nombre de fonctions paramétrable par simple
modification d’une ligne ou par paramétrage à distance via Domogest, soit 1,2,4,8, ou 16
groupes de fonctions. Le nombre maximal de touches gérée par la carte sera comprise entre 1
et la valeur attribuée au groupe. Il y aura autant de portes de chaque type, de timers lents, de
timers rapides, et de décompteurs, qu’il y a de groupes.
Par défaut, le source et le fichier « .hex » joints au présent document sont paramétrés pour
gérer 16 groupes et 6 touches. La carte électronique proposée est équipée dans sa version
maximale, avec 1 eeprom 24C512.
Il est inutile de modifier le source, la définition exacte des paramètres choisis s’effectue
aisément à partir du logiciel Domogest.
Voici le schéma utilisé. Il est très simple et ne prête pas vraiment à discussion. Vous
noterez la présence de l’eeprom externe en bas à gauche. Les deux connecteurs de droite
servent à connecter les leds témoins. Le connecteur à droite en haut est notre connecteur CAN
Domocan, alors que celui à droite au dessous permet de monter la carte QT en sandwich.
Vous y retrouvez tous les signaux utiles, dont l’alimentation et les pins de communication.
Au dessus au centre, vous avez le buzzer, chargé de générer les « bips » de confirmation
des actions, si vous le mettez en service par logiciel.
Notez à droite au centre une pin « SYNC » qui peut, si vous le désirez, recevoir le signal
de la carte de synchronisation secteur (voir carte gradateur), afin de synchroniser les bruits du
9
QT avec les interférences réseau. Chez moi, ça fonctionne très bien sans cette option ,mais
elle est prévue, et gérée par les logiciels.
2.3 Le typon
Comme vous le constatez, rien de bien compliqué, le typon est donné à la bonne taille
dans le répertoire « fichiers » sous forme d’un document pdf.
10
2.4 L’implantation
Tout doit être limpide. Notez le fusible F1 compact en boîtier rond. Le régulateur 7805 est
monté vertical, le connecteur J1 est monté du côté des pistes du circuit imprimé. Les deux
connecteurs sans nom, montés à angle droit, en haut et à droite de C2 sont des barrettes
montées également côté pistes du circuit imprimé. Elles ne servent en fait qu’à la rigidité
mécanique du montage en sandwich, j’en profite évidemment pour leur faire interconnecter
les masses, pour plus d’équipotentialité entre les deux cartes.
Afin de vous faire une idée de l’aspect de la carte terminée, voici une photo côté
composants :
11
Remarquez à gauche les deux connecteurs pour les leds témoins. A droite, notre
connecteur Domocan, et, au dessus du pic, notre connecteur destiné au petit buzzer (si vous le
souhaitez).
La barrette à une pin du dessus à droite du pic est la pin de forçage en mode bootloader.
Cette carte étant destinée à être encastrée dans un blochet, il vous faudra relier cette pin à la
masse si vous voulez forcer votre carte en mode bootloader suite à un problème logiciel
majeur.
La pin juste en dessous est la pin d’arrivée de la synchro. Si vous décidez de l’utiliser,
vous y ferez parvenir le signal en provenance de votre carte de synchronisation secteur, à
charge pour vous d’amplifier suffisamment les signaux pour qu’ils ne soient pas déformés à
cause de la longueur de la ligne.
On distingue très bien sur cette photo les barrettes qui vont servir au raccordement des
deux cartes ensemble. Selon mon habitude, j’ai étamé la carte à chaud, simplement en
utilisant de la pâte à décaper de plombier (pâte rouge), étalée au pinceau, suivi par le passage
au fer à souder avec une minuscule goutte de soudure. L’étain se répand très bien, grâce à la
présence de la pâte à décaper.
12
3. Réalisation pratique de la carte QT
3.1 Généralités
Cette carte est réalisée en CMS. En effet, le contrôleur QT60161B®, au cœur du système,
est un composant industriel, que vous retrouvez dans les commandes de taques inductions, de
systèmes médicaux, etc. De ce fait, il n’est disponible qu’en boîtier TQFP44, c’est-à-dire 44
pins sur un chip carré de 1cm de côté.
Mais ne paniquez pas, si vous êtes propre, la réalisation se fera sans aucun problème. Le
seul matériel que j’ai utilisé est :
C’est tout, excepté l’outillage pour faire vos circuits imprimés. Puisqu’il nous fallait
utiliser un composant CMS, je me suis dit qu’autant réaliser tout le circuit en CMS, le
montage du QT étant le plus délicat, le reste n’étant qu’un jeu d’enfants.
Comme il existe des tonnes de composants CMS, de toutes les tailles, j’ai décidé cette fois
de vous donner la liste détaillée des composants, avec leur référence chez celui qui me les a
fournis : « Farnell® Belgique » : http://be.farnell.com/
Je les salue au passage, car, malgré que je ne sois qu’un minuscule client, j’ai été servi
avec le même professionnalisme et la même gentillesse que si j’avais commandé des
composants pour des dizaines de milliers d’euros. C’est assez rare pour être souligné.
Avec les références, vous pourrez commander directement chez eux. Si vous habitez en
France, les références devraient être identiques chez Farnell® France. Si vous ne disposez pas
de la possibilité d’aller chez Farnell®, une visite sur leur site vous permettra de télécharger
les datasheets des composants utilisés, et ainsi de pouvoir en trouver des équivalences ailleurs.
13
Je vous donne également les prix indicatifs au jour de ma commande :
La taille 0805 utilisée ne devrait vous poser aucun problème, il s’agit de CMS
relativement « gros », si j’ose m’exprimer ainsi.
3.3 Le typon
14
Attention, la réalisation est faite sur du circuit double-face. Non, non, ne paniquez pas, la
seconde face va simplement rester telle quelle, non exposée, de façon à pouvoir l’utiliser
comme plan de masse. Insolez et gravez votre circuit sur une seule face, ne décollez
simplement pas la protection de la seconde face avant d’avoir terminé.
Pour travailler avec des pistes aussi fines, il faut que le calque soit parfaitement pressé
contre le circuit. Pour ma part, je n’utile pas dans ces cas-là la feuille de mousse intégrée aux
insoleuses : je laisse le couvercle ouvert, et je pose sur le circuit imprimé un poids important
(par exemple, des bouteilles d’un litre remplies d’eau serrées les unes contre les autres). De la
sorte, les pistes sont très nettes.
Attention que les composants sont bien entendus placés côté pistes, les seuls trous à forer
sont ceux des connecteurs en barrette femelle et ceux pour faire communiquer les masses avec
le plan de masse.
- Pour chaque composant, à l’aide d’un pinceau, j’ai placé de la pâte à décaper à
l’emplacement prévu
- J’ai mis une petite goutte de soudure au bout de mon fer
- J’ai placé le composant sur son emplacement, à l’aide d’une pince à épiler coudée, dite
« pince de Bruxelles », après avoir trempé ses deux extrémités dans un soupçon de pâte à
décaper
- J’ai fait toucher la goutte du fer à la jonction entre le composant et l’emplacement voulu
du circuit. Grâce à la pâte à décaper, la soudure s’étale parfaitement
- J’ai soudé ensuite l’autre extrémité à l’aide de ma soudure de 0.5mm.
Pour le Qt, j’ai procédé de façon identique pour la première des pins. Une fois maintenu
par la première soudure, j’ai soudé toutes les pins de façon traditionnelle, en trempant à
chaque fois le bout de ma soudure dans la pâte à décaper (en 0.5mm, il n’y avait pas d’âme
décapante dans cette soudure).
Je n’ai eu strictement aucun problème à la soudure. Si, malgré tout, vous faisiez un pont
entre deux pattes, la tresse à dessouder devrait vous sortir de ce mauvais pas. Une autre
« astuce » est de chauffer un bref instant le pont de soudure, et de taper la tranche de la carte
sur le plan de travail, côté pont vers le bas. La soudure saute par inertie et gravité.
15
3.4 L’implantation
Voici à quoi devrait resssembler votre circuit une fois tiré et étamé. Comme d’habitude,
j’ai fait l’étamage à chaud avec mon fer à souder, de la pâte à décaper, et de la soudure
ordinaire.
16
Vous voyez que ça ne pose en fait aucun problème. Notez que les connecteurs de montage
en sandwich se trouvent sur la face opposée, photo ci-dessous. Souvenez-vous qu’il s’agit
d’un double-face :
Vous voyez nettement les connecteurs femelles. Les deux seules opérations à faire au
niveau de la face verso sont :
- Les deux connecteurs du dessous sont reliés à la masse de toutes façons, inutile de faire de
découpe.
- Percez quelques trous, répartis sur la surface à travers le plan de masse à partir du côté
composant (dans une masse, évidemment)
- Insérez de petits bouts de fils dans les trous, et soudez-les deux 2 côtés (ce sont les îlots de
soudure que vous vouyez côté verso.
De la sorte, vous avez réalisé un plan de masse d’une qualité pas mauvaise du tout.
Ne vous inquiétez pas pour les deux bouts de fils que vous voyez partir vers le bas de la
photo. Il s’agit des masses de mes fils de liaison aux touches sensitives, je vais en reparler.
17
Notes :
18
4. Réalisation pratique des touches sensitives
4.1 Généralités
Le tracé des pistes répond à des impératifs précis, détaillés dans le datasheet « touches
sensitives » fourni dans le répertoire « Fichiers ».
J’ai choisi de faire une solution simple et robuste, quitte à devoir utiliser quelques ponts
de connexion, toujours en accord avec les prescriptions.
Voici le typon pour placer 6 touches sensitives, la taille des circuits est évidemment en
relation étroite avec la réalisation mécanique. Je ne le dis plus, les typons se trouvent à la
bonne échelle dans le répertoire « fichiers ».
19
Le typon est organisé pour suivre les prescriptions de conception, c’est pourquoi, par
exemple, certaines touches sont en miroir par rapport à d’autres. En plus, ça permet de relier
directement les bornes « Y » des touches qui doivent l’être.
6 touches, c’est un nombre qui n’est pas choisi au hasard, il est fonction de la réalisation
mécanique. Il en est de même pour la version 14 touches, que j’ai également utilisée. Voyons
le typon :
Dans les 2 typons, le trou au centre de chaque touche sert à forer le trou de passage de la
led témoin. Vous remarquez que les touches sont reliées par 4 au niveau d’une des pistes. Ce
sont des touches matricielles, les liaisons sont les liaisons « Y » de la matrice.
Voici maintenant à quoi ressemble un circuit de 6 touches sensitives (déjà relié à sa carte
QT), côté utilisateur :
20
Remarquez que j’ai peint ce circuit en blanc (attention, pas du côté des pistes,
évidemment). En fait, comme je vous l’expliquerai plus loin, vous le peignez de la même
couleur que le cadre que vous allez utiliser. J’ai utilisé des cadres blancs à l’étage, et
aluminium au rez-de-chaussée. J’ai donc peint les circuits en blanc et en gris. Inutile que ce
soit parfait, la couleur ne se verra qu’au travers d’un calque translucide. Dans cet exemple, il
s’agit d’un circuit destiné à une des chambres.
Attention, évitez les couleurs contenant du métal, comme les teintures argentées.
Remarquez les fils en nappe qui relient les touches à la carte QT. Si vous regardez
attentivement, vous voyez que le premier et le dernier fil de chaque nappe ne sont pas reliés.
Ils sont reliés en réalité à la masse sur la carte QT, vous en voyez deux sur la photo de la carte
21
QT, côté connecteurs femelles, les deux autres sont reliés côté composants. Ils servent à
améliorer l’immunité en servant d’écran de masse.
Les touches sont câblées en matrice, c’est-à-dire que les touches sont identifiées comme
suit :
Touche 0 : X0 Y0
Touche 1 : X1 Y0
Touche 2 : X2 Y0
Touche 3 : X3 Y0
Touche 4 : X0 Y1
Touche 5 : X1 Y1
…
…
Touche 15 : X3 Y3
Remarquez dès lors les pontages en noir entre le « X » de la touche0 (en haut à droite) et
celui de la touche4 (en haut à gauche). C’est logique, elles utilisent toutes les deux « X0 ».
Idem pour le pontage entre la touche1 et la touche5, qui utilisent « X1 ».
Les Y0 des 4 premières touches et les 2 Y1 des 2 dernières sont directement reliés via le
circuit imprimé des touches sensitives.
22
5. Connexion de l’ensemble
Nous venons de voir nos touches sensitives, et les deux câbles en nappe qui partent de
celles-ci. Je vous ai expliqué comment les touches étaient numérotées (vu du côté utilisateur).
Partant de là, vous savez que vous avez un câble pour connecter les « Y » des matrices, et un
autre pour les « X ».
Au niveau du QT, les matrices sont repérées en clair sur le circuit imprimé. Il vous suffit
de souder, et d’ajouter un fil de masse de part et d’autre. Pour le câble « Y », j’ai soudé les
masses côté composants, c’était plus simple. Pour les « X », j’ai soudé côté plan de masse.
On voit très bien les deux câbles en nappe. La longueur doit être suffisante pour pouvoir
placer proprement le circuit à touches sensitives devant le circuit QT, à quelques cm de
distance. La photo vous donne une bonne idée de la longueur à utiliser.
Le câble du haut est évidemment le câble des « Y », notez les 2 fils utilisés, et les deux
extrémités soudées à la masse du circuit (d’un seul côté). Celui du bas est forcément celui des
« X ». On aperçoit très bien du reste la mention « X0 » en dessous du fil situé à côté du fil
rouge.
23
De nouveau, les deux fils extrêmes supplémentaires sont reliés à la masse. Dans ce cas-ci,
on distingue fort bien qu’ils vont sous le circuit, ce sont en fait les deux fils que vous voyez
dans la photo du côté plan de masse du QT.
Les leds témoins sont optionnelles. Cependant, n’oubliez pas que lorsque vous entrez dans
une pièce plongée dans le noir, vous cherchez habituellement à tâtons l’emplacement de votre
interrupteur. Avec des touches sensitives, si vous faites ça, vous allez enclenchez toutes sortes
d’actions en effleurant vos touches.
Il faut donc que l’emplacement des touches soient visibles. C’est une des deux fonctions
de nos leds témoins, l’autre étant la signalisation des événements. Pour effectuer cette
distinction, nos leds sont capables de s’allumer sur deux niveaux :
- Un niveau faible luminosité pour indiquer l’emplacement des touches lorsqu’il fait noir
- Un niveau haute luminosité pour indiquer une quelconque fonction en service
Nous verrons tout ça dans l’étude du chapitre correspondant de Domogest. Pour l’instant,
concentrons-nous sur la réalisation pratique.
Les leds seront des 3mm au maximum. Evitez de mettre des leds plus grosses, car elles
perturberaient le fonctionnement des touches sensitives (trop près des pistes). Les essais sur
des leds 3mm m’ont permis de constater qu’il n’y avait pas besoin de mesures de découplages
supplémentaires (condensateurs), comme c’est expliqué dans les différents datasheets.
Les premiers essais que j’avais faits étaient à base de leds rouges rondes, mais à bout plat :
très pratique pour placer « à ras » du circuit à touches sensitives.
C’était compter sans mon épouse, qui m’a affublé d’un « Quoi ? Ce n’est même pas des
lampes bleues ? » dépité. Bref, vous connaissez les femmes, elles ont toujours le dernier mot,
et j’ai donc acheté des leds bleues.
Comme il y en a des tas, j’ai du faire des essais pour évaluer couleur, luminosité, …et
prix. Ma conclusion lors des tests (validés par mon épouse), est que plus la led est belle et
lumineuse, plus elle est chère.
Or, j’avais près d’une vingtaine de cartes à faire, ce qui me donnait près de 120 leds
bleues à acheter. Il a donc fallu faire des compromis.
La plus belle et plus lumineuse des leds bleues à prix abordable que j’ai trouvée est celle
de référence : 3526896 chez Farnell® Belgique. A 1,46 E HTVA le bout, ça m’a coûté tout
de même la coquette somme de 212 euros TVAC pour mes 120 leds. Un budget conséquent
par rapport au reste. Mais bon, apparemment le bleu aide à faire passer la note finale du
budget domotique.
Après avoir testé tout ça, j’ai eu droit cette fois à un commentaire admiratif. Allez
comprendre.
24
L’inconvénient, c’est que ces leds bleues ont un bout arrondi, c’est moins aisé pour les
coller à leur place. J’ai donc commencé par leur construire un petit support. Pour ce faire, j’ai
découpé de petits bouts dans une plaque de plastique épaisse dont je m’étais servi pour isoler
mon armoire électrique (plastique orange anti-feu). J’ai percé dans ces petits carrés des trous
du diamètre des leds.
Ensuite, j’ai collé chaque petit support au pistolet à colle en face des trous prévus pour les
leds sur le circuit des touches sensitives. J’ai aligné en passant chaque fois une queue de
mèche à travers les deux trous (attention de ne pas coller la mèche). Voici ce que ça donne :
Une fois réalisé ceci, il est beaucoup plus facile de maintenir les leds en place, et
parfaitement droites. Je les ai alors également collées au pistolet à colle. Ne reste alors qu’à
souder les fils de liaison. J’ai pour ma part utilisé des connecteurs 4 fils avec les fils fournis
déjà montés, comme ceux que j’avais utilisé pour relier les connecteurs CAN de mes cartes.
Les connecteurs s’inséreront donc directement dans les barrettes « Leds » de la carte Pic.
Côté fils, il suffit de relier les « X » et les « Y » exactement comme pour les touches
sensitives. La led de la touche 0 se connecte à X0 et Y0 des connecteurs leds de la carte pic,
etc. Notez que la pin « 0 » des connecteurs est repérée « 1 » sur le circuit imprimé, désolé.
Les anodes des leds sont les bornes « X », les cathodes sont évidemment dans ce cas les
« Y ». Pour 6 leds, il faut donc relier X0 sur l’anode de la led 0 et de la led 4. Idem pour X1
qui sera connecté à l’anode de la led 1 et de la led 5. Bref, comme pour les touches sensitives.
Les 4 cathodes des leds 0 à 3 seront reliées ensemble, et à la sortie Y0 de la carte pic. Les
cathodes des leds 4 et 5 seront reliées ensemble et à la sortie Y1 de la carte pic. Bref, un
montage en matrice classique. Voici ce que ça donne :
Vous distinguez nettement les leds collées, ainsi que les cathodes reliées ensemble par
pliage des pattes. Notez les couleurs des fils, que vous retrouverez côté carte PIC®. Attention,
il faut que l’épaisseur de l’ensemble soit faible, afin qu’une fois tout en place, les pattes des
25
leds n’entrent pas en court-circuit avec le circuit QT (et surtout le quartz). J’ai donc plié les
pattes à ras des leds.
Ne reste ensuite qu’à brancher les connecteurs des leds et du buzzer côté carte pic. Voici
ce que ça donne :
Au dessus à gauche se trouve le connecteur « X » des leds, avec les 4 fils qui vont aux
anodes. Le fils du dessus sur ce connecteur est la sortie « X0 ». « X3 » est le fil inférieur
(jaune).
Au dessus du pic, vous voyez le connecteur du buzzer, avec le positif à gauche (rouge). A
ce stade, vous avez terminé votre montage électronique. Si vous programmez le pic et que
vous mettez sous tension, vous devrez voir s’allumer les leds en demi-luminosité, car la
fonction « témoin » est en service par défaut.
Pour plus d’essais, il y aura des manipulations à effectuer. Vous devrez lire le mode
d’emploi de Domogest, au chapitre consacré aux touches sensitives pour tester toutes les
fonctions de vos cartes.
Cette connexion est on ne peut plus simple. Elle consiste à insérer la carte QT dans la
carte Pic® en utilisant les connecteurs à barrettes. Aucune erreur n’est possible, il n’y a
qu’une seule façon de procéder.
Notez que la largeur de la carte Pic® est identique à la longueur de la carte QT. Il vous
faudra ajuster vos circuits au plus près niveau dimensions, pour qu’ils entrent dans le blochet
plus tard.
26
Insérez vos deux cartes ensemble, voici ce que ça donne (les leds ne sont pas reliées) :
Vous voyez très bien sur la photo le montage en sandwich des deux cartes. Les
connecteurs montés en « L » à l’avant-plan permettent un bon montage mécanique.
Il ne vous reste qu’à reconnecter vos leds, et à connecter le buzzer sur le connecteur
prévu, le côté positif sur la pin 1 (vers le côté de la pin 1 du pic).
Utilisez pour le buzzer soit un bout de fil muni d’un connecteur, soit d’un fil soudé
directement sur les barrettes, soit le buzzer soudé directement sur le circuit.
27
Notes :
28
6. Paramétrage du fichier source
Si vous utilisez le fichier « .asm» tel que fourni dans le répertoire « fichiers », votre carte
travaillera avec les caractéristiques suivantes :
Si ces paramètres par défaut ne vous conviennent pas, vous avez la possibilité d’éditer le
fichier source, et de réassembler pour obtenir un nouveau fichier « .hex ». Le source est prévu
pour vous faciliter la vie à ce niveau.
En effet, selon mon habitude, aucune intervention n’est nécessaire dans le programme,
tout se modifie via des déclarations de constantes. Voyons dans l’ordre :
Vous pouvez ici utiliser un pic d’un autre type que le 18F2680 prévu par défaut (voir le
document « présentation »). Les deux modèles proposés sont les deux que j’ai effectivement
pris en compte. Pour d’autres modèles, à vous de faire les vérifications nécessaires.
Le type de destinataire est fixé à 0x61. Le modifier impose d’effectuer les modifications
sans le source du logiciel Domogest. Evitez cette opération qui ne vous amènerait de toutes
façons aucun bénéfice. Ces valeurs sont en outre étudiées pour permettre la meilleure
répartition des priorités de trames possible.
29
CIBLEDEF EQU .254 ; N° de la carte
; modifiable via Domogest
Le numéro de la carte (cible) est fixé à 254. Vous pouvez le modifier directement ici, ou,
plus aisément, effectuer cette modification via Domogest une fois la carte en place.
Attention, si vous devez placer plusieurs cartes du même type, n’oubliez pas que 2 cartes
d’un même type ne peuvent pas avoir le même numéro de cible. Dans ce cas, mettez les cartes
sous tension une par une et procédez à chaque fois à la modification du numéro de cible via
Domogest, ou chargez dans chaque pic un fichier assemblé avec un numéro de cible différent
à chaque fois. Vous avez le choix de la méthode.
Ne modifiez éventuellement que les bits autorisés explicitement. Il est plus simple
cependant de modifier le fonctionnement via Domogest, excepté si vous avez de bonnes
raisons de démarrer votre carte la toute première fois dans un mode particulier.
C’est le nombre maximal de groupes gérés par la carte. Ce nombre induit le type
d’eeprom présente, comme expliqué dans les généralités. Pour chaque groupe, vous disposez
d’une entrée, d’une porte de chaque type, d’un décompteur, et d’un timer de chaque type. Le
nombre de groupe doit au minimum être égal au nombre d’entrées utilisées sur la carte, mais
vous pouvez avoir plus de groupes que d’entrées réelles (ce qui vous permet d’avoir plus de
portes logiques, de timers, et de décompteurs).
Il s’agit ici du nombre de touches sensitives réellement utilisées. Ce nombre doit être
inférieur ou égal au nombre de groupes défini par NBGERE. Ce nombre agit uniquement au
niveau de Domogest, afin d’éviter l’affichage d’entrées inutile sur l’écran de contrôle.
NBBP et NBGERE sont modifiables à partir de Domogest une fois la carte en service.
30
Il s’agit de la durée à partir de laquelle on considère que l’utilisateur a maintenu
volontairement le bouton-poussoir, en multiples de 20ms. La valeur de 25 correspond donc à
500ms.
La durée minimal d’une action valide est fixée par le processus de communication avec le
QT60161B et n’est pas éditable.
Touche détectée durant moins de 500ms, puis OFF : Détection d’une impulsion (Pulse)
Touche pressée depuis plus de 500ms : Détection d’un début de maintien (Maintien ON)
Touche relâchée après un maintien : Détection d’une fin de maintien (Maintien OFF)
Vous constatez dès lors que chaque touche génère 3 types d’actions différentes.
Ce paramètre permet de régler la luminosité des leds en mode veilleuse. J’ai du ajouter ce
paramètre car les leds bleues en ma possession étaient tellement lumineuses que ça en
devenait génant en mode veilleuse. La valeur 0 implique l’éclairage le plus faible possible
avec les résistances que vous avez choisies.
Si le besoin s’en fait sentir, j’ajouterai une commande CAN pour modifier en temps réel
les luminosités, mais, pour l’instant le choix est figé dans le programme une fois celui-ci
assemblé.
Ce temps influence de façon non précise le temps d’allumage de la led de trafic CAN. Il
me semble inutile de modifier ce paramètre, mais vous pouvez le faire sans problème. Si vous
allongez le temps, la led restera allumée plus longtemps sur chaque trame CAN.
La révision software est indiquée ici. Si vous faites vos propres modifications, évitez
d’utiliser des numéros qui risquent de prêter confusion avec les miens, dans votre propre
intérêt.
Je déconseille fortement la modification d’autres paramètres que ceux que je cite, sauf si
vous êtes certains de ce que vous faites. Et si vous le faites, ne m’appelez pas au secours parce
que ça ne fonctionne plus correctement.
31
6.3 Paramétrage des touches et fonctions
Tous les paramètres utiles sont éditables directement à partir de Domogest. Je vous
déconseille donc, sauf pour des besoins spécifiques, d’effectuer des modifications à ce niveau
dans le fichier source.
Si, néanmoins vous souhaitez le faire, vous trouverez toutes les informations utiles dans le
document joint avec la carte 16 entrées, les paramètres étant identiques.
La carte à touches sensitives est en réalité une carte 16 entrée particulière. Je vous renvoie
donc à la documentation de cette carte pour tous les renseignements non spécifiquement liés
aux fonctions sensitives.
Le contenu de la mémoire externe eeprom est également exactement identique pour les
deux cartes, je ne recommence pas toutes les explications.
32
7. Installation sur site
7.1 Configuration
Une fois votre carte dûment testée et opérationnelle, vous devrez l’installer dans votre
habitation. L’utilisation de touches sensitives de ce type impose deux contraintes au niveau
des communications :
- La liaison entre le QT et les touches sensitives ne peut pas excéder quelques centimètres.
- La liaison entre Domocan et le QT nécessite une liaison SPI ou série asynchrone.
- Placer les pics à côté des QT, et se servir du bus Domocan pour véhiculer les informations
- Placer les pics à distance, et ajouter un second bus pour communiquer entre les QT et les
pics.
La seconde solution était évidemment inadmissible, ce qui explique que j’ai choisi de
placer carte pic et carte QT ensemble, et même montées solidairement.
Ceci implique que ce bloc « sensitif » devra être monté à chaque endroit où il sera utile, il
s’agit donc des cartes délocalisées, et ça implique que le bus Can doit faire le tour de votre
habitation (c’est prévu pour). En réalité, vous aurez une carte sensitive à chaque endroit où,
dans une installation classique, vous auriez un ou plusieurs interrupteurs.
Evidemment, si vous avez des endroits « stratégiques », vous avez intérêt à regrouper des
fonctions au sein d’une même carte, plutôt que d’utiliser deux cartes à quelques centimètres
d’intervalle.
Le nombre de touches peut varier de 1 à 16 par carte. J’ai choisi pour ma part d’utiliser
des cartes à 6 touches partout dans mon habitation, sauf au centre de mon espace salon, où j’ai
utilisé une carte à 14 touches (chez moi, salon, salle-à-manger, et cuisine forment un
ensemble ouvert).
7.2 Matériel
Le grand défit auquel j’ai été confronté pour ce projet n’a pas été, contrairement à ce que
vous pourriez penser, la réalisation électronique et informatique. A ce niveau, je n’avais pas
de craintes, il « suffisait de » travailler en étudiant les datasheets.
Non, le principal défit était en fait l’intégration esthétique au bâtiment. J’ai donc posé mon
cahier des charges. Pour que ce projet puisse être placé dans le bâtiment, il fallait :
33
- Que la méthode soit reproductible par tout le monde (je ne pouvais pas vous laisser
tomber en cours de route)
Renseignements pris, construire sur mesure des faces avant et autres boîtiers
d’encastrement est une entreprise très onéreuse.
Bref, de toutes ces contraintes, il m’est apparu comme une évidence que je devais trouver
dans le commerce du matériel destiné à un autre usage, et que je pourrais détourner à mon
profit. J’ai donc commencé par écumer les salons de l’habitation, sans grand succès.
Mon but était de remplacer des interrupteurs classiques encastrés. Mon idée a alors été de
voir si je ne pouvais pas utiliser des boîtiers d’interrupteurs classiques pour les transformer en
touches sensitives.
Le problème, c’est que ces interrupteurs (Legrand, Nikko, etc.) sont constitués de 3
parties :
- Le blochet (ou boîtier d’encastrement) dans lequel arrivent les câbles et sont encastrés les
interrupteurs
- La partie mécanique proprement dite (l’interrupteur)
- Le cache de finition.
Comme je n’avais pas besoin de la partie mécanique, puisque je devais la remplacer par
mes touches sensitives, il me fallait donc utiliser le cache et le blochet. Le gros problème,
c’est que dans toutes ces marques « classiques », le cache tient grâce à la partie mécanique,
les griffes de fixation faisant partie intégrante du mécanisme.
J’ai donc tenté d’imaginer plusieurs systèmes de fixation, mais aucun n’était à la fois
fiable, esthétique, et simple.
J’ai poursuivi mes recherches, et j’ai alors trouvé la solution chez un grand constructeur
d’interrupteurs « design », à savoir « BTCINO ». En effet, chez ce constructeur, le principe
est exactement l’opposé. Chaque interrupteur se compose de plusieurs parties, à savoir :
- Le blochet (spécifique)
- Un cadre de fixation destiné à fixer les interrupteurs
- Les interrupteurs
- Un cache.
L’immense avantage, c’est que le cadre est vissé directement sur le blochet, et le cache est
clipsé sur le cadre. Les interrupteurs sont clipsés sur le cadre, et n’assurent donc aucun rôle de
fixation.
34
Bref, je pouvais remplacer les interrupteurs par des touches sensitives sans perdre la
fixation mécanique de l’ensemble.
Le second avantage, c’est que chez Btcino, tout est disponible en différentes largeurs,
comptés sous forme de « modules ». La largeur d’un interrupteur standard ou d’une prise est
de 2 modules, ce qui permet d’utiliser des interrupteurs de demi-largeur (une visite chez un
vendeur Btcino vous montrera de quoi je parle).
Bref, chaque module faisant +- 2.2cm de large sur 4.4cm de haut, j’ai décidé que par
module j’intégrerai 2 touches sensitives superposées verticalement.
J’ai choisi d’utiliser principalement des 3 modules, soit 6 touches sensitives. Ceci donne
un look plus moderne que si j’avais utilisé le traditionnel 2 modules « carré ». Mais, je le
répéte, tout est possible, il vous suffit d’adapter.
Je vais maintenant vous montrer à quoi ressemblent ces éléments. Voici un blochet 4
modules :
35
C’est un blochet qui a fondu, ce qui explique son côté « voilé » sur le dessous. Je n’en
avais plus d’autre à vous montrer. Ceci est un 4 modules, on voit nettement qu’il peut contenir
2 interrupteurs classiques. Je vous rappelle que j’ai utilisé des 3 modules.
Notez les deux parties métalliques, de part et d’autre, qui permettent de visser le cadre
directement sur le blochet. Pour fixer votre carte pic sur le blochet, vous mettrez des vis
passées par l’arrière, bloquées chacune avec un écrou. Vous enfilerez la carte sur les vis. Je
vous montrerai plus loin une photo de l’ensemble.
Vous voyez nettement les vis de fixation. En regardant au centre du cadre, vous voyez les
3 encoches au dessus et en dessous destinées à recevoir les 3 modules. Un interrupteur
classique ou une prise occupe 2 encoches (modules), un demi-interrupteur, une prise de
télédistribution, une prise RJ45 etc. occupe 1 module. Ceci vous permet toutes sortes de
combinaisons.
Evidemment, pour ma part, j’ai utilisé du Btcino pour toute mon habitation (prises etc) et
pas seulement pour mes touches sensitives.
Ensuite, nous trouvons le cache de finition. En voici deux exemplaires. Tout d’abord le
light :
36
Qui est, comme je vous l’ai dit, en plastique blanc.
Ensuite, le Light-Tech :
Qui est, lui, en aluminium. Attention, le prix entre les deux versions n’est pas vraiment
identique, c’est le moins qu’on puisse dire. Comptez de l’ordre de 15 euros pour un cache
Light-Tech. Ceci est du reste normal, si vous avez en main cette version, vous comprendez
pourquoi. C’est la raison pour laquelle personnellement je n’ai mis cette version qu’au rez-de-
chaussée. A vous de voir.
Si vous préférez un style plus « classique », regardez le catalogue Btcino, vous y trouverez
votre bonheur.
37
Attention : Très important : Si vous utilisez un cache « Light-tech », il est impératif
de raccorder le cadre à la masse de la carte QT. Dans ce cas, vous verrez 6 fentes au
verso du cache. Introduisez de la pâte à décaper dans l’une d’elles, et soudez un fil à
l’aide d’une fine panne à t° maximale. Reliez ensuite ce fil au plan de masse de la carte
QT.
Si vous avez tout compris, nos touches sensitives vont venir au centre de ce cache,
protégées par un verre.
J’ai fait découper les carreaux dans un Brico. La précision n’est pas toujours parfaite,
faites-en donc découper quelques-uns de plus. Ca m’a coûté 5 euros pour les vitres de
l’ensemble des touches sensitives de mon bâtiment, ce qui est ridicule au regard du travail que
ça nécessite (choisissez un employé compréhensif).
La vitre devra avoir exactement la même taille que la carte des touches sensitives, soit,
dans mon cas, 44mm (fixe) X 66 mm (22mm par module)
Nous en avons déjà parlé, il vous faut encastrer le blochet. Mais, avant, il faudra prévoir
deux vis fixées dans le fond du blochet, afin de pouvoir par la suite fixer votre carte pic dans
le fond du blochet. Notez que sans ces vis, le cadre maintien le circuit éloigné des touches
sensitives, il n’y a donc pas de réel problème si vous n’en mettez pas. Du reste, j’ai fini par
renoncer à les utiliser.
Ensuite, vous faites transiter votre câble Domocan par chaque blochet.
J’ai choisi pour ma part d’utiliser un câble ethernet 4 * 2 fils torsadés dont je n’utilise
qu’une seule paire. J’ai accompagné ce câble d’un second, un simple côte à côte de
2*0.5mm², qui, lui, sera chargé d’alimenter les cartes.
C’est un peu du luxe, mais bon, on ne fait cette installation qu’une fois, autant faire nickel.
N’oubliez pas de plus que l’alimentation doit être capable d’alimenter les leds de toutes vos
cartes, on est vite à plusieurs centaines de mA.
Par convention, j’ai décidé que j’utiliserai la paire blanc/bleu du câble ethernet pour
véhiculer le signal CAN, de la façon suivante :
- Blanc : CanH
- Bleu : CanL
Les deux autres fils du connecteur étant les fils d’alimentation, ils seront reliés à l’autre
câble.
38
- Un câble ethernet qui arrive du blochet précédent
- Un câble ethernet qui part vers le blochet suivant
- Un câble d’alimentation qui arrive du blochet précédent
- Un câble d’ethernet qui part vers le blochet suivant.
N’oubliez pas que votre câble CAN doit être pourvu d’une résistance de terminaison de
120 ohms, entre CANL et CANH, à chaque extrémité. Dans mon cas, le câble démarre de
mon armoire contenant mes cartes centralisées (gradateurs, horloge, carte d’entrées), et se
termine dans un blochet de carte sensitive.
Si vous utilisez comme moi un câble ethernet faradisé, n’oubliez pas de relier ensemble,
dans chaque blochet, les masses des deux câbles, afin d’éviter une rupture de continuité du
blindage.
Equipez chaque blochet d’un connecteur CAN. Une fois le blochet encastré et le
connecteur monté, ça devrait ressembler à ceci :
Vous distinguez nettement les deux vis destinées à fixer la carte. Le blochet est encastré à
raz du mur. Remarquez à gauche les deux câbles d’arrivée (alimentation et CAN), et à droite
les deux câbles de départ.
Le connecteur CAN est très visible à l’avant-plan. Je vous conseille de placer des repères
(marqueur de couleur) pour ne pas intervertir vos connecteurs et/ou leur sens de branchement.
39
7.3 Montage mécanique des touches
Ensuite, vous faites passer votre carte de touches sensitives à travers le cadre, et vous
placez celui-ci à ras dans le tout petit rebord prévu d’origine. Notez que si vous utilisez du
circuit imprimé de 0.8mm, votre circuit affleurera tout juste le cadre, c’est l’idéal.
Remarquez que le montage mécanique est on ne peut plus simple, une fois trouvé les bons
composants. Si vous utilisez une plaque de finition Btcino® « Light-Tech® » alu, il y aura
évidemment un fil qui sortira d’en-dessous des touches sensitives (dans les fentes des
modules), et qui reliera la plaque de finition à la masse du QT. Dans ce cas, évidemment, à
cette étape du montage, la plaque pendra sous le cadre, attachée au fil de masse.
Souvenez-vous également que pour utiliser une plaque « Light-Tech® » aluminium, vous
devrez peindre votre carte à touches sensitives en couleur grise (évitez les couleurs contenant
du métal). Ici, elle est en blanc pour correspondre à une version en plastique blanc.
7.4 La vitre
Nous allons maintenant garnir la plaque de finition de sa vitre. Si votre vitre est coupée
correctement, elle glisse juste dans la découpe de la plaque de finition Btcino®.
Au dos de la vitre, nous allons coller un adhésif transparent, genre de celui utilisé pour
couvrir les cahiers scolaires.
Dégraissez correctement votre vitre, collez dessus l’adhésif, et glissez le tout par l’arrière
de votre plaque de finition.
Notez que l’adhésif n’est soumis à aucune contrainte mécanique. Si vous poussez sur le
carreau une fois en place, vous forcez sur le circuit de touches sensitives qui se trouvera juste
derrière. L’adhésif ne sert en fait qu’à empêcher le carreau de tomber vers l’extérieur. Si vous
40
trouvez une autre méthode de fixation, vous pouvez me la communiquer, j’en ferais profiter
tout le monde. Après 2 ans d’utilisation, ce mode de fixation ne m’a encore posé aucun
problème (et j’ai des enfants).
7.5 Le calque
Evidemment, on ne peut pas en rester là niveau finition, ce ne serait pas élégant. De plus,
il faut bien pouvoir insérer des symboles sur les touches sensitives.
Après bien des expériences et essais, j’ai déterminé que l’utilisation de simples feuilles de
papier calque à dessin était la solution la plus simple et la plus économique. De plus, il
s’imprime facilement à l’aide d’une simple imprimante à jet d’encre. Avec une laser, il faut 2
épaisseurs, un calque à dessin non imprimé (pas moyen d’imprimer sur du calque avec une
laser), et un transparent pour laser contenant les symboles.
Le second avantage du papier calque, est qu’il est translucide, mais pas transparent. Il
cache donc les éventuels petits défauts de la carte à touches sensitives, tout en laissant
transparaître la couleur de fond. C’est équivalent à utiliser un verre translucide, sauf que les
symboles, eux, restent parfaitement nets.
La réalisation du calque dépend de vos dons en dessin. Moi, je n’en ai aucun. J’ai
cependant réussi à obtenir quelque chose de propre. J’ai fait pour cela des gabarits pour 6 et
14 touches, et des symboles pour toutes sortes de touches. Il me suffit maintenant de combiner
les touches ensemble pour obtenir un ensemble cohérent. Je vous joints des exemples dans le
répertoire « Touches » qui fait partie du fichier compacté téléchargé.
41
La zone qui sera visible est au centre. Le calque est plus grand pour pouvoir être aisément
fixé sur la plaque de finition (scotch, colle etc). La fixation n’est en fait utile que le temps de
clipser la plaque de finition, après quoi le calque est maintenu automatiquement en place, car
écrasé entre la vitre et le circuit imprimé des touches.
Les 4 rectangles dans les coins sont les découpes nécessaires au passage des encoches
d’enclipsage. Ca permet de positionner de façon très précise le calque.
Les leds bleues se voient parfaitement à travers le calque, nul besoin de prévoir de
découpes. Evitez cependant de colorer le calque en noir foncé à l’endroit précis où se trouve
une led. En gris (comme pour la lampe de chevet dans l’exemple précédent), la transparence
reste parfaite.
Il ne reste plus maintenant qu’à clipser votre face avant équipée sur le cadre, ce qui se fait
simplement en appuyant en face des encoches.
Pour retirer la plaque de finition par la suite, il suffit d’insérer un tournevis sous les petits
ergos situés à gauche et à droite de la dite plaque, au milieu de la hauteur. Une simple rotation
déclipse les plaques de finition (agir avec douceur).
42
Voici le résultat fini :
Sur la photo, le calque est un peu décalé à gauche, je ne l’avais pas vu au moment de faire
la photo sur mon bureau, ce qui explique que les leds soient mal centrées.
Sur site, je l’ai positionné correctement, voici ce que ça donne, leds allumées.
43
Notez la luminosité incroyable de ces leds, à travers le calque, malgré qu’en mode
veilleuse au moment de cet essais, elles n’étaient qu’à 25% de la luminosité possible.
N’oubliez pas que les valeurs sont ajustables dans le logiciel, et que vous pouvez
également modifier la valeur des résistances en série selon vos désirs et selon les leds
utilisées.
44
8. Les communications
Comme toutes les cartes Domocan, la carte « sensitive » reconnaît l’intégralité des
commandes communes. Je vous renvoie au document « présentation » pour obtenir la liste et
le détail de toutes ces commandes.
Les erreurs générales susceptibles d’être émises par cette carte se trouvent également dans
ce document.
La carte à touches sensitives est aussi une carte 16 entrées améliorée, il est donc logique
qu’elle reconnaisse les commandes gérées par la dite carte. Evidemment, d’autres commandes
sont adjointes pour permettre de gérer les spécificités liées à l’utilisation d’un second
microcontrôleur.
Je rappelle que cette carte répond au n° de destinataire 0x61, reprise symboliquement dans
Domogest par la constante « Dest_InSens »
45
Tableau des commandes spécifiques à la carte à touches sensitives
Nom N° D B Rôle
Cmd_WStatF 1 R N Ecrire le statut d’une fonction en RAM
Cmd_RStatF 2 R N Lire le statut d’une fonction en RAM
Cmd_WStatFE 3 R N Ecrire le statut d’une fonction en EEPROM
Cmd_RStatFE 4 R N Lire le statut d’une fonction en EEPROM
Cmd_RunTimer 5 R N Démarrer un timer
Cmd_StopTimer 6 R N Stopper un timer
Cmd_RMdTimer 7 R N Demander le mode d’un timer
Cmd_LoadTD 8 R N Recharger un timer ou un décompteur
Cmd_AddValTD 9 R N Ajouter une valeur à un timer ou un décompteur
Cmd_CAct 10 R N Effacer les 16 trames d’une action
Cmd_WAct 11 R N Ecrire une partie d’une action
Cmd_RAct 12 R N Lire une trame d’une action
Cmd_WNameInSens 13 R N Nommer une entrée
Cmd_RNameInSens 14 R N Lire le nom d’une entrée
Cmd_WNbBTC 15 R N Fixer le nombre de boutons physiquement câblés
Cmd_WLevel 16 R N Définit le niveau de fonctionnement
Cmd_SendQT 17 R N Envoi de données vers le QT60161B
Cmd_WQTSpeed 18 R N Définit la vitesse de communication PIC/QT
Cmd_WLedSVB 19 R O Modifie l’état des leds de veilleuse et du bip
Cmd_WLedsT 20 R N Modifie l’allumage des leds témoins
Cmd_RLedsT 21 R O Demande l’état des leds témoins
Cmd_WRedirIn 22 R N Ecriture d’une séquence d’interception de trames
Cmd_RRedirIn 23 R N Lecture d’une séquence d’interception
Cmd_StatF 24 E - Envoi du statut d’une fonction en RAM
Cmd_StatFE 25 E - Envoi du statut d’une fonction en EEPROM
Cmd_MdTimers 26 E - Envoi du mode des timers
Cmd_ActC 27 E - Confirmation d’effacement d’une action
Cmd_Act 28 E - Envoi d’une partie de trame mémorisée
Cmd_NameInSens 29 E - Envoi du nom d’une entrée
Cmd_DataQT 30 E - Informations provenant du QT60161B
Cmd_DetectLed 31/1 E - Envoi de 6 octets de détection pour leds témoins
Cmd_RedirIn 31/2 E - Envoi des 8 octets d’une séquence de redirection
Remarquez d’entrée que vous avez deux commandes n° 31. Ceci est une application
directe de ce que je vous avais signalé dans le document « présentation ». Vous disposez bel
et bien de 31 commandes pour chaque carte, mais vous disposez également pour chaque
commande d’un octet de paramètre. Ici, selon la valeur passée dans le paramètres, une seule
valeur de commande permet en réalité l’utilisation de plusieurs commandes différentes si
nécesaire. Ceci vous montre que les limites réelles sont bien supérieures à ce qu’il paraît au
premier abord.
46
Bref, vous dialoguez avec le QT via la carte PIC.
- Envoi de Domogest vers la carte interface, dans une trame encapsulée, via le port de
communication
- La carte interface extrait la trame CAN encapsulée, et l’envoie sur le bus CAN.
- La carte pic concernée reçoit la trame CAN, et en extrait les informations à envoyer au
QT60161B
- Le pic envoie sur son USART les octets vers le QT60161B à la vitesse voulue
Vous voyez que le QT semble accessible en direct sur Domogest, mais qu’en réalité
l’information subit une série de traductions et d’étapes intermédiaires.
Cette commande peut être utilisée en interne par la carte pour actionner des événéments
spécifiques. La carte peut donc réagir à des événements qui ne lui sont pas destinés.
Pour des exemples d’utilisation, je vous renvoie au mode d’emploi de Domogest, chapitre
6.15
Je vous donne un exemple d’utilisation. Imaginons que vous décidiez que la led témoin
d’une touche sensitive d’une carte serve à indiquer si la lampe de votre salle-de-bain est
allumée. Si vous programmez la touche pour qu’elle allume la lampe et la led témoin, ça
fonctionnera sans problème.
Le problème survient alors si vous allumez la dite lampe à partir de Domogest sur votre
PC, ou à partir d’un autre point de commande situé ailleurs. Votre led ne s’allumera
évidemment pas.
47
La solution retenue est d’intercepter la commande de luminosité émise en réponse par
chaque carte gradateur. Si la led témoin est paramétrée pour une lampe en cours de
modification, elle s’allumera en conséquence.
Cette carte reconnaît toutes les erreurs générales. Elle utilise également une erreur
spécifique, l’erreur Err_S1, de numéro 0x98.
Cette erreur indique qu’une commande destinée à la carte en mode superviseur a été
envoyée vers une carte sensitive placée en mode utilisateur. L’erreur signifie donc : « Carte
sensitive pas en mode superviseur ».
Chaque carte est capable de réagir à une série d’événements différents. Ces événements
sont dénommés « actions » et sont au nombre théorique de 16, dont 14 actuellement utilisés.
La numérotation conventionnelle dans Domocan est la suivante :
Les différentes actions énumérées ci-dessus sont provoquées par des fonctions. Ces
fonctions sont soit des entrées physiques (touches sensitives), soit le résultat d’opérations
logicielles internes (portes, timers, décompteurs).
48
Ces fonctions sont également numérotées, afin de pouvoir être identifiées lors de l’envoi
de statut les concernant via le bus CAN.
- Son numéro de fonction, comme énuméré ci-dessus, et qui exprime le type de cette
fonction
Pour être plus clair, si on parle de la porte AND n° 8, on peut dire que :
- 1 touche sensitive
- 1 porte de chaque type (OR,AND,NOR,NAND)
- 1 timer de chaque sorte (1 lent et 1 rapide)
- 1 décompteur
- 8 types réservés pour d’éventuelles extensions futures
C’est pourquoi je parle de « groupes », ce qui est plus clair que de parler de « numéro »,
car des « numéros », il y en a un certain nombre, ce qui risque de prêter à confusion.
49
On peut dès lors identifier une fonction à coup sûr à l’aide de 8 bits, 4 pour le type, 4 pour
le groupe, ce qui est mis à profit dans Domocan, pour passer l’identification de la fonction
dans les 8 bits de paramètre de l’identificateur.
Chaque carte d’entrée pouvant contenir 16 groupes, et un bus Domocan pouvant contenir
255 cartes d’un même type, ça signifie que rien qu’avec les cartes sensitives, vous pouvez
obtenir pas moins de 4080 touches et fonctions de chaque type.
Pour voir si vous avez bien compris ce qui précède, imaginons que la porte OU (OR) n° 5
d’une carte sensitive donnée passe du niveau 0 au niveau 1 en sortie.
Ceci étant dit, nous allons maintenant voir ces commandes en détails.
Pour identifier l’état des différentes fonctions, un octet de statut est utilisé. Cet octet
dispose de 8 bits dont chacun détermine un élément différent. Le rôle de ces bits dépend du
type de fonction concerné. Voici les différents octets de statut :
Les bits 0 et 1 déterminent le fonctionnement de la touche. Au sujet de b0, son rôle est
différent de celui de la carte 16 entrées. Sur cette carte, il permettait de déterminer si un
bouton-poussoir était NO ou NF. Ici, point de tout cela, puisque la touche est sentive. Par
contre, vous avez tout de même deux modes de fonctionnement :
Soit le pulse est généré lorsque vous relâchez la touche après une pression de moins de 0.5
seconde, exactement comme pour la carte 16 entrées. En effet, s’il y a par exemple 200ms que
vous pressez la touche, le logiciel ne peut pas savoir si vous comptez la maintenir ou non
avant d’avoir rencontré un des deux cas suivants :
50
Soit le pulse est généré directement sur détection de votre doigt sur la touche. Dans ce cas,
cependant, il se peut que votre intention était de maintenir votre doigt plus de 500ms. Le
comportement sera alors le suivant :
Bref, dans ce cas, vous avez action directe, mais, si vous maintenez le doigt, vous aurez un
pulse suivi d’un début de maintien, et non un début de maintien seul, c’est logique, impossible
de faire autrement.
Tout dépend en fait de ce que vous voulez faire avec la touche, le choix vous est laissé. Si
vous choisissez « pas d’action directe », la touche fonctionnera exactement comme pour la
carte 16 entrées, c’est le fonctionnement « classique ».
Les bits 2 à 4 permettent de connaître la dernière action générée par la touche, ce qui est
pratique pour analyser la situation au niveau de Domogest.
Les portes logiques disposent également d’un octet de statut, dont voici la signification :
b0/b3 : entrées 1 à 4
b4 : état actuel
b5 : réservé
b6 : sortie à 1 à traiter
b7 : sortie à 0 à traiter
Les bits 0 à 3 donnent l’état logique de chacune des 4 entrées de la porte. Le bit 4 quant à
lui donne l’état de la sortie de la dite porte.
Les bits 6 et 7 indiquent qu’un changement d’état de la sortie de la porte est en cours de
traitement, ou permettent de forcer le traitement immédiatement.
Dans les bits b6/b0 se trouve la valeur actuelle du timer ou du décompteur. Notez donc
que cette valeur ne peut varier que de 0 à 127.
Le bit 7 indique que la valeur vient d’arriver à 0, et permet également de forcer l’action.
51
En ce qui concerne le forçage d’action, souvenez-vous qu’une action d’une fonction peut
générer l’envoi de jusque 17 trames CAN. Le passage en interne d’un bit d’action (par
exemple la sortie d’une porte OU qui change d’état) à 1 provoquera l’émission de la séquence
correspondante programmée par l’utilisateur. Cependant, si on fait passer ce bit à « 1 » par
une commande d’écriture de statut via une commande CAN de type Cmd_WStatF, on peut
forcer la carte à envoyer sa séquence à n’importe quel moment.
Ce procédé est très pratique, car il permet d’éviter de réécrire un ensemble de commandes,
pour le cas où plusieurs actions engendrent la même séquence de trames CAN. Bref, ça
équivaut à écrire des « macros » de commandes.
Dans Domogest, vous devez communiquer en temps normal avec le pic. C’est lui qui vous
informe des touches appuyées, des contenus des timers, etc. En fonctionnement normal de
votre carte, nous dirons que nous sommes dans le mode « utilisateur ». Le QT ne vous
intéresse pas, c’est le pic qui s’en occupe pour vous.
Ces modes sont gérés directement à partir de Domogest, mais il est important de savoir
qu’en mode utilisateur la carte ne remplira pas sa fonction habituelle, et que, par contre, la
communication directe avec le QT ne pourra se faire qu’en mode superviseur.
C’est la raison pour laquelle vous allez trouver dans le descriptif des commandes une
ligne supplémentaire indiquant le ou les mode(s) possible(s) de fonctionnement de chaque
commande. De nouveau, via Domogest, tout est transparent pour vous.
Souvenez-vous que toute commande spécifique au mode superviseur, envoyée vers une
carte sensitive qui se trouve en mode utilisateur, recevra en réponse une erreur « Err_S1 »
52
8.9 Détails des commandes spécifiques
La carte « sensitive » est une carte qui est principalement destinée à gérer des entrées. De
ce fait, elle est orientée pour l’émission de trames CAN.
Cependant, cette carte dispose de fonctions logiques, timers etc, ce qui fait qu’elle est
également prévue pour recevoir un certain nombre de commandes.
En surplus, elle est capable d’intercepter des trames émises par d’autres cartes, dans le but
de gérer ses leds témoins.
Si vous imaginez par exemple que l’action sur une touche déclenche une minuterie.
Si le timer de la minuterie se trouve sur une carte différente que celle de la touche, alors
une trame CAN sera envoyée sur le bus.
Par contre, si timer concerné et touche sont repris sur la même carte d’entrée, alors la
commande ne sera pas envoyée sur le bus CAN, mais directement « envoyée » en interne pour
traitement immédiat.
Tout ceci est géré de façon automatique et transparente pour l’utilisateur. Cependant, vous
devez savoir que vous avez intérêt, si vous avez le choix, à utiliser des fonctions internes à la
carte, plutôt que des fonctions identiques d’une autre carte, ceci afin de diminuer le trafic du
bus CAN.
Une bonne partie des commandes de cette carte est identique aux commandes de la carte
16 entrées. Il y en a de plus de nouvelles.
8.9.1 Cmd_WStatF
53
La commande, toujours afin d’éviter de devoir travailler avec des variables sur les
commandes, permet de réaliser en interne 3 types d’actions différentes sur les bits de statut :
- Forcer un bit à 0
- Forcer un bit à 1
- Inverser un bit
Les 3 octets sont constitués d’un masque, dont chaque bit à 1 valide l’action. Ainsi, si
vous envoyez comme octets de data les octets suivants :
D0 : B’00110100’
D1 : B’01000001’
D2 : B’00000011’
Les opérations étant effectuées dans l’ordre précédent, on peut dire que pour l’octet de
statut ciblé :
b7 va rester inchangé
b6 va être forcé à 1
b5 va être forcé à 0
b4 va être forcé à 0
b3 va rester inchangé
b2 va être forcé à 0
b1 va être inversé
b0 va d’abord être forcé à 1 avant d’être inversé, il va donc être forcé à 0
Notez que la fonction concernée est identifiée à la fois par son type (FFFF) et par son
groupe (GGGG) dans l’unique octet de paramètre de l’ID (FFFF GGGG)
54
8.9.2 Cmd_RStatF
8.9.3 Cmd_WStatFE
Cette commande fonctionne exactement comme la commande StatF, exepté que l’écriture
s’effectue en eeprom et non en RAM. Il s’agit donc ici de modifier le statut par défaut de
chaque fonction, ce qui est particulièrement utile pour définir, par exemple, si un bouton-
poussoir est en service ou non, et s’il est N.O. ou N.F.
8.9.4 Cmd_RStatFE
55
8.9.5 Cmd_RunTimer
Cette commande permet de démarrer un timer, lent ou rapide. De ce fait, FFFF doit
correspondre à un timer, et ne peut dès lors valoir que 5 ou 6.
8.9.6 Cmd_StopTimer
Cette commande, à l’inverse de la précédente, arrête un timer donné. Notez que comme
pour la commande précédente, FFFF doit concerner impérativement un timer, et ne peut donc
valoir que 5 ou 6, sous peine d’être gratifié d’une erreur Err_G4 (paramètre incorrect).
8.9.7 Cmd_RMdTimers
56
8.9.8 Cmd_LoadTd
8.9.9 Cmd_AddValTD
Avec cette commande, vous pouvez modifier la valeur actuelle d’un timer ou d’un
décompteur. Si b7 de l’incrément passé dans D0 vaut 1, le nombre est considéré comme
négatif et la valeur actuelle du timer ou décompteur sera décrémentée de la valeur contenue
dans les bits b6/b0 de la valeur passée dans D0. Il s’agit donc en fait d’une décrémentation.
Si, au contraire, b0 est nul, la valeur contenue dans le timer/décompteur sera incrémentée
de la valeur de D0.
Si le résultat d’une incrémentation donne une valeur supérieure à 127, la nouvelle valeur
du timer/décompteur sera fixée à 127.
57
8.9.10 Cmd_CAct
Permet d’effacer en une seule commande les 16 commandes liées à l’exécution d’une
action. Les commandes des actions sont mémorisées en eeprom externe 24Cxxx, ce qui
explique la présence d’une erreur possible de type Err_G11.
8.9.11 Cmd_WAct
Permet d’écrire une commande relative à une action. Une commande étant une trame
CAN, nécessite au maximum 13 octets. De ce fait, la commande Cmd_WAct ne disposant que
de 8 octets de data, la trame complète nécessite deux envois de commande. Si vous suivez
bien, le but est donc de faire passer une trame CAN (la commande à mémoriser) dans les
octets de data d’une autre trame CAN (la commande Cmd_WAct).
58
Si b0 vaut 1, les 7 octets de data suivants contiennent l’ID, le nombre d’octets de data, et
les 2 premiers octets de data de la trame de commande. SIDL, qui est la commande Domocan,
est codée sous forme d’un nombre de 0 à 31.
Si b1 vaut 1, les 6 octets de data suivants contiennent le reste de la trame, à savoir les
octets de data D2 à D7.
8.9.12 Cmd_RAct
Permet de relire une trame spécifique d’une action. La réception d’une trame d’action
complète nécessite 2 trames CAN, comme détaillé pour la commande précédente. La réponse
sera donc constituée de 2 commandes Cmd_Act.
8.9.13 Cmd_WNameInSens
Permet d’écrire ou modifier le nom d’une des touches de la carte afin de faciliter son
identification.
Le nom sera écrit dans la mémoire flash du pic, et protégé d’un effacement par bootloader.
Notez que le n° de l’entrée est évidemment le n° du groupe de fonction auquel elle fait
partie. Ce numéro sera passé dans les 4 bits de poids faible du paramètre (EIDL pour rappel).
59
8.9.14 Cmd_RNameInSens
8.9.15 Cmd_WNbBtC
Le second octet de data, D1, précise le nombre de touches effectivement utilisées sur la
carte. Ainsi, si nous reprenons l’exemple précédent, notre carte 8 groupes pourrait fort bien
avoir 5 touches utilisées, et 3 de réserve. Dans ce cas, nous introduirions la valeur 5 comme
NBBP. Cette information est inutilisée en fait dans le logiciel de la carte, mais interceptée par
le logiciel Domogest pour éviter d’afficher à l’écran des touches qui n’existent physiquement
pas.
Notez pour rappel, bien que cela semble évident, que D1 ne peut pas être supérieur à D0,
sous peine d’être gratifié d’une erreur.
60
La réponse s’effectue via la commande commune d’identification de la carte, CC_Carte.
L’octet D5 contient par définition la valeur NBGERE de chaque carte, tandis que l’octet D6,
dont le rôle dépend du type de la carte, contiendra dans ce cas précis le nombre d’entrées
physiquement utilisées.
8.9.16 Cmd_WLevel
8.9.17 Cmd_SendQT
La carte doit se trouver en mode superviseur, sinon elle génére une erreur de type Err_S1.
Le pic ne répond pas à cette commande, il se contente de la transférer au QT. Par contre,
celui-ci va émettre une réponse, qui sera relayée par le pic. Autrement dit, vous recevrez une
réponse directement du QT, par l’intermédiaire du pic, évidemment. Pour bien me faire
61
comprendre, si le QT ne répond pas, vous n’aurez aucune réponse suite à l’envoi de cette
commande. La réception d’une réponse prouve que le QT communique.
8.9.18 Cmd_WQtSpeed
Cette commande est très très particulière. Normalement, vous ne devrez jamais l’utiliser.
Cependant, j’ai été « obligé » de l’intégré, car, connaissant certains d’entre-vous, qui aiment
faire des expérimentations, ils risqueraient de se retrouver définitivement bloqués, avec
impossibilité de faire fonctionner leur carte, suite à une mauvaise manipulation.
Conscient de ça, j’ai ajouté une commande (sécurisée par l’ajout de 2 octets de
vérification), qui permet au pic de modifier sa vitesse de communication avec le QT. Si donc,
vous avez changé la vitesse de communication du QT, vous pouvez forcer la même
modification sur le pic, en utilisant la commande WQtSpeed. Cette commande n’est
volontairement pas présente sous forme d’un bouton dans Domogest, vous devrez donc
envoyer manuellement la trame depuis Domogest, ce qui évitera les changements maladroits.
Pour résumer, cette commande est une commande de dernier secours si vous avez modifié
la vitesse du QT en envoyant manuellement via Domogest une trame WSendQT contenant un
ordre de modification de la vitesse de communication du QT.
Si vous avez oublié quelle vitesse vous avez paramétrée, il ne vous restera qu’à les essayer
toutes, il n’y en a que 5 possibles.
62
J’insiste donc : Sauf nécessité absolue, n’utilisez pas cette commande.
8.9.19 Cmd_WLedsVB
De nouveau, l’état actuel est renvoyé dans la commande CC_Carte,dont le rôle sera
résumé plus avant.
- Soit en mode veilleuse, pour permettre de localiser les touches dans le noir (à tâton, ce
n’est pas une bonne idée pour des touches sensitives). Dans ce cas, la luminosité est
limitée à 25%
- Soit en mode témoin, pour signaler une fonction. Dans ce cas, la luminosité est de 100%
63
Si vous avez placé un bip, vous pouvez choisir si vous voulez ou pas l’émission d’un bip à
chaque action sur une touche sensitive.
Vous pouvez également forcer la carte à générer des bips, ce qui pourrait servir par
exemple pour se servir de la carte comme réveille-matin, à condition que le buzzer soit bien
placé et suffisamment puissant.
Vous pouvez utiliser cette fonction pour confirmer des actions spéciales (genre 3 bips
pour enclencher une minuterie, ou 5 bips pour annoncer que l’éclairage de l’escalier va
s’éteindre etc.).
8.9.20 Cmd_WLedsT
Cette commande permet d’agir directement et individuellement sur les leds, dans leur
fonction Led témoin, c’est-à-dire à pleine luminosité.
Les commandes sont exécutées dans l’ordre, c’est-à-dire que si vous demandez par
exemple à la fois l’allumage et l’inversion, l’allumage sera exécuté en premier, puis
l’inversion, la led sera donc éteinte. Evidemment, deux actions sur une même led est une
pratique curieuse, mais bon, le choix vous est donné.
Notez qu’en mode veilleuse, c’est –à-dire à 25% de luminosité, vous agissez
simultanément sur toutes les leds. En mode témoin, vous agissez led par led.
N’oubliez pas que, de plus, vos leds témoins peuvent se gérer toutes seules
automatiquement, en fonction des commandes reçues d’autres cartes (pour cette version 1.10,
seules les commandes de luminosité sont gérées, mais d’autres vont suivre).
64
8.9.21 Cmd_RLedsT
Cette commande permet simplement en retour d’obtenir l’état actuel des leds témoins.
Notez que le mode broadcast est autorisé, vous pouvez donc interroger toutes vos cartes avec
une seule commande.
8.9.22 Cmd_WRedirIn
La commande écrit une séquence de redirection. Il s’agit en fait de 8 octets de data qui
indiquent à la carte quelle commande est à intercepter et de quelle façon, ainsi que les actions
à effectuer dès qu’une trame correspondante est détectée.
Voici les explications concernant les 2 premiers octets de data, qui sont identiques quelle
que soit la commande à intercepter :
L’action précisée par D0 l’est au travers de plusieurs flags, utilisant chacun un bit de D0.
65
0001/1111 : réservé pour le futur
b3/b0 : opération à effectuer :
0000 : Action sur une led témoin de la carte
0001 : action sur une entrée d’une porte OU
0010 : action sur une entrée de porte ET
0011 : action sur une entrée de porte NOR
0100 : action sur une entrée de porte NAND
0101 : démarrer/stopper un timer lent
0110 : démarrer /stopper un timer rapide
0111/1110 : réservé pour futur (0xFF réservé pour séquence vide)
Les bits b7 à b4 de D0 précisent le type de trame interceptée selon un code interne qui
sera complété au fur et à mesure des besoins. Pour l’instant, seules les trames Cmd_Lum
émanant de cartes gradateurs sont interceptées.
D1 : descriptif de l’élément sur lequel va agir la trame. Le type d’élément est déjà précisé par
les bits b3/b0 de D0 :
Bref, si vous voulez qu’une trame Cmd_Lum agisse sur l’entrée 2 de la porte AND n° 4,
les bits seront :
D0 :
b7/b4 : 0000 : commande de type Cmd_Lum
b3/b0 : 0010 : action sur une porte ET
D1 :
b7/b4 : 0010 : l’action concerne l’entrée n° 2
b3/b0 : 0100 : de la porte n° 4
Avec cet exemple, je suppose que c’est maintenant un peu plus clair. De toutes façons, je
vous rappelle que Domogest gère tout ça de façon transparente pour vous.
Il reste 6 octets à examiner pour chaque séquence. En fait, ces 8 octets sont contextuels,
contrairement à D0 et D1 leur rôle change en fonction de la commande reçue, ce qui
permettra un maximum de souplesse dans le futur sans induire un excès de mémoire
consommée.
Je vous donne à titre d’exemple le rôle des octets D2 à D7 pour la commande Cmd_Lum,
la seule interceptée sur la révision 4.00 de cette carte.
66
D4 : Valeur minimale qui va déclencher l’action : si 0xFF, aucune action sur la valeur
minimale. La valeur est la valeur de luminosité précisé dans l’octet D0 de Cmd_Lum
b7 : type d’action : (1 = mise à 1 ; 0 = mise à 0)
b6 : égalité : Si 1, l’égalité est considérée comme valide, sinon la valeur doit être
strictement supérieure au minima pour déclencher l’action
b5/b0 : valeur minimale proprement dite (0 à .50 )
D5 : Valeur maximale qui déclenche l’action. Si 0xFF, aucune action sur le maxima.
b7 : type d’action : idem que pour D4
b6 : égalité : si 1, l’égalité induit l’action, sinon la valeur doit être strictement inférieure
b5/b0 : valeur maximale proprement dite.
Vous constatez que le rôle de D2/D7 dépend du contexte, et que donc toute évolution
future est d’avance maîtrisée.
8.9.23 Cmd_RRedirIn
Cette commande demande à la carte une séquence d’interception dont le n° est précisé
dans le paramètre.
8.9.24 Cmd_StatF
Cette commande permet de renvoyer le statut actuel d’une fonction. Le statut est renvoyé
dans l’octet de data D0. Le rôle des différents bits dépend du type de fonction, nous en avons
déjà parlé.
Le paramètre permet d’identifier la fonction, avec le n° du type de fonction dans les 4 bits
de poids forts, et le n° du groupe de la fonction dans les 4 bits de poids faibles.
67
8.9.25 Cmd_StatFE
8.9.26 Cmd_MDTimers
Il s’agit ici de renvoyer un bit par timer. Si le bit vaut 1, le timer est actuellement en cours
de fonctionnement. S’il vaut 0, le timer est à l’arrêt.
8.9.27 Cmd_ActC
Cette trame est émise en réponse à une demande d’effacement des 16 trames d’une action.
Pour rappel, il y a 16 types d’actions possibles (clic sur BP, maintien sur BP, fin de maintien
sur BP, porte OR qui passe à 0 etc.). Chaque action contenant un maximum de 16 commandes
programmables, c’est l’intégralité de ces 16 commandes qui est concernée ici.
68
L’action est identifiée grâce au paramètre, dont les 4 bits de poids forts indiquent le type
d’action concernée, tandis que les 4 autres bits précisent le groupe d’appartenance de ce type
d’action. Soit, en plus clair : Type d’action / N° de l’action.
8.9.28 Cmd_Act
Cette commande renvoie dans ses octets de data une demi-trame CAN correspondant à
une demi-commande, parmis les 16 entières, d’une action. Il s’agit ici des mêmes commandes
expliquées pour la commande Cmd_ActC ci-dessus.
Le rôle des différents octets de data est strictement le même que pour la commande
Cmd_WAct, déjà expliquée en détails.
Cette trame permet d’obtenir la moitié d’une ligne de commande concernant une action.
Chaque action comportant au maximum 16 commandes, il faut 32 trames Cmd_Act pour
obtenir une action complète.
8.9.29 Cmd_NameInSens
Cette commande renvoie sous forme de 8 octets ASCII le nom d’une touche de la carte,
dont le n° est contenu dans GGGG.
69
8.9.30 Cmd_DataQT
8.9.31 Cmd_RedirIn
Cette commande renvoie les 8 octets constitutifs d’une séquence de redirection de trames
entrantes.
70
8.9.32 Cmd_LedsT
Chaque bit renseigne sur l’état d’une led. Si le bit est à 1, la led témoin est allumée, s’il
vaut 0, elle est éteinte.
Notez que cette commande possède le même numéro que la commande Cmd_RedirIn.
C’est le paramètre qui permet de les différentier, ce qui ne pose aucun problème à Domogest.
Vous voyez que cette méthode permet d’avoir un grand nombre de commandes,
exactement comme pour l’unique commande commune (0x00), qui contient en réalité un
grand nombre de commandes réelles.
Ceci termine l’étude de nos commandes spécifiques. Vous constatez qu’avec cette carte,
vous êtes gâtés.
Pour cette carte, les octets de la commande CC_Carte sont tous utilisés. Comme certains
sont optionnels, je vous indique la signification de chaque octet dans le cas particulier des
touches sensitives
71
; 000 : 9600 bauds (valeur par défaut du QT)
; 001 : 14400 bauds
; 010 : 19200 bauds
; 011 : 38400 bauds
; 100 : 57600 bauds
Vous constatez que CC_Carte est destiné en fait à avoir un résumé efficace des
fonctionnalités de la carte et de son état. Les octets D0 à D4 sont communs à toutes les cartes,
l’octet D5 contient une information utilisée par la majorité des cartes. D6 tel que décrit est
spécifique aux cartes 16 entrées et aux cartes sensitives, alors que les informations renvoyées
par D7 sont limitées pour l’instant aux cartes sensitives.
Bref, c’est une commande dont le noyau donne des informations toujours identiques, alors
que les octets supplémentaires donnent des informations contextuelles.
Vous constaterez qu’avec cette carte, vous disposez d’un « plus » évident par rapport à
une installation électrique classique, et même que la grande majorité des systèmes domotiques
actuellement commercialisés. Qui peut se vanter de pouvoir piloter toute son habitation à
l’aide de touches sensitives paramétrables ?
Et nul doute que votre épouse appréciera comme la mienne le côté « blue » de vos leds.
72
9. Utilisation du présent document
Cet ouvrage est destiné à être lu après les précédents documents du même projet
disponibles sur mon site.
Communiquez à l’auteur (avec politesse) toute erreur constatée afin que la mise à jour
puisse être effectuée dans l’intérêt de tous, si possible par émail.
Pour des raisons de facilité de maintenance, j’ai décidé que cet ouvrage serait disponible
uniquement sur mon site : www.abcelectronique.com/bigonoff
Bien entendu, j’autorise (et j’encourage) les webmasters à placer un lien vers le site,
inutile d’en faire la demande. Je ferai de même en retour si la requête m’en est faite. Ainsi,
j’espère toucher le maximum d’utilisateurs.
Le présent ouvrage peut être utilisé par tous, la modification et la distribution sont
interdites sans le consentement écrit de l’auteur.
Tous les droits sur le contenu de cet ouvrage, et sur les programmes qui l’accompagnent
demeurent propriété de l’auteur.
L’auteur ne pourra être tenu pour responsable d’aucune conséquence directe ou indirecte
résultant de la lecture et de l’application de l’ouvrage, des programmes, ou du matériel.
Lorsque vous travaillez sur la tension secteur, assurez-vous que vous avez les
compétences nécessaires, et soyez prudents.
Toute utilisation commerciale est interdite sans le consentement écrit de l’auteur. Tout
extrait ou citation dans un but d’exemple doit être accompagné de la référence de l’ouvrage.
Si vous avez aimé cet ouvrage, si vous l’utilisez, ou si vous avez des critiques, merci de
m’envoyer un petit mail. Ceci me permettra de savoir si je dois ou non continuer cette
aventure avec les parties suivantes.
- Je ne réalise pas les programmes de fin d’étude pour les étudiants (même en payant), c’est
une demande qui revient toutes les semaines dans mon courrier. Tout d’abord je n’ai pas
le temps, et ensuite je ne pense pas que ce soit un bon service. Enfin, pour faire un peu
d’humour, si je donnais mes tarifs, ces étudiants risqueraient un infarctus.
- Je n’ai malheureusement pas le temps de debugger des programmes complets. Inutile donc
de m’envoyer vos programmes avec un message du style « Ca ne fonctionne pas, vous
pouvez me dire pourquoi ? ». En effet, je passe plus de 2 heures par jour pour répondre au
courrier, si, en plus, je devais debugger, j’y passerais la journée. Vous comprenez bien que
c’est impossible, pensez que vous n’êtes pas seul à poser des questions. Posez plutôt une
question précise sur la partie qui vous semble inexacte.
73
- Si vous avez des applications personnelles, n’hésitez pas à les faire partager par tous. Pour
ce faire, vous pouvez me les envoyer. Attention cependant, faites précéder votre envoi
d’une demande.
Je remercie tous ceux qui m’ont soutenu tout au long de cette aventure, et qui se
reconnaîtront. Nul doute que sans les nombreux encouragements reçus, ce livre n’aurait
jamais vu le jour.
Réalisation : Bigonoff
74