Les projets basés sur les microcontrôleurs AVR

I. PRESENTATION

Les AVR sont des petits microcontrôleurs fabriqués par ATMEL qui sont désormais facilement accessibles aux amateurs que nous sommes.
Ceux-ci se déclinent en plusieurs gammes. Je me limiterai à l'ATtiny85, microcontrôleur à 8 pattes qui permet déjà de faire des petites merveilles.
Les programmes sont développés en langage "C".
Les projets AVR ne sont pas dans la rubrique électronique car l'intégration de ces microcontrôleurs est telle que la partie électronique en est grandement simplifiée.

II. LES PROJETS A BASE D'AVR

II.1 TZDLE CONTRÔLEUR TZDTZD

TZD signifie Tiny (extrêment petit, minuscule en anglais) et ZD pour Z-Drive.
Ce minuscule montage permet de commander 2 propulseurs azimutaux de type Z-Drive
sur 360°, sans butée et avec connaissance de l'angle depuis l'émetteur, et cela, sans ambiguïté: idéal pour un remorqueur de type tracteur ou ASD.

Le contrôleur TinyZD en cours de montage Encodeur angulaire optique absolu
Dimensions de la carte intégrant 2 contrôleurs TZD: L x l = 75 x 45 mm
Notez qu'aucun composant de type CMS n'a été utilisé: câblage facile!
Un des encodeurs angulaires supportés: encodeur optique basé sur les éléments d'une souris à boule. Résolution 0,5° une fois monté:  largement suffisant.
Position du propulseur azimutal en fonction du manche de l'émetteur

Position du propulseur azimutal en fonction du manche de l'émetteur RC. Explication avec un seul propulseur afin d'en faciliter la compréhension.


II.1.1. Génèse du projet TZD

Ce petit contrôleur azimutal est l'aboutissement d'un projet commencé en 2007.
Fervent utilisateur des logiciels "Open Source",  j'avais à l'époque fait sur PC un simulateur écrit sous Linux en langage Gambas.
Le but de ce simulateur était de démontrer qu'il était possible de piloter un propulseur azimutal sur 360° sans butée à partir d'un simple manche d'émetteur RC, et ce, sans effectuer la moindre modification sur l'émetteur. Il démontrait également qu'il était possible de piloter un variateur électronique pour doser les gaz du moteur de propulsion du Z-Drive à partir de l'éloignement du manche par rapport au centre.

Simulateur de Z-Drive

Simulateur de contrôleur de Z-Drive

Pour en comprendre le principe il suffit de regarder la vidéo en cliquant sur l'image:

La qualité de la vidéo est très médiocre: à l'époque, n'ayant pas trouvé d'outil de capture vidéo, j'avais filmé mon écran de PC avec mon appareil photo numérique!

Une fois le simulateur terminé, un premier prototype de contrôleur de propulseur azimutal basé sur l'utilisation d'un moteur pas-à-pas fut conçu et mis au point: le montage ZDC pour Z-Drive Controller.

II.1.2. Le prototype du contrôleur de Z-Drive: ZDC (solution abandonnée: trop chère, trop encombrante)

ZDC: le prototype du contrôleur de Z-Drive

Ce prototype était universel dans le sens où il pouvait piloter des moteurs pas-à-pas unipolaire et bipolaire et disposait d'un variateur électronique intégré pour piloter le moteur de propulsion. Une sortie PPM était également prévue pour l'utilisation d'un variateur externe du commerce. Pour utiliser les moteurs pas-à-pas bipolaires, une carte de commande basée sur un kit sélectronic était nécessaire. Il disposait d'un port série se connecter à un PC pour régler des différents paramètres de fonctionnement et également pour être piloté par le simulateur présenté ci-dessus: c'est très fun de piloter la carte à partir de la souris!

Ce prototype fonctionnait, mais avait plusieurs inconvénients:

Le dossier de ce prototype est disponible: ZDC
Compte-tenu des
inconvénients listés ci-dessus, ce projet ne restera qu'à l'état de prototype et est, bien que fonctionnel, désormais abandonné.


II.1.3. L
e contrôleur final: TZD

Fort de cette expérience avec les moteurs pas-à-pas et avec les calculs trigonométriques nécessaires à l'extraction de la consigne de gisement, afin de réduire les coûts, j'ai complètement revu ma copie en concevant un nouveau contrôleur et en confiant sa gestion à un tout petit microcontrôleur et en abandonnant les moteurs pas-à-pas ainsi que toutes les protections de type isolation galvanique, le driver de ligne pour le port série RS232, etc... Le fait d'abandonner les moteurs pas-à-pas au profit de moteurs classiques à courant continu (servo ou moto-réducteur) pour le contrôle de l'azimut, a conduit à l'utilisation d'un capteur angulaire de type encodeur absolu. Les encodeurs commerciaux étaient alors hors de prix, la seule solution était d'en faire un "maison". Le contrôleur TZD supporte aujourd'hui jusqu'à 4 types de capteurs angulaires différents (dont un optique et un résistif) et cela sans aucune modification. Les 2 derniers types d'encodeurs s'appuyant sur des encodeurs magnétiques apparus après le début du projet. Pour que le contrôleur TZD puisse gérer le capteur réellement utilisé, il suffit, à l'aide d'un assistant de configuration (petit programme PC), de sélectionner le type de capteur. Voir ci-dessous:

Le contrôleur TinyZD en cours de montage
La carte TZD qui permet de commander l'azimut (360° sans butée) et les gaz de 2 propulseurs de type Z-Drive.

Notez la symétrie de la carte:
  • la partie supérieure contrôle le premier Z-Drive,
  • la partie inférieure contrôle le second Z-Drive.
Toute l'intelligence est dans le programme logé dans les microcontrôleurs à 8 pattes (sur la photo, seul, celui du bas est monté).
Assistant de configuration de TZD
L'assistant de configuration (programme sur PC) qui permet de paramétrer TZD via une liaison série de type RS232:
Appairage avec l'ensemble émetteur/récepteur RC.

Options matérielles et comportementales
Assistant de configuration (suite):
Paramétrage des
options matérielles et comportementales du contrôleur TZD.

Le contrôleur TZD supporte les variateurs externes du commerce mono et bi-directionnel. Il supporte également le chaînage/jumelage par radio-commande.
Ce fut un vrai challenge que de faire rentrer le programme qui gère tant d'options dans un si petit microcontrôleur à 8 pattes. Les caractéristiques sont inversement proportionnelles à sa taille et également à son coût!
Le résultat est tel que la carte qui inclut 2 contrôleurs TZD peut être utilisée dans des remorqueurs portuaires de type tracteur ou ASD au 1/100e!

II.1.4. Câblage du contrôleur TZD

Un des multiples câblages supportés par le contrôleur TZD
Ce câblage correspond à l'utilisation des variateurs électroniques intégrés pour piloter les moteurs de propulsion: il faut alors se limiter à des moteurs de la série 400. Les moteurs azimutaux sont ici des petits moto-réducteurs, les capteurs angulaires pouvant être, au choix, des capteurs optiques ou des capteurs de type potentiométrique (Il serait même possible de mixer, c'est-à-dire d'avoir un de chaque, puisque les contrôleurs se configurent de manière indépendante!).

II.1.4. Câblage du PC pour configurer le contrôleur TZD

Câblage pour la configuration du contrôleur TZD
Le circuit imprimé inclut 2 contrôleurs TZD (On devine aisément la symétrie du cicuit imprimé). Chaque contrôleur se configure indépendamment. Pour sélectionner le contrôleur, il suffit de déplacer le cavalier de configuration de sa position centrale de stockage vers le contrôleur à programmer (ici, en bas pour le contrôleur Tribord). Il ne reste plus qu'à connecter le cordon de programmation sur l'accès série du contrôleur sélectionné. Une fois l'opération terminée, remettre le cavalier en position centrale de stockage et débrancher le cordon de programmation: le contrôleur est bon pour le service!

II.1.5. Appairage du contrôleur TZD avec l'ensemble RC

Ce contrôleur de Z-Drive a été conçu pour  fonctionner avec des ensembles RC programmables ou non, fonctionnant en PPM. Pour les ensembles RC programmables, il n'est pas nécessaire de faire l'opération d'appairage au niveau du contrôleur puisqu'il est possible d'ajuster les neutres et excursions de chaque voie directement sur l'émetteur.
Par contre dans le cas d'utilisation d'ensemble RC non programmable, il est nécessaire de régler les neutres et les excursions directement au niveau du contrôleur TZD.
Pour cela, rien de plus simple, il suffit d'utiliser l'
assistant de configuration:

Appairage avec l'ensemble RC

II.1.6. Paramétrage des options matérielles et comportementales du contrôleur TZD

Options matérielles et comportementales
Les options parlent d'elles-mêmes: c'est très facile à paramétrer!

Une fois les opérations d'appairage, de sélection du type de capteur azimutal, du type de variateur et de comportement (support du jumelage) effectués, le contrôleur TZD peut être déconnecté du PC et devient ainsi autonome.

II.2. TZDLE SIMULATEUR DE REMORQUEUR ASD/TRACTEURTZD

Le pilotage d'un remorqueur de type tracteur ou ASD est très particulier et n'a rien à voir avec celui d'un remorqueur à propulsion classique.
De nombreuses heures d'entrainement sont nécessaires afin d'assimiler toutes les subtilités de pilotage.
Voulant m'initier à ce type particulier de pilotage, j'ai investi dans le père Noël m'a offert le livre
"ASD Tugs: Thrust and Azimuth / Learning to drive a Z-Drive" de Jeff Slesinger.
En potassant ce bouquin, l'auteur préconise de se faire la main en pilotant un vrai remorqueur ASD (ben voyons), ou encore en utilisant un simulateur dont les stages coûtent plusieurs k€ (bis repetita: ben voyons).
D'où l'idée de concevoir mon propre simulateur de remorqueur ASD: "Good Philing"
Ce nom est inspiré du fait que pour piloter un tel remorqueur, il faut un ... bon feeling!

Simulateur Good Philing
Pour en comprendre le principe il suffit de regarder la vidéo en cliquant sur l'image.
Les déplacements de l'ASD sont coordonnés avec les propulseurs: utilisation du
modèle numérique d'ASD Version 1. Sur la vidéo, le propulseur tribord est orienté au gisement 0°, poussée fixe réglée à 30% et l'ASD est piloté uniquement par le Z-Drive babord à l'aide d'un seul joystick. (Ne pas tenir compte du son pour le moment).
Principales caractéristiques du simulateur ASD:

- utilisation de la librairie 2D graphique SDL (Simple Direct media Layer) qui est multi plate-forme (principalement Linux/Window$), gestion des claviers/souris/joystick(s),
- utilisation des librairies additionnelles:

- Organe de commande: un joystick USB par propulseur; ce simulateur utilise donc 2 joysticks,
- Ambiances sonores:

- Manoeuvres et informations prévues pour être supportées:
Etat actuel du simulateur d'ASD/Tracteur:

Le simulateur est actuellement capable de positionner les propulseurs azimutaux en fonction de la position des 2 joysticks USB.
Le remorqueur est positionnable sur l'écran selon:
Dans le futur, les 2 joysticks seront remplacés par un émetteur RC standard et utilisera un petit boîtier électronique pour s'interfacer sur les ports USB du PC.
L'idée est de piloter le remorqueur ASD/Tracteur depuis les manches de l'émetteur RC.

L'utilisation des joysticks n'est que temporaire, le temps de mettre au point le logiciel...

Le modèle numérique (mathématique) utilisé de l'ASD est en Version 1 et est toujours en cours de développement, une fois fini, il permettra de positionner fidèlement le remorqueur ASD en fonction de l'orientation des 2 Z-Drives et de la poussée de chacun d'eux.

NB: ce simulateur, bien qu'utilisant les mêmes briques logicielles que pour un jeu, n'est pas un jeu, c'est bel et bien un simulateur, simplifié, certes, mais bien un simulateur.

Retour Sommaire