Dernière mise à jour :
05/05/2024
Présentation
Cette
télécommande
sans fil permet de transmettre un maximum de 16 ordres
différents avec
accusé de réception simple ou 8 ordres différents avec accusé de
réception étendu.
L'accusé de réception simple informe le point
d'émission que
le
récepteur a bien reçu les ordres transmis par l'émetteur.
L'accusé
de réception étendu permet de savoir si l'appareil commandé a
réellement réagi (il doit pour cela posséder des sorties de
télésignalisation).
L'idée de cet appareil a pour origine une demande d'un ami preneur de
son
qui dans un immeuble souhaitait pouvoir envoyer une information de type
"ça tourne" à une équipe technique située à un étage au-dessus, avec la
certitude que l'information était bien passée et il lui
fallait un
accusé de réception
silencieux.
Contrainte supplémentaire, il ne voulait aucun rayonnement HF de
l'appareil au repos.
Le circuit présenté ici est basé sur un microcontrôleur PIC
d'entrée de gamme et peu
coûteux, le 18F26K22 (un 16F1827 pourrait également convenir, moyennant
adaptation du logiciel) associé à un module HF de type nRF24L01. Et je
suis allé bien au-delà de la demande initiale.
Avertissement
Pour l'heure, cette
télécommande ne fonctionne qu'en mode 16 voies avec les accusés de
réception simple, le mode "8 voies avec accusé de réception étendu"
n'est pas encore implémenté.
Les 16 lignes d'entrées et de
sorties sont montrées "nues", directement accessibles. Dans la pratique,
ces lignes sont dotées des protections requises pour se prémunir des
aléas de l'environnement (parasites, surtensions).
Utilisations possibles
Une télécommande de
ce type permet de piloter à distance plusieurs appareils
différents ou plusieurs fonctions d'un même appareil. L'existence d'un
accusé de réception n'est justifiée que pour les cas où on ne voit pas
entrer en action l'appareil commandé à distance.
J'ai
limité le nombre de voies à 16, mais le système a été conçu pour
pouvoir dès maintenant prendre
en charge plusieurs milliers de commandes distinctes moyennant l'ajout
de quelques
circuits intégrés.
Schéma
Le coeur du montage est un microcontrôleur PIC, composant indispensable
ici pour dialoguer avec le module HF nRF24.
L'expandeur
de port U2/MCP23S17 permet d'ajouter des lignes d'entrée/sortie, le PIC
choisi n'en disposant que d'un nombre réduit.
Configuration matérielle
Trois cavaliers (JPx) sont prévus :
- JP1/Mode
- permet de sélectionner le mode émetteur (Tx) ou récepteur (Rx)
0 = Rx, mode récepteur
1 = Tx, mode émetteur
- JP2/AR
- permet de sélectionner le mode d'accusé de réception (simple ou
étendu)
0 = accusé de réception simple
1 = accusé de réception étendu
- JP3/Repeat
- n'est utilisé qu'en mode émission avec accusé de
réception étendu, pour lire l'état de l'appareil commandé 500 ms
après l'ordre initial (utile pour appareils commandés lents).
0 = aucune répétition
1 = une répétition après envoi de la commande initiale
Signalisations
Quatre voyants sont prévus :
- Les voyants LED ModeTx
et ModeRx
informent du mode (Tx ou Rx) réellement sélectionné au niveau du module
HF. Celui de ces deux voyants qui s'allume dépend de la position du
cavalier JP1/Mode.
- Les voyants LED DataTx
et DataRx
clignotent lors de l'envoi d'un ordre (en mode Tx) ou lors de la
réception d'un ordre (en mode Rx). Dans la pratique, les deux voyants
semblent s'allumer simultanément, car le temps qui sépare l'émission
d'un ordre et sa prise en compte par le récepteur est très court et non
discernable par l'oeil humain.
Aucun
voyant additionnel de mise sous tension n'a été prévu, puisqu'au moins
un des deux voyants ModeTx ou ModeRx est allumé en permanence.
Fonctionnement général
Le même circuit peut être configuré en émetteur ou en récepteur, avec
accusé de réception simple ou étendu. L'expandeur de ports U2 raccordé
au
PIC par une liaison SPI permet de disposer de 16 lignes d'E/S qui
peuvent être utilisées en entrées ou en sorties. Le nombre de voies de
télécommande dépend du mode d'accusé de réception (AR)
sélectionné : 16
voies avec accusé de réception simple (AR=0), 8 voies avec accusé de
réception
étendu (AR=1).
Mode
Tx/Rx |
Accusé
réception |
JP1
(Mode) |
JP2
(AR) |
GPIO
A |
GPIO
B |
Remarques |
Tx (émission) |
Simple |
1 |
0 |
Entrées |
Entrées |
16 voies de TC |
Tx (émission) |
Etendu |
1 |
1 |
Entrées |
Sorties |
8 voies de
TC |
Rx (réception) |
Simple |
0 |
0 |
Sorties |
Sorties |
16 voies de TC |
Rx (réception) |
Etendu |
0 |
1 |
Sorties |
Entrées |
8 voies de
TC |
Remarque
: les lignes de l'expandeur de port U2 configurées en entrées sont
portées à un potentiel nul au repos, grâce au "résistances de rappel" (
pulldown) incluses
dans le circuit. De la sorte, les entrées non utilisées peuvent rester
"en l'air" (non raccordées).
Mode Emetteur avec accusé de réception simple
Dans ce mode :
- la LED ModeTx est allumée et la LED ModeRx est
éteinte
- les 8 lignes d'E/S du port GPIO A l'expandeur de
ports MCP23S17 sont configurées en entrée
- les 8 lignes d'E/S du port GPIO B l'expandeur de ports
MCP23S17 sont configurées en entrée
Mode Emetteur avec accusé de réception étendu
Dans ce mode :
- la LED ModeTx est allumée et la LED ModeRx est
éteinte
- les 8 lignes d'E/S du port GPIO A l'expandeur de
ports MCP23S17 sont configurées en entrée
- les 8 lignes d'E/S du port GPIO B l'expandeur de ports
MCP23S17 sont configurées en sortie
Non implémenté pour l'heure.
Mode Récepteur avec accusé de réception simple
Dans ce mode :
- la LED ModeRx est allumée et la LED ModeTx est
éteinte
- les 8 lignes d'E/S du port GPIO A l'expandeur de
ports MCP23S17 sont configurées en sortie
- les 8 lignes d'E/S du port GPIO B l'expandeur de ports
MCP23S17 sont configurées en sortie
Mode Récepteur avec accusé de réception étendu
Dans ce mode :
- la LED ModeRx est allumée et la LED ModeTx est
éteinte
- les 8 lignes d'E/S du port GPIO A l'expandeur de
ports MCP23S17 sont configurées en sortie
- les 8 lignes d'E/S du port GPIO B l'expandeur de ports
MCP23S17 sont configurées en entrée
Non implémenté pour l'heure.
Transmission des données
La transmission des ordres se fait par un petit paquet (une petite
trame) de 20 octets.
Octet |
Fonction |
Remarque |
Nota |
#00 |
longueur trame |
Nombre d'octets |
(1) |
#01 |
Réservé |
Non utilisé |
- |
#02 |
adresse du destinataire |
Highest (b31..b24) |
(2) |
#03 |
adresse du destinataire |
Higher (b23..b16) |
(2) |
#04 |
adresse du destinataire |
High (b15..b8) |
(2) |
#05 |
adresse du destinataire |
Low (b7..b0) |
(2) |
#06 |
type de commande |
- |
(3) |
#07 |
valeur de commande |
Higher (b23..b16) |
(4) |
#08 |
valeur de commande |
High (b15..b8) |
(4) |
#09 |
valeur de commande |
Low (b7..b0) |
(4) |
#10 |
type du paramètre |
Highest (b31..b24) |
(5) |
#11 |
type du paramètre |
Higher (b23..b16) |
(5) |
#12 |
type du paramètre |
High (b15..b8) |
(5) |
#13 |
type du paramètre |
Low (b7..b0) |
(5) |
#14 |
valeur du paramètre |
Highest (b31..b24) |
(6) |
#15 |
valeur du paramètre |
Higher (b23..b16) |
(6) |
#16 |
valeur du paramètre |
High (b15..b8) |
(6) |
#17 |
valeur du paramètre |
Low (b7..b0) |
(6) |
#18 |
CRC16 |
High |
(7) |
#19 |
CRC16 |
Low |
(7) |
Nota (1) - Longueur trame complète, actuellement spécifiée en fixe avec
la valeur 20.
Nota (2) - Actuellement, seul l'octet #05 est utilisé (256 adresses
destinataire possibles).
Nota (3) - Commande initiale ou répétition, maintenue ou momentanée.
Nota (4) - Dans le cas d'une commande momentanée, indique le temps, en
ms.
Nota (5) - Actuellement, seul l'octet #13 est utilisé
(256 paramètres possibles).
Nota (6) - Actuellement, seul l'octet #17 est utilisé (256 valeurs de
paramètre possibles).
Nota (7) - Polynome x^16 + x^15 + x^2 + 1, incluant les
octets #00 à #17.
Comme
on peut le constater, le système est largement sous-exploité avec une
utilisation de seulement 16 voies. J'ai prévu large ;)
Contrainte sur accusé de réception étendu
En
mode réception, l'envoi des accusés de réception est quasi immédiat, ce
qui peut poser problème avec un appareil commandé un peu long à la
détente. En effet, si ce dernier est doté de relais dont
certains contacts servent de confirmation d'activité (boucles
sèches de télésignalisation), le temps que mettent les contacts du
relais à bouger (quelques ms) peut être supérieur au temps mis pour
envoyer l'accusé de réception étendu. C'est la raison d'être du
cavalier JP3/Repeat, qui réitère la commande déjà passé 500 ms après la
commande initiale.
Important
: dans le mode "accusé de réception étendu" , une nouvelle commande ne
peut pas être passée dans le laps de temps qui sépare la commande
initiale de la commande répétée (temps mort de 500 ms).
Fonctions futures (à l'étude)
Possibilité de transmettre des ordres via l'entrée
Rx1 (broche RC7/RX1 du PIC) à partir d'une trame de longueur variable
et à une vitesse de communication ajustable par l'utilisateur (entre
9600 et 115200 bauds).
Alimentation
Le PIC est alimenté sous une tension continue stabilisée de
+5V grâce
au régulateur de tension U101/LM7805. L'entrée de ce
régulateur doit
recevoir une tension continue de valeur comprise entre +8V et +12V, par
le biais du connecteur J101. La diode D101 assure la
protection
contre toute inversion accidentelle de polarité, tandis que les
condensateurs C101 et C102 assurent le filtrage général et la
stabilité du régulateur. Le
condensateur C103 est placé au plus près des
broches d'alimentation du PIC.
Une tension de +3V3 est requise pour le module HF nRF24L01,
cette tension est tirée du rail +5V et stabilisée par le régulateur
U102/78M33.
Circuit imprimé (PCB)
Circuit double face en cours de conception.
Logiciel du PIC
Pro - La version complète
n'est pas disponible en libre service.
Free - Une version
gratuite limitée à 2 canaux (LE) sera prochainement disponible pour
tests.
Télécommande
014 - 18F26K22 - LE - xx/xx/2024
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à
utiliser, merci de consulter la page
PIC - Sources.
Historique
05/05/2024
- Première mise à disposition.