• Passer à la navigation principale
  • Passer au contenu principal

Le DR400, l'atmosphère et sujets divers

J'explique ce que j'ai compris, en espérant que ça aide

  • Accueil
  • Aviation
  • Electronique
  • Articles sur WordPress
  • J’ai testé
    • Hébergement de sites web
    • Drives supermarchés
  • Voyage au Japon
  • Autres sites réalisés
  • Mentions légales
  • Trim de roulis sur Long-EZ
  • Gestion d’un double allumage sur Dragonfly
  • Régulateur de coucou
Vous êtes ici : Accueil / Electronique / Trim de roulis sur Long-EZ

Trim de roulis sur Long-EZ

Le Long-EZ

C’est un avion de construction amateur qui a été conçu par Burt Rutan. Il s’agit d’un avion de type « canard », c’est-à-dire possédant à l’avant un plan canard (une petite aile). Wikipédia en fournit une présentation synthétique.

S’il y a une petite aile à l’avant, c’est qu’il y en a une plus grande juste derrière (!), et c’est à elle qu’on va s’intéresser.

Le trim de roulis

Sur son Long-EZ, Walter a mis en place une petite palette située sur le bord de fuite de l’aile principale, similaire à celle prévue sur les plans du VariEze (merci à Mag pour l’info et [voir plus bas] pour son témoignage  de l’utilité de la chose). Quand la palette est abaissée, elle monte. Et comme elle est située à droite, l’avion incline à gauche. Walter a mis en place un servomoteur utilisé en modélisme, qui permet avec la tringlerie qui va bien de faire monter ou descendre la palette, et donc, en vol, d’incliner l’avion à gauche ou à droite.

Voici une vue de dessous de l’ensemble. Le servomoteur est intégré dans l’aile, sous la plaque carrée.

On objectera que pour corriger le roulis il y a déjà un manche qui fait ça très bien, et qu’on pourrait caler les ailes bien à l’horizontale par des ressorts ou des élastiques de rappel. Certes, mais dans ce cas il faudrait piloter « à travers » le dispositif de rappel qui introduit une résistance mécanique, et si on veut ajouter un réglage possible en vol le dispositif se complique. Enfin, la palette introduit, par rapport à l’ensemble manche plus ailerons, une saine redondance qui a un jour permis à Mag de ramener son VariEze ailerons bloqués, en conjuguant le trim de roulis et les palonniers pour profiter du roulis induit.

Si on ajoute à ça des considérations aérodynamiques qui échappent à ma zone de compétence, on voit que la palette, c’est mieux. D’ailleurs on en trouve une sur la gouverne de profondeur de tous les avions d’aéroclub, et on l’actionne par une commande appelée trim de profondeur. Donc c’est décidé, on fait un trim de roulis.

L’électronique de commande

Le servomoteur est constitué d’un moteur électrique actionnant un levier qui peut parcourir « un certain angle ». Le notre est un modèle balayant un secteur angulaire de 180°. Le servo a été conçu pour exécuter directement des ordres transmis par une simple radio.  L’idée (à une époque à laquelle on évitait d’envoyer des trames numériques avec un calcul de CRC) a été d’envoyer au servo des impulsions dont la largeur indique directement l’angle auquel doit se positionner le levier : par exemple, 0,5 ms -> 0°,  2,3 ms -> 180°, et entre les deux la relation est linéaire. L’impulsion de largeur ad hoc doit être renouvelée régulièrement (on indique toutes les 20ms, mais cette durée n’est pas critique). On aura noté au passage que les impulsions de commande transmises ont une durée de l’ordre de la ms et passent donc dans n’importe quelle radio pouvant transmettre des signaux audio.

Toujours sans électronique interne compliquée, le servo compare sa position actuelle à la consigne qu’il a reçue, et commande le moteur dans le sens qui va bien pour rattraper l’éventuel écart constaté.

Pour commander le servo, il suffit de générer les impulsions de la bonne largeur. J’ai choisi de le faire à l’aide d’un Arduino Mini qui fait ça très bien. D’autant que l’environnement de développement de l’Arduino propose une bibliothèque « Servo.h » qui permet de commander le servo en une instruction comme « mon_servo.write(angleServo) » avec angleServo en degrés, ou une instruction similaire spécifiant la largeur d’impulsion exprimée en microsecondes. Dans les deux cas, le servo se positionne à l’angle correspondant. Trop facile !

Voici l’Arduino Mini (effectivement pas gros) :

Il est placé dans un boitier d’une longueur de 65 mm, pattes de fixation comprises, et alimenté en 5V à partir de la batterie 12V, par un petit convertisseur dont le rendement dépasse 90%.
Ce boitier étant mis en place au niveau de l’emplanture de l’aile, son poids ne risque pas d’induire du roulis !

 

Une fois le boitier fermé, on a ce résultat…

… et pourtant je me suis appliqué pour les découpes.

Le points blancs servent de détrompage visuel pour les connecteurs.

  • Le plus long connecteur  sert au raccordement du servo (et permet aussi, en déconnectant le servo, de raccorder une inferface USB avec le PC afin de modifier le programme de l’Arduino).
  • Celui sans point blanc sert à raccorder l’interrupteur de commande placé au tableau de bord.
  • Et le plus petit sert au raccordement de l’alimentation 12V (batterie).

Les connecteurs sont simplement enfichés, et avant le premier vol, fixés par un point de silicone.

La commande au tableau de bord

Elle est en fait très simple : un interrupteur à levier, à 3 positions : gauche – neutre – droite

Evidemment le levier se manoeuvre horizontalement, avec la gauche à gauche et la droite à droite.
Dit comme ça c’est évident, mais entre le sens de montage du servo, la tringlerie, le choix des noms de paramètres dans le programme et la loi de Murphy, le premier essai part immanquablement à l’envers. Il faut donc pouvoir permuter les fils de l’interrupteur, raison pour laquelle son connecteur n’a pas de point blanc…

Seule la position centrale est stable, les positions latérales sont fugitives et nécessitent donc l’action continue du pilote. Ce qui tombe bien car c’est uniquement la durée de l’appui gauche ou droit qui détermine le comportement du trim.

Explication : le mouvement du servo est uniformément accéléré.

  • De courtes impulsions successives permettent de positionner la palette très précisément, ce qui permet par exemple, lors des premiers essais, d’aller chercher le débattement maximum souhaité et de mémoriser en conséquence les paramètres correspondants dans le programme (« butées logicielles »). De même on peut mémoriser la position neutre telle que repérée par le pilote.
  • Un appui long permet de rapidement apporter une correction significative puisque le débattement complet d’une butée à l’autre est obtenu en 1,3 s.

En vol, en enchainant des appuis de durée variable, on met rapidement le trim à sa bonne valeur. La maneuvre est intuitive et le résultat s’avère convaincant.

Schéma électronique et programme de l’Arduino

Sauf à vouloir adapter la présente réalisation à une application similaire, l’exposé du détail de l’électronique et du programme Arduino ne présentent pas d’intérêt particulier.

Particularités du programme

A part ce qui a été dit plus haut sur l’utilisation de la bibliothèque Servo.h, il a un truc dont je suis content (!) et qui peut resservir : l’utilisation de l’instruction switch au lieu d’empiler des if … then … else (jusque là, rien de nouveau puisque c’est fait pour ça), et surtout le fait d’utiliser cette instruction switch en association avec des tableaux récapitulant tous les cas possibles, et d’affecter à chaque case du tableau un « poids » qui lui est spécifique. C’est très économe en lignes de code parce que ça évite de répéter plusieurs fois tel ou tel test.

Une première application est la lecture des deux positions Up et Down (Up et Down parce que je ne travaille que sur le sens de variation de la durée d’impulsion) avec une temporisation d’anti-rebond.
Une autre application est l’interprétation de ces deux positions à travers l’étude du cas général de 2 boutons à 2 positions (ON et OFF). Cela fait 4 états possibles, et pour chacun de ces 4 états, on distingue s’il est nouveau ou inchangé, ce qui, en tout, fait 8 cas à traiter.
Le tableau des 8 cas possibles est très commode pour ça, y compris pour traiter les cas aberrants : en effet, les deux boutons poussoirs du cas général, étant en pratique réalisés à l’aide d’un interrupteur avec une position médiane de repos, il est mécaniquement impossible d’avoir les deux contacts à ON en même temps ; mais si ça se produit (deux fils dénudés qui se touchent, ou un parasite facétieux) on peut décider de faire quelque chose dans le sens de la sécurité, comme arrêter tout mouvement ou se caler sur une position prédéterminée. Mon souci est toujours que dans tous les cas, même ceux réputés impossibles, la machine sache quoi faire.

Copyright © 2022 - Claude Goumain · Développé en environnement Genesis Framework · Site WordPress

En poursuivant votre navigation sur ce site, vous acceptez l’utilisation de cookies pour mémoriser vos préférences et nous permettre de réaliser des statistiques sur l'usage du site.
Configurer les CookiesJe refuseJ'accepte
Gestion des cookies

Aperçu de confidentialité

Ce site Web utilise des cookies pour améliorer votre expérience de navigation. Parmi ceux-ci, les cookies classés comme nécessaires sont stockés sur votre navigateur car ils sont essentiels au fonctionnement des fonctionnalités de base du site Web. Nous utilisons également des cookies tiers qui nous aident à analyser et à comprendre comment vous utilisez ce site. Ces cookies ne seront stockés dans votre navigateur qu'avec votre consentement. Vous avez également la possibilité de désactiver ces cookies. Néanmoins, la désactivation de certains de ces cookies peut affecter votre expérience de navigation. Encore que sur le présent site ce soit sans risque puisque les seuls cookies sont ceux servant à la gestion des cookies ;-)
Nécessaires
Toujours activé
Les cookies nécessaires sont absolument essentiels au bon fonctionnement du site Web. Ces cookies assurent les fonctionnalités de base et les fonctions de sécurité du site Web, de manière anonyme.
CookieDuréeDescription
cookielawinfo-checkbox-advertisement1 yearThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Advertisement".
cookielawinfo-checkbox-analytics1 yearThis cookies is set by GDPR Cookie Consent WordPress Plugin. The cookie is used to remember the user consent for the cookies under the category "Analytics".
cookielawinfo-checkbox-necessary1 yearThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-performance1 yearThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
Fonctionnels
Les cookies fonctionnels aident à exécuter certaines fonctionnalités telles que le partage du contenu du site Web sur les plates-formes de médias sociaux, la collecte de commentaires et d’autres fonctionnalités tierces.
Performance
Les cookies de performance sont utilisés pour comprendre et analyser les principaux indices de performance du site Web, ce qui contribue à offrir une meilleure expérience utilisateur aux visiteurs.
Analytiques
Les cookies analytiques sont utilisés pour comprendre comment les visiteurs interagissent avec le site Web. Ces cookies aident à fournir des informations sur les mesures du nombre de visiteurs, du taux de rebond, de la source du trafic, etc.
Publicitaires
Les cookies publicitaires sont utilisés pour fournir aux visiteurs des publicités et des campagnes marketing pertinentes. Ces cookies suivent les visiteurs sur les sites Web et collectent des informations pour fournir des publicités personnalisées.
Autres
Les autres cookies sont ceux qui sont en cours d’analyse et n’ont pas encore été classés dans une catégorie particulière.
CookieDuréeDescription
cookielawinfo-checkbox-functional1 yearThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-others1 yearNo description
Enregistrer & appliquer
Propulsé par CookieYes Logo