<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Amaury LAURENT &#8211; Electronique et Informatique</title>
	<atom:link href="https://amaury-laurent.fr/author/amaury10/feed/" rel="self" type="application/rss+xml" />
	<link>https://amaury-laurent.fr</link>
	<description>Site web d&#039;Amaury LAURENT</description>
	<lastBuildDate>Sat, 28 Oct 2023 08:37:12 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.3.2</generator>

<image>
	<url>https://amaury-laurent.fr/wp-content/uploads/2015/09/favicon.png</url>
	<title>Amaury LAURENT &#8211; Electronique et Informatique</title>
	<link>https://amaury-laurent.fr</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Écran multifonction pour simulateur de vol (MFD)</title>
		<link>https://amaury-laurent.fr/ecran-multifonction-pour-simulateur-de-vol-mfd/</link>
					<comments>https://amaury-laurent.fr/ecran-multifonction-pour-simulateur-de-vol-mfd/#respond</comments>
		
		<dc:creator><![CDATA[Amaury LAURENT]]></dc:creator>
		<pubDate>Sat, 02 Oct 2021 19:46:51 +0000</pubDate>
				<category><![CDATA[Non classé]]></category>
		<guid isPermaLink="false">https://amaury-laurent.fr/?p=1271</guid>

					<description><![CDATA[<p>Introduction L&#8217;accès à certaines fonctionnalités embarqués sur un avion de combat (navigation, systèmes d&#8217;armes, désignateur, &#8230;) passe par un écran multifonctions (MultiFunction Display). Bien que certains simulateurs proposent un cockpit cliquable, il est toujours embêtant de devoir orienter le champ de vision à chaque fois que l&#8217;on souhaite effectuer une action. Du coup, l&#8217;utilisation d&#8217;un [&#8230;]</p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/ecran-multifonction-pour-simulateur-de-vol-mfd/">Écran multifonction pour simulateur de vol (MFD)</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Introduction</h1>
<p>L&rsquo;accès à certaines fonctionnalités embarqués sur un avion de combat (navigation, systèmes d&rsquo;armes, désignateur, &#8230;) passe par un écran multifonctions (<em><strong>M</strong>ulti<strong>F</strong>unction <strong>D</strong>isplay</em>). Bien que certains simulateurs proposent un cockpit cliquable, il est toujours embêtant de devoir orienter le champ de vision à chaque fois que l&rsquo;on souhaite effectuer une action. Du coup, l&rsquo;utilisation d&rsquo;un périphérique matériel augmente l&rsquo;immersion et améliore l&rsquo;expérience de jeu.</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/Screen_200617_160247-scaled.jpg"><img decoding="async" fetchpriority="high" class="aligncenter wp-image-1275 size-large" src="https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/Screen_200617_160247.jpg" alt="" width="640" height="360" /></a></p>
<p>Les solutions commerciales existantes (<a href="http://www.thrustmaster.com/fr_FR/produits/mfd-cougar-pack" target="_blank" rel="noopener">ThrustMaster Cougar Pack</a>) ne m&rsquo;ayant pas impressionné, j&rsquo;ai décidé de concevoir un écran multifonction fonctionnant sur USB.</p>
<p>Le projet que je présente est conçu pour fonctionner avec DCS. Cependant, comme il utilise un écran HDMI et des contrôles type joystick, il n&rsquo;y a pas de raisons pour que ça ne marche pas avec d&rsquo;autres simulateurs.</p>
<h1>Principes de fonctionnement</h1>
<p>L&rsquo;idée consiste à configurer DCS pour envoyer l&rsquo;image des MFD gauche et droite sur deux écrans supplémentaires. Pour ce faire, il faut créer un fichier de configuration dans le dossier MonitorSetup du jeu et ajouter ces deux paramètres (il faut bien évidemment ajuster les offsets pour tomber dans les bons écrans) :</p>
<div class="snippetcpt-wrap" id="snippet-1272" data-id="1272" data-edit="" data-copy="/author/amaury10/feed/?snippet=ed1a2b5598&#038;id=1272" data-fullscreen="https://amaury-laurent.fr/code-snippets/mfd_display-lua/?full-screen=1">
				<pre class="prettyprint linenums lang-lua" title="MFD_Display.lua">_  = function(p) return p; end;
name = _('MFD_Display');
Description = 'Config maison'
Viewports =
{
     Center =
     {
          x = 1920;
          y = 0;
          width  = 1920;
          height = 1080;
          viewDx = 0;
          viewDy = 0;
          aspect = 1.6;
     }
}

LEFT_MFCD =
{
    x = 1920*2+(1024/2-768/2);
    y = 0;
    width  = 768;
    height = 768;
}

RIGHT_MFCD =
{
    x = 1920*2+1024+(1024/2-768/2);
    y = 0;
    width  = 768;
    height = 768;
}

UIMainView = Viewports.Center
GU_MAIN_VIEWPORT = Viewports.Center</pre>
			</div>
<p>L&rsquo;assignation des touches se fait simplement dans DCS, comme n&rsquo;importe quel autre périphérique d&rsquo;entrée.</p>
<p>Pour l&rsquo;affichage, j&rsquo;ai choisi un écran LCD 4:3 de 8 pouces. Il a une résolution de 1024&#215;768 :</p>
<p>​​<a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/H7722be4a6fc64bfd84d52e6e3e1e65505.png"><img decoding="async" class="aligncenter wp-image-1299 size-large" src="https://ml9zfxsqktal.i.optimole.com/w:768/h:1024/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/H7722be4a6fc64bfd84d52e6e3e1e65505.png" alt="" width="640" height="853" /></a></p>
<p>Son prix et sa taille en font une solution intéressante : <a href="https://fr.aliexpress.com/item/32325920866.html?spm=a2g0s.9042311.0.0.d0dd6c37EdzyS4​" target="_blank" rel="noopener">https://fr.aliexpress.com/item/32325920866.html?spm=a2g0s.9042311.0.0.d0dd6c37EdzyS4​</a></p>
<h1>L&rsquo;électronique</h1>
<h2>Conception</h2>
<p>Pour simplifier l&rsquo;intégration matérielle, j&rsquo;ai choisi d&rsquo;utiliser un petit microcontrôleur de chez Microchip capable de faire de l&rsquo;USB et de l&rsquo;I2C : le PIC18F25K50. Il communique avec 4 cartes filles qui s&rsquo;occupent chacune de 7 boutons.</p>
<p>La séparation en plusieurs cartes répond à deux impératifs :</p>
<ol>
<li>Rentrer dans une conception Autodesk EAGLE version gratuite</li>
<li>Diminuer les coûts de fabrication en réduisant la surface de circuit imprimé</li>
</ol>
<p>La carte mère sera montée au dos du MFD :<a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/carte_mere.png"><img decoding="async" class="aligncenter wp-image-1292 size-medium" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:183/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/carte_mere.png" alt="" width="300" height="183" /></a></p>
<p>Deux cartes en angle et deux cartes droites permettent de former un cadre autour de l&rsquo;écran LCD :</p>
<p>​<a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/carte_l.png"><img decoding="async" class="aligncenter size-medium wp-image-1291" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:191/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/carte_l.png" alt="" width="300" height="191" /></a> <a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/carte_i.png"><img decoding="async" class="aligncenter size-medium wp-image-1290" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:173/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/carte_i.png" alt="" width="300" height="173" /></a>​</p>
<p>&nbsp;</p>
<h2>La carte mère</h2>
<p>La carte mère du MFD se contente de faire le lien entre les différentes cartes filles (I2C) et le PC (USB). Le schéma est donc des plus simples, il reprend celui de la <a href="https://amaury-laurent.fr/boite-a-boutons-pour-simulateurs/" target="_blank" rel="noopener">boite à boutons</a> ou de <a href="https://amaury-laurent.fr/interface-usb-hid/" target="_blank" rel="noopener">l&rsquo;interface HID</a>, mais avec un composant différent :</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/schema_carte_mere.png"><img decoding="async" class="aligncenter wp-image-1289 size-large" src="https://ml9zfxsqktal.i.optimole.com/w:1024/h:437/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/schema_carte_mere.png" alt="" width="640" height="273" /></a>​On retrouve une horloge, un circuit de reset, le connecteur USB, un connecteur pour l&rsquo;I2C et un connecteur de programmation. Pour changer mes habitudes, j&rsquo;ai réalisé mes cartes avec des composants à montage en surface (CMS) :<br />
<a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/pcb_carte_mere.png"><img decoding="async" class="aligncenter wp-image-1296 size-medium" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:185/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/pcb_carte_mere.png" alt="" width="300" height="185" /></a></p>
<h2>Les cartes filles</h2>
<p>Bien que 2 formes différentes soient nécessaires, elles ont toutes le même schéma (à la différence de l&rsquo;adresse). Il s&rsquo;agit d&rsquo;un multiplexeur 8 entrées tout ou rien vers I2C MCP23008. Les résistances de tirages sont intégrées dans la puce. Les cartes sont adressées par un pont à souder pour le bit de poids faible et câblé en dur à 1 pour les cartes en L (0 pour les cartes en I).</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/schema_carte_boutons.png"><img decoding="async" class="aligncenter wp-image-1297 size-large" src="https://ml9zfxsqktal.i.optimole.com/w:1024/h:280/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/schema_carte_boutons.png" alt="" width="640" height="175" /></a></p>
<p>Deux connecteurs I2C permettent de former une chaine avec les 4 cartes. Un troisième permet de relier la carte mère sur l&rsquo;une des cartes filles.</p>
<p>La configuration des boutons à bascules présents aux 4 coins du MFD oblige à avoir deux formes de cartes:</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/pcb_carte_l.png"><img decoding="async" class="aligncenter size-medium wp-image-1295" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:88/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/pcb_carte_l.png" alt="" width="300" height="88" /></a>​</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/pcb_carte_i.png"><img decoding="async" class="aligncenter size-medium wp-image-1294" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:95/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/pcb_carte_i.png" alt="" width="300" height="95" /></a>​</p>
<p>Les dimensions sont adaptées à la taille de l&rsquo;écran de 8 pouces et au boitier imprimé en 3D dessiné tout spécialement.</p>
<h2>Réalisation</h2>
<p>J&rsquo;ai sous-traité la fabrication des PCB (double couches) à <a href="https://www.nextpcb.com/" target="_blank" rel="noopener">NextPCB</a>.</p>
<p>Les soudures des composants CMS sont réalisées au fer à souder, avec une panne fine. Pour rendre cela possible, j&rsquo;ai choisi des boitiers SOIC (gros composants CMS, pas de 1.27mm) et des formats 0805 pour les résistances et condensateurs. Finalement, le composant le plus petit et le plus difficile à souder est la LED indiquant la mise sous tension.</p>
<p>NB : une bonne pince brucelles est nécessaire !</p>
<h1><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_105009-scaled.jpg"><img decoding="async" class="aligncenter wp-image-1276 size-large" src="https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_105009.jpg" alt="" width="640" height="360" /></a> <a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_105102-scaled.jpg"><img decoding="async" class="aligncenter wp-image-1277 size-large" src="https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_105102.jpg" alt="" width="640" height="360" /></a> <a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_185658-scaled.jpg"><img decoding="async" class="aligncenter wp-image-1287 size-large" src="https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_185658.jpg" alt="" width="640" height="360" /></a> <a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_185704-scaled.jpg"><img decoding="async" class="aligncenter wp-image-1288 size-large" src="https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_185704.jpg" alt="" width="640" height="360" /></a>Intégration mécanique</h1>
<p>J&rsquo;ai fait découper au LASER des tôles d&rsquo;inox pour réaliser les faces avant (<a href="https://www.metal-laser.com/" target="_blank" rel="noopener">https://www.metal-laser.com/</a>). Le boitier plastique qui accueille ​les cartes filles ainsi que les différentes touches sont imprimés en 3D. La conception mécanique et l&rsquo;intégration des cartes électroniques a été réalisée à l&rsquo;aide <a href="https://www.autodesk.fr/products/fusion-360/personal" target="_blank" rel="noopener">Fusion 360</a>. Cet outil permet de facilement faire converger les CAO électroniques et mécaniques.</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/montage.png"><img decoding="async" class="aligncenter wp-image-1293 size-medium" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:198/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/montage.png" alt="" width="300" height="198" /></a></p>
<p>Il est important de pouvoir vérifier la profondeur du boitier plastique, notamment pour que les boutons poussoirs tombent en dessous des touches plastiques.<br />
<a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_181757-scaled.jpg"><img decoding="async" class="aligncenter wp-image-1279 size-large" src="https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_181757.jpg" alt="" width="640" height="360" /></a> <a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_181811-scaled.jpg"><img decoding="async" class="aligncenter wp-image-1280 size-large" src="https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_181811.jpg" alt="" width="640" height="360" /></a>​</p>
<p>L&rsquo;écran LCD est fixé (scotché ou collé) à l&rsquo;arrière du cadre. La face avant est également collée au boitier plastique.</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_183955-scaled.jpg"><img decoding="async" class="aligncenter wp-image-1282 size-large" src="https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_183955.jpg" alt="" width="640" height="360" /></a></p>
<h1>Le logiciel</h1>
<p>Une fois n&rsquo;est pas coutume, le code du microcontrôleur a été écrit en C à l&rsquo;aide de MikroC. Outre l&rsquo;initialisation de la puce et le driver des multiplexeurs, la boucle principale se contente de lire les 4 ports d&rsquo;entré sur l&rsquo;I2C et d&rsquo;envoyer le rapport USB HID.</p>
<div class="snippetcpt-wrap" id="snippet-1310" data-id="1310" data-edit="" data-copy="/author/amaury10/feed/?snippet=ed1a2b5598&#038;id=1310" data-fullscreen="https://amaury-laurent.fr/code-snippets/mfd-main/?full-screen=1">
				<pre class="prettyprint linenums lang-c_cpp" title="MFD Main">/**
* Version IO Expander MCP23018
**/

#include &quot;MCP23008.h&quot;

#define USB_BUFFER_LEN       4
#define NB_MCP               4

unsigned char readbuff[USB_BUFFER_LEN] absolute 0x500;
unsigned char writebuff[USB_BUFFER_LEN] absolute 0x540;

int reset_mcp23017 = 1;

void interrupt() {
    USB_Interrupt_Proc();        // USB servicing is done inside the interrupt
    USBIF_bit = 0;
}

// define callback function
void I2C1_TimeoutCallback(char errorCode) {
   if (errorCode == _I2C_TIMEOUT_RD) {
     //LED0 = 1;
     // do something if timeout is caused during read
   }

   if (errorCode == _I2C_TIMEOUT_WR) {
     //LED1 = 1;
     // do something if timeout is caused during write
   }

   if (errorCode == _I2C_TIMEOUT_START) {
     //LED0 = 1;
     // do something if timeout is caused during start
   }

   if (errorCode == _I2C_TIMEOUT_REPEATED_START) {
     //LED1 = 1;
     // do something if timeout is caused during repeated start
   }
   
   reset_mcp23017 = 1;
}
          
void main() {
    int i = 0;
    int cpt = 0;
    
    uint16_t temp;

    ANSELA = 0;
    ANSELB = 0;
    ANSELC = 0;
    SLRCON = 0;

    ADCON1 |= 0x0F;                         // Configure all ports with analog function as digital
    CM1CON0 |= 7;                           // Disable comparators

    TRISB = 0xff;
    TRISB.f2 = 0;
    LATB.f2 = 1;

    I2C1_Init(400000);         // initialize I2C communication
    
    // set timeout period and callback function
    I2C1_SetTimeoutCallback(40000, I2C1_TimeoutCallback);

    reset_mcp23017 = 1;

    FSEN_bit = 1;
    UPUEN_bit = 1;
    HID_Enable(&amp;readbuff,&amp;writebuff);
    
    // Enable USB device interrupt
    IPEN_bit = 1;
    USBIP_bit = 1;
    USBIE_bit = 1;
    GIEH_bit = 1;

    while (1) {
        if (reset_mcp23017) {
           LATB.f2 = 0;       //RESET MCP23017
           Delay_ms(250);
           LATB.f2 = 1;
           Delay_ms(250);

           for (i=0; i&lt;NB_MCP; i++) {
            MCPreset(i);
            Delay_ms(5);
           }
          reset_mcp23017 = 0;
        }

        memset(writebuff, 0x00, USB_BUFFER_LEN);
    
        for (i=0; i&lt;NB_MCP; i++) {
          temp = MCPread(i, GPIO);
          writebuff[i] = ~temp;
          Delay_ms(5);
          if(reset_mcp23017) break;
        }
        
        HID_Write(writebuff, USB_BUFFER_LEN);
        Delay_ms(5);
    }
}</pre>
			</div>
<p>&nbsp;</p>
<h1>Le premier test</h1>
<p>Un dock USB 3.1 peut servir pour gérer le HDMI et l&rsquo;USB simultanément, ce qui permet d&rsquo;avoir une unique prise USB occupée sur le PC. Si la configuration de DCS est correcte et que l&rsquo;écran est bien détecté, voici le résultat que l&rsquo;on peut obtenir :</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_184607-scaled.jpg"><img decoding="async" class="aligncenter wp-image-1283 size-large" src="https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_184607.jpg" alt="" width="640" height="360" /></a> <a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_184704-scaled.jpg"><img decoding="async" class="aligncenter wp-image-1284 size-large" src="https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_184704.jpg" alt="" width="640" height="360" /></a> <a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_184954-scaled.jpg"><img decoding="async" class="aligncenter wp-image-1286 size-large" src="https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_184954.jpg" alt="" width="640" height="360" /></a></p>
<p>La même chose en vidéo :</p>
<p>&nbsp;</p>
<p><iframe title="Écran multifonction pour DCS World" width="640" height="360"  src="about:blank" data-opt-src="https://www.youtube.com/embed/rAcCKd2z3Fs?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></p>
<p>&nbsp;</p>
<h1>Conclusion</h1>
<p>Il me reste encore à imprimer des touches propres et à finir l&rsquo;état de surface de la face avant. Pour le reste, le rendu est vraiment sympa. Reste à tester réellement sur une session de pilotage plus longue.</p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/ecran-multifonction-pour-simulateur-de-vol-mfd/">Écran multifonction pour simulateur de vol (MFD)</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://amaury-laurent.fr/ecran-multifonction-pour-simulateur-de-vol-mfd/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Boite à boutons pour simulateurs</title>
		<link>https://amaury-laurent.fr/boite-a-boutons-pour-simulateurs/</link>
					<comments>https://amaury-laurent.fr/boite-a-boutons-pour-simulateurs/#respond</comments>
		
		<dc:creator><![CDATA[Amaury LAURENT]]></dc:creator>
		<pubDate>Wed, 16 Jun 2021 16:48:31 +0000</pubDate>
				<category><![CDATA[Microcontrôleur]]></category>
		<category><![CDATA[Non classé]]></category>
		<category><![CDATA[Réalisation]]></category>
		<category><![CDATA[buttonbox]]></category>
		<category><![CDATA[DCS Wolrd]]></category>
		<category><![CDATA[hid]]></category>
		<category><![CDATA[usb]]></category>
		<guid isPermaLink="false">https://amaury-laurent.fr/?p=1243</guid>

					<description><![CDATA[<p>Le retour de l&#8217;interface USB HID ! Introduction Quand les potes disent vouloir jouer à DCS World en multijoueurs, l&#8217;électronicien qui sommeil en moi se dit « Il me faut plus de boutons ! ». En effet, les périphériques de jeux habituels sont relativement peu pourvus en boutons, et démarrer un avion de chasse est un peu [&#8230;]</p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/boite-a-boutons-pour-simulateurs/">Boite à boutons pour simulateurs</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1></h1>
<h1>Le retour de l&rsquo;interface USB HID !</h1>
<h2>Introduction</h2>
<p>Quand les potes disent vouloir jouer à <a href="https://www.digitalcombatsimulator.com/fr/products/world/" target="_blank" rel="noopener">DCS World</a> en multijoueurs, l&rsquo;électronicien qui sommeil en moi se dit « Il me faut plus de boutons ! ». En effet, les périphériques de jeux habituels sont relativement peu pourvus en boutons, et démarrer un avion de chasse est un peu plus complexe que démarrer une Twingo. L&rsquo;idée a donc germée de concevoir une électronique vue comme un joystick et proposant des entrées tout ou rien et/ou analogiques. Il est ainsi possible de réaliser son tableau de bord, avec de vrais boutons, des étiquettes&#8230; Bref, on s&rsquo;y croirait.</p>
<h2>Conception de la carte</h2>
<h3>Spécifications</h3>
<p>Comme on ne change pas une équipe qui gagne, je suis reparti de ma première version de <a href="https://amaury-laurent.fr/interface-usb-hid/" target="_blank" rel="noopener">l&rsquo;interface USB HID</a>. Voici quelques éléments en vrac:</p>
<ul>
<li>Alimentation par le bus USB</li>
<li>MCU : PIC18F4550 cadencé à 48MHz par un quartz 24MHz</li>
<li>Carte compacte</li>
<li>pas de composants additionnels à prévoir pour les entrées tout ou rien</li>
<li>16 entrées ToR</li>
<li>8 entrées analogiques 10 bits</li>
</ul>
<p>Il me fallait écouler un vieux stock de PIC18F4550 en format DIP40, donc le CMS sera pour une prochaine réalisation. Les entrées se font sur des borniers à vis au pas de 2.54mm. Les résistances de pull-up internes au PIC permettent d&rsquo;exploiter directement les ports B et D en tout ou rien. Le port A est utilisé en entrées analogiques.</p>
<h3>Schéma et PCB</h3>
<p>Le schéma de la carte ne constitue en rien une révolution. On retrouve presque à l&rsquo;identique celui de ma première interface.</p>
<figure id="attachment_1245" aria-describedby="caption-attachment-1245" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_schematic.png"><img decoding="async" class="size-medium wp-image-1245" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:127/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_schematic.png" alt="" width="300" height="127" /></a><figcaption id="caption-attachment-1245" class="wp-caption-text">Le schéma de la button box</figcaption></figure>
<p>L&rsquo;implantation est par contre beaucoup plus compacte.</p>
<figure id="attachment_1255" aria-describedby="caption-attachment-1255" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_board.png"><img decoding="async" class="wp-image-1255 size-medium" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:133/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_board.png" alt="" width="300" height="133" /></a><figcaption id="caption-attachment-1255" class="wp-caption-text">Le PCB de la button box</figcaption></figure>
<h2>Réalisation</h2>
<p>Pour une fois, j&rsquo;ai décidé de sous traiter la fabrication des circuits (au-delà d&rsquo;un exemplaire, la gravure à la fraiseuse n&rsquo;est pas franchement efficace). J&rsquo;ai donc envoyé tout ça chez les chinois (<a href="https://www.nextpcb.com/" target="_blank" rel="noopener">NextPCB</a> pour ne pas les citer). Le résultat est impeccable, pour un prix de revient d&rsquo;1.60€/pièce, port compris :</p>
<figure id="attachment_1246" aria-describedby="caption-attachment-1246" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_20210524_190610-scaled.jpg"><img decoding="async" class="size-medium wp-image-1246" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_20210524_190610.jpg" alt="" width="300" height="169" /></a><figcaption id="caption-attachment-1246" class="wp-caption-text">Les PCB fabriqués par les chinois de NextPCB</figcaption></figure>
<p>Seul petit bémol : la durée de livraison pour l&rsquo;expédition économique : compter plusieurs semaines. Place à la soudure !</p>
<figure id="attachment_1250" aria-describedby="caption-attachment-1250" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_20210526_191906-scaled.jpg"><img decoding="async" class="size-medium wp-image-1250" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_20210526_191906.jpg" alt="" width="300" height="169" /></a><figcaption id="caption-attachment-1250" class="wp-caption-text">La fabrication en série, c&rsquo;est un métier &#8230;</figcaption></figure>
<h2>Programmation</h2>
<p>Là encore, rien de révolutionnaire : le code est écrit en C avec <a href="https://www.mikroe.com/mikroc-pic" target="_blank" rel="noopener">MikroC for PIC</a>. Les PIC sont ensuite flashés en série grâce à un PicKit et <a href="https://www.microchip.com/en-us/development-tools-tools-and-software/embedded-software-center/mplab-integrated-programming-environment" target="_blank" rel="noopener">MPLAB IPE</a>.</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_20210527_214615-scaled.jpg"><img decoding="async" class="aligncenter size-medium wp-image-1252" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_20210527_214615.jpg" alt="" width="300" height="169" /></a></p>
<p>Le descripteur HID déclare donc 16 entrées switch et 8 axes analogiques:</p>
<div class="snippetcpt-wrap" id="snippet-1256" data-id="1256" data-edit="" data-copy="/author/amaury10/feed/?snippet=ed1a2b5598&#038;id=1256" data-fullscreen="https://amaury-laurent.fr/code-snippets/descripteur-uhi-pour-button-box/?full-screen=1">
				<pre class="prettyprint linenums lang-c_cpp" title="Descripteur HID pour Button Box">hid_rpt_desc =
  {
    0x05, 0x01,                    // USAGE_PAGE (Generic Desktop)
    0x15, 0x00,                    // LOGICAL_MINIMUM (0)
    0x09, 0x04,                    // USAGE (Joystick)
    0xa1, 0x01,                    // COLLECTION (Application)
    0x05, 0x02,                    //   USAGE_PAGE (Simulation Controls)
    0x09, 0xbb,                    //   USAGE (Throttle)
    0x09, 0xc5,                    //   USAGE (Brake)
    0x15, 0x00,                    //   LOGICAL_MINIMUM (0)
    0x26, 0xff, 0x00,              //   LOGICAL_MAXIMUM (255)
    0x75, 0x08,                    //   REPORT_SIZE (8)
    0x95, 0x02,                    //   REPORT_COUNT (2)
    0x81, 0x02,                    //   INPUT (Data,Var,Abs)
    0x05, 0x01,                    //   USAGE_PAGE (Generic Desktop)
    0x09, 0x01,                    //   USAGE (Pointer)
    0xa1, 0x00,                    //   COLLECTION (Physical)
    0x09, 0x30,                    //     USAGE (X)
    0x09, 0x31,                    //     USAGE (Y)
    0x09, 0x32,                    //     USAGE (Z)
    0x09, 0x33,                    //     USAGE (Rx)
    0x09, 0x34,                    //     USAGE (Ry)
    0x09, 0x35,                    //     USAGE (Rz)
    0x95, 0x06,                    //     REPORT_COUNT (6)
    0x81, 0x02,                    //     INPUT (Data,Var,Abs)
    0xc0,                          //   END_COLLECTION
    0x05, 0x09,                    //   USAGE_PAGE (Button)
    0x19, 0x01,                    //   USAGE_MINIMUM (Button 1)
    0x29, 0x10,                    //   USAGE_MAXIMUM (Button 16)
    0x15, 0x00,                    //   LOGICAL_MINIMUM (0)
    0x25, 0x01,                    //   LOGICAL_MAXIMUM (1)
    0x75, 0x01,                    //   REPORT_SIZE (1)
    0x95, 0x10,                    //   REPORT_COUNT (16)
    0x55, 0x00,                    //   UNIT_EXPONENT (0)
    0x65, 0x00,                    //   UNIT (None)
    0x81, 0x02,                    //   INPUT (Data,Var,Abs)
    0xc0                           // END_COLLECTION
  };</pre>
			</div>
<p>Le rapport USB associé est le suivant:</p>
<table class="customTable">
<tbody>
<tr>
<th colspan="9">USB Report</th>
</tr>
<tr>
<th>octet 0</th>
<td colspan="8">Throttle</td>
</tr>
<tr>
<th>octet 1</th>
<td colspan="8">Brake</td>
</tr>
<tr>
<th>octet 2</th>
<td colspan="8">Axe X</td>
</tr>
<tr>
<th>octet 3</th>
<td colspan="8">Axe Y</td>
</tr>
<tr>
<th>octet 4</th>
<td colspan="8">Axe Z</td>
</tr>
<tr>
<th>octet 5</th>
<td colspan="8">Axe RX</td>
</tr>
<tr>
<th>octet 6</th>
<td colspan="8">Axe RY</td>
</tr>
<tr>
<th>octet 7</th>
<td colspan="8">Axe RZ</td>
</tr>
<tr>
<th>octet 8</th>
<td>DI 00</td>
<td>DI 01</td>
<td>DI 02</td>
<td>DI 03</td>
<td>DI 04</td>
<td>DI 05</td>
<td>DI 06</td>
<td>DI 07</td>
</tr>
<tr>
<th>octet 9</th>
<td>DI 08</td>
<td>DI 09</td>
<td>DI 10</td>
<td>DI 11</td>
<td>DI 12</td>
<td>DI 13</td>
<td>DI 14</td>
<td>DI 15</td>
</tr>
</tbody>
</table>
<h2>Utilisation</h2>
<p>Le câblage des entrées analogiques peut exploiter l&rsquo;alimentation de la carte (5V sur USB) pour utiliser des potentiomètres:</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_Analogic.png"><img decoding="async" class="aligncenter size-medium wp-image-1264" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:227/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_Analogic.png" alt="" width="300" height="227" /></a></p>
<p>Le câblage des boutons se fait entre la broche d&rsquo;entrée et la masse. La résistance de pull-up interne s&rsquo;occupe de polariser l&rsquo;entrée quand le bouton est ouvert.</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_Digital.png"><img decoding="async" class="aligncenter size-medium wp-image-1265" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:274/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_Digital.png" alt="" width="300" height="274" /></a></p>
<p>Une fois le tout branché et l&rsquo;USB relié au PC, Windows devrait voir un nouveau périphérique de jeu:</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_Windows.png"><img decoding="async" class="aligncenter size-medium wp-image-1267" src="https://ml9zfxsqktal.i.optimole.com/w:266/h:300/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_Windows.png" alt="" width="266" height="300" /></a></p>
<h2>Conclusion</h2>
<p>Il ne reste qu&rsquo;à faire la mécanique !</p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/boite-a-boutons-pour-simulateurs/">Boite à boutons pour simulateurs</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://amaury-laurent.fr/boite-a-boutons-pour-simulateurs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Nomad ND1 &#8211; Sous le capot</title>
		<link>https://amaury-laurent.fr/nomad-nd1-sous-le-capot/</link>
					<comments>https://amaury-laurent.fr/nomad-nd1-sous-le-capot/#respond</comments>
		
		<dc:creator><![CDATA[Amaury LAURENT]]></dc:creator>
		<pubDate>Fri, 26 Feb 2021 18:06:39 +0000</pubDate>
				<category><![CDATA[Microcontrôleur]]></category>
		<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[mass effect]]></category>
		<category><![CDATA[nomad]]></category>
		<category><![CDATA[udp]]></category>
		<category><![CDATA[wireshark]]></category>
		<guid isPermaLink="false">https://amaury-laurent.fr/?p=1222</guid>

					<description><![CDATA[<p>Introduction Si vous aussi êtes fan de Mass Effect et avez investi dans l&#8217;édition collector de Mass Effect Andromeda, vous vous retrouvez sans doute avec un Nomad ND1 télécommandé par smartphone. Comme l&#8217;application Android est toute nulle perfectible et peu stable, il parait intéressant de piloter ce petit drone roulant à partir d&#8217;un PC ou, [&#8230;]</p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/nomad-nd1-sous-le-capot/">Nomad ND1 &#8211; Sous le capot</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Introduction</h1>
<p>Si vous aussi êtes fan de Mass Effect et avez investi dans l&rsquo;édition collector de Mass Effect Andromeda, vous vous retrouvez sans doute avec un Nomad ND1 télécommandé par smartphone. Comme l&rsquo;application Android est <del>toute nulle</del> perfectible et peu stable, il parait intéressant de piloter ce petit drone roulant à partir d&rsquo;un PC ou, pourquoi pas, d&rsquo;une radio commande conventionnelle.</p>
<p>Pour ce faire, je vais décortiquer la communication mise en place entre le Nomad et le smart phone.</p>
<h1>Deux types de communication</h1>
<p>Le Nomad est télécommandé (vitesse, direction, allumage des feux) mais dispose également d&rsquo;une caméra afin de fournir un retour vidéo temps réel. Du coup, deux communications différentes sont utilisées.</p>
<h2>Connexion WiFi</h2>
<p>Tout d&rsquo;abord, il est bon de préciser que la communication radio entre le smartphone et le Nomad est basée sur une liaison WiFi 2.4GHz. Le Nomad est un point d&rsquo;accès avec serveur DHCP. Quand on connecte un périphérique réseau sur le Nomad, on obtient automatiquement une adresse IP.</p>
<p>Le Nomad sera toujours accessible à l&rsquo;adresse 192.168.0.1.</p>
<h2>Retour Vidéo</h2>
<p>Je commence par exposer le fonctionnement du retour vidéo puisqu&rsquo;il s&rsquo;agit du moins complexe et qu&rsquo;il peut être solutionné avec des logiciels comme VLC.</p>
<p>Le Nomad se comporte comme une caméra IP. Il héberge un serveur de <a href="https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol" target="_blank" rel="noopener">streaming RTSP</a>. Le point d&rsquo;accès vidéo est vs1. Il est donc possible d&rsquo;ouvrir le flux vidéo en accédant à l&rsquo;adresse:</p>
<p><a href="rtsp://192.168.0.1/vs1" target="_blank" rel="noopener">rtsp://192.168.0.1/vs1</a></p>
<figure id="attachment_1233" aria-describedby="caption-attachment-1233" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/02/video_nomad.png"><img decoding="async" class="size-medium wp-image-1233" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:272/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/02/video_nomad.png" alt="VLC affichant le retour vidéo du Nomad" width="300" height="272" /></a><figcaption id="caption-attachment-1233" class="wp-caption-text">VLC affichant le retour vidéo du Nomad</figcaption></figure>
<h2>Télécommande</h2>
<p>L&rsquo;envoie des commandes au Nomad est un peu plus artisanal. En effet, la messagerie entre le smartphone et le Nomad exploite une communication UDP sans protocole standard particulier. Les informations qui vont suivre sont issues de mes observations et d&rsquo;analyses réseaux faites avec <a href="https://fr.wikipedia.org/wiki/Wireshark" target="_blank" rel="noopener">WireShark</a>. N&rsquo;ayant qu&rsquo;un seul Nomad sous la main, il est possible que le comportement décrit ne soit pas identique pour tous les modèles.</p>
<h3>Première connexion</h3>
<p>La communication UDP bidirectionnelle s’établit sur le port 8234. Comme l&rsquo;UDP n&rsquo;est pas un protocole en mode connecté, il est nécessaire de pouvoir vérifier la présence d&rsquo;un interlocuteur de l&rsquo;autre côté de la liaison. Pour ce faire, le Nomad propose une commande de ping.</p>
<p>Il est possible d&rsquo;envoyer la chaine <span style="font-family: terminal, monaco, monospace;">MAKO_CONNECT</span> et le Nomad répond <span style="font-family: terminal, monaco, monospace;">CONNECT_OK</span>.</p>
<p>On notera au passage l&rsquo;amalgame entre le mako et le nomade qui laisse supposé l’existence d&rsquo;un <a href="https://en.wikipedia.org/wiki/Mako_(Mass_Effect)" target="_blank" rel="noopener">mako</a> radiocommandé?</p>
<h3>Récupération du statut</h3>
<p>Il est possible de récupérer l&rsquo;état général du Nomad (niveau de batterie et allumage des feux). Pour ce faire, il faut envoyer la chaine <span style="font-family: terminal, monaco, monospace;">MAKO_READ_BATT</span>. Le Nomad va alors répondre trois lignes:</p>
<p><span style="font-family: terminal, monaco, monospace;">BATT=%d</span><br />
<span style="font-family: terminal, monaco, monospace;">LED1=%b</span><br />
<span style="font-family: terminal, monaco, monospace;">LED2=%b</span></p>
<p>On obtient le niveau de batterie entre 0 et 100%, ainsi que l&rsquo;état des deux groupes de feux avant (0=éteint, 1=allumé)</p>
<h3>Allumage des feux</h3>
<p>Pour gérer les feux avant du Nomad, il y a les commande <span style="font-family: terminal, monaco, monospace;">MAKO_LED%d_ON</span> et <span style="font-family: terminal, monaco, monospace;">MAKO_LED%d_OFF<span style="font-family: georgia, palatino, serif;">. Il est nécessaire de préciser dans la commande le numéro des feux à allumer ou éteindre (par exemple <span style="font-family: terminal, monaco, monospace;">MAKO_LED1_ON</span> ou <span style="font-family: terminal, monaco, monospace;">MAKO_LED2_OFF</span>). Le Nomad ne répond pas à ces commandes. Le statut des LED peut être récupérer par la commande précédente <span style="font-family: terminal, monaco, monospace;">MAKO_READ_BATT</span>.</span></span></p>
<h3>Envoie des consignes</h3>
<p>L&rsquo;envoie des consignes est un peu plus problématique. En effet, une seule commande binaire est utilisée pour envoyer les consignes de vitesse avant, de vitesse arrière et de direction. En outre, la commande semble contenir un numéro unique qui, s&rsquo;il est mal renseigné, bloque l&rsquo;interprétation de la commande complète.</p>
<p>Voici la structure de la trame binaire envoyée. Les valeurs sont données en hexadécimal:</p>
<table class="customTable" style="border-collapse: collapse; width: 100%;">
<tbody>
<tr>
<th style="width: 73%; text-align: center;" colspan="8">? Identifiant de trame ?</th>
<th style="width: 9%;">F-Throttle</th>
<th style="width: 9%;">R-Throttle</th>
<th style="width: 9%;">Stearing</th>
</tr>
<tr>
<td style="width: 9%;">C0</td>
<td style="width: 9%;">A8</td>
<td style="width: 9%;">01</td>
<td style="width: 9%;">01</td>
<td style="width: 9%;">00</td>
<td style="width: 9%;">00</td>
<td style="width: 9%;">04</td>
<td style="width: 9%;">21</td>
<td style="width: 9%;">Uint8</td>
<td style="width: 9%;">Uint8</td>
<td style="width: 9%;">Uint8</td>
</tr>
</tbody>
</table>
<p>Les consignes de vitesse  sont données en 0-255, soit en marche avant, soit en marche arrière.</p>
<p>La consignes de direction est également en 0-255, avec la valeur 128 pour aller tout droit. 0 tourne à gauche, 255 tourne à droite.</p>
<p>La réponse du Nomad à cette commande est assez impénétrable:</p>
<table class="customTable" style="border-collapse: collapse; width: 100%;">
<tbody>
<tr>
<th style="width: 64%; text-align: center;" colspan="10">? Identifiant de trame ?</th>
<th style="width: 6%;">?</th>
<th style="width: 6%;">?</th>
<th style="width: 6%;">F-Throttle</th>
<th style="width: 6%;">R-Throttle</th>
<th style="width: 6%;"></th>
<th style="width: 6%;"></th>
</tr>
<tr>
<td style="width: 6%;">C0</td>
<td style="width: 6%;">A8</td>
<td style="width: 6%;">01</td>
<td style="width: 6%;">01</td>
<td style="width: 6%;">00</td>
<td style="width: 6%;">00</td>
<td style="width: 6%;">09</td>
<td style="width: 6%;">F8</td>
<td style="width: 6%;">00</td>
<td style="width: 6%;">00</td>
<td style="width: 6%;">Uint8</td>
<td style="width: 6%;">Uint8</td>
<td style="width: 6%;">Uint8</td>
<td style="width: 6%;">Uint8</td>
<td style="width: 6%;">00</td>
<td style="width: 6%;">00</td>
</tr>
</tbody>
</table>
<p>On y retrouve le même code qu&rsquo;à la commande. Ensuite, il y a deux octets à 0, deux octets qui sembles avoir une valeur proche de 0x66, les recopies des deux consignes de vitesse et encore deux octets à 0.</p>
<h1>Conclusion</h1>
<p>Même s&rsquo;il reste quelques octets inexpliqués dans les trames d&rsquo;envoie de consigne et de réponse, il est tout à fait possible de piloter le Nomad depuis n&rsquo;importe quel périphérique WiFi. Voici d’ailleurs un driver LabVIEW permettant le pilotage du Nomad:</p>
<p><a href="https://amaury-laurent.fr/wp-content/uploads/2021/02/NomadND1_LV2019.zip">NomadND1_LV2019.zip</a></p>
<figure id="attachment_1236" aria-describedby="caption-attachment-1236" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/02/NomadND1_LV.png"><img decoding="async" class="size-medium wp-image-1236" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:83/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/02/NomadND1_LV.png" alt="Utilisation du driver LabVIEW pour le Nomad" width="300" height="83" /></a><figcaption id="caption-attachment-1236" class="wp-caption-text">Utilisation du driver LabVIEW pour le Nomad</figcaption></figure>
<p>En outre, j&rsquo;envisage le développement d&rsquo;une interface Radio &lt;-&gt; WiFi à base d&rsquo;ESP32. L&rsquo;idée est de récupérer les signaux d&rsquo;écolage radio, voir les PWM de pilotage servo issues d&rsquo;un récepteurs modélisme et de générer les trames UDP « qui vont bien » afin de piloter le Nomad comme il se doit!</p>
<p>Si une âme charitable et possédant un Nomad peut tester le pilotage par UDP afin de s&rsquo;assurer que la trame C0A8 0101 0000 0421 XXXX XX fonctionne sans modifications, le retour d&rsquo;expérience sera intéressant pour compléter cette petite introduction au pilotage du Nomad 🙂</p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/nomad-nd1-sous-le-capot/">Nomad ND1 &#8211; Sous le capot</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://amaury-laurent.fr/nomad-nd1-sous-le-capot/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Bruiteur pour avion de modélisme</title>
		<link>https://amaury-laurent.fr/bruiteur-pour-avion-de-modelisme/</link>
					<comments>https://amaury-laurent.fr/bruiteur-pour-avion-de-modelisme/#respond</comments>
		
		<dc:creator><![CDATA[Amaury LAURENT]]></dc:creator>
		<pubDate>Sat, 28 Mar 2020 13:22:58 +0000</pubDate>
				<category><![CDATA[Microcontrôleur]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[bruit]]></category>
		<category><![CDATA[bruiteur]]></category>
		<category><![CDATA[mp3-tf-16p]]></category>
		<guid isPermaLink="false">http://amaury-laurent.fr/?p=1164</guid>

					<description><![CDATA[<p>Introduction Les bruiteurs pour avion de modélisme disponibles dans le commerce sont relativement chers (150€ pour ce modèle de MotionRC). Aujourd&#8217;hui, avec les modules disponibles pour la bricole autour des arduinos, il doit être possible de fabriquer un bruiteur à moindre frais. C&#8217;est ce que je vais essayer de faire dans cette article. Le matériel [&#8230;]</p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/bruiteur-pour-avion-de-modelisme/">Bruiteur pour avion de modélisme</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Introduction</h1>
<p>Les bruiteurs pour avion de modélisme disponibles dans le commerce sont relativement chers (<a href="https://www.motionrc.eu/products/mrrcsound-sound-system-v4-1-with-tt-25-for-rc-planes?currency=EUR&amp;gclid=Cj0KCQjw6_vzBRCIARIsAOs54z7eDnc8qQJ7Ps1kv2FbbPpJojIT23MwZ6qzaoDOGTuFIo5TambI-ZUaAqD5EALw_wcB" target="_blank" rel="noopener noreferrer">150€ pour ce modèle de MotionRC</a>). Aujourd&rsquo;hui, avec les modules disponibles pour la bricole autour des arduinos, il doit être possible de fabriquer un bruiteur à moindre frais. C&rsquo;est ce que je vais essayer de faire dans cette article.</p>
<h1>Le matériel</h1>
<p>Pour construire mon bruiteur, j&rsquo;ai choisi de partir sur un <a href="https://store.arduino.cc/arduino-nano" target="_blank" rel="noopener noreferrer">arduino nano</a> (<a href="https://fr.aliexpress.com/item/32341832857.html?spm=a2g0o.productlist.0.0.4710572feqWZKX&amp;algo_pvid=964beaf9-c200-43de-a4ff-fbb9f3ba8527&amp;algo_expid=964beaf9-c200-43de-a4ff-fbb9f3ba8527-0&amp;btsid=0b0a050b15853880297704945ed2fb&amp;ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_" target="_blank" rel="noopener noreferrer">ou sa copie chinoise</a>) et un module lecteur <a href="https://fr.aliexpress.com/item/32919672331.html?spm=a2g0o.productlist.0.0.292476fboFzC03&amp;algo_pvid=0cc2b0d0-9c24-437a-b1f9-f4cb3fb0c134&amp;algo_expid=0cc2b0d0-9c24-437a-b1f9-f4cb3fb0c134-0&amp;btsid=0b0a050b15853880860396376ed2fb&amp;ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_" target="_blank" rel="noopener noreferrer">MP3-TF-16P.</a></p>
<p>Le matériel le plus chers sera donc la carte SD pour stocker les fichiers sons.</p>
<figure id="attachment_1167" aria-describedby="caption-attachment-1167" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/nano.jpg"><img decoding="async" class="wp-image-1167 size-medium" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:300/q:mauto/rt:fill/g:ce/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/nano.jpg" alt="Arduino nano" width="300" height="300" /></a><figcaption id="caption-attachment-1167" class="wp-caption-text">Arduino nano</figcaption></figure>
<p>L&rsquo;arduino nano sera utilisé pour acquérir le signal PPM de pilotage moteur et envoyer les informations de lecture fichiers au module MP3 <em>via</em> l&rsquo;UART.</p>
<p>Le module MP3-TF-16P est un codec audio associé à un amplificateur capable de décoder des fichiers MP3 et WAV et de les jouer sur un haut parleur de 3W.</p>
<figure id="attachment_1168" aria-describedby="caption-attachment-1168" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/mp3-tf-16p.jpg"><img decoding="async" class="wp-image-1168 size-medium" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:279/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/mp3-tf-16p.jpg" alt="MP3-TF-16P - Pas plus gros qu'une carte SD plein format" width="300" height="279" /></a><figcaption id="caption-attachment-1168" class="wp-caption-text">MP3-TF-16P &#8211; Pas plus gros qu&rsquo;une carte SD plein format</figcaption></figure>
<h1>Principe de fonctionnement</h1>
<p>Le signal PPM issu du récepteur radio de l&rsquo;avion est un pulse de 1 à 2ms émis toutes les 22ms ou 11ms (DSMX). Pour plus de détail, rendez-vous sur la page <a href="https://amaury-laurent.fr/recepteur-radio-modelisme-sur-usb/" target="_blank" rel="noopener noreferrer">Récepteur radio-modélisme sur USB.</a> L&rsquo;arduino doit donc mesurer la durée de l&rsquo;état haut du pulse. Cela tombe bien, une fonction native s&rsquo;en occupe: <a href="https://www.arduino.cc/reference/en/language/functions/advanced-io/pulsein/" target="_blank" rel="noopener noreferrer">pulseIn()</a>. Elle renvoie la durée des pulses reçus sur une broche d&rsquo;entrée en µs.</p>
<p>La plage de 1000µs à 2000µs est découpée en 6 plages réparties comme suis:</p>
<p><strong>1000</strong> &#8212; <em>OFF</em>&#8212; <strong>1100</strong> &#8212; <em>RPM1</em> &#8212; <strong>1280</strong> &#8212; <em>RPM2</em> &#8212; <strong>1460</strong> &#8212; <em>RPM3</em> &#8212;<strong>1640</strong> &#8212; <em>RPM4</em> &#8212; <strong>1820</strong> &#8212; <em>RPM5</em> &#8212; <strong>2000</strong></p>
<p>Chaque plage est associée à un fichier son sur la carte SD. Exception faite de la plage MotorOff qui donne lieu à la lecteur d&rsquo;un fichier de démarrage moteur et d&rsquo;une fichier d&rsquo;arrêt moteur quand la consigne sort ou entre dans la plage.</p>
<p>Les fichiers sons sont téléchargeables sur le site <a href="https://simviation.com/1/browse-Flight+Simulator+Sounds-112-0" target="_blank" rel="noopener noreferrer">Simviation</a> par exemple.</p>
<h1>Câblage</h1>
<p>Le câblage du système est très simple:</p>
<ol>
<li>Récupérer une prise servo 3 points</li>
<li>Alimenter l&rsquo;arduino entre noir et rouge (5V issu du BEC du récepteur)</li>
<li>Alimenter le module MP3-TF-16P avec le même 5V (pin 1 : Vcc, pin 7 et pin 10 : Gnd)</li>
<li>Connecter le signal (fil orange) sur une entrée de l&rsquo;arduino (j&rsquo;utilise D2)</li>
<li>Connecter l&rsquo;UART du module MP3-TF-16P (pin 2 : Rx, pin 3 : Tx) sur les broches Rx et Tx de l&rsquo;arduino (pensez bien à croiser Rx-&gt;Tx et Tx-&gt;Rx)</li>
<li>Connecter le haut parleur sur le module MP3-TF-16P (pin 8 : Spk- et pin 6 : Spk+)</li>
</ol>
<p>C&rsquo;est tout!</p>
<p>[EDIT] Voici un schéma de la version amplifiée:</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/schema.png"><img decoding="async" class="aligncenter size-medium wp-image-1217" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:200/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/schema.png" alt="" width="300" height="200" /></a></p>
<p>La spécification du module MP3-TF-16P est <a href="https://amaury-laurent.fr/wp-content/uploads/2020/03/Module-Datasheet.pdf" target="_blank" rel="noopener noreferrer">disponible ici</a>.</p>
<h1>Programmation de l&rsquo;arduino</h1>
<p>Le programme de l&rsquo;arduino est assez simple. Il est basé sur une machine à états qui gère les différents régimes moteurs et les transitions de l&rsquo;un à l&rsquo;autre.</p>
<figure id="attachment_1171" aria-describedby="caption-attachment-1171" style="width: 250px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/state_machine.png"><img decoding="async" class="wp-image-1171 size-medium" src="https://ml9zfxsqktal.i.optimole.com/w:250/h:300/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/state_machine.png" alt="La machine à état de l'arduino" width="250" height="300" /></a><figcaption id="caption-attachment-1171" class="wp-caption-text">La machine à état de l&rsquo;arduino</figcaption></figure>
<p>Le code source de l&rsquo;arduino est <a href="https://amaury-laurent.fr/wp-content/uploads/2020/03/bruiteur_rc.zip">disponible ici</a>. La version que je propose utilise 7 fichiers son au total. Pour des raisons de simplicité d&rsquo;intégration je n&rsquo;ai pas utilisé la bibliothèque <a href="https://github.com/DFRobot/DFPlayer-Mini-mp3" target="_blank" rel="noopener noreferrer">DFPlayer-Mini</a>, préférant écrire ma propre implémentation. En effet, le protocole de communication mise en place sur le MP3-TF-16P est relativement simple. Il est très bien décrit dans la spécification du module:</p>
<table class="customTable">
<tbody>
<tr>
<th>Byte</th>
<th>Description</th>
</tr>
<tr>
<td style="width: 786.983px;">0x7E</td>
<td style="width: 786.967px;">Start byte</td>
</tr>
<tr>
<td style="width: 786.983px;">0xFF</td>
<td style="width: 786.967px;">Version</td>
</tr>
<tr>
<td style="width: 786.983px;">0x06</td>
<td style="width: 786.967px;">Byte number in frame</td>
</tr>
<tr>
<td style="width: 786.983px;">CMD</td>
<td style="width: 786.967px;">Command to execute</td>
</tr>
<tr>
<td style="width: 786.983px;">0x00</td>
<td style="width: 786.967px;">Feedback not required</td>
</tr>
<tr>
<td style="width: 786.983px;">Param_MSB</td>
<td style="width: 786.967px;">Most Significant Byte of the 2 bytes of data</td>
</tr>
<tr>
<td style="width: 786.983px;">Param_LSB</td>
<td style="width: 786.967px;">Least Significant Byte of the 2 bytes of data</td>
</tr>
<tr>
<td style="width: 786.983px;">Chksum_MSB</td>
<td style="width: 786.967px;">Most Significant Byte of the 2 bytes of check sum</td>
</tr>
<tr>
<td style="width: 786.983px;">Chksum_LSB</td>
<td style="width: 786.967px;">Least Significant Byte of the 2 bytes of check sum</td>
</tr>
<tr>
<td style="width: 786.983px;">0xEF</td>
<td style="width: 786.967px;">End byte</td>
</tr>
</tbody>
</table>
<p>Le même format de trame est utilisée en réception et en émission.</p>
<h1>La carte SD</h1>
<p>Les fichier sons doivent être rangés et nommés d&rsquo;une certaine manière pour que le module puisse les lire. Voici l’arborescence que j&rsquo;utilise:</p>
<ul>
<li>01
<ul>
<li><a href="https://amaury-laurent.fr/wp-content/uploads/2020/03/001.wav">001.wav</a></li>
<li><a href="https://amaury-laurent.fr/wp-content/uploads/2020/03/002.wav">002.wav</a></li>
<li><a href="https://amaury-laurent.fr/wp-content/uploads/2020/03/003.wav">003.wav</a></li>
<li><a href="https://amaury-laurent.fr/wp-content/uploads/2020/03/004.wav">004.wav</a></li>
<li><a href="https://amaury-laurent.fr/wp-content/uploads/2020/03/005.wav">005.wav</a></li>
<li><a href="https://amaury-laurent.fr/wp-content/uploads/2020/03/006.wav">006.wav</a></li>
<li><a href="https://amaury-laurent.fr/wp-content/uploads/2020/03/007.wav">007.wav</a></li>
</ul>
</li>
</ul>
<p>Les fichier 001 et 007 sont les fichier startup et shutdown. Les fichiers 002 à 006 sont les régimes moteurs établis.</p>
<h1>[EDIT] Ajout d&rsquo;un amplificateur et utilisation d&rsquo;un haut parleur vibrant (exciter)</h1>
<p>Comme prévu, les haut parleurs de 3W ne donne pas satisfaction dans un avion RC: il faudrait percer le fuselage pour sortir le son. Un solution proposée entre autre par MotionRC est d&rsquo;utiliser des excitateur vibrants. Ils fonctionnent comme un haut-parleur électroacoustique, mais sans membrane. Au lieux de la membrane, il y a juste un adhésif double faces collé sur la bobine. En montant ce type de matériel sur un avion, tout le fuselage devient haut-parleur!</p>
<p>Le modèle que j&rsquo;ai retenu est un <a href="https://www.audiophonics.fr/fr/vibreur-exciter/dayton-audio-daex25fhe-4-haut-parleur-vibreur-exciter-24w-4-ohm-o27cm-p-8713.html" target="_blank" rel="noopener noreferrer">Dayton Audio DAEX25FHE-4</a> de 24W. Je l&rsquo;ai couplé à un amplificateur <span id="productTitle" class="a-size-large"><a href="https://www.amazon.fr/gp/product/B083QHWSYD/ref=ppx_yo_dt_b_asin_title_o07_s00?ie=UTF8&amp;psc=1" target="_blank" rel="noopener noreferrer">TPA3110 sur carte de développement</a> :</span></p>
<figure id="attachment_1209" aria-describedby="caption-attachment-1209" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/05/8713_daytonaudio_DAEX25FHE-4-exciter_1.jpg"><img decoding="async" class="size-medium wp-image-1209" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:240/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/05/8713_daytonaudio_DAEX25FHE-4-exciter_1.jpg" alt="" width="300" height="240" /></a><figcaption id="caption-attachment-1209" class="wp-caption-text">Le haut parleur vibrant</figcaption></figure>
<figure id="attachment_1210" aria-describedby="caption-attachment-1210" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/05/61pmHZNUjPL._AC_SL1001_.jpg"><img decoding="async" class="size-medium wp-image-1210" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:211/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/05/61pmHZNUjPL._AC_SL1001_.jpg" alt="" width="300" height="211" /></a><figcaption id="caption-attachment-1210" class="wp-caption-text">L&rsquo;ampli mono voie</figcaption></figure>
<p>J&rsquo;ai récupéré l&rsquo;une des deux sorties DAC_L ou DAC_R du module MP3-TF-16P pour attaquer l&rsquo;ampli. J&rsquo;alimente ce dernier avec une batterie 2S auxiliaire afin de ne pas endommager le circuit électrique principal de mon avion en cas de défaillance.</p>
<figure id="attachment_1211" aria-describedby="caption-attachment-1211" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/05/20200507_123632-scaled.jpg"><img decoding="async" class="size-medium wp-image-1211" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/05/20200507_123632.jpg" alt="" width="300" height="169" /></a><figcaption id="caption-attachment-1211" class="wp-caption-text">Le haut parleur et son ampli</figcaption></figure>
<figure id="attachment_1212" aria-describedby="caption-attachment-1212" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/05/20200508_112352-scaled.jpg"><img decoding="async" class="size-medium wp-image-1212" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/05/20200508_112352.jpg" alt="" width="300" height="169" /></a><figcaption id="caption-attachment-1212" class="wp-caption-text">L&rsquo;installation dans le fuselage</figcaption></figure>
<p>Voici le résultat en images (et surtout en musique&#8230;):</p>
<p style="text-align: center;"><iframe  src="about:blank" data-opt-src="//www.youtube.com/embed/8IVSXylbTVU" width="560" height="314" allowfullscreen="allowfullscreen"></iframe></p>
<h1>Conclusion</h1>
<p>Voici donc un petit bruiteur sans prétentions qui semble donner des résultats satisfaisants pour un budget contenu. Je n&rsquo;ai pas encore pu essayer avec un haut parleur de 3W, mais une chose est sûre: avec mon petit haut parleur de 0.1W, on n&rsquo;entend pas le bruiteur à cause du bruit de l&rsquo;hélice de l&rsquo;avion. Dans le pire des cas, j&rsquo;ajouterais un amplificateur de 3W additionnel sur la sortie non amplifiée du module pour mettre deux HP en stéréo sur l&rsquo;avion.</p>
<p>J’envisage d&rsquo;équiper un <a href="https://www.horizonhobby.com/sukhoi-su-29mm-%28gen-2%29-bnf-basic-efl8850" target="_blank" rel="noopener noreferrer">su29mm</a> de chez ParkZone.</p>
<p style="text-align: center;"><iframe  src="about:blank" data-opt-src="//www.youtube.com/embed/bsAWjExBL6I" width="560" height="314" allowfullscreen="allowfullscreen"></iframe></p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/bruiteur-pour-avion-de-modelisme/">Bruiteur pour avion de modélisme</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://amaury-laurent.fr/bruiteur-pour-avion-de-modelisme/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://amaury-laurent.fr/wp-content/uploads/2020/03/001.wav" length="510188" type="audio/wav" />
<enclosure url="https://amaury-laurent.fr/wp-content/uploads/2020/03/002.wav" length="1938796" type="audio/wav" />
<enclosure url="https://amaury-laurent.fr/wp-content/uploads/2020/03/003.wav" length="633504" type="audio/wav" />
<enclosure url="https://amaury-laurent.fr/wp-content/uploads/2020/03/004.wav" length="981536" type="audio/wav" />
<enclosure url="https://amaury-laurent.fr/wp-content/uploads/2020/03/005.wav" length="485636" type="audio/wav" />
<enclosure url="https://amaury-laurent.fr/wp-content/uploads/2020/03/007.wav" length="910416" type="audio/wav" />
<enclosure url="https://amaury-laurent.fr/wp-content/uploads/2020/03/006.wav" length="932280" type="audio/wav" />

			</item>
		<item>
		<title>Le Raspberry Pi se propulse vers LabVIEW 2019 (et 2020) !</title>
		<link>https://amaury-laurent.fr/le-raspberry-pi-se-propulse-vers-labview-2019-et-2020/</link>
					<comments>https://amaury-laurent.fr/le-raspberry-pi-se-propulse-vers-labview-2019-et-2020/#respond</comments>
		
		<dc:creator><![CDATA[Amaury LAURENT]]></dc:creator>
		<pubDate>Fri, 13 Mar 2020 21:02:09 +0000</pubDate>
				<category><![CDATA[Informatique]]></category>
		<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[LabVIEW 2019]]></category>
		<category><![CDATA[LINX]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<guid isPermaLink="false">http://amaury-laurent.fr/?p=1140</guid>

					<description><![CDATA[<p>Cette année, National Instruments a annoncé la sortie d&#8217;une version communautaire du célèbre environnement de développement LabVIEW. A cette occasion, le toolkit LINX devrait être porté en LabVIEW 2020 et maintenu officiellement pas NI. En effet, la version pouvant être installée en autonomie sur un Raspberry Pi était cantonnée à LabVIEW 2014. En cherchant sur [&#8230;]</p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/le-raspberry-pi-se-propulse-vers-labview-2019-et-2020/">Le Raspberry Pi se propulse vers LabVIEW 2019 (et 2020) !</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Cette année, National Instruments a <a href="https://forums.ni.com/t5/NI-Blog/LabVIEW-Community-Edition/ba-p/3970512?profile.language=fr" target="_blank" rel="noopener noreferrer">annoncé la sortie d&rsquo;une version communautaire</a> du célèbre environnement de développement LabVIEW. A cette occasion, le <a href="https://amaury-laurent.fr/linx-3-0-programmer-raspberry-pi-labview/" target="_blank" rel="noopener noreferrer">toolkit LINX </a>devrait être porté en LabVIEW 2020 et maintenu officiellement pas NI. En effet, la version pouvant être installée en autonomie sur un Raspberry Pi était cantonnée à LabVIEW 2014. En cherchant sur le dépôt d&rsquo;installation de digilent, on observe trois versions du paquet d&rsquo;installation:</p>
<ul>
<li><strong>lvrt-schroot</strong> : pour LabVIEW 2014, la version initiale</li>
<li><strong>lvrt20-schroot</strong> : pour la future LabVIEW 2020 ?</li>
<li><strong>lvrt19-schroot</strong> : pour LabVIEW 2019 ?</li>
</ul>
<p>Si l&rsquo;on essayait ensemble d&rsquo;installer lvrt19-schroot sur un Raspberry Pi 4 tout neuf ?</p>
<h1>Introduction</h1>
<p>Avant de commencer, il nous faut un Raspberry Pi (&gt;2) fonctionnel avec la dernière version de Raspbian (Buster à l&rsquo;heure où ce test a été mené). Pour ma part, je profite de la sortie du Raspberry Pi 4 pour le prendre en main et profité de la connexion WiFi (enfin!).</p>
<h1>Installation de LINX 3 pour LabVIEW 2019</h1>
<p>Nous sommes prêts? Allons-y !</p>
<p>Tout se passe en ligne de commande. Ouvrez un terminal SSH et connectez-vous sur le Raspberry Pi.</p>
<p>Commençons par mettre à jour notre installation:</p>
<ul>
<li><strong>sudo apt-get update</strong></li>
<li><strong>sudo apt-get dist-upgrade -y</strong></li>
</ul>
<p>Ensuite activons les modules i2c et spi:</p>
<ul>
<li><strong>sudo raspi-config nonint do_i2c 0</strong></li>
<li><strong>sudo raspi-config nonint do_spi 0</strong></li>
</ul>
<p>Ajoutons le dépôt d&rsquo;installation de LINX:</p>
<ul>
<li><strong>sudo sh -c &lsquo;echo « deb [trusted=yes] http://feeds.labviewmakerhub.com/debian/ binary/ » &gt;&gt; /etc/apt/sources.list&rsquo;</strong></li>
<li><strong>sudo apt-get update</strong></li>
</ul>
<p>A ce stade, la magie n&rsquo;a pas encore opéré. Installons donc le paquet lvrt19 (tuto <a href="https://forums.ni.com/t5/LabVIEW/LINX-3-0-on-the-Raspberry-Pi-2-3-and-4-running-Raspbian-Buster/td-p/3967891?profile.language=fr" target="_blank" rel="noopener noreferrer">extrait du forum NI</a>, modifié pour LabVIEW 2019) :</p>
<ul>
<li><strong>sudo apt-get install -y lvrt19-schroot</strong></li>
<li><strong>sudo mv /etc/systemd/system/multi-user.target.wants/nisysserver.service /lib/systemd/system</strong></li>
<li><strong>sudo mv /etc/systemd/system/multi-user.target.wants/labview.service /lib/systemd/system</strong></li>
<li><strong>sudo schroot -c labview -d /usr/lib &#8212; ln -s liblinxdevice_rpi2.so liblinxdevice.so</strong></li>
<li><strong>sudo systemctl enable nisysserver.service</strong></li>
<li><strong>sudo systemctl enable labview.service</strong></li>
<li><strong>sudo systemctl start nisysserver.service</strong></li>
<li><strong>sudo systemctl start labview.service</strong></li>
</ul>
<h1>Vérification de l&rsquo;installation avec LabVIEW 2019</h1>
<p>Avant d&rsquo;aller plus loin, nous allons vérifier la bonne installation du runtime 2019 sur le Raspberry Pi.</p>
<p>Créons un nouveau projet LabVIEW vide et ajoutons une cible <em>temps réelle</em> compatible (cRIO 9039 au hasard) en spécifiant l&rsquo;adresse IP du Raspberry Pi.</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/2020-03-13_2109.png"><img decoding="async" class="aligncenter wp-image-1141 size-medium" src="https://ml9zfxsqktal.i.optimole.com/w:249/h:300/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/2020-03-13_2109.png" alt="" width="249" height="300" /></a>Ensuite, nous connectons le projet à la cible: clic droit sur la cible -&gt; Connect.</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/2020-03-13_2110.png"><img decoding="async" class="aligncenter size-medium wp-image-1142" src="https://ml9zfxsqktal.i.optimole.com/w:268/h:300/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/2020-03-13_2110.png" alt="" width="268" height="300" /></a>LabVIEW déploie le projet et vérifie la connexion à la cible.</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/2020-03-13_2111.png"><img decoding="async" class="aligncenter size-medium wp-image-1143" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:216/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/2020-03-13_2111.png" alt="" width="300" height="216" /></a>Comme nous avons défini la cible comme étant un compact RIO, LabVIEW cherche automatiquement à détecter les modules d&rsquo;acquisitions présents dans el châssis. Nous avons un Raspberry Pi, donc LabVIEW échoue à détecter les modules, mais pas de panique, tout est normal.<a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/2020-03-13_2113.png"><img decoding="async" class="aligncenter size-medium wp-image-1144" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:247/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/2020-03-13_2113.png" alt="" width="300" height="247" /></a>On continue la procédure en écrivant un petit code de test qui renvoie la version de LabVIEW et la version du système :</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/test.png"><img decoding="async" class="aligncenter size-full wp-image-1146" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/test.png" alt="" width="286" height="151" /></a>Confirmation du fonctionnement (ctrl + R), après déploiement et exécution, nous voyons la version 2019 et la version de l&rsquo;OS (ici Linux raspberry 1.19.97) :</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/2020-03-13_2115.png"><img decoding="async" class="aligncenter size-medium wp-image-1145" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:89/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/2020-03-13_2115.png" alt="" width="300" height="89" /></a>Vous trouverez le projet de test ici : <a href="https://amaury-laurent.fr/wp-content/uploads/2020/03/test.zip">test.zip</a></p>
<h1>Ajout de la cible Raspberry Pi dans LabVIEW 2019</h1>
<p>Pour ajouter le Raspberry Pi comme cible de déploiement dans LabVIEW, il faut ajouter des <a href="https://forums.ni.com/t5/Developer-Center-Resources/Customize-the-LabVIEW-Project-Explorer-Using-the-Project/ta-p/3532774?profile.language=fr" target="_blank" rel="noopener noreferrer">Providers</a>. Ils sont fournis dans <a href="http://download.ni.com/evaluation/labview/lvtn/vipm/packages/lvh_linx/" target="_blank" rel="noopener noreferrer">le paquet d&rsquo;installation VIPM de LINX</a>. Il est possible de récupérer l&rsquo;archive zip intéressante en décompressant le fichier .vip ou en la téléchargeant ici : <a href="https://amaury-laurent.fr/wp-content/uploads/2020/03/InstallProviders.zip">InstallProviders.zip</a></p>
<p>Quittez LabVIEW, décompressez cette archive et lancez la commande suivante :</p>
<ul>
<li><strong>UpdateLinxProvider.bat « C:\Program Files (x86)\National Instruments\LabVIEW 2019 »</strong></li>
</ul>
<p>Une fois installé, le Raspberry Pi apparait dans la liste des cibles disponibles :</p>
<h1><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/2020-03-13_2129.png"><img decoding="async" class="aligncenter size-medium wp-image-1150" src="https://ml9zfxsqktal.i.optimole.com/w:266/h:300/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/2020-03-13_2129.png" alt="" width="266" height="300" /></a>Conclusion</h1>
<p>En attendant la sortie officielle de LabVIEW 2020 avec le support LINX inclus, il est possible de profiter d&rsquo;un runtime 2019 sur un Raspberry Pi. Pour preuve, voici un pilotage moteur en CanOpen utilisant CanOpenSocket:</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/2020-03-13_2134.png"><img decoding="async" class="aligncenter size-medium wp-image-1152" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:206/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/2020-03-13_2134.png" alt="" width="300" height="206" /></a></p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/le-raspberry-pi-se-propulse-vers-labview-2019-et-2020/">Le Raspberry Pi se propulse vers LabVIEW 2019 (et 2020) !</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://amaury-laurent.fr/le-raspberry-pi-se-propulse-vers-labview-2019-et-2020/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>LabVIEW RT &#038; LattePanda</title>
		<link>https://amaury-laurent.fr/labview-rt-lattepanda/</link>
					<comments>https://amaury-laurent.fr/labview-rt-lattepanda/#respond</comments>
		
		<dc:creator><![CDATA[Amaury LAURENT]]></dc:creator>
		<pubDate>Fri, 13 Mar 2020 19:50:28 +0000</pubDate>
				<category><![CDATA[Informatique]]></category>
		<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[LattePanda]]></category>
		<guid isPermaLink="false">http://amaury-laurent.fr/?p=1051</guid>

					<description><![CDATA[<p>Cet article explique comment installer la distribution Linux temps-réel de National Instruments sur un LattePanda première génération. Il explique en outre comment installer l&#8217;IDE Arduino afin de flasher Linx 3.0 et d&#8217;utiliser ce dernier avec l&#8217;API LabVIEW idoine. J&#8217;ai mené mes tests sur une version 4G de RAM, 64G de stockage. J&#8217;utilise un LabVIEW 32 [&#8230;]</p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/labview-rt-lattepanda/">LabVIEW RT &#038; LattePanda</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Cet article explique comment installer la distribution <a href="https://www.ni.com/fr-fr/innovations/white-papers/13/introduction-to-ni-linux-real-time.html" target="_blank" rel="noopener noreferrer">Linux temps-réel de National Instruments</a> sur un LattePanda première génération. Il explique en outre comment installer l&rsquo;IDE Arduino afin de flasher <a href="https://www.labviewmakerhub.com/doku.php?id=libraries:linx:start" target="_blank" rel="noopener noreferrer">Linx 3.0</a> et d&rsquo;utiliser ce dernier avec l&rsquo;API LabVIEW idoine. J&rsquo;ai mené mes tests sur une version 4G de RAM, 64G de stockage. J&rsquo;utilise un <a href="https://www.ni.com/fr-fr/support/downloads/software-products/download.labview.html#306364" target="_blank" rel="noopener noreferrer">LabVIEW 32 bits SP1</a> patché f4 ainsi que le module <a href="https://www.ni.com/fr-fr/support/downloads/software-products/download.labview-real-time-module.html#305484" target="_blank" rel="noopener noreferrer">Real-Time 18.5</a>.</p>
<h1>Avertissements</h1>
<p>Cette manipulation pourrait rendre votre LattePanda disfonctionnel. Pour le restaurer dans la version Windows 10 d&rsquo;origine, référez-vous à la <a href="http://docs.lattepanda.com/content/1st_edition/os/" target="_blank" rel="noopener noreferrer">page d&rsquo;explication du forum LattePanda</a>.</p>
<p>En outre, l&rsquo;installation de NI Real-Time et la programmation du LattePanda avec LabVIEW RT ne sont pas supportés officiellement, ni par National Instruments, ni par moi-même. Cet article expose la possibilité d&rsquo;utiliser le LattePanda avec LabVIEW RT à titre purement expérimental et non professionnel. En effet, le LattePanda n&rsquo;offre pas les mêmes caractéristiques techniques qu&rsquo;un compact RIO en terme de robustesse, fiabilité ou déterminisme. Il ne saurait en aucun cas remplacer un contrôleur industriel certifié et testé.</p>
<h1>Prérequis</h1>
<p>Pour commencer, il vous faut réunir les pièces suivantes:</p>
<ul>
<li>Un LattePanda première génération</li>
<li>Son écran 7 » (facultatif, mais alors il faudra un écran HDMI)</li>
<li>Un clavier USB pour le LattePanda</li>
<li>Une clés USB d&rsquo;au moins 128Mo</li>
<li>Un PC installé avec LabVIEW, LabVIEW RT et MAX (Measurement and Automation eXplorer)</li>
<li>La possibilité de brancher sur le même réseau le PC et le LattePanda (la carte WiFi ne sera pas utilisable)</li>
<li>L&rsquo;image d&rsquo;installation via NIPM ou ici : <a href="https://amaury-laurent.fr/wp-content/uploads/standard_x64_recovery.iso">standard_x64_recovery.iso</a></li>
</ul>
<h1>Récupération de l&rsquo;image via NIPM</h1>
<p>Lancer NIPM et faire la recherche « Linux ». Le résultat doit être le suivant :</p>
<p><img decoding="async" class="size-medium wp-image-1078 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:171/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/NipmPxiImagePackage.png" alt="" width="300" height="171" /></p>
<p>Sélectionner le produit « Image Système NI Linux RT PXI » et cliquer sur installer.</p>
<p>MAX doit être mis à jour pour permettre la création de la clé USB. Dans tous les cas l&rsquo;image se trouvera dans « ..\National Instruments\RT Images\Utilities\Linux RT PXI Safemode\7.0 ».</p>
<h1>Création de la clé USB d&rsquo;installation</h1>
<p>Depuis peu (version 19.0), MAX est doté de la possibilité de générer une clé USB de restauration pour NI Linux RT.</p>
<p>Pour ce faire, passer par le menu <strong>Outils -&gt; Créer une clé de restauration NI Linux RT</strong></p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/usb_utilty_image.png"><img decoding="async" class="aligncenter wp-image-1055 size-medium" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:213/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/usb_utilty_image.png" alt="usb_utilty_image" width="300" height="213" /></a>Ensuite, choisissez votre clé USB et le fichier <strong>standard_x64_recovery.iso</strong></p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/partition_max_image.png"><img decoding="async" class="size-medium wp-image-1054 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:210/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/partition_max_image.png" alt="partition_max_image" width="300" height="210" /></a>Cliquer sur <strong>Formater</strong> et laisser MAX générer la clé d&rsquo;installation.</p>
<h1>Installation de NI Linux RT</h1>
<p><strong>ATTENTION :</strong> pour fonctionner correctement, le LattePanda doit avoir un BIOS configuré en UEFI.</p>
<p>Pour installer NI Linux RT sur le LattePanda, il faut amorcer la clé USB générée par MAX. Pour ce faire, appuyer sur F12 pendant l&rsquo;écran d&rsquo;amorçage et sélectionner la clés USB. Normalement, un shell Linux devrait démarrer vous demandant si vous souhaitez formater votre cible et installer NI Linux RT. Répondez oui (&lsquo;Y&rsquo; puis Entrer).</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/y_to_partition.jpg"><img decoding="async" class="size-medium wp-image-1056 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:139/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/y_to_partition.jpg" alt="y_to_partition" width="300" height="139" /></a></p>
<p>L&rsquo;installation dure quelques secondes, puis un message de confirmation apparait.</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/Successful_partition.jpg"><img decoding="async" class="aligncenter wp-image-1057 size-medium" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:145/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/Successful_partition.jpg" alt="Successful_partition" width="300" height="145" /></a>Il reste à retirer la clé USB et appuyer sur Entrer pour redémarrer le LattePanda. L&rsquo;écran d&rsquo;accueil est le suivant:</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/20190910_111521.jpg"><img decoding="async" class="aligncenter size-medium wp-image-1058" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/20190910_111521.jpg" alt="" width="300" height="169" /></a>L&rsquo;identifiant par défaut est :</p>
<p style="padding-left: 40px;">login : admin<br />
mot de passe : aucun</p>
<h1>Installation des logiciels</h1>
<p>Maintenant que le LattePanda fonctionne sous NI Linux RT, la suite des opérations se déroule dans MAX. Logiquement, le LattePanda doit apparaitre dans la section systèmes déportés. S&rsquo;il n&rsquo;apparait pas, il est possible que le pare-feu Windows fasse obstruction&#8230;</p>
<p>Pour ajouter des logiciels au LattePanda, faire un clic droit sur sa section « Logiciels » et choisir « Ajouter/Supprimer des logiciels » :</p>
<p><img decoding="async" class="aligncenter wp-image-1084 " src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/MAXAjoutProgramme.png" alt="" width="232" height="207" /></p>
<p>Valider les droits admin :</p>
<p><img decoding="async" class="aligncenter wp-image-1085 " src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/MAXAjoutProgrammeAdmin.png" alt="" width="206" height="175" /></p>
<p>En fonction des paquets logiciels disponibles sur votre pc hôte, l&rsquo;interface suivante vous proposera différents paquets à installer.</p>
<p>De base, , en choisissant une installation personnalisée, il est possible d&rsquo;installer le run-time LabVIEW RT ainsi que VISA, les web services, les Network Streams&#8230; :</p>
<p><img decoding="async" class="aligncenter wp-image-1081 " src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/CustomInstall.png" alt="" width="339" height="280" /></p>
<p>Voici un exemple de paquets que vous pouvez installer :</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/CustomInstallPackages1.png"><img decoding="async" class="aligncenter wp-image-1082" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/CustomInstallPackages1.png" alt="" width="327" height="271" /></a> <a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/CustomInstallPackages2.png"><img decoding="async" class="aligncenter wp-image-1083" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/CustomInstallPackages2.png" alt="" width="341" height="282" /></a></p>
<p>Il peut cependant être utile d&rsquo;installer des paquets supplémentaires cette fois-ci dans LabVIEW. Pour ce faire, on utilise le VI Package Manager. Voici une liste des paquets intéressants:</p>
<ul>
<li><a href="//ftp.ni.com/evaluation/labview/lvtn/vipm" target="_blank" rel="noopener noreferrer">NI Linux RT Inter-Process Communication</a></li>
<li><a href="//ftp.ni.com/evaluation/labview/lvtn/vipm" target="_blank" rel="noopener noreferrer">NI Linux RT Utilities</a></li>
<li><a href="//ftp.ni.com/evaluation/labview/lvtn/vipm" target="_blank" rel="noopener noreferrer">NI Linux RT Errno</a></li>
<li><a href="//ftp.ni.com/evaluation/labview/lvtn/vipm" target="_blank" rel="noopener noreferrer">Digilent LINX</a></li>
<li><a href="//ftp.ni.com/evaluation/labview/lvtn/vipm" target="_blank" rel="noopener noreferrer">RTI DDS Toolkit</a></li>
</ul>
<h1>Activation de l&rsquo;Embedded UI</h1>
<p>L&rsquo;introduction de NI Linux RT a permis de tirer parti d&rsquo;un écran connecté sur la cible RT. Cela permet de concevoir des applications autonomes équipées d&rsquo;une interface graphique.</p>
<p>Il est possible que le serveur graphique ne démarre pas automatiquement. Pour palier à ce problème il faut éditer le fichier de configuration ni-rt.ini à l&#8217;emplacement /etc/natinst/share.</p>
<p>Ajouter la clé ui.enabled=True dans la section SYSTEMSETTINGS :</p>
<p><img decoding="async" class="wp-image-1086 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/nirt-ini.png" alt="" width="399" height="335" /></p>
<h2>Installation d&rsquo;un serveur VNC</h2>
<p>Avec un serveur graphique fonctionnel, il est possible d&rsquo;installer un serveur VNC pour prendre la main à distance sur le LattePanda.</p>
<p>Pour ce faire, il faut installer manuellement X11VNC. Sur NI Linux RT, le gestionnaire de paquets est opkg. Pour installer VNC, commencer par mettre à jour la liste des paquets:</p>
<p>$ opkg update</p>
<p>Puis installer VNC:</p>
<p>$ opkg  install x11vnc</p>
<p>Pour la configuration et le lancement manuel (je n&rsquo;ai pas réussi à le rendre automatique), se référer à la page de LinuxTricks suivante:</p>
<p><a href="https://www.linuxtricks.fr/wiki/vnc-x11vnc-pour-prendre-le-controle-du-bureau-a-distance" target="_blank" rel="noopener noreferrer">https://www.linuxtricks.fr/wiki/vnc-x11vnc-pour-prendre-le-controle-du-bureau-a-distance</a></p>
<h1>Installation de l&rsquo;Arduino</h1>
<h2>Installation de l&rsquo;IDE</h2>
<p>A partir de votre PC, télécharger la version d&rsquo;<a href="https://www.arduino.cc/download_handler.php?f=/arduino-1.8.9-linux64.tar.xz" target="_blank" rel="noopener noreferrer">Arduino pour Linux 64 bits</a>. Pour envoyer le paquet tar.xz sur le LattePanda, il est possible de monter un disque réseau Windows sur le système WebDAV du LattePanda. Il est autrement possible de passer en SCP ou en SSHFS (par exemple avec WinSCP). Une dernière solution consiste à installer le serveur FTP (legacy mode) avec MAX.</p>
<p>Pour le WebDAV, voici les informations de connexions:</p>
<ul>
<li>adresse : http://ip_panda/files</li>
<li>login : admin</li>
<li>mot de passe : vide</li>
</ul>
<p>Placer l&rsquo;archive tar.xz dans le dossier /home/lvuser</p>
<p>Pour décompacter l&rsquo;archive .tar.xz, il faut les utilitaires tar et xz:</p>
<p style="padding-left: 40px;">$ opkg intall tar xz</p>
<p style="padding-left: 40px;">$ tar -xJf arduino-x.x.x-linux64.tar.xz</p>
<p>Aller dans le dossier Arduino et faire un chmod +x sur le fichier arduino.</p>
<p>Pour lancer l&rsquo;IDE, un simple ./arduino devrait faire l&rsquo;affaire.</p>
<h2>Compilation et téléchargement de LINX</h2>
<p>Pour charger LINX dans l&rsquo;Arduino, il est nécessaire de le compiler à partir des sources du firmware. Il est possible de les récupérer à partir du <a href="https://github.com/MakerHub/LINX/tree/master/LabVIEW/vi.lib/MakerHub/LINX/Firmware/Source" target="_blank" rel="noopener noreferrer">GITHUB de MakerHub</a> ou de les récupérer à partir de LabVIEW:</p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/linx_1.png"><img decoding="async" class="aligncenter size-medium wp-image-1067" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:204/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/linx_1.png" alt="" width="300" height="204" /></a></p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/linx_2.png"><img decoding="async" class="aligncenter size-medium wp-image-1068" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:237/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/linx_2.png" alt="" width="300" height="237" /></a></p>
<p><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/linx-3.png"><img decoding="async" class="aligncenter size-medium wp-image-1069" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:171/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/linx-3.png" alt="" width="300" height="171" /></a></p>
<p>Il faut ensuite recompiler l&rsquo;exemple Arduino_Leonardo_Serial.ino et le téléverser sur l&rsquo;arduino du LattePanda. Une fois cette opération faite, il est possible d&rsquo;utiliser LabVIEW pour accéder à l&rsquo;arduino.</p>
<h2>Utilisation sous LabVIEW</h2>
<p>L&rsquo;arduino devrait apparaitre dans MAX comme alias VISA (il est possible de le renommer :</p>
<p><img decoding="async" class="size-full wp-image-1077 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/SerialCmd.png" alt="" width="163" height="53" /></p>
<p>LINX utilisera cet alias pour se connecter à l&rsquo;arduino :</p>
<p><img decoding="async" class="size-full wp-image-1076 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/LinxSerialAccess.png" alt="" width="164" height="69" /></p>
<p>&nbsp;</p>
<p>En cas de problèmes, n&rsquo;hésitez à pas à me contacter 🙂</p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/labview-rt-lattepanda/">LabVIEW RT &#038; LattePanda</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://amaury-laurent.fr/labview-rt-lattepanda/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Code couleur résistance</title>
		<link>https://amaury-laurent.fr/code-couleur-resistance/</link>
					<comments>https://amaury-laurent.fr/code-couleur-resistance/#respond</comments>
		
		<dc:creator><![CDATA[Amaury LAURENT]]></dc:creator>
		<pubDate>Tue, 27 Nov 2018 19:11:48 +0000</pubDate>
				<category><![CDATA[Electronique]]></category>
		<guid isPermaLink="false">http://amaury-laurent.fr/?p=997</guid>

					<description><![CDATA[<p>Un outil qui détermine le code couleur d&#8217;une résistance à partir de sa valeur Après une longue gestation, j&#8217;ai enfin migré mon outil de calcul de résistance vers WordPress. Voir la page ici</p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/code-couleur-resistance/">Code couleur résistance</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Un outil qui détermine le code couleur d&rsquo;une résistance à partir de sa valeur</h1>
<p>Après une longue gestation, j&rsquo;ai enfin migré mon outil de calcul de résistance vers WordPress.</p>
<p><a href="https://amaury-laurent.fr/code-couleur-resistance/">Voir la page ici</a></p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/code-couleur-resistance/">Code couleur résistance</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://amaury-laurent.fr/code-couleur-resistance/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Exporter un Circuit Imprimé depuis EAGLE vers GALAAD/PERCIVAL</title>
		<link>https://amaury-laurent.fr/exporter-un-circuit-imprime-depuis-eagle-vers-galaad-percival/</link>
					<comments>https://amaury-laurent.fr/exporter-un-circuit-imprime-depuis-eagle-vers-galaad-percival/#respond</comments>
		
		<dc:creator><![CDATA[Amaury LAURENT]]></dc:creator>
		<pubDate>Wed, 02 May 2018 18:11:53 +0000</pubDate>
				<category><![CDATA[Usinage]]></category>
		<category><![CDATA[Electronique]]></category>
		<category><![CDATA[circuit imprimé]]></category>
		<category><![CDATA[eagle]]></category>
		<category><![CDATA[galaad]]></category>
		<category><![CDATA[gerber]]></category>
		<category><![CDATA[gravure]]></category>
		<category><![CDATA[lancelot]]></category>
		<category><![CDATA[percival]]></category>
		<guid isPermaLink="false">http://amaury-laurent.fr/?p=881</guid>

					<description><![CDATA[<p>Cet article a pour but d&#8217;expliquer la procédure a suivre pour passer d&#8217;une conception réalisée avec EAGLE Layout Editor à un circuit imprimé en chair et en os (ou plutôt en époxy et en cuivre) réalisé avec PERCIVAL. Cet article présuppose une bonne connaissance des outils EAGLE et GALAAD/LANCELOT pour la CAO et l&#8217;usinage. Introduction [&#8230;]</p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/exporter-un-circuit-imprime-depuis-eagle-vers-galaad-percival/">Exporter un Circuit Imprimé depuis EAGLE vers GALAAD/PERCIVAL</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Cet article a pour but d&rsquo;expliquer la procédure a suivre pour passer d&rsquo;une conception réalisée avec EAGLE Layout Editor à un circuit imprimé en chair et en os (ou plutôt en époxy et en cuivre) réalisé avec PERCIVAL. Cet article présuppose une bonne connaissance des outils <a href="https://amaury-laurent.fr/2015/10/17/conception-dun-circuit-imprime-avec-eagle/" target="_blank" rel="noopener">EAGLE</a> et GALAAD/LANCELOT pour la CAO et l&rsquo;usinage.</p>
<h1>Introduction</h1>
<p>Rappelons rapidement le principe de fonctionnement d&rsquo;un circuit imprimé.</p>
<p>Un circuit électronique consiste en l&rsquo;interconnexion de différents <b>composants</b> (résistances, condensateurs, circuits intégrés, &#8230;). Ces connexions électriques doivent être réalisées avec un matériau conducteur d&rsquo;électricité; habituellement le cuivre. Sur un circuit imprimé, on appelle ces connexions des <b>pistes</b>. Pour tenir ces pistes, on fait appel à un substrat isolant: l&rsquo;époxy ou la bakélite (bien que d&rsquo;autres matériaux soient également utilisés). Chaque piste relie donc différents composants <i>via</i> leurs <b>broches</b>. Les broches des composants sont reliées aux pistes par des <b>pastilles</b> de cuivre: c&rsquo;est une zone plus large que la piste (afin de pouvoir y percer un trou) qui permet à l&rsquo;étain de <b>soudure</b> d&rsquo;adhérer et offre une meilleure résistance mécanique. Un circuit imprimé peut avoir une ou deux (voir plus) couches de cuivre afin d&rsquo;augmenter la complexité du circuit. Enfin, il est possible de conserver de grandes étendues de cuivre reliées à une masse d&rsquo;alimentation (ou à un autre potentiel); on parle alors de <b>plan de masse</b>. Ils ont plusieurs avantages, parmi lesquels une meilleure immunité du circuit au bruit électromagnétique, une meilleure dissipation thermique, &#8230;</p>
<figure id="attachment_882" aria-describedby="caption-attachment-882" style="width: 640px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/Principe_coupe.png"><img decoding="async" class="wp-image-882 size-large" src="https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/Principe_coupe.png" alt="Coupe d'un circuit imprimé" width="640" height="360" /></a><figcaption id="caption-attachment-882" class="wp-caption-text">Coupe d&rsquo;un circuit imprimé</figcaption></figure>
<figure id="attachment_883" aria-describedby="caption-attachment-883" style="width: 640px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/Principe_dessous.png"><img decoding="async" class="wp-image-883 size-large" src="https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/Principe_dessous.png" alt="Soudure d'une broche sur une pastille" width="640" height="360" /></a><figcaption id="caption-attachment-883" class="wp-caption-text">Soudure d&rsquo;une broche sur une pastille</figcaption></figure>
<p>La réalisation de circuits imprimés peut s&rsquo;appuyer sur deux principes différents, mais à la finalité identique : enlever le cuivre autour des pistes afin d&rsquo;isoler celles-ci les unes envers les autres. Je vais citer deux principes largement répandus:</p>
<ul>
<li>L&rsquo;attaque chimique</li>
<li>La gravure à l&rsquo;anglaise (ou gravure mécanique)</li>
</ul>
<h2>L&rsquo;attaque chimique</h2>
<p>Cette méthode ancienne et fiable repose sur l&rsquo;utilisation d&rsquo;un composé chimique capable d&rsquo;attaquer et dissoudre le cuivre.</p>
<p>On commence par prendre une plaque d&rsquo;époxy recouverte d&rsquo;une couche de cuivre et d&rsquo;une couche photosensible.</p>
<p>Pour éviter de ronger tout le cuivre du circuit imprimé, on imprime un typon (représentation physique des pistes imprimées en noir sur une feuille transparent). Ce typon est utilisé pour <a href="https://amaury-laurent.fr/2015/10/17/banc-a-insoler/" target="_blank" rel="noopener">insoler</a> le vernis photosensible. Ensuite, comme pour la photographie argentique, il faut plonger la plaque dans un bain de révélateur. A ce moment, le dessin des pistes devrait apparaitre sur la plaque. On enlève les résidus de vernis photosensible et on plonge la plaque dans un bain d&rsquo;attaque chimique (perchlorure de fer ou acide chlorique + peroxyde d&rsquo;hydrogène).</p>
<p><b>ATTENTION </b>: ces produits sont agressifs (voir très agressifs) et très salissant pour le perchlorure de fer.</p>
<p>On enlève la plaque du bain d&rsquo;attaque dès que le cuivre est complètement dissout. Il ne reste alors plus qu&rsquo;à percer les trous dans les pastilles et souder les composants.</p>
<p>Cette méthode a fait ses preuves. Elle est relativement bon marché, nécessite un peu de matériel spécifique (<a href="https://amaury-laurent.fr/2015/10/17/banc-a-insoler/" target="_blank" rel="noopener">banc à insoler</a> et bain de gravure) et de produits chimiques. Par contre, elle nécessiter une très bonne maitrise du temps (insolation, révélation, gravure) qui ne peut s&rsquo;obtenir qu&rsquo;après moult essais et échecs. En outre, elle est très salissante et s’accommode mal des espaces clos (dégagements gazeux).</p>
<h2>La gravure à l&rsquo;anglaise</h2>
<p>Cette méthode repose elle sur l&rsquo;utilisation d&rsquo;une fraiseuse pour usiner la couche de cuivre. En usinant les contours des pistes, on obtient un résultat similaire à la méthode chimique: les pistes sont isolées entre-elles. C&rsquo;est cette méthode que je vais détailler dans cet article.</p>
<h1>Du logiciel de CAO au module de FAO</h1>
<p>La Conception Assistée par Ordinateur (CAO) nous permet de concevoir un circuit électronique en toute quiétude. Le lien est fort entre le schéma et le circuit imprimé: les logiciels de CAO actuels sont capables de rendre bien des services : contrôle électriques, contrôles dimensionnels, auto-routage, &#8230;</p>
<p>Cependant, la concrétisation d&rsquo;une conception en un circuit imprimé fonctionnel reste encore une opération assez complexe. Voici ma chaine logicielle complète pour la réalisation de circuits imprimés:</p>
<figure id="attachment_885" aria-describedby="caption-attachment-885" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/Processus.png"><img decoding="async" class="size-medium wp-image-885" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:200/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/Processus.png" alt="Processus de réalisation" width="300" height="200" /></a><figcaption id="caption-attachment-885" class="wp-caption-text">Processus de réalisation</figcaption></figure>
<p><b>NB</b> : PERCIVAL et LANCELOT font tous les deux partie de l&rsquo;environnement de FAO <a href="https://amaury-laurent.fr/2016/04/11/fraiseuse-cnc-stepcraft-420-logiciel/" target="_blank" rel="noopener">GALAAD</a>.</p>
<p>On distingue trois grandes phases:</p>
<ol>
<li>La conception du circuit proprement dite avec un logiciel de CAO, dans mon cas, EAGLE</li>
<li>La préparation à l&rsquo;usinage avec PERCIVAL</li>
<li>L&rsquo;usinage avec LANCELOT</li>
</ol>
<p>Ces phases sont toujours reliées par un fichier descriptif du circuit imprimé : PERCIVAL attend un fichier Gerber en entrée et délivre un fichier PCB ou GCODE directement interprétable par le module d&rsquo;usinage (LANCELOT).</p>
<h2>Exportation du fichier Gerber avec EAGLE</h2>
<p><b>ASTUCES</b> :</p>
<ul>
<li>Il convient de ne pas définir de plan de masse dans EAGLE, la suite du processus en sera simplifiée. Le plan de masse sera géré par PERCIVAL.</li>
<li>L&rsquo;ajout de quatre repères en croix aux quatre coins du circuit va simplifier le réglage de la fraiseuse.</li>
</ul>
<p>EAGLE comporte un module appelé CAM (<i>Computer Aided Machining</i> &#8211; équivalent anglo-saxon de FAO). Il est accessible depuis la fenêtre d&rsquo;édition du circuit:</p>
<figure id="attachment_887" aria-describedby="caption-attachment-887" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/EAGLE_-_Module_CAM.png"><img decoding="async" class="wp-image-887 size-medium" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:193/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/EAGLE_-_Module_CAM.png" alt="EAGLE - Module CAM" width="300" height="193" /></a><figcaption id="caption-attachment-887" class="wp-caption-text">EAGLE &#8211; Module CAM</figcaption></figure>
<p>Ce module permet d&rsquo;exporter différents types de fichiers d&rsquo;usinage. On peut symétriser le circuit imprimé, le faire tourner, &#8230; Il est également possible de choisir les couches à exporter. La configuration du module CAM est appelée un job. Il est possible d&rsquo;enregistrer ses jobs au format .cam pour les rappeler plus facilement et ne pas oublier d&rsquo;étape.</p>
<figure id="attachment_892" aria-describedby="caption-attachment-892" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/EAGLE_-_CAM_Processor.png"><img decoding="async" class="size-medium wp-image-892" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:233/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/EAGLE_-_CAM_Processor.png" alt="EAGLE - CAM Processor" width="300" height="233" /></a><figcaption id="caption-attachment-892" class="wp-caption-text">EAGLE &#8211; CAM Processor</figcaption></figure>
<p>Voici les grandes lignes à respecter pour l&rsquo;export vers PERCIVAL d&rsquo;un circuit simple face:</p>
<ul>
<li>Device: GERBER_RS274X</li>
<li>Mirror</li>
<li>pos. Coord</li>
<li>Optimize</li>
<li>Layers 16, 17, 18:
<ul>
<li>Bottom</li>
<li>Pads</li>
<li>Vias</li>
</ul>
</li>
</ul>
<p>Par extension, voici les grandes lignes à respecter pour l&rsquo;export vers PERCIVAL de la face supérieure d&rsquo;un circuit double face:</p>
<ul>
<li>Device: GERBER_RS274X</li>
<li>pos. Coord</li>
<li>Optimize</li>
<li>Layers 1, 17, 18:
<ul>
<li>Top</li>
<li>Pads</li>
<li>Vias</li>
</ul>
</li>
</ul>
<p>Voici les deux fichiers .cam que j&rsquo;utilise:</p>
<ul>
<li><a href="https://amaury-laurent.fr/wp-content/uploads/2018/05/percival_bottom.cam" download="">percival_bottom.cam</a></li>
<li><a href="https://amaury-laurent.fr/wp-content/uploads/2018/05/percival_top.cam" download="">percival_top.cam</a></li>
</ul>
<p>Pour générer le fichier Gerber, cliquer simplement sur « Process Job » et le tour est joué.</p>
<h2>Importation du fichier Gerber dans PERCIVAL</h2>
<p>Pour importer le fichier Gerber dans PERCIVAL, il faut passer par le menu <i>Fichier</i> -&gt; <i>Ouvrir</i> -&gt;<i> Nouveau Circuit (Ctrl + O)</i>. Pointer ensuite sur le fichier .grb généré par EAGLE. Une incompatibilité du format Gerber généré par EAGLE va causer l&rsquo;apparition de ce message d&rsquo;erreur:</p>
<figure id="attachment_894" aria-describedby="caption-attachment-894" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_Error.png"><img decoding="async" class="size-medium wp-image-894" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:122/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_Error.png" alt="PERCIVAL - Erreur d'importation" width="300" height="122" /></a><figcaption id="caption-attachment-894" class="wp-caption-text">PERCIVAL &#8211; Erreur d&rsquo;importation</figcaption></figure>
<p>Rien de grave cependant: PERCIVAL nous informe simplement que le fichier Gerber ne contient pas les définitions des pastilles. D&rsquo;une certaine façon, cela nous arrange puisque nous allons reconfigurer toutes les pastilles du circuit pour optimiser l&rsquo;usinage. Après validation du message, un assistant de configuration des pastilles s&rsquo;ouvre:</p>
<figure id="attachment_895" aria-describedby="caption-attachment-895" style="width: 640px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Configuration_des_pastilles.png"><img decoding="async" class="wp-image-895 size-large" src="https://ml9zfxsqktal.i.optimole.com/w:1024/h:269/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Configuration_des_pastilles.png" alt="PERCIVAL - Configuration des pastilles" width="640" height="168" /></a><figcaption id="caption-attachment-895" class="wp-caption-text">PERCIVAL &#8211; Configuration des pastilles</figcaption></figure>
<p>Les pastilles concernées s&rsquo;allument en rouge sur le circuit. Il est alors possible de modifier leur forme, leurs dimensions, le diamètre de perçage, &#8230;</p>
<p>Il faut passer en revue toutes les pastilles de la carte (en navigant avec les boutons « <b>&lt;</b> » et « <b>&gt;</b>« ) pour définir tous ces paramètres. Il est facile de voir quelle taille de pastille va causer un court-circuit ou bien sera trop petite par rapport au diamètre de perçage.</p>
<p>Une fois cette tâche effectuée, on se rend compte que certaines pastilles n&rsquo;ont pas été traitées:</p>
<figure id="attachment_896" aria-describedby="caption-attachment-896" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Pastilles_non_traitees.png"><img decoding="async" class="size-medium wp-image-896" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:167/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Pastilles_non_traitees.png" alt="PERCIVAL - Pastilles non traitées" width="300" height="167" /></a><figcaption id="caption-attachment-896" class="wp-caption-text">PERCIVAL &#8211; Pastilles non traitées</figcaption></figure>
<p>Le problème provient de la manière utilisée par EAGLE pour exporter les pastilles oblongues: elles sont définies comme des pistes dans le fichier. Pour convertir ces « pistes » en pastille, il faut simplement faire un clic droit sur l&rsquo;une d&rsquo;elle et choisir définir comme pastille. PERCIVAL propose alors gentiment de transformer toutes les autres pastilles équivalentes. A vous de voir si PERCIVAL ne fait pas un excès de zèle en convertissant en pastille des pistes bien réelles.</p>
<p>Une fois les torts rétablis et les fausses pistes transformées en pastilles, il convient de refaire l&rsquo;étape précédente en rouvrant l&rsquo;assistant de configuration de pastilles (<i>clic droit</i> sur la pastille a configurer -&gt; <i>Editer les pastilles identiques</i>).</p>
<h2>Gestion des plans de masse</h2>
<p>Avec la gravure à l&rsquo;anglaise, le plan de masse est quasiment intrinsèque. En effet, à moins de faire en sorte que la fraiseuse retire tout le cuivre inutile, celle-ci na va faire qu&rsquo;un simple détourage. Il va donc demeurer de grandes zones cuivrées autour des pistes. Il convient alors de les relier à la masse. Cette opération s&rsquo;effectue dans PERCIVAL et requiert un peu d&rsquo;attention. En effet, il faut identifier sur le circuit quelles sont les broches et pistes reliées à la masse. Ensuite, il faudra passer chaque piste une par une en faisant un <i>Clic droit</i> -&gt; <i>Définir comme plan-masse.</i> Les pistes appartenant au plan de masse sont symbolisées en marron.</p>
<p>Il est également possible de convertir les pastilles reliées au plan de masse en pastilles thermiques. Cela va grandement simplifier le repérage et la soudure desdites pastilles. Pour ce faire, activer l&rsquo;outil Pastille thermique (en choisissant l&rsquo;orientation de la pastille) et cliquer les pastilles à convertir.</p>
<figure id="attachment_899" aria-describedby="caption-attachment-899" style="width: 177px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_Pastille_thermique.png"><img decoding="async" class="size-full wp-image-899" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_Pastille_thermique.png" alt="PERCIVAL - L'outil Pastille thermique" width="177" height="88" /></a><figcaption id="caption-attachment-899" class="wp-caption-text">PERCIVAL &#8211; L&rsquo;outil Pastille thermique</figcaption></figure>
<p>Cette fois-ci quand PERCIVAL propose de convertir les pastilles identiques, il est recommandé de ne pas le faire. Une croix apparait en légère surimpression sur les pastilles thermiques.</p>
<h2>Réglage de l&rsquo;origine du circuit</h2>
<p>Pour usiner le circuit imprimé, le module d&rsquo;usinage va nécessiter la prise d&rsquo;origine de la pièce. Cette origine sera d&rsquo;autant plus simple à régler si elle se situe sur le bord de la carte. Dans PERCIVAL, il est possible de positionner deux croix: une rouge et une bleue.</p>
<figure id="attachment_900" aria-describedby="caption-attachment-900" style="width: 223px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Croix.png"><img decoding="async" class="size-full wp-image-900" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Croix.png" alt="PERCIVAL - Positionnement des Croix" width="223" height="89" /></a><figcaption id="caption-attachment-900" class="wp-caption-text">PERCIVAL &#8211; Positionnement des Croix</figcaption></figure>
<p>Ces croix pourront servir d&rsquo;origine pièce au module d&rsquo;usinage. Pour positionner précisément ces croix, il convient au préalable d&rsquo;avoir prévu des repères dans EAGLE (une petite croix dans chaque angle dessinée avec des pistes sur chacune des faces à usiner). Une fois l&rsquo;outil activé en mode « Pointage manuel », il suffit de cliquer sur l&rsquo;extrémité d&rsquo;une piste ou une pastille pour y positionner la croix.</p>
<figure id="attachment_901" aria-describedby="caption-attachment-901" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Resultat_avant_detourage.png"><img decoding="async" class="wp-image-901 size-medium" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:167/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Resultat_avant_detourage.png" alt="PERCIVAL - Résultat avant isolation" width="300" height="167" /></a><figcaption id="caption-attachment-901" class="wp-caption-text">PERCIVAL &#8211; Résultat avant isolation</figcaption></figure>
<p>Le circuit est maintenant prêt pour le calcul des contours d&rsquo;isolation.</p>
<h2>Calcul des contours d&rsquo;isolation</h2>
<p>Les contours d&rsquo;isolation sont les chemins que suivra la fraise afin d&rsquo;isoler électriquement les pistes du circuit. Le calcul des contours dépend principalement de deux facteurs:</p>
<ul>
<li>La forme de l&rsquo;outil</li>
<li>La largeur d&rsquo;isolation entre la piste et le plan de masse</li>
</ul>
<p>Le premier facteur se règle dans le menu <i>Paramètres</i> -&gt; <i>Bibliothèque d&rsquo;outils</i>.</p>
<figure id="attachment_902" aria-describedby="caption-attachment-902" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Bibliotheque_d_outils.png"><img decoding="async" class="size-medium wp-image-902" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:130/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Bibliotheque_d_outils.png" alt="PERCIVAL - Bibliothèque d'outils" width="300" height="130" /></a><figcaption id="caption-attachment-902" class="wp-caption-text">PERCIVAL &#8211; Bibliothèque d&rsquo;outils</figcaption></figure>
<p>Ce menu permet de déclarer les différents outils en votre disposition. Ainsi, PERCIVAL adapteras les calculs d&rsquo;isolation et de perçage à la forme et au diamètre des outils disponibles. En outre, le module d&rsquo;usinage sera à même de vous demander d&rsquo;installer le bon outil avant chaque phase de gravure ou de perçage.</p>
<p>J&rsquo;utilise personnellement ces outils:</p>
<ul>
<li>Un stylet conique à 60° pour l&rsquo;isolation (soie de 3.17mm)</li>
<li>Un foret de 0.8mm pour les perçages (soie de 3.17mm)</li>
<li>Une fraise à rainurer de 2mm pour le détourage</li>
</ul>
<p>Il est possible de remplir le nombre de dents et la vitesse de la broche pour chaque outil. PERCIVAL calcul ainsi les vitesses avance optimales pour l&rsquo;usinage.</p>
<p>Pour calculer les contours d&rsquo;isolation, il faut utiliser le menu <i>Usinage</i> -&gt; <i>Contours d&rsquo;isolation</i> -&gt; <i>Calculer les contours.</i> Il est possible de choisir le nombre de passes à réaliser autour des pistes et des pastilles. Plus ce nombre est élevé, plus large sera le contour d&rsquo;isolation, mais plus long sera l&rsquo;usinage. Pour ma part, je me contente de deux contours successifs et d&rsquo;un contour supplémentaire autour des pastilles. Quand le calcul est terminé, PERCIVAL affiche un rendu du résultat final. Les contours affichés en rouges sont ceux qui ont été « forcés » par le logiciel, les pastilles ou pistes adjacentes étant trop proches.</p>
<figure id="attachment_903" aria-describedby="caption-attachment-903" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Isolation_terminee.png"><img decoding="async" class="size-medium wp-image-903" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:167/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Isolation_terminee.png" alt="PERCIVAL - Isolation terminée" width="300" height="167" /></a><figcaption id="caption-attachment-903" class="wp-caption-text">PERCIVAL &#8211; Isolation terminée</figcaption></figure>
<p>Il est également possible de gérer le détourage de la carte (découpe du circuit à la fraise) en ajoutant ou non pontets de maintien.</p>
<h1>Usinage du circuit</h1>
<h2>Positionner la carte à usiner</h2>
<p>Pour fixer la carte à usiner sur la table de la fraiseuse, j&rsquo;utilise pour ma part du Scotch double faces transparent « extra-fort »:</p>
<p><a href="https://www.leroymerlin.fr/v3/p/produits/adhesif-scotch-fixation-double-face-interieur-exterieur-l1-5mxl19mm-transparent-e1400097015" target="_blank" rel="noopener">https://www.leroymerlin.fr/v3/p/produits/adhesif-scotch-fixation-double-face-interieur-exterieur-l1-5mxl19mm-transparent-e1400097015</a></p>
<p>Il présente l&rsquo;avantage d&rsquo;avoir une épaisseur suffisante pour ne pas usiner la table de la fraiseuse. Il est en outre assez simple à décoller.</p>
<p>Un petit carré d&rsquo;adhésif dans chaque coin et un au centre de la carte suffisent à maintenir le circuit en place pendant tout l&rsquo;usinage.</p>
<h2>Lancer l&rsquo;usinage</h2>
<p>L&rsquo;usinage du circuit n&rsquo;est alors plus qu&rsquo;une « simple » formalité. Il suffit de choisir le menu <i>Usinage</i> -&gt; <i>Fraisage</i>, et de choisir <i>Chainer automatiquement au module d&rsquo;usinage</i>. Le fichier GCODE est automatiquement généré et passé à LANCELOT pour la gravure.</p>
<p><b>ATTENTION</b> : Si le circuit a été inversé à la génération du fichier GERBER (mirror activé pour la face du dessous dans EAGLE), il convient de ne pas activer l&rsquo;inversion horizontale à ce moment du processus.</p>
<p>LANCELOT est lancé automatiquement.</p>
<figure id="attachment_904" aria-describedby="caption-attachment-904" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/LANCELOT_-_Configuration.png"><img decoding="async" class="size-medium wp-image-904" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:143/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/LANCELOT_-_Configuration.png" alt="LANCELOT - Configuration" width="300" height="143" /></a><figcaption id="caption-attachment-904" class="wp-caption-text">LANCELOT &#8211; Configuration</figcaption></figure>
<p>La première page permet de configurer l&rsquo;usinage. Le tableau en haut à gauche récapitule les différentes phases de la réalisation. Il est possible de les activer (entouré en vert) ou de les désactiver (barré de rouge) à volonté. Chaque phase est associée à un outil et repérée par le numéro de l&rsquo;outil dans le magasin. Il est également possible de surcharger les paramètres d&rsquo;usinage (profondeur des passes, vitesse d&rsquo;avance, &#8230;). Enfin, il est possible de tourner ou symétriser le circuit, au cas où une erreur se serait glissé dans le processus précédent.</p>
<figure id="attachment_905" aria-describedby="caption-attachment-905" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/LANCELOT_-_Pilotage.png"><img decoding="async" class="size-medium wp-image-905" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:143/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/LANCELOT_-_Pilotage.png" alt="LANCELOT - Pilotage" width="300" height="143" /></a><figcaption id="caption-attachment-905" class="wp-caption-text">LANCELOT &#8211; Pilotage</figcaption></figure>
<p>La deuxième page permet de positionner la carte sur la table d&rsquo;usinage. Il faut prendre l&rsquo;origine de la carte (croix rouge, croix bleue ou bien un coin du circuit) en X et Y. Pour le réglage de la hauteur d&rsquo;outil, deux méthodes sont disponibles:</p>
<ul>
<li>La machine est équipée d&rsquo;un capteur de hauteur d&rsquo;outil mobile</li>
<li>Le positionnement de l&rsquo;outil à fleur de la carte</li>
</ul>
<p>Pour la première méthode, il convient de se référer à la notice d&rsquo;utilisation du logiciel LANCELOT. Pour la seconde, je préconise une astuce à base d&rsquo;Ohmmètre. <b>ATTENTION</b> : toute cette manipulation devra être effectuée <b>broche hors tension</b>, vous allez entrer en contact avec l&rsquo;outil.</p>
<ul>
<li>Installer l&rsquo;outil dans la broche</li>
<li>Amener l&rsquo;outil à quelques millimètres de la surface de la carte</li>
<li>Passer le pilotage en mode 1mm ou 1/10mm selon la distance entre l&rsquo;outil et la carte</li>
<li>Mettre l&rsquo;Ohmmètre en mode continuité (bip quand les pointes de touche se touchent)</li>
<li>Mettre une pointe sur la carte (partie cuivrée) l&rsquo;autre sur le mandrin de la broche (ou directement l&rsquo;outil si le mandrin est en plastique)</li>
<li>Descendre l&rsquo;outil progressivement et doucement jusqu&rsquo;au bip de l&rsquo;Ohmmètre</li>
<li>Cliquer sur Z &#8211; ok</li>
</ul>
<p>ATTENTION : avec un foret de 0.8mm, cette manipulation peut s&rsquo;avérer destructrice pour l&rsquo;outil sir la vitesse de descente est trop élevée.</p>
<p>Une fois l&rsquo;origine réglée, il est alors possible de lancer l&rsquo;Usinage Automatique (ou de faire une simulation avant d&rsquo;ouvrir les hostilités).</p>
<figure id="attachment_906" aria-describedby="caption-attachment-906" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/LANCELOT_-_Usonage_automatique.png"><img decoding="async" class="size-medium wp-image-906" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:143/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/LANCELOT_-_Usonage_automatique.png" alt="LANCELOT - Usinage automatique" width="300" height="143" /></a><figcaption id="caption-attachment-906" class="wp-caption-text">LANCELOT &#8211; Usinage automatique</figcaption></figure>
<p>Si tout fonctionne comme prévu, LANCELOT devrait aller au bout de la première phase avant de demander un changement d&rsquo;outil. Il convient alors de refaire la prise d&rsquo;origine en Z.</p>
<p>Voici le résultat pour un circuit simple face basé autour d&rsquo;un PIC18F4550 :</p>
<p>[metaslider id=910]</p>
<p>Voici deux petites vidéos de l&rsquo;outil en action (Attention, le volume sonore est un peu élevé&#8230;):</p>
<p><iframe width="640" height="360"  src="about:blank" data-opt-src="https://www.youtube.com/embed/_bYgNou0XTc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><iframe width="640" height="360"  src="about:blank" data-opt-src="https://www.youtube.com/embed/rnrIA0OaIaI?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<h1>Conclusion</h1>
<p>Avec le bon outillage, il est aisé de passer d&rsquo;une conception virtuelle à un circuit bien réel. Il est tout a fait normal d&rsquo;éprouver une certaine appréhension lors des premiers mouvement de la broche. J&rsquo;ai cassé quelques outils et gâché un certain nombre de cartes avant de pleinement prendre en main les différents modules logiciels du processus. Il est important d&rsquo;être méthodique de bout en bout. Le processus que je présente ici n&rsquo;est bien sûr pas parole d&rsquo;évangiles, cependant, il fonctionne à merveille chez moi.</p>
<p>Bonnes réalisations !</p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/exporter-un-circuit-imprime-depuis-eagle-vers-galaad-percival/">Exporter un Circuit Imprimé depuis EAGLE vers GALAAD/PERCIVAL</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://amaury-laurent.fr/exporter-un-circuit-imprime-depuis-eagle-vers-galaad-percival/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Création de Design Blocks avec Eagle 8</title>
		<link>https://amaury-laurent.fr/creation-de-design-blocks-avec-eagle-8/</link>
					<comments>https://amaury-laurent.fr/creation-de-design-blocks-avec-eagle-8/#respond</comments>
		
		<dc:creator><![CDATA[Amaury LAURENT]]></dc:creator>
		<pubDate>Wed, 15 Nov 2017 21:09:41 +0000</pubDate>
				<category><![CDATA[Electronique]]></category>
		<category><![CDATA[Tutoriaux]]></category>
		<guid isPermaLink="false">http://amaury-laurent.fr/?p=846</guid>

					<description><![CDATA[<p>Depuis la version 8 d&#8217;Eagle Layout, le logiciel de CAO électronique bien connu est passé dans le giron d&#8217;Autodesk. Cette société est l&#8217;éditeur de nombreux logiciels professionnels de CAO ou d&#8217;infographie, tels qu&#8217;Autocad, Maya ou encore 3DS MAX. Du coup, la version 8 marque un tournant dans l&#8217;évolution d&#8217;Eagle, notamment avec l&#8217;arrivée de nouvelles fonctionnalités [&#8230;]</p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/creation-de-design-blocks-avec-eagle-8/">Création de Design Blocks avec Eagle 8</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Depuis la <a href="https://www.autodesk.com/products/eagle/free-download" target="_blank" rel="noopener">version 8 d&rsquo;Eagle Layout</a>, le logiciel de CAO électronique bien connu est passé dans le giron d&rsquo;<a href="https://www.autodesk.com/products" target="_blank" rel="noopener">Autodesk</a>. Cette société est l&rsquo;éditeur de nombreux logiciels professionnels de CAO ou d&rsquo;infographie, tels qu&rsquo;Autocad, Maya ou encore 3DS MAX.</p>
<p>Du coup, la version 8 marque un tournant dans l&rsquo;évolution d&rsquo;Eagle, notamment avec l&rsquo;arrivée de nouvelles fonctionnalités et une certaine évolution de l&rsquo;ergonomie générale. Le routage des pistes simplifie le contournement des pastilles, il y a un router spécifique pour les composants en boitier <a href="https://fr.wikipedia.org/wiki/Matrice_de_billes" target="_blank" rel="noopener">BGA</a>, ou encore il est possible de faire des Design Blocks.</p>
<h1>Mais qu&rsquo;est-ce qu&rsquo;un Design Block ?</h1>
<p>L&rsquo;une des nouveautés qui m&rsquo;apparait bien utile est la gestion de Design Blocks. Il s&rsquo;agit ni plus ni moins de la possibilité de créer des sous-schémas élémentaires avec le routage du PCB (<em>Printed Circuit Board</em>) associé, afin de construire un schéma plus évolué en assemblant ces briques de base.</p>
<p>Les intérêts sont multiples:</p>
<ol>
<li>Prototyper les Design Blocks et les tester unitairement</li>
<li>Faciliter la réplication en limitant au maximum les erreurs</li>
<li>Partager plus facilement ses réalisations</li>
</ol>
<figure id="attachment_847" aria-describedby="caption-attachment-847" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Design_Block.png"><img decoding="async" class="size-medium wp-image-847" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:145/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Design_Block.png" alt="" width="300" height="145" /></a><figcaption id="caption-attachment-847" class="wp-caption-text">Exemple de Design Block: un régulateur 3.3V à base LM317.</figcaption></figure>
<h1>Mise en pratique</h1>
<p>Dans la fenêtre principale d&rsquo;Eagle, on notera l’apparition d&rsquo;une nouvelle catégorie dans l&rsquo;explorateur de projet. Cette section est nommé Design Blocks&#8230;</p>
<figure id="attachment_849" aria-describedby="caption-attachment-849" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Explorateur_Eagle.png"><img decoding="async" class="size-medium wp-image-849" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:135/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Explorateur_Eagle.png" alt="" width="300" height="135" /></a><figcaption id="caption-attachment-849" class="wp-caption-text">La section Design Blocks de l&rsquo;explorateur de projets</figcaption></figure>
<p>Voici les grandes étapes de la mise en œuvre des Design Blocks.</p>
<h2>Création d&rsquo;un Design Block</h2>
<p>Pour créer un nouveau Design Block, il faut passer par la barre d&rsquo;Outils File -&gt; New -&gt; Designblock.</p>
<figure id="attachment_851" aria-describedby="caption-attachment-851" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/New_Design_Block.png"><img decoding="async" class="size-medium wp-image-851" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:221/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/New_Design_Block.png" alt="" width="300" height="221" /></a><figcaption id="caption-attachment-851" class="wp-caption-text">Créer un nouveau Design Block</figcaption></figure>
<p>La fenêtre qui s&rsquo;ouvre alors est identique à celle d&rsquo;édition de schéma habituelle. On saisi le schéma dans l&rsquo;éditeur habituel, et on route le PCB dans l&rsquo;autre partie. Le passage d&rsquo;une fenêtre à l&rsquo;autre est assuré par le bouton <img decoding="async" class="alignnone size-full wp-image-852" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Switch_To_Board.png" alt="" width="30" height="27" /> « Switch to board » (respectivement <img decoding="async" class="alignnone size-full wp-image-853" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Switch_To_Schematic.png" alt="" width="31" height="23" /> « Switch to Schematic »).</p>
<p>Voici par exemple un régulateur linéaire 5V à base de 7805:</p>
<figure id="attachment_854" aria-describedby="caption-attachment-854" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Regulateur_5V_Sch.png"><img decoding="async" class="size-medium wp-image-854" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:130/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Regulateur_5V_Sch.png" alt="" width="300" height="130" /></a><figcaption id="caption-attachment-854" class="wp-caption-text">Schéma régulateur 5V</figcaption></figure>
<p>Ainsi que le routage associé:</p>
<figure id="attachment_855" aria-describedby="caption-attachment-855" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Regulateur_5V_Brd.png"><img decoding="async" class="size-medium wp-image-855" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:160/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Regulateur_5V_Brd.png" alt="" width="300" height="160" /></a><figcaption id="caption-attachment-855" class="wp-caption-text">Circuit régulateur 5V</figcaption></figure>
<p>On remarque que l&rsquo;anode de la diode D1 n&rsquo;est pas reliée, de même que la sortie régulée du 7805. C&rsquo;est tout à fait normal, du fait que le 12V sera amené par une tierce partie d&rsquo;un schéma plus complexe et que le 5V va aller alimenter d&rsquo;autres composants.</p>
<h2>Sauvegarder le Design Block</h2>
<p>Quand le Design Block est terminé, on peut l&rsquo;enregistrer dans un fichier .dbl. Un assistant permet de saisir des informations de documentation adjointes au fichier.</p>
<figure id="attachment_856" aria-describedby="caption-attachment-856" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Save_Dbl.png"><img decoding="async" class="size-medium wp-image-856" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:150/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Save_Dbl.png" alt="" width="300" height="150" /></a><figcaption id="caption-attachment-856" class="wp-caption-text">Enregistrement d&rsquo;un Design Block</figcaption></figure>
<p>NB: la documentation du Design Block est au format <a href="https://www.w3schools.com/html/" target="_blank" rel="noopener">HTML</a>. Il est tout à fait possible de structurer celle-ci avec des balises &lt;h1&gt;, &lt;ul&gt; ou autres.</p>
<h2>Intégration du Design Block dans un schéma plus complexe</h2>
<p>Pour tirer pleinement parti des Design Block, il est intéressant les ajouter au schéma à partir de la carte. Dans l&rsquo;éditeur de carte, cliquer sur le bouton « Add Design Block » <img decoding="async" class="alignnone size-full wp-image-858" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Add_Design_Block.png" alt="" width="27" height="29" />:</p>
<figure id="attachment_859" aria-describedby="caption-attachment-859" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Dropped_dbl_OnBoard.png"><img decoding="async" class="size-medium wp-image-859" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:147/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Dropped_dbl_OnBoard.png" alt="" width="300" height="147" /></a><figcaption id="caption-attachment-859" class="wp-caption-text">Ajout d&rsquo;un Design Block sur la carte: tous le routage effectué précédemment est importé.</figcaption></figure>
<p>Dès que le Design Block est positionné sur la carte, Eagle ouvre automatiquement l&rsquo;éditeur de schéma pour faire de même:</p>
<figure id="attachment_860" aria-describedby="caption-attachment-860" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Dropped_dbl.png"><img decoding="async" class="size-medium wp-image-860" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:127/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Dropped_dbl.png" alt="" width="300" height="127" /></a><figcaption id="caption-attachment-860" class="wp-caption-text">Ajout d&rsquo;un Design Block sur le schéma</figcaption></figure>
<p>Une fois l&rsquo;ajout du Design Block effectué sur la carte et le schéma, un popup apparait permettant d&rsquo;assigner les signaux du Design Block aux signaux du schéma en cours d&rsquo;édition:</p>
<figure id="attachment_861" aria-describedby="caption-attachment-861" style="width: 276px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Rename_Nets.png"><img decoding="async" class="size-medium wp-image-861" src="https://ml9zfxsqktal.i.optimole.com/w:276/h:300/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Rename_Nets.png" alt="" width="276" height="300" /></a><figcaption id="caption-attachment-861" class="wp-caption-text">Assignation des signaux : Les connexions cohérentes apparaissent en jaune</figcaption></figure>
<p>Si les signaux sont cohérents avec ceux du schéma, ils apparaissent en jaune. Sinon, il est possible de les réaffecter à la volée. Il se peut également que des signaux ne soient pas pertinents (par exemple N$2 et N$4). Dans ce cas, il convient de les laisser tranquilles.</p>
<p>NB: le nommage des signaux, soit en utilisant les composants des bibliothèques Supply1 et Supply2, soit en nommant manuellement les fils, permet de s&rsquo;y retrouver beaucoup plus facilement.</p>
<p>Une fois ce popup validé, les liens électriques sont automatiquement rétablis:</p>
<figure id="attachment_862" aria-describedby="caption-attachment-862" style="width: 300px" class="wp-caption aligncenter"><a href="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Nets.png"><img decoding="async" class="size-medium wp-image-862" src="https://ml9zfxsqktal.i.optimole.com/w:300/h:112/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Nets.png" alt="" width="300" height="112" /></a><figcaption id="caption-attachment-862" class="wp-caption-text">Rétablissement automatique des liens électriques</figcaption></figure>
<p>Le reste de l&rsquo;édition du schéma et de la carte se fait de manière conventionnelle. Vous trouverez dans un précédent article quelques concepts de base sur l&rsquo;utilisation d&rsquo;Eagle: <a href="https://amaury-laurent.fr/2015/10/17/conception-dun-circuit-imprime-avec-eagle/" target="_blank" rel="noopener">Conception d&rsquo;un circuit imprimé avec Eagle</a></p>
<p>Bien que rédigé pour la version 7, ce tutoriel reste parfaitement applicable sur la version 8.</p>
<h1>Conclusion</h1>
<p>Les Design Blocks peuvent offrir une meilleure expérience de conception avec Eagle, tout en limitant les risques liés à la duplication manuelle. Il est en effet facile d&rsquo;imaginer des Design Blocks pour les fonctions récurrentes telles que:</p>
<ul>
<li>les alimentations régulées</li>
<li>les circuits d&rsquo;horloge à quartz</li>
<li>les conditionneurs de capteurs</li>
<li>un microcontrôleur tout prêt alimenté et cadencé, avec le RESET en prime</li>
<li>&#8230;</li>
</ul>
<p>Pour la curiosité, je joins le DBL de mon régulateur 5V linéaire: <a href="https://amaury-laurent.fr/wp-content/uploads/2017/11/7805.dbl" download="7805.dbl">7805.dbl</a></p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/creation-de-design-blocks-avec-eagle-8/">Création de Design Blocks avec Eagle 8</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://amaury-laurent.fr/creation-de-design-blocks-avec-eagle-8/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Un FabLab à Chambéry !</title>
		<link>https://amaury-laurent.fr/fablab-a-chambery/</link>
					<comments>https://amaury-laurent.fr/fablab-a-chambery/#respond</comments>
		
		<dc:creator><![CDATA[Amaury LAURENT]]></dc:creator>
		<pubDate>Fri, 12 May 2017 16:33:05 +0000</pubDate>
				<category><![CDATA[Non classé]]></category>
		<guid isPermaLink="false">http://amaury-laurent.fr/?p=814</guid>

					<description><![CDATA[<p>Un FabLab est en train de se monter à Chambéry ! Voici l&#8217;adresse du site web : http://leprototype.info/ Et la communauté Google+ : https://plus.google.com/communities/102420477003488972725 Le local est au 57 Faubourg Montmélian: N&#8217;hésitez pas à vous renseigner !</p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/fablab-a-chambery/">Un FabLab à Chambéry !</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Un FabLab est en train de se monter à Chambéry !</p>
<p>Voici l&rsquo;adresse du site web : <a href="http://leprototype.info/" target="_blank" rel="noopener">http://leprototype.info/</a></p>
<p>Et la communauté Google+ : <a href="https://plus.google.com/communities/102420477003488972725" target="_blank" rel="noopener">https://plus.google.com/communities/102420477003488972725</a></p>
<p>Le local est au 57 Faubourg Montmélian:</p>
<p><iframe style="border: 0;"  src="about:blank" data-opt-src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d698.3029126513773!2d5.926184129259765!3d45.56618223758111!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x478ba8fb6e2ac8a3%3A0x89a183dfade1432d!2sFabLab+Chamb%C3%A9ry!5e0!3m2!1sfr!2sfr!4v1494606366196" width="800" height="400" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>N&rsquo;hésitez pas à vous renseigner !</p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/fablab-a-chambery/">Un FabLab à Chambéry !</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://amaury-laurent.fr/fablab-a-chambery/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
