arduino  RC Navy (2013)

Un ensemble codeur/décodeur POLYTOR "arduinisé"

I. Introduction

Il y a quelques années, en 2004, le projet POLYTOR avait vu le jour. Il reposait à l'époque sur un codeur construit autour de circuits CD4017 (pas de microcontrôleur) et sur un décodeur basé sur un microcontrôleur PIC12F629 ou PIC12F675. Pour le détail, voir cette page.

Depuis cette époque, les arduinos ont fait leur apparition, ce qui facilite le développement d'application sur microcontrôleur de type AVR. Après avoir développé toute une collection de librairies dédiées aux applications RC, il m'est venu l'idée de créer un nouvel ensemble codeur/décodeur POLYTOR basé sur arduino. Les librairies <RcTxSerial> et <RcRxSerial> permettent de créer un port série virtuel entre un émetteur RC et un récepteur RC. Ceci donne la possibilité d'envoyer n'importe quel message de l'émetteur vers le récepteur. D'où l'idée de transmettre dans le message la position de n interrupteurs lue via un codeur POLYTOR. Ainsi, une voie proportionnelle de l'émetteur est utilisée pour transporter la position des n interrupteurs. Côté réception, les positions des n interrupteurs sont extraites du message et sont utilisées pour activer/désactiver chacune des n sorties.

II. Caractéristiques techniques

III. Codeur POLYTOR côté émetteur RC

Le nouveau codeur POLYTOR, utilise le nouveau codeur universel URC (Universal RC EnCoder: Codeur RC Universel).
Le codeur URC permet d'envoyer périodiquement n'importe quel message "texte" de l'émetteur RC vers le récepteur RC, un peu comme l'envoi d'un SMS.
Dans le cas d'utilisation du codeur URC en codeur POLYTOR, il faut lui adjoindre un ou des modules I/O connecté(s) en I²C afin de "lire" l'état des contacts des interrupteurs. Le "texte" à envoyer vers le récepteur contient tout simplement l'état (ouvert ou fermé) des interrupteurs connectés sur les modules I/O.

III.1. Modules I²C supportés

Les modules I/O en I²C se trouvent en kit tout câblés ou pré-assemblés, on peut utiliser indifféremment les modèles:

1) Module I/O Expender kit de chez Digistump: (prix unitaire: environ 7$, soit environ 5€, attention au prix du port)
Module permettant de lire 8 contacts Avantages:
- faible encombrement
- lecture de 8 contacts

Inconvénients:
- nécessite de remplacer les connecteurs fournis par des barrettes "tulipe".
- l'adresse I²C se configure par coupure d'une mini piste et par un pont de soudure entre 2 pastilles.


2) Cherchez "PCF8574 Expansion IO Board" sur e-bay: (prix unitaire 5 à 6 €)
Module permettant de lire 8 contacts Avantages:
- modules "empilables"
- lecture de 8 contacts
- l'adresse I²C se configure simplement par cavaliers.

Inconvénients:
- encombrement relativement important.


3) Cherchez "PCF8575 Expansion IO Board" sur e-bay: (prix unitaire 6 à 7 €)
Module permettant de lire 16 contacts Avantages:
- encombrement moyen,
- lecture de 16 contacts

Inconvénients:
- difficilement "chaînable",
- l'adresse I²C se configure  par des petits fils à souder vers VCC ou GND,
- pas de connecteur pour les contacts.


Il est possible de chaîner 4 modules au maximum. Les modules pouvant être identiques ou de type différents (8 ou 16 contacts, marques différentes): le codeur les détecte automatiquement au démarrage. Afin de les différencier, les adresses I²C (définies par les connections de A2, A1 et A0) doivent évidemment être différentes.

Pour valider ce nouveau codeur POLYTOR, les modules I/O expender de chez Digistump ont été utilisés:

Module permettant de lire 8 contacts

III.2. Câblage des modules I²C

Le câblage des modules I/O Digistump avec le codeur universel PoP/URC est le suivant:

Codeur Polytor avec codeur PoP/URC

- Les modules I/O expenders sont équipés de barettes de contacts "tulipe" pour plus de compacité,
- Le câble en nappe blanc/vert/rouge/bleu permet le chaînage des modules I/O expenders,
- Le commun de tous les contacts est à prendre, par exemple, sur le connecteur de chaînage du dernier module I/O expender,
- Les contacts des interrupteurs ayant tous un commun, il est possible d'utiliser des interrupteurs de type inverseur ou même des rotacteurs,
- Cette configuration permet de lire 16 contacts et est directement compatible avec le décodeur POLYTOR d'ancienne génération,
- Il est possible de chaîner 2 I/O Expenders supplémentaires pour supporter la lecture de davantage de contacts: il faudra alors impérativement utiliser les décodeurs POLYTOR de nouvelle génération basés sur un micro-contrôleur ATtiny85,
- L'utilisation du Port Série de configuration n'est nécessaire qu'en cas de l'utilisation du mode PoP (nécessaire au dessus de 16 contacts): par défaut, le codeur URC est en mode de compatibilité avec les
décodeurs POLYTOR d'ancienne génération,
- Sur la gauche du
module I/O expender N°2, notez, en rouge, le petit pont de soudure qui permet d'avoir une adresse I²C différente du module I/O expender N°1.

III.3. Intégration dans l'émetteur Skysport 4

Intégration codeur POLYTOR dans émetteur

On y distingue:
- Le codeur URC derrière l'antenne,
- Un premier module I/O Expender en haut à droite,
- Un second  
module I/O Expender en haut à gauche,
- Le cable en nappe
blanc/vert/rouge/bleu pour le chaînage des modules I/O expenders,
- Au dessus du premier module, le connecteur qui permet de dialoguer avec le port série d'un PC,
- Dans le bas de chaque module, la barrette de connecteur "tulipe" pour lire 8 contacts,
- Tout en haut, la platine en CTP qui reçoit les interrupteurs (ici de type inverseur),
- Sur cette photo, il ne manque que les fils entre les barrettes "tulipe" et les contacts des différents interrupteurs.


IV. Décodeur POLYTOR côté récepteur RC

IV.1. Décodeur POLYTOR ancienne génération

Décodeur Polytor ancienne génération
Le décodeur d'ancienne génération est basée sur un PIC12F629 ou PIC12F675.
Pour qu'il fonctionne avec le nouveau codeur, il faut que ce dernier soit configuré pour fonctionner avec le "vieux" Protocole de communication: sur le codeur il faut lui envoyer la commande P=O; c'est déjà le cas par défaut.


IV.2. Décodeur POLYTOR nouvelle génération

Décodeur Polytor nouvelle génération Seul le micro-contrôleur change: le PIC12F629 ou PIC12F675 est remplacé par un ATtiny85 de chez ATMEL. Afin de conserver le même circuit imprimé, un petit adaptateur permet à l'ATtiny85 de se connecter sur l'empreinte de l'ancien PIC.
Ce décodeur peut fonctionner avec 2 protocoles de communication:
- l'ancien protocole PPM: il faut envoyer sur le codeur ET le décodeur la commande P=O.
- le nouveau protocole PoP: il faut envoyer sur le codeur ET le décodeur la commande P=N.


Retour