F22 CARTON

Réalisation d’un F22 RAPTOR en carton.

le matériau de base est du carton de 4,7mm , double cannelures.

tous les éléments on été réalisés par découpe laser (laser de 100W) mais peuvent être découpés plus traditionnellement par gabarit papier et cutter.

voici les fichiers :

  • format PDF taille A1 pour impression gabarit papier de découpe au cutter

  • format DXF pour de la découpe Laser:
  • voici le résultat des éléments principaux après découpe laser.

    pliage et collage des éléments de fuselage (dessous et dessus ). ici le collage a été fait a la colle a bois rapide , mais peut également être fait avec un pistolet a colle .

    a noter que des bords d’attaque en contreplaqué profilé ont été collés sur l’avant des ailes et l’entrée supérieure de réacteur.

    une fois les 2 dérives collées a 60 degrés avec le gabarit fourni dans les plans de découpe. un bord d’attaque contreplaqué sera collé ultérieurement sur l’avant de chaque dérive.

    le cockpit a été recouvert avec du scotch alu

    une pièce spécifique d’adaptation moteur a été conçue et imprimé 3D pour fixer le moteur CF2822 sur le carton du plan d’aile .

    les charnières d’élevons sont réalisées avec du scotch armé fibre.

    montage des leviers d’elevons directement au travers du carton et du scotch armé

    montage des 2 servos et des tringles en corde a piano de 1mm

    Montage de l’ESC et du récepteur dans le ventre de l’avion. le récepteur est monté sur la trappe ventrale via un scratch , l’ESC est sanglé avec des serflex sur un rectangle carton collé sur le plan d’aile.

    la trappe est articulé via un scotch armé et fermée avec 2 tiges bambou ( brochette coupée) enfoncées par l’arrière (photo ci dessus) dans l’épaisseur du carton le long d’une cannelure.

    peinture de l’ensemble a la bombe de peinture et les motifs de camouflage sont fait avec des pochoirs en carton.

    peinture finie vue de dessus et dessous.

    l’avion terminé en ordre de marche :

    • Longueur: 70 cm – Envergure: 50cm
    • poids: 490 gr tout équipé (batterie lipo incluse sous le cockpit)

    GENERALITES RC

    petit topo général sur l’électronique de commande d’un modèle réduit , ici dans le cas d’un avion Radio Commandé.

    pour faciliter la compréhension, ci dessous une photo jointe de l’ensemble de commande simplifié avec 1 seul servomoteur connecté pour éviter la multiplication inutile de fils et composants

    • le cœur du systeme est le récepteur radio (en haut au milieu) , ici 8 voies et 2,4Ghz. il reçoit via ondes radio les information de l’émetteur radio tenu par le télé pilote , le nombre de voies possibles correspond au nombre d’éléments pouvant être commandés a distance .dans le cas de l’avion carton : 1 voie pour le moteur (variation de la vitesse de rotation) et 2 voies pour chaque ailerons en mode élevons (mixage du rouli et du tangage)
    • l’alimentation electrique de l’ensemble se fait au moyen d’une batterie CC LiPo de 11v au travers de l’ESC (Electronic Speed Controler)qui alimente le moteur et le récepteur radio. le récepteur radio redistribue le courant aux autres voies
    • la manœuvre des élevons ou ailerons se fait via des servomoteurs (ou servocommande). ils sont connectés au récepteur radio via 3 fils : 1 pour la masse electrique, 1 pour la tension positive, et 1 pour le signal PWM (Pulse Width Modulation) , le servo moteur tourne d’une valeur angulaire proportionnelle au signal PWM reçu.
    • la puissance est transmise a l’helice au moyen d’un moteur Brushless, c’est tout simplement un moteur triphasé dont la variation de vitesse est obtenues par variation de fréquence de la tension sur chaque fil de phase.
    • l’ ESC (Electronic Speed Controler) qui alimente le moteur brushless est donc un variateur de fréquence triphasé, il transforme du 11V courant continu en courant triphasé sur les 3 cables du moteurs brushless . il intègre un circuit de variation de fréquence commandé par des impulsions PWM reçues du récepteur radio.

    un moteur brushless est caracterisé par son KV => nombre de tours/minute/Volt d’alimentation. ici sur la photo c’est un 1400 KV , il est alimenté en 11V , sa vitesse de rotation maxi possible est donc de 11 x 1400 = 15400 tr/mn.- principe de la commande en mode PWM : le canal PWM reçoit une série d’impulsions dont la durée et donc la fréquence est variable, les éléments connectés , traitent cette série d’impulsion un peu comme un code binaire et font varier des vitesses ou des angles proportionnellement a la fréquence des impulsions PWM reçues .

    pour plus d’info sur le PWM, voir ici: https://fr.wikipedia.org/wiki/PWM

    les batteries LiPo utilisées en modelisme sont des batteries 2S/3S:…./xS . le nombre devant le S quantifie le nombre de section de cellules Lipo. chaque cellule Lipo a une tension de 3,7 Volts . ici sur la photo c’est une batterie 3S soit une tension disponible de 3×3,7V = 11,1 V . une batterie 2S délivre donc 7,4 volts , une 6S délivre 22,2 V. la deuxieme caracteristique d’une batterie est le nbre de mA délivrable , ici c’est une 650mA.

    MOTEUR BRUSHLESS

    tres largement utilisé en Radio Modelisme, le Moteur Brushless ; “Moteur sans balais” en francais, est un moteur synchrone a aimants permanents.

    il fonctionne a la base a partir de courant continu au travers d’un ESC (Electronic Speed Controler) qui va transformer une tension de courant continu en une tension triphasée de courant alternatif , cette tension va etre envoyée au moteur (qui a donc 3 fils d’entrées pour les 3 phases) et qui va tourner a une vitesse proportionnelle a la fréquence du courant triphasé reçu.

    comme avec tout moteur triphasé , on peut changer le sens de rotation du moteur en intervertissant 2 fils de phase (au hasard) par rapport aux connecteurs d’alimentation de l’ESC.

    il en existe différentes tailles et différents type avec différentes caractéristiques.

    les caracteristiques importnates pour le choix d’un brushless:

    la Vitesse de rotation: N

    la vitesse de rotation est en general donnée en tours par minutes (Tr/mn) elle se calcule a partir du KV du moteur => point suivant

    le KV

    il s’agit d’une grandeur sans unité qui caractérise la vitesse de rotation par volt de courant envoyé a l’ESC. par exemple , un moteur dont le KV est de 1400 => 1400 tr/mn/volt, qui est alimenté par une batterie Lipo de 11,1 Volts au travers de l’ESC va avoir une vitesse de rotation N maxi de:

    N=11,1 x 1400 = 15540 tr/mn

    la Tension U :

    c’est la plage de tension mini-maxi admissibles par le moteur . l’unité de mesure et le Volt(V)

    l’Intensité : I

    c’est la plage d’ampérage mini et maxi admissible par le moteur , on fourni en général surtout le max admissible. l’unité est l’ampere(A)

    la puissance : P

    c’est une résultante des 2 caractéristiques précédente , elle se calcule avec la formule suivante :

    P = U x I

    avec U en Volts et I en Ampères, la puissance résultante s’exprime en Watts (W)

    exemple de calcul:

    un moteur tournant sous 11,1 Volts avec un intensité admissible de 20 Ampères fournira donc une puissance P :

    P=11,1 x 20 = 222 Watts.

    le couple: C

    il est la résultante de la puissance et de la vitesse de rotation , il se calcule à partir d’une autre formule donnant la puissance d’un moteur:

    P = C x Omega

    ou C est le couple en metre-Newton (mN) et Omega la vitesse de rotation en Radians par seconde (Rd/s)

    on obtient donc le couple en inversant la formule soit

    C = P / Omega

    Omega se calcule en convertissant la vitesse de rotation en Tour par minute en radians par seconde via la formule:

    Omega = (3,14/60) x N

    exemple:

    nous avons vu dans les exemples précédents que le moteur de 1400 KV alimenté sous 11,1V , tournait a 15540 tr/mn et développais 222 Watts soit un couple résultant :

    C = 222 /[(3,14/60)x 15540] = 0,27 Nm

    LinuxCNC : Installation

    linux CNC nécessite une version avec Noyau temps réel pour fonctionner sur un raspberry PI.

    en consequence , il n’est pas possible d’installer une version classique de DEBIAN ou de RASPIAN et d’ensuite y installer LinuxCNC via un APP get /install.

    il va falloir récupérer une Image déjà bâtie, avec un noyau temps réel et linuxCNC compris dans le package.

    je vous propose donc de telecharger l’image systeme suivante stockée sur google drive (fichier trop important pour etre mis a dispo directement ici sur le site).

    https://drive.google.com/file/d/1ek_3taDOUOHC2HvTFmRjt7TApK163Qxe/view?usp=sharing

    une fois le fichier téléchargé (quelques minutes car il fait un peu plus de 1Go) , il ne vous restera plus qu’a l’installer sur une carte SD via l’imager standard du Raspberry .

    https://www.raspberrypi.com/software/

    une fois installé l’imageur sur votre PC , le lancer , il se présente comme ci dessous:

    premiere opération , case de gauche, choisir le type de raspberry PI , ici un RPI 4B

    ensuite il faut choisir la localisation de l’image systeme dans la deuxième case du loader:

    il va falloir ici spécifier l’utilisation d’une image personnalisée , derniere option en bas du menu de selection

    puis aller dans le répertoire de téléchargement y chercher l’image recupérée sur google drive:

    derniere opération, spécifier dans la case de droite du loader , la destination d’installation de l’image selectionnée, dans le cas present , la carte SD logée dans le lecteur de carte SD du PC:

    ne reste ensuite plus qu’a lancer l’opération suivante:

    dans le menu suivant choisir NON:

    puis OUI dans l’ecran suivant:

    l’installation de l’image systeme debute alors et durera plusieurs minutes, une operation de verification de l’image se deroulera ensuite et prendra a nouveau quleques minutes.

    une fois tout fini , sortir la carte micro SD puis la mettre dans le logement du raspberry PI 4B et le démarrer .

    Linux CNC Configuration: principes généraux

    ici débute la partie un peu “hard” de la préparation de linuxCNC.

    avant de rentrer dans les explications et pour ceux qui comprennent l’anglais, ci dessous le lien vers la documentation Linux CNC:

    http://linuxcnc.org/docs/stable/html/

    contrairement aux installations plus classiques sur des PC utilisant une interface parallèle , non seulement nous sommes sur un raspberryPI 4B avec 8go de Ram, mais en plus nous allons piloter une CNC directement via les ports GPIO du raspberry et ceci de la meme façon qu’avec un ARDUINO UNO avec GRBL (voir rubrique ARDUINO CNC du site).

    LinuxCNC tel que fourni avec l’image systeme est prévu pour fonctionner avec un certain nombre de modules de sortie standards : port Parallèle , carte MESA , carte Mechatronic . quand on le lance il propose donc en standard de le configurer via des utilitaires déja installés avec le soft.

    dans le cas du Raspberry PI et de son interface GPIO , il va falloir passer outre toutes ces procedures d’installations “faciles” et mettre un peu plus les mains dans le cambouis.

    heureusement pour nous, les développeurs de LinuxCNC , on prévu un driver GPIO pour le Raspberry PI et moyennant la mise en place de quelques fichiers de configuration dans le repertoire adéqua , nous allons pouvoir mettre en place une version qui tourne sur RPI et qui utilise des broches GPIO pour piloter des moteurs Pas a Pas en mode DIR/STEP comme un arduino avec des drivers d’axes utilisant ce principe

    nous allons donc voir voir comment configurer une version 3 axes X Y Z de ce type:

    et sur le meme principe , une extension a 4 axes avec un 4° axe rotatif A . pour cela , il suffira de modifier les fichiers de la version 3 axes pour rajouter le 4° axe.

    avant de passer a la configuration des fichiers , il est possible de lancer LinuxCNC en mode simulation permettant de voir a quoi ressemble l’ecran standard et de tester quelques fonctions du soft .

    une fois votre RPI démarré, il va vous demander un identifiant et un mot de passe pour l’ouverture de cession. taper :

    cnc pour l’identifiant

    puis a nouveau cnc pour le mot de passe

    apres l’ouverture de la cession DEBIAN , pour lancer Linux CNC, cliquer en haut a gauche sur la case “applications”, puis descendre sur la rubrique CNC puis cliquer dans le menu de droite sur LinuxCNC.

    une fenêtre s’ouvre avec une liste déroulante dans laquelle il faut aller prendre dans la liste “sample configuration” puis “sim” puis “axis” , l’item “axis_mm” pour ouvrir une simulation LinuxCNC 3 axes X Y Z avec les unités en mm. après avoir sélectionné “axis_mm” puis cliqué sur OK en bas a droite , une fenêtre demande la confirmation de copie de certains fichiers dans un répertoire , confirmer en cliquant sur OUI

    après confirmation, linuxCNC s’ouvre sur la fenêtre suivante

    vous pouvez cliquer et naviguer dans les differents menus et options qui se presentent sans etat d’ame, s’agissant d’une simulation, il ne se passera rien de spécial a part des mouvements d’axes a l’écran.

    Linux CNC Configuration: Brochage du GPIO

    une des notions importantes de la config linuxCNC est la notion de masque pour la description des entrées/sorties du GPIO du RPI.

    les 40 broches du GPIO du RPI sont composées de 2 broches de 5V , 2 broche de 3,3V , 8 broches de masse (ground) et 28 broches configurables en entrées/sorties. sur un raspberry PI 4B , la répartition des broches est comme ci dessous:

    la première chose a faire avant de rentrer dans la configuration soft de LinuxCNC est de définir la façon dont vont être utilisées les broches GPIO du RPI pour s’interfacer avec la partie hard aval (drivers, moteurs pas a pas, switchs fin de course , broche d’usinage, etc …).

    a partir du brochage retenu , va etre calculé un masque de definition pour le fichier HAL tel que defini dans la doc Linux CNC pour le driver ‘ hal_pi_gpio’ :

    http://linuxcnc.org/docs/stable/html/drivers/hal_pi_gpio.html

    Choix d’affectation du brochage GPIO et masque resultant:

    pour faciliter le travail sur les 2 versions (CNC 3 axes et CNC 4 axes) , la config a ete choisie pour l’affectation des broches en version 4 axes (qui peut le plus peut le moins).

    les broches d’envoi de signaux (Dir, Step, démarrage broche) sont des broches de sortie OUT , les broches de Switchs limite , probe et autres organes divers sont des broches d’entrées IN.

    les broches 27 et 28 (GPIO 0 et GPIO 1) sont réservées pour certains protocoles de communication donc non disponible en entrée/sortie GPIO

    les broches 3 et 5 (GPIO 2 et GPIO 3) etant a un niveau logique haut 3V pour le protocole de communication I2C , elles ne seront pas utilisées et configurees en entrées disponibles ainsi que la broche 7 (GPIO 4).

    le masque résultant a utiliser dans le fichier HAL de configuration est donc :

    loadrt hal_pi_gpio dir=27152376 exclude=0
    

    pour ceux intéressés , ci dessous au format compressé RAR, le tableur format Libre office qui permet de faire le calcul en fonction des broches que l’on souhaite utiliser:

    Linux CNC Configuration: fichiers INI et HAL

    dans la rubrique précedente , nous avons vu qu’au démarrage en mode simulation, linuxCNC copiait des fichiers dans un répertoire. ce sont les fichier de configuration de base permettant le lancement du soft avec les paramètres de configuration.

    le répertoire créé contient 2 fichiers majeurs , un fichier “xxxx.INI” et un fichier “xxxx.HAL”.

    ce sont ces 2 fichiers qui permettent la configuration de linuxCNC dans le mode choisi.

    si on regarde la structure des fichiers LinuxCNC avec l’explorateur de fichiers de l’OS DEBIAN installé par l’image utilisée , linux cnc installe les fichiers necessaires a son fonctionnement dans un repertoire ‘home/cnc/linuxcnc‘ qui comporte 2 sous répertoires : ‘config‘ et ‘nc_files

    le répertoire ‘nc_files‘ servira a stocker les fichiers programme GCODE

    le répertoire ‘config‘ permet de stocker les fichiers INI et HAL nécessaire a la configuration de linuxCNC au démarrage. dans ce répertoire ‘configs’ on peut créer autant de sous répertoires de configuration que de type de machine a utiliser/démarrer avec linuxCNC.

    pour créer les profils des 2 machines 3 axes et 4 axes , il suffit de faire 2 repertoires avec les noms suivant ” 3axis-MILL” et “4axis-MILL” et d’y mettre dans chacun les extract des fichiers RAR respectifs suivants.

    fichier INI et HAL CNC 3 axes

    fichier INI et HAL CNC 4 axes

    .le fichier INI comporte les lignes permettant de configurer les limites d’axes les vitesses , les accelarations, les step moteur et tout un tas de paramtres relatifs aux moteurs pas a pas et aux drivers utilisés. le fichier tel que fourni n’est donc pas utilisable en l’etat et devra etre modifié en fonction de votre configuration.

    le Fichier HAL , comporte lui principalement tout ce qui concerne le brochage des entrées sorties du GPIO du raspberry PI . la aussi , il faudra tout d’abord configurer le masque dir/exclude du driver Hal_pi-gpio via le modele de calcul de la rubrique précédente en ayant pris soin de bien lister les broches utilisées et les elements connectés dessus pour ensuite completer/modifier la ligne suivante en debut de fichier HAL:

    loadrt hal_pi_gpio dir=27152376 exclude=0

    puis ensuite , toujours a partir du tableau d’affectation des broches, bien assigner les reference des PIN GPIO aux lignes de configuration de chaque axe au milieu du fichier , a savoir toutes les lignes du type :

    net spindle-on spindle.0.on => hal_pi_gpio.pin-26-out
    net xenable => hal_pi_gpio.pin-29-out
    net xstep stepgen.0.step => hal_pi_gpio.pin-32-out
    net xdir  stepgen.0.dir  => hal_pi_gpio.pin-24-out
    net limit-x-switch hal_pi_gpio.pin-13-in => debounce.0.0.in

    dans tous les cas , les erreurs seront sanctionnées par un message d’erreur au lancement de Linux CNC. il faudra prendre soin de lire le contenu du message pour connaitre la typologie de l’erreur a corriger. on rencontre les grands types d’erreurs ci dessous :

    • erreur sur le masque dir/exclude en debut de fichier HAL
    • erreur d’affectation des broches sur fichier HAL (broche en OUT sur le masque et en IN sur lignes de config)
    • erreur d’appel du fichier HAL dans le fichier INI => syntaxe de la ligne “HALFILE = nomfichier.hal

    une fois les configurations et déclarations faites correctement , au démarrage de linuCNC il faut choisir la config a démarrer :

    ce qui par exemple donne dans le cas de la config 4 axes , l’écran suivant:

    moyennant d’avoir fait un montage proto en cablant des micro-swiths (normalement ouverts) entre la broche concernée et le +3,3V , il est même possible de faire un homming global sur les 4 axes dans l’ordre axe Z / axe Y / axe X / axe A en actionnant chacun des switch dans l’ordre après démarrage du mouvement a l’écran.

    reste ensuite a cabler les PIN step et drive de chaque axe vers le driver et le moteur pas a pas correspondant . attention, le GPIO RPI sort du 3,3V sur ses broches , il faut donc soit des drivers compatibles d’un signal d’entrée 3,3V (pololu A4988 ou équivalent) soit utiliser des convertisseur 3,3V / 5V pour ataquer des drivers de puissance .

    LINUX CNC Configuration de l’affichage

    linux CNC possede differents types d’interfaces d’affichage qui se paramètrent dans le fichier de config “xxxx.INI”.

    les differents look en standard dans l’image iso sont:

    AXIS: un ecran basique

    GMOCCAPY: interface pour ecran tactile mais utilisable aussi avec ecran normal, clavier et souris.

    TOUCHY: interface specifique minimaliste pour petits écrans tactiles

    GSCREEN (version par defaut): c’est un ecran customisable dont voici la version basique:

    TKlinux: une interface egalement basique avec 1 fenetre controles et 1 fenetre visualisation trajectoires

    QTVCP QTDRAGON: une interface au look tres pros et tres pratique (ma préférée). elle a un look style MACH 3.elle peut etre redimensionnée pour des ecrans de 1280×768 a 1680×1200

    QTVCP QTDRAGON_HD: la meme que précédemment mais pour de grands ecrans HD , la résolution est fixe a 1920×1056.

    QTVCP QTPLASMA: une interface spécifique a la decoupe plasma

    CHOIX DE L’AFFICHAGE dans le FICHIER INI

    le type d’interface est choisie en spécifiant en debut de fichier INI dans la partie [DISPLAY]

    [DISPLAY]

    DISPLAY = typeaffichage

    typeaffichage peut prendre les valeurs:

    • axis
    • gmoccapy
    • touchy
    • tklinuxcnc
    • gscreen
    • qtvcp qtdragon
    • qtvcp qtdragon_hd
    • qtvcp qtplasma

    Linux CNC : circuit prototype

    quelques explications sur le circuit prototype pour la validation du fonctionnement en 4 axes.

    l’idée de base est d’utiliser un CNC shield ARDUINO et de l’utiliser en version 4 drivers d’axes avec des Pololu DRV 8825 .

    un premier test de validation sur 1 seul axe a ete réalisé , voici une photo du premier montage de test “proof of concept” . il a permis de tester le Homming des 4 axes X-Y-Z-A via des micro switches puis de faire tourner un moteur pas a Pas NEMA 17 sur l’axe X . l’alimentation en puissance des drivers a ete faite via une batterie 12V Lithium-ion.

    le concept etant fonctionnel , l’etape suivante consiste a faire une version complete avec 4 moteurs NEMA 17 et 4 Pololu DRV 8825 sur un shiel CNC . voici le materiel de base:

    • un cable en nappe avec son adaptateur GPIO
    • un shield CNC pour ARDUINO UNO et 4 pololu DRV 8825
    • un PCB d’embase Arduino UNO pour faire des shield UNO personnalisés

    a partir de l’adaptateur GPIO et de la platine SHIELD proto UNO , il faut maintenant réaliser une interface permetant de relier les PIN GPIO aux PIN du CNC SHIELD

    premiere etape : soudure de connecteurs pour les differentes broches coté adaptateur GPIO

    puis soudure de connecteurs pour le coté Shield CNC UNO.

    etape suivante , cablages de jonction suivant le schema ci dessous , avec au milieu les PIN de l’adaptateur GPIO et de chaque coté les broches (inversées) du Shield CNC retourné.

    le shield CNC n’ayant pas asses de broche pour les switchs fin de course , les câbles seront sortis sur un connecteur independant du shield.

    LES CONNECTEURS

    cette page a pour objectif de recenser et documenter les spécifications des connecteurs courants en électronique.

    le but n’est pas de faire un récapitulatif exhaustif mais de recenser les plus utilisés sur des PCB ou câbles pour de l’électronique DIY a base de microcontrôleurs .

    Les connecteurs JST

    ils sont principalement utilisés pour de la connectique de capteurs , de batteries rechargeables, de moteurs Pas a Pas type NEMA, de cartes d’imprimante 3D, et en modélisme radiocommandé sur les servomoteurs.

    on les désigne sous le nom JST qui est le standard originel du fabriquant J.S.T. Mfg. Co. (Japan Solderless Terminal).

    la caractéristique principale de ces connecteurs est le pas d’écartement des broches. et les connecteurs femelle a souder sur les circuits existent en broche droites (le plus courant) , en broche perpendiculaires et en connecteur pour montage en surface (CMS).

    voici 2 tableaux récapitulatifs des désignations et écartements correspondants: