<?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>Electronique et Informatique</title>
	<atom:link href="https://amaury-laurent.fr/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.6.2</generator>

<image>
	<url>https://amaury-laurent.fr/wp-content/uploads/2015/09/favicon.png</url>
	<title>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 fetchpriority="high" decoding="async" 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" srcset="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 1024w, https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/Screen_200617_160247.jpg 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/Screen_200617_160247.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:864/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/Screen_200617_160247.jpg 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/Screen_200617_160247.jpg 2048w" sizes="(max-width: 640px) 100vw, 640px" /></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="/feed/?snippet=0b921a3b17&#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" srcset="https://ml9zfxsqktal.i.optimole.com/w:768/h:1024/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/H7722be4a6fc64bfd84d52e6e3e1e65505.png 768w, https://ml9zfxsqktal.i.optimole.com/w:225/h:300/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/H7722be4a6fc64bfd84d52e6e3e1e65505.png 225w, https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/H7722be4a6fc64bfd84d52e6e3e1e65505.png 1000w" sizes="(max-width: 640px) 100vw, 640px" /></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" srcset="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 300w, 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 766w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:652/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/carte_l.png 1024w, https://ml9zfxsqktal.i.optimole.com/w:768/h:489/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/carte_l.png 768w, 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 1053w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:442/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/carte_i.png 768w, 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 989w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 1024w, https://ml9zfxsqktal.i.optimole.com/w:300/h:128/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/schema_carte_mere.png 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:328/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/schema_carte_mere.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:655/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/schema_carte_mere.png 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:819/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/schema_carte_mere.png 2048w" sizes="(max-width: 640px) 100vw, 640px" /></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" srcset="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 300w, 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 755w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 1024w, https://ml9zfxsqktal.i.optimole.com/w:300/h:82/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/schema_carte_boutons.png 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:210/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/schema_carte_boutons.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:419/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/schema_carte_boutons.png 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:524/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/schema_carte_boutons.png 2048w" sizes="(max-width: 640px) 100vw, 640px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:299/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/pcb_carte_l.png 1024w, https://ml9zfxsqktal.i.optimole.com/w:768/h:224/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/pcb_carte_l.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:448/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/pcb_carte_l.png 1536w, 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 1872w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:324/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/pcb_carte_i.png 1024w, https://ml9zfxsqktal.i.optimole.com/w:768/h:243/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/pcb_carte_i.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:487/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/pcb_carte_i.png 1536w, 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 1638w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 1024w, https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_105009.jpg 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_105009.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:864/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_105009.jpg 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_105009.jpg 2048w" sizes="(max-width: 640px) 100vw, 640px" /></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" srcset="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 1024w, https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_105102.jpg 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_105102.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:864/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_105102.jpg 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_105102.jpg 2048w" sizes="(max-width: 640px) 100vw, 640px" /></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" srcset="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 1024w, https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_185658.jpg 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_185658.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:864/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_185658.jpg 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_185658.jpg 2048w" sizes="(max-width: 640px) 100vw, 640px" /></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" srcset="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 1024w, https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_185704.jpg 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_185704.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:864/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_185704.jpg 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_185704.jpg 2048w" sizes="(max-width: 640px) 100vw, 640px" /></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" srcset="https://ml9zfxsqktal.i.optimole.com/w:300/h:198/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/montage.png 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:507/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/montage.png 768w, https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/montage.png 949w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 1024w, https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_181757.jpg 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_181757.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:864/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_181757.jpg 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_181757.jpg 2048w" sizes="(max-width: 640px) 100vw, 640px" /></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" srcset="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 1024w, https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_181811.jpg 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_181811.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:864/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_181811.jpg 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20210802_181811.jpg 2048w" sizes="(max-width: 640px) 100vw, 640px" /></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" srcset="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 1024w, https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_183955.jpg 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_183955.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:864/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_183955.jpg 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_183955.jpg 2048w" sizes="(max-width: 640px) 100vw, 640px" /></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="/feed/?snippet=0b921a3b17&#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" srcset="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 1024w, https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_184607.jpg 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_184607.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:864/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_184607.jpg 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_184607.jpg 2048w" sizes="(max-width: 640px) 100vw, 640px" /></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" srcset="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 1024w, https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_184704.jpg 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_184704.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:864/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_184704.jpg 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_184704.jpg 2048w" sizes="(max-width: 640px) 100vw, 640px" /></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" srcset="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 1024w, https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_184954.jpg 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_184954.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:864/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_184954.jpg 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/10/20211002_184954.jpg 2048w" sizes="(max-width: 640px) 100vw, 640px" /></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" referrerpolicy="strict-origin-when-cross-origin" 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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:435/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_schematic.png 1024w, https://ml9zfxsqktal.i.optimole.com/w:768/h:326/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_schematic.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:652/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_schematic.png 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:815/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_schematic.png 2048w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:455/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_board.png 1024w, https://ml9zfxsqktal.i.optimole.com/w:768/h:341/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_board.png 768w, 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 1218w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_20210524_190610.jpg 1024w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_20210524_190610.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:864/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_20210524_190610.jpg 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_20210524_190610.jpg 2048w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_20210526_191906.jpg 1024w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_20210526_191906.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:864/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_20210526_191906.jpg 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_20210526_191906.jpg 2048w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_20210527_214615.jpg 1024w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_20210527_214615.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:864/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_20210527_214615.jpg 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_20210527_214615.jpg 2048w" sizes="(max-width: 300px) 100vw, 300px" /></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="/feed/?snippet=0b921a3b17&#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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:773/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_Analogic.png 1024w, https://ml9zfxsqktal.i.optimole.com/w:768/h:580/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_Analogic.png 768w, 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 1303w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:936/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_Digital.png 1024w, https://ml9zfxsqktal.i.optimole.com/w:768/h:702/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/06/BUTTON_Digital.png 768w, 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 1076w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 266w, 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 416w" sizes="(max-width: 266px) 100vw, 266px" /></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" srcset="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 300w, 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 642w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:282/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/02/NomadND1_LV.png 1024w, https://ml9zfxsqktal.i.optimole.com/w:768/h:211/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2021/02/NomadND1_LV.png 768w, 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 1058w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:150/h:150/q:mauto/rt:fill/g:ce/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/nano.jpg 150w, https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/nano.jpg 470w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, 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 725w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="https://ml9zfxsqktal.i.optimole.com/w:300/h:200/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/schema.png 300w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:683/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/schema.png 1024w, https://ml9zfxsqktal.i.optimole.com/w:768/h:512/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/schema.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:1024/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/schema.png 1536w, https://ml9zfxsqktal.i.optimole.com/w:1619/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/schema.png 2048w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 250w, https://ml9zfxsqktal.i.optimole.com/w:854/h:1024/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/state_machine.png 854w, https://ml9zfxsqktal.i.optimole.com/w:768/h:921/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/state_machine.png 768w, https://ml9zfxsqktal.i.optimole.com/w:900/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/state_machine.png 1281w, https://ml9zfxsqktal.i.optimole.com/w:901/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/state_machine.png 1709w" sizes="(max-width: 250px) 100vw, 250px" /></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" srcset="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 300w, 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 700w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:541/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/05/61pmHZNUjPL._AC_SL1001_.jpg 768w, 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 924w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/05/20200507_123632.jpg 1024w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/05/20200507_123632.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:864/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/05/20200507_123632.jpg 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/05/20200507_123632.jpg 2048w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/05/20200508_112352.jpg 1024w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/05/20200508_112352.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1536/h:864/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/05/20200508_112352.jpg 1536w, https://ml9zfxsqktal.i.optimole.com/w:1920/h:1080/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/05/20200508_112352.jpg 2048w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 249w, 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 568w" sizes="(max-width: 249px) 100vw, 249px" /></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" srcset="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 268w, 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 280w" sizes="(max-width: 268px) 100vw, 268px" /></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" srcset="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 300w, 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 457w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, 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 506w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:229/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/2020-03-13_2115.png 768w, 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 941w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 266w, 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 445w" sizes="(max-width: 266px) 100vw, 266px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:704/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/2020-03-13_2134.png 1024w, https://ml9zfxsqktal.i.optimole.com/w:768/h:528/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2020/03/2020-03-13_2134.png 768w, 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 1262w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="https://ml9zfxsqktal.i.optimole.com/w:300/h:171/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/NipmPxiImagePackage.png 300w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:585/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/NipmPxiImagePackage.png 1024w, https://ml9zfxsqktal.i.optimole.com/w:768/h:439/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/NipmPxiImagePackage.png 768w, https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/NipmPxiImagePackage.png 1260w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:545/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/usb_utilty_image.png 768w, 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 800w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:538/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/partition_max_image.png 768w, 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 795w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:356/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/y_to_partition.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:474/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/y_to_partition.jpg 1024w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:372/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/Successful_partition.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:496/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/Successful_partition.jpg 1024w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/20190910_111521.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/20190910_111521.jpg 1024w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/MAXAjoutProgramme.png 349w, https://ml9zfxsqktal.i.optimole.com/w:300/h:268/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/MAXAjoutProgramme.png 300w" sizes="(max-width: 232px) 100vw, 232px" /></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" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/MAXAjoutProgrammeAdmin.png 322w, https://ml9zfxsqktal.i.optimole.com/w:300/h:255/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/MAXAjoutProgrammeAdmin.png 300w" sizes="(max-width: 206px) 100vw, 206px" /></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" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/CustomInstall.png 645w, https://ml9zfxsqktal.i.optimole.com/w:300/h:248/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/CustomInstall.png 300w" sizes="(max-width: 339px) 100vw, 339px" /></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" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/CustomInstallPackages1.png 645w, https://ml9zfxsqktal.i.optimole.com/w:300/h:248/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/CustomInstallPackages1.png 300w" sizes="(max-width: 327px) 100vw, 327px" /></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" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/CustomInstallPackages2.png 645w, https://ml9zfxsqktal.i.optimole.com/w:300/h:248/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/CustomInstallPackages2.png 300w" sizes="(max-width: 341px) 100vw, 341px" /></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" srcset="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 802w, https://ml9zfxsqktal.i.optimole.com/w:300/h:252/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/nirt-ini.png 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:644/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/11/nirt-ini.png 768w" sizes="(max-width: 399px) 100vw, 399px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:522/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/linx_1.png 768w, 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 800w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, 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 660w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:438/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/linx-3.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:584/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/09/linx-3.png 1024w, 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 1093w" sizes="(max-width: 300px) 100vw, 300px" /></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>Mesure Lidar rotatif embarqué sur LattePanda et piloté par LabVIEW (LINX)</title>
		<link>https://amaury-laurent.fr/mesure-lidar-rotatif-embarque-sur-lattepanda-et-pilote-par-labview-linx/</link>
					<comments>https://amaury-laurent.fr/mesure-lidar-rotatif-embarque-sur-lattepanda-et-pilote-par-labview-linx/#comments</comments>
		
		<dc:creator><![CDATA[adrienBS]]></dc:creator>
		<pubDate>Wed, 06 Mar 2019 14:36:49 +0000</pubDate>
				<category><![CDATA[Microcontrôleur]]></category>
		<category><![CDATA[Capteurs]]></category>
		<category><![CDATA[Informatique]]></category>
		<category><![CDATA[Tutoriaux]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[LattePanda]]></category>
		<category><![CDATA[Lidar]]></category>
		<category><![CDATA[LINX]]></category>
		<guid isPermaLink="false">http://amaury-laurent.fr/?p=1012</guid>

					<description><![CDATA[<p>Le sujet abordé dans cet article présente la réalisation d’une mesure de distance à l’aide d’un capteur Lidar monté sur un moteur pas à pas et commandé par LabVIEW à travers la bibliothèque LINX. Nous verrons comment rendre ce système embarqué sur un LattePanda. L’objectif est de pouvoir mesurer une distance entre 0,1 à 20 [&#8230;]</p>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/mesure-lidar-rotatif-embarque-sur-lattepanda-et-pilote-par-labview-linx/">Mesure Lidar rotatif embarqué sur LattePanda et piloté par LabVIEW (LINX)</a> est apparu en premier sur <a rel="nofollow" href="https://amaury-laurent.fr">Electronique et Informatique</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Le sujet abordé dans cet article présente la réalisation d’une mesure de distance à l’aide d’un capteur Lidar monté sur un moteur pas à pas et commandé par LabVIEW à travers la bibliothèque LINX. Nous verrons comment rendre ce système embarqué sur un LattePanda. L’objectif est de pouvoir mesurer une distance entre 0,1 à 20 mètres sur 360° et de contrôler l’ensemble à partir d’une IHM (Interface Homme Machine) tactile.</p>
<p><em>Avant de commercer cet article, je tiens à remercier Amaury qui m&rsquo;a permis de publier cet article sur son site. 🙂</em></p>
<div style="width: 640px;" class="wp-video"><!--[if lt IE 9]><script>document.createElement('video');</script><![endif]-->
<video class="wp-video-shortcode" id="video-1012-1" width="640" height="360" preload="metadata" controls="controls"><source type="video/mp4" src="https://amaury-laurent.fr/wp-content/uploads/2019/03/20190225_222725.mp4?_=1" /><a href="https://amaury-laurent.fr/wp-content/uploads/2019/03/20190225_222725.mp4">https://amaury-laurent.fr/wp-content/uploads/2019/03/20190225_222725.mp4</a></video></div>
<p>Je découvre actuellement l’électronique et la programmation entre  LabVIEW et Arduino et je tiens à partager certains résultats avec vous. Certaines notions abordées ne seront pas forcément poussées ou assez détaillées pour des lectures ou lectrices plus expérimenté(e)s.</p>
<h1><a name="_Toc2727674"></a>Théorie de mesure de distance Lidar</h1>
<p>Lidar est l’acronyme anglais de <em>light detection and ranging </em>qui est une technique qui permet de mesurer des distances allant de quelques centimètres à la distance Terre-Lune. Le lidar Garmin utilisé ici, génère un train d’onde électromagnétique cohérente (un faisceau laser InfraRouge) de longueur d’onde λ de 905 nm. Les trains d’onde sont envoyés à une fréquence comprise entre 10 à 20 kHz (à ne pas confondre avec la fréquence propre de l’onde du laser IR) d’après les datasheet. Les trains d’ondes se réfléchissent sur la cible visée par le capteur. Une partie de la lumière du laser revient sur le capteur. Une photodiode placée dans le Lidar et sensible dans la plage de longueur d’onde des IR reçoit l’onde réfléchie. L’écart de temps entre le départ d’un train d’onde et son retour est mesuré par le capteur. Cet écart de temps est proportionnel à la distance parcourue par l’onde. Cette technologie de mesure est communément appelée <em>Time of Flight</em>.</p>
<h1><a name="_Toc2727675"></a>Le matériel utilisé pour la réalisation</h1>
<table style="height: 778px" width="621">
<tbody>
<tr style="height: 24px">
<td style="width: 224px;text-align: center;height: 24px"><strong>Matériel</strong></td>
<td style="width: 172px;text-align: center;height: 24px"><strong>Prix (neufs)</strong></td>
<td style="width: 203px;text-align: center;height: 24px"><strong>Site achat</strong></td>
</tr>
<tr style="height: 72px">
<td style="width: 224px;height: 72px;text-align: center">Carte LattePanda 4 GB/64 GB DFR0419 (sans écran et capteur tactile)</td>
<td style="width: 172px;height: 72px;text-align: center">~ 187 €</td>
<td style="width: 203px;height: 72px;text-align: center">Go Tronic</td>
</tr>
<tr style="height: 72px">
<td style="width: 224px;height: 72px;text-align: center">Ecran 7’ + capteur tactile + Ventilateur et refroidisseur métalliques</td>
<td style="width: 172px;height: 72px;text-align: center">~ 80 €</td>
<td style="width: 203px;height: 72px;text-align: center">Go Tronic</td>
</tr>
<tr style="height: 72px">
<td style="width: 224px;height: 72px;text-align: center">LabVIEW pour l&rsquo;enseignement 2014 (version d’essai gratuite 7 jours)</td>
<td style="width: 172px;height: 72px;text-align: center">A partir de 196 €</td>
<td style="width: 203px;height: 72px;text-align: center">NI</td>
</tr>
<tr style="height: 48px">
<td style="width: 224px;height: 48px;text-align: center">LIDAR GARMIN lite V3</td>
<td style="width: 172px;height: 48px;text-align: center">143 €</td>
<td style="width: 203px;height: 48px;text-align: center">Amazon (Expédié et vendu par <a href="https://www.amazon.fr/gp/help/seller/at-a-glance.html/ref=dp_merchant_link?ie=UTF8&amp;seller=A2PIW95AGLR8G3" target="_blank" rel="noopener">RobotShop inc</a>.)</td>
</tr>
<tr style="height: 120px">
<td style="width: 224px;height: 120px;text-align: center">Driver de moteur Pas à Pas Bipolaire</p>
<p>(A4988 1182)</td>
<td style="width: 172px;height: 120px;text-align: center">7€</td>
<td style="width: 203px;height: 120px;text-align: center">Go Tronic</td>
</tr>
<tr style="height: 48px">
<td style="width: 224px;height: 48px;text-align: center">Moteur pas à Pas Bipolaire (14HM11-0404S)</td>
<td style="width: 172px;height: 48px;text-align: center">18 €</td>
<td style="width: 203px;height: 48px;text-align: center">Go Tronic</td>
</tr>
<tr style="height: 24px">
<td style="width: 224px;height: 24px;text-align: center">Laser Rouge de niveau recyclé</td>
<td style="width: 172px;height: 24px;text-align: center">0 €</td>
<td style="width: 203px;height: 24px;text-align: center">Sans objet</td>
</tr>
<tr style="height: 48px">
<td style="width: 224px;height: 48px;text-align: center">2 Piles de 9 Volts + 2 connecteurs</td>
<td style="width: 172px;height: 48px;text-align: center">~ 10 €</td>
<td style="width: 203px;height: 48px;text-align: center">Amazon</td>
</tr>
<tr style="height: 48px">
<td style="width: 224px;height: 48px;text-align: center">Une breadboard (400 points minimum)</td>
<td style="width: 172px;height: 48px;text-align: center">3 €</td>
<td style="width: 203px;height: 48px;text-align: center">Amazon</td>
</tr>
<tr style="height: 24px">
<td style="width: 224px;height: 24px;text-align: center">Batterie Li 20000mAh</td>
<td style="width: 172px;height: 24px;text-align: center">30 €</td>
<td style="width: 203px;height: 24px;text-align: center">Amazon</td>
</tr>
<tr style="height: 24px">
<td style="width: 224px;height: 24px;text-align: center">1 Condensateur 100µF 16V</td>
<td style="width: 172px;height: 24px;text-align: center">Qlq centimes</td>
<td style="width: 203px;height: 24px;text-align: center">Amazon</td>
</tr>
<tr style="height: 24px">
<td style="width: 224px;height: 24px;text-align: center">2 Condensateurs 0.1µF</td>
<td style="width: 172px;height: 24px;text-align: center">Idem</td>
<td style="width: 203px;height: 24px;text-align: center">Amazon/ Go Tronic</td>
</tr>
<tr style="height: 24px">
<td style="width: 224px;height: 24px;text-align: center">1 Résistance de 1KΩ</td>
<td style="width: 172px;height: 24px;text-align: center">Idem</td>
<td style="width: 203px;height: 24px;text-align: center">Amazon/ Go Tronic</td>
</tr>
<tr style="height: 48px">
<td style="width: 224px;height: 48px;text-align: center">1 Résistance de 500Ω de 1W (ou 4 de 2KΩ mis en parallèles)</td>
<td style="width: 172px;height: 48px;text-align: center">Idem</td>
<td style="width: 203px;height: 48px;text-align: center">Amazon/ Go Tronic</td>
</tr>
<tr style="height: 24px">
<td style="width: 224px;height: 24px;text-align: center">Régulateur de tension LM7815</td>
<td style="width: 172px;height: 24px;text-align: center">1,5€</td>
<td style="width: 203px;height: 24px;text-align: center">RS Components</td>
</tr>
<tr style="height: 10px">
<td style="width: 224px;height: 10px;text-align: center">Des fils</td>
<td style="width: 172px;height: 10px;text-align: center">recyclés</td>
<td style="width: 203px;height: 10px;text-align: center"></td>
</tr>
<tr style="height: 24px">
<td style="width: 224px;height: 24px;text-align: center"><strong>Coût total</strong></td>
<td style="width: 172px;height: 24px;text-align: center"><strong>667 €</strong></td>
<td style="width: 203px;height: 24px;text-align: center"></td>
</tr>
</tbody>
</table>
<p>Nota : un clavier et une souris seront très certainement nécessaires pour naviguer sur LattePanda.</p>
<h1><a name="_Toc2727676"></a>Le Montage global</h1>
<p>Le schéma suivant a été réalisé sur le logiciel libre Fritzing. N’ayant pas trouvé de modèle de LattePanda dans la librairie Fritzing, il a donc été représenté par sa carte Arduino qu’il intègre. Un schéma du LattePanda est donné après.</p>
<p><img decoding="async" class="alignnone wp-image-1016 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/Schema-Fritzing-Stepper-et-Lidar_regulationtension.png" alt="" width="962" height="908" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/Schema-Fritzing-Stepper-et-Lidar_regulationtension.png 3237w, https://ml9zfxsqktal.i.optimole.com/w:300/h:283/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/Schema-Fritzing-Stepper-et-Lidar_regulationtension.png 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:725/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/Schema-Fritzing-Stepper-et-Lidar_regulationtension.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:966/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/Schema-Fritzing-Stepper-et-Lidar_regulationtension.png 1024w" sizes="(max-width: 962px) 100vw, 962px" /></p>
<p style="text-align: center">Figure 1 Schéma Global de la mesure Lidar (à l’aide du logiciel gratuit Fritzing)</p>
<p>L’intégration des différents éléments a été faite à l’aide d’un vieux jeu mécanos.</p>
<h2><a name="_Toc2727677"></a>LattePanda</h2>
<p>Le modèle de  LattePanda utilisé est le 4 GB/64 GB sous Windows 10. Ce modèle suffit pour faire tourner un LabVIEW 2014 (<a href="https://www.gotronic.fr/art-carte-lattepanda-4-gb-64-gb-dfr0419-24792.htm" target="_blank" rel="noopener">https://www.gotronic.fr/art-carte-lattepanda-4-gb-64-gb-dfr0419-24792.htm</a> ). LattePanda sera très utile car il intègre une carte Arduino Leonardo et ses E/S associées. A l’aide des entrées et sorties numériques (0-5V), il sera possible de piloter le moteur pas à pas, le laser et d’acquérir le signal du Lidar. Le LattePanda est enfaîte un petit ordinateur d’instrumentation très compacte et assez puissant. Le projet n’utilise ici qu’une petite partie de sa capacité. Pour plus de détails sur LattePanda, le lecteur pourra se référer à l&rsquo;article : <a href="https://amaury-laurent.fr/lattapanda-premiere-mise-route/">LattePanda – Première mise en route</a></p>
<p>Le schéma ci-dessous reprend les principales E/S :</p>
<p><img decoding="async" class="alignnone size-full wp-image-1017 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/lattepanda.jpg" alt="" width="649" height="637" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/lattepanda.jpg 649w, https://ml9zfxsqktal.i.optimole.com/w:300/h:294/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/lattepanda.jpg 300w" sizes="(max-width: 649px) 100vw, 649px" /></p>
<p style="text-align: center">Figure 2 E/S LattePanda 4GB/64GB (https://www.lattepanda.com)</p>
<h2><a name="_Toc2727678"></a>Le moteur Pas à Pas</h2>
<p>Le moteur Pas à Pas bipolaire est contrôlé par un Driver Pololu (A4988). Le schéma ci-après (d’après le site Pololu qui commercialise le Driver) permet de connecter le moteur et le Driver. La puce du Driver est alimentée en 5 V par la carte Arduino du LattePanda. Ce driver a été choisi car il est facilement pilotable à partir des E/S digitales du Arduino, qui seront contrôlées par le logiciel ; lequel qui sera abordé après.</p>
<p><img decoding="async" class="alignnone size-full wp-image-1018 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/SchémaDriver.png" alt="" width="605" height="377" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/SchémaDriver.png 605w, https://ml9zfxsqktal.i.optimole.com/w:300/h:187/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/SchémaDriver.png 300w" sizes="(max-width: 605px) 100vw, 605px" /></p>
<p style="text-align: center">Figure 3 Schéma de fonctionnement du Drive couplé au moteur Pas à Pas (bipolaire)</p>
<p>Pour connecter correctement le moteur pas à pas au driver on pourra suivre le tableau suivant :</p>
<table>
<tbody>
<tr>
<td width="136"><strong>Fils côté moteur</strong></td>
<td width="140"><strong>Pin entrée Driver</strong></td>
</tr>
<tr>
<td width="136">A (noir)</td>
<td width="140">1A</td>
</tr>
<tr>
<td width="136">C (vert)</td>
<td width="140">1B</td>
</tr>
<tr>
<td width="136">B (rouge)</td>
<td width="140">2A</td>
</tr>
<tr>
<td width="136">D (bleu)</td>
<td width="140">2B</td>
</tr>
</tbody>
</table>
<p><img decoding="async" class="alignnone size-full wp-image-1019 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/Schema-Moteur.png" alt="" width="209" height="212" /></p>
<p style="text-align: center">Figure 4 Schéma du moteur Pas à Pas (14HM11-0404S) d&rsquo;après datasheet Go Tronic</p>
<p>Il est conseillé de relier la masse de l’alimentation du moteur à la masse du circuit afin d’éviter de le moteur ne grésille. Un petit régulateur LM7815 (15 V) permet de limiter la tension en entrée. Pour ma part j’ai utilisé deux piles de 9 V. En sortie du régulateur il vaut mieux ne pas oublier de limiter le courant à l’aide d’une résistance de charge. Le moteur consomme 400 mA par phase. Pour limiter le courant j’ai choisi de mettre en parallèle 4 résistances de 2 kΩ de 1/4 W qui forment une résistance 500 Ω supportant 1 W. Avec ce montage, le moteur ne chauffe et a assez de puissance pour réaliser ses pas. Un potentiomètre présent sur le driver permet de réguler la tension. Le réglage du courant limite est disponible dans la vidéo disponible en suivant de <a href="https://www.youtube.com/watch?v=89BHS9hfSUk" target="_blank" rel="noopener">lien</a> (https://www.youtube.com/watch?v=89BHS9hfSUk). Pololu préconise de régler le courant limite à l’aide du réglage du VREF et non en entrée comme cela a été fait ici.</p>
<ul>
<li>Une fois le montage du moteur réalisé, un test du moteur peut être réalise. Pour cela, la Pin STEP du driver peut être connecté au 5V délivré par l’Arduino. Le moteur est censé faire un pas. Sinon, revérifier le schéma de montage.</li>
</ul>
<p>Les entrées MS1, MS2 et MS3 permettent de réduire le Pas, c’est-à-dire de gagner en précision angulaire. Le tableau ci-dessous affiche les niveaux à utiliser sur les pins en fonctions de la résolution du pas.</p>
<p><img decoding="async" class="alignnone size-full wp-image-1021 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/Tableau-resolution-pas.png" alt="" width="369" height="193" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/Tableau-resolution-pas.png 369w, https://ml9zfxsqktal.i.optimole.com/w:300/h:157/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/Tableau-resolution-pas.png 300w" sizes="(max-width: 369px) 100vw, 369px" /></p>
<p style="text-align: center">Figure 5 Tableau de résolution des pas d&rsquo;après le site Pololu</p>
<p>Dans le cas présent, un pas complet est de 0,9°, un demi-pas en vaudra la moitié et ainsi de suite. Dans le présent projet, il n’est pas possible de descendre en dessous du demi-pas.</p>
<p><strong>Nota important:</strong> il est fortement<strong> déconseillé de déconnecter le moteur du driver quand le moteur est en fonctionnement</strong> car le Driver peut-être endommagé. Il faudra couper l’alimentation du moteur pour effectuer des changements de postions (si besoin) sur les 4 fils du moteur pas à pas.</p>
<h2><a name="_Toc2727679"></a>Le Lidar</h2>
<p>Pour fonctionner le Lidar doit être alimenté en 5 V. L’alimentation 5 V de l’Arduino du LattePanda convient parfaitement. L’acquisition de la mesure de distance est lue en largeur d’impulsion (PWM) sur le fil jaune. Les datasheet préconisent l’utilisation d’une résistance de 1KΩ qui est reliée entre le fil de sortie de la mesure et la masse comme ci-dessous :</p>
<p><img decoding="async" class="size-full wp-image-1020 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/schema-cablage-lidar.png" alt="" width="604" height="457" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/schema-cablage-lidar.png 604w, https://ml9zfxsqktal.i.optimole.com/w:300/h:227/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/schema-cablage-lidar.png 300w" sizes="(max-width: 604px) 100vw, 604px" /></p>
<p style="text-align: center">Figure 6 Schéma de câblage du lidar en acquisition de mesure en PWM (d&rsquo;après datasheet Gramin)</p>
<p>Concernant les aspects métrologiques du capteur, la portée maximale du Lidar est de 40 mètres. Sa résolution est de 1 cm.</p>
<p>L&rsquo;incertitude de mesure du Lidar Lite V3,  entre 0 et 5m est de ± 2.5cm et ± 10 cm au delà.</p>
<p>En sortie de mesure en largeur d&rsquo;impulsion, la sensibilité est de 10 µs/cm. Cette valeur est à retenir pour comprendre la partie acquisition du signal du logiciel.</p>
<h2><a name="_Toc2727680"></a>Le Laser de visée</h2>
<p>Le laser est utile ici afin d&rsquo;avoir un repère visuel sur l&rsquo;orientation du Lidar. Le laser est du même type qu’utilisé pour les pointeurs laser de présentation (diode laser). Dans le cas présent, un laser d’alignement de 1 mW (λ = 650 nm) de couleur rouge a été utilisé. Il est alimenté en 5V par une entrée digitale de carte Arduino activable à partir du logiciel.</p>
<p><strong><span style="color: #ff0000">Attention aux yeux !</span></strong> Le laser concentre l&rsquo;énergie sur une surface très petite et a pour conséquence d&rsquo;être nocif pour l’œil.</p>
<p>L&rsquo;utilisateur est responsable de sa sécurité mais également celle des personnes autour !</p>
<h1><a name="_Toc2727681"></a>Le logiciel/programme</h1>
<p>Pour piloter les instruments (Lidar, moteur, laser) le logiciel LabVIEW 2014 est utilisé. Le but n’est pas de faire la présentation ni la promotion de ce logiciel mais de tenter d’expliquer comment utiliser certaines briques LINX. Si LabVIEW n’est pas utilisé, il sera quand même possible de piloter les instruments via un programme développé sur l’IDE Arduino. La suite de l’article pourra paraître obscure pour les personnes non initiées à LabVIEW; je m’en excuse par avance. Cependant, un petit effort a été fait pour que le code soit compris des personnes non initiées à LabVIEW.</p>
<p>Des briques (ou VI) de code LabVIEW ont été développées afin de faciliter grandement la compatibilité entre des cartes Arduino et LabVIEW. Pour utiliser les briques de codes LINX, la bibliothèque LINX côté LabVIEW doit avoir été installée préalablement dans VI Pack Manager (logiciel qui permet de charger des ToolKit ou librairies de programme).</p>
<h2><a name="_Toc2727682"></a>Chargement des librairies</h2>
<p>Avant de compiler le code, il faut charger les bibliothèques. Pour charger les bibliothèques, aller sur l’onglet <em>Tool\MakerHub\LINX\Generate Firmware Librairies :</em></p>
<p><img decoding="async" class="size-full wp-image-1022 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/screen-chargement-librairies.png" alt="" width="612" height="399" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/screen-chargement-librairies.png 612w, https://ml9zfxsqktal.i.optimole.com/w:300/h:196/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/screen-chargement-librairies.png 300w" sizes="(max-width: 612px) 100vw, 612px" /></p>
<p>Et mettre en cible : <strong>C:\Program Files\Arduino\Libraries</strong></p>
<p><img decoding="async" class="wp-image-1023 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/screen-chargement-librairies_2.png" alt="" width="579" height="486" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/screen-chargement-librairies_2.png 542w, https://ml9zfxsqktal.i.optimole.com/w:300/h:252/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/screen-chargement-librairies_2.png 300w" sizes="(max-width: 579px) 100vw, 579px" /></p>
<p>Les librairies sont donc maintenant chargées et opérationnelles.</p>
<h2><a name="_Toc2727683"></a>Configuration du type de carte</h2>
<p>Avant de compiler le code, il faudra configurer le type de carte (Mega, Leonardo) et le type de liaison. Dans ce projet avec LattePanda, la carte Arduino Leonardo est utilisée sur le port COM 4. Dans LabVIEW cliquez dans l&rsquo;onglet <em>Tool </em>puis <em>\MakerHub\LINX\LINX Firmware Wizard… </em>il faut configurer les champs à l’aide des informations mentionnées plus haut.</p>
<h2><a name="_Toc2727683"></a>TEST simple avec une LED</h2>
<p>Pour vérifier que la carte fonctionne correctement, l’exemple du pilotage d’une LED pourra être réalisé (onglet <em>HELP/Find Example…</em>). L&rsquo;exemple est prêt à être utilisé et ne nécessite que la mise en place d&rsquo;une LED en série avec une résistance de 220 Ω reliées au LattePanda.</p>
<p><img decoding="async" class="size-full wp-image-1024 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/screen-test-example-LED-LINX.png" alt="" width="605" height="421" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/screen-test-example-LED-LINX.png 605w, https://ml9zfxsqktal.i.optimole.com/w:300/h:209/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/screen-test-example-LED-LINX.png 300w" sizes="(max-width: 605px) 100vw, 605px" /><img decoding="async" class="size-full wp-image-1025 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/Screen-Exemple-LED-LINX.png" alt="" width="766" height="616" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/Screen-Exemple-LED-LINX.png 766w, https://ml9zfxsqktal.i.optimole.com/w:300/h:241/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/Screen-Exemple-LED-LINX.png 300w" sizes="(max-width: 766px) 100vw, 766px" /></p>
<p>Mettre le port COM 4 (normalement) et configurer la pin du Arduino sur laquelle est reliée l&rsquo;anode de la LED (la patte la plus longue) et ne pas oublier la résistance de 220 Ω en série 😉 . Puis relier la résistance à la masse et lancer le programme (flèche blanche).</p>
<p>Si la LED clignote quand le bouton est pressé, c’est gagné. Passer aux étapes suivantes. Sinon, il faut trouver la raison de cette malchance.</p>
<p>Ne pas hésiter à reconfigurer la carte car il arrive (trop) souvent que cela saute au bout de 3 à 4 compilations. Par exemple, il vaut mieux arrêter proprement la boucle avec un bouton « stop » placé dans la boucle While plutôt que de stopper le programme avec le bouton rouge de LabVIEW.</p>
<h1>L&rsquo;IHM (côté « Face Avant » de LabVIEW)</h1>
<p>L&rsquo;IHM qui permet à l&rsquo;utilisateur de contrôler les instruments pourra ressembler fortement à celle présentée ci-dessous.</p>
<p>Les configurations des Pins et du port sont situées à gauche.</p>
<p>Le bouton « Motor ON » permet d&rsquo;activer le driver sur la Pin ENABLE (Driver).</p>
<p>Le bouton « Left » permet d&rsquo;activer la Pin STEP (Driver)  et faire faire un pas au moteur.</p>
<p>Le bouton « Right »agit comme le bouton « Left » mais active la pin DIR (Driver) à l&rsquo;état haut et permet de changer de sens de rotation.</p>
<p>Un bouton « Laser » permet d&rsquo;activer le laser de visée.</p>
<p>Un bouton STOP permet d&rsquo;arrêter l’exécution proprement et d&rsquo;arrêter le moteur (ENABLE) et le Laser.</p>
<p>Trois types d’indicateurs sont présents : numérique (format chaîne de caractère), une barre de remplissage, et un graphe déroulant.</p>
<p>Un contrôleur barre graphe permet de passer au pilotage Pas par Pas (un clique sur LEFT ou RGTH = 0,9°) ou active la vitesse constante (comme sur la vidéo du début de l&rsquo;article).</p>
<p><img decoding="async" class=" wp-image-1036 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/IHM.png" alt="" width="700" height="376" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/IHM.png 564w, https://ml9zfxsqktal.i.optimole.com/w:300/h:161/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/IHM.png 300w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>Pour le lecteur non initié à LabVIEW, la « face avant » est la partie visible finale du programme disponible pour l&rsquo;utilisateur.</p>
<p>Le code est développé dans une seconde fenêtre appelée « Diagramme ». Et c&rsquo;est la partie de développement du Diagramme que nous allons maintenant aborder.</p>
<p><em>Nota : un Crtl+E permet de permuter rapidement rentre la face avant et le diagramme.</em></p>
<h2><a name="_Toc2727684"></a>La structure (côté diagramme)</h2>
<p>La structure générale du programme est la suivante :</p>
<p><img decoding="async" class="size-full wp-image-1026 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/screen-LINX-boucle-while.png" alt="" width="605" height="230" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/screen-LINX-boucle-while.png 605w, https://ml9zfxsqktal.i.optimole.com/w:300/h:114/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/screen-LINX-boucle-while.png 300w" sizes="(max-width: 605px) 100vw, 605px" /></p>
<p style="text-align: center">Figure 7 Structure générale du programme dans un boucle While</p>
<p>Le code source ne sera pas disponible dans cet article mais les principales briques seront détaillées pour arriver facilement au résultat. 🙂</p>
<h2><a name="_Toc2727685"></a>Lecture de la valeur de la distance du Lidar</h2>
<p>Le Lidar Garmin Lite V3 admet deux sorties de données pour la lecture des mesures : I2C ou PWM. La lecture en modulation de largeur d’impulsion est apparue comme le plus simple du point de vue du soft. Un VI LINX permet de réaliser cette mesure rapidement contre plusieurs VI pour la communication en I2C.</p>
<p>Dans la boucle While cadencée à 50 ms, la mesure du Lidar est effectuée à l’aide du VI « <strong>Lecture de la largueur d’impulsion</strong> » :</p>
<p><img decoding="async" class="size-full wp-image-1027 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LINX-lecture-largeur-impulsion.png" alt="" width="385" height="150" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LINX-lecture-largeur-impulsion.png 385w, https://ml9zfxsqktal.i.optimole.com/w:300/h:117/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LINX-lecture-largeur-impulsion.png 300w" sizes="(max-width: 385px) 100vw, 385px" /></p>
<p>L’entrée <strong>DO Channel</strong> est connectée et la valeur de la Pin 0 de la carte Arduino est rentrée (cf Figure 8 ci-dessous).</p>
<p>Un tableau général de configuration des Pins d’E/S pourra être créé en amont de la boucle While comme ceci :</p>
<p><img decoding="async" class="size-full wp-image-1028" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LINX-tableau-E_S-ecrire.png" alt="" width="733" height="645" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LINX-tableau-E_S-ecrire.png 733w, https://ml9zfxsqktal.i.optimole.com/w:300/h:264/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LINX-tableau-E_S-ecrire.png 300w" sizes="(max-width: 733px) 100vw, 733px" /></p>
<p>La valeur en sortie du VI n’est pas en cm mais en largeur d’une impulsion (µs), qui est proportionnelle à la distance mesurée en cm par le lidar. Afin de lire et d’afficher une valeur en cm, il faut diviser les valeurs en sortie du VI par une constante valant 10 pour obtenir une mesure de longueur (en cm). Cette constante est la sensibilité (en µs/cm) du capteur abordé précédemment que l&rsquo;on peut retrouver dans la documentation du Lidar Lite V3 (page 4, §Mode Pin Control).</p>
<p>Une moyenne glissante pourra être développée afin d’obtenir une mesure plus stable et plus juste à l’aide des registres à décalage (flèches oranges sur les bords de la boucle While). L’inconvénient de cette technique est qu’il faudra attendre n fois le nombre de points moyennés, pour obtenir le résultat. Si l’on choisit de moyenner sur 10 points et que le temps du cadencement est de 500 ms, alors le résultat sera juste au bout de 5 secondes. Ne pas oublier d’initialiser les registres à décalage à zéro. Différents types d’indicateurs pourront être placés en face avant comme ci-dessous :</p>
<p><img decoding="async" class="alignnone size-full wp-image-1029 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LINX-moyenne-glissante.png" alt="" width="1069" height="627" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LINX-moyenne-glissante.png 1069w, https://ml9zfxsqktal.i.optimole.com/w:300/h:176/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LINX-moyenne-glissante.png 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:450/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LINX-moyenne-glissante.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:601/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LINX-moyenne-glissante.png 1024w" sizes="(max-width: 1069px) 100vw, 1069px" /></p>
<p style="text-align: center">Figure 9 Moyenne glissante (côté diagramme/code) et exemples d&rsquo;indicateurs en face avant</p>
<p>Comme le Lidar affiche une incertitude de ± 2.5 cm et une résolution de 1 cm, il a été choisi de n’afficher que des valeurs entières arrondies au centimètre.</p>
<h2><a name="_Toc2727686"></a>VI de contrôle du Driver et du moteur</h2>
<p>Un VI « écrire sur des E/S digitales » permet d’activer les sorties de l’Arduino du LattePanda afin de piloter le Driver.</p>
<p>La fonction suivante a été construite comme ci-après :</p>
<p><img decoding="async" class="size-full wp-image-1030 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LINX-ecrire-E-S-digitales.png" alt="" width="186" height="156" /></p>
<p>Cette fonctionnalité permet de prendre, en entrée, un tableau de booléens (ordres des boutons pressés en face avant) et d’activer les E/S correspondantes.</p>
<ul>
<li><strong>La première entrée</strong> (en partant du haut) de la fonction « <strong>Construire un tableau</strong>» est reliée au bouton « MOTOR ON » et agit sur la Pin « ENABLE » du Driver. Ce bouton permet vraisemblablement d’activer l’alimentation du driver et du moteur.</li>
<li><strong>La seconde entrée </strong>permet de gérer la direction du moteur. Le fil (vert) est relié au bouton « RIGHT » de mon interface afin d’active la Pin « DIR » du driver. Le moteur tourne ainsi dans le sens horaire.</li>
<li><strong>La troisième entrée</strong> active la pin « STEP » du driver et permet d’effectuer un Pas de 0,9° (avec les entrées du driver MS1=MS2=MS3=0=GND). Le moteur effectue un pas par changement de niveau de l’état bas à l’état haut. Cette entrée est active si le bouton « LEFT » OU le bouton « RIGHT » est activé. Nous verrons ensuite comment faire tourner le moteur à vitesse constante.</li>
<li><strong>La quatrième entrée</strong> active le laser. Un laser de visée peut fonctionner qu’avec une tension de 5V et ne consomme que quelques milliampères. Il est souhaitable pour la sécurité des personnes, que le bouton « STOP » qui arrête le programme, puisse stopper l’émission du laser à la fin de la manip en même temps. Pour cela on pourra mettre une boucle conditions comme ci-dessous :</li>
</ul>
<p><img decoding="async" class="size-full wp-image-1031 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LINX-Secu-Laser.png" alt="" width="746" height="166" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LINX-Secu-Laser.png 746w, https://ml9zfxsqktal.i.optimole.com/w:300/h:67/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LINX-Secu-Laser.png 300w" sizes="(max-width: 746px) 100vw, 746px" /></p>
<p>Il pourra être fait de même avec l’arrêt du moteur (« MOTOR ON ») à la fin de l’exécution du programme.</p>
<ul>
<li><strong>Les cinquième, sixième et septième</strong> entrées activent les Pins MS1, MS2 et MS3 du driver et permettent de gagner en précision d’angle (jusqu’au demi pas ici).</li>
</ul>
<p>Afin de faire fonctionner le moteur à vitesse constante, la fonctionnalité suivante a été développée :</p>
<p><img decoding="async" class="size-full wp-image-1032 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LINX-ecrire-signal-carre.png" alt="" width="294" height="155" /></p>
<p>Lorsqu’un booléen (bouton) active la structure « Cas », le VI « écrire un signal carré » est activé avec une fréquence nulle et d&rsquo;une durée nulle sur la pin STEP. Cette fonctionnalité m&rsquo;a permis de faire fonctionner le moteur à vitesse constante. Dans ce cas, la vitesse est fonction du temps de cadencement de la boucle (réglée à 50 ms). A l’heure où est écrit cet article, il existe surement de meilleures solutions, notamment avec le VI « PWM Set Duty Cycle »:</p>
<p><img decoding="async" class="size-full wp-image-1033 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LINX-PWM.png" alt="" width="126" height="74" /></p>
<p>Mais cela n’a pas fonctionné comme il était souhaité lors du test.</p>
<p>A la suite de ces nombreux réglages et bidouillages, le programme doit pouvoir se lancer (flèche blanche non brisée). Si cela n&rsquo;est pas le cas, résoudre les erreurs unes à unes.</p>
<p>Il fortement probable que rien ne fonctionne du premier coup, ou qu’à moitié, il est alors conseillé, dans un premier temps, de vérifier les branchements (alimentation) des organes dysfonctionnant.</p>
<p>L&rsquo;utilisateur pourra jouer avec les différents types d&rsquo;actions mécaniques pour contrôler le moteur (clique droit sur un bouton) :</p>
<p><img decoding="async" class=" wp-image-1040 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LabVIEW_acrion-boutons.png" alt="" width="326" height="354" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LabVIEW_acrion-boutons.png 379w, https://ml9zfxsqktal.i.optimole.com/w:277/h:300/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/LabVIEW_acrion-boutons.png 277w" sizes="(max-width: 326px) 100vw, 326px" /></p>
<p>&nbsp;</p>
<h1><a name="_Toc2727687"></a>Résultats en images :</h1>
<p><img decoding="async" class="size-full wp-image-1015 aligncenter" src="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/20190225_222601.jpg" alt="" width="4608" height="3456" srcset="https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/20190225_222601.jpg 4608w, https://ml9zfxsqktal.i.optimole.com/w:300/h:225/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/20190225_222601.jpg 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:576/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/20190225_222601.jpg 768w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:768/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2019/03/20190225_222601.jpg 1024w" sizes="(max-width: 4608px) 100vw, 4608px" /></p>
<p>Figure 10 Interface de la mesure de distance (Windows n&rsquo;est pas à l&rsquo;heure ^_^ )</p>
<p>J’espère que ce projet a pu continuer d’éveiller votre curiosité et a pu vous aider dans vos futurs développements !</p>
<h1><a name="_Toc2727688"></a>Sources :</h1>
<ul>
<li>Site Pololu (<a href="https://www.pololu.com/product/1182" target="_blank" rel="noopener">https://www.pololu.com/product/1182</a> )</li>
<li>Site GO Tronic</li>
<li><a href="https://www.lattepanda.com" target="_blank" rel="noopener">https://www.lattepanda.com</a></li>
<li>Ressources LINX : <a href="http://sine.ni.com/nips/cds/view/p/lang/fr/nid/212478" target="_blank" rel="noopener">http://sine.ni.com/nips/cds/view/p/lang/fr/nid/212478</a></li>
<li>Forum LINX : <a href="https://www.labviewmakerhub.com/doku.php?id=libraries:linx:start" target="_blank" rel="noopener">https://www.labviewmakerhub.com/doku.php?id=libraries:linx:start</a></li>
<li>Datasheet Lidar Garmin lite V3 : <a href="https://static.garmin.com/pumac/LIDAR_Lite_v3_Operation_Manual_and_Technical_Specifications.pdf" target="_blank" rel="noopener">https://static.garmin.com/pumac/LIDAR_Lite_v3_Operation_Manual_and_Technical_Specifications.pdf</a></li>
<li><em>LabVIEW &#8211; 4e édition &#8211; Programmation et applications &#8211; Introduction à LabVIEW NXG, </em>Collection : Technique et ingénierie, Dunod, Parution : août 2018,Francis Cottet, Luc Desruelle, Michel Pinard</li>
</ul>
<ul>
<li><em>The Art of electronic</em>, Third edition, Paul Horowitz et Winfield Hill</li>
</ul>
<p>Cet article <a rel="nofollow" href="https://amaury-laurent.fr/mesure-lidar-rotatif-embarque-sur-lattepanda-et-pilote-par-labview-linx/">Mesure Lidar rotatif embarqué sur LattePanda et piloté par LabVIEW (LINX)</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/mesure-lidar-rotatif-embarque-sur-lattepanda-et-pilote-par-labview-linx/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		<enclosure url="https://amaury-laurent.fr/wp-content/uploads/2019/03/20190225_222725.mp4" length="98513038" type="video/mp4" />

			</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" srcset="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 1024w, https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/Principe_coupe.png 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/Principe_coupe.png 768w, 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 1280w" sizes="(max-width: 640px) 100vw, 640px" /></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" srcset="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 1024w, https://ml9zfxsqktal.i.optimole.com/w:300/h:169/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/Principe_dessous.png 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:432/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/Principe_dessous.png 768w, 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 1280w" sizes="(max-width: 640px) 100vw, 640px" /></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" srcset="https://ml9zfxsqktal.i.optimole.com/w:300/h:200/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/Processus.png 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:512/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/Processus.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:682/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/Processus.png 1024w, https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/Processus.png 1334w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, 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 565w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, 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 602w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, 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 412w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 1024w, https://ml9zfxsqktal.i.optimole.com/w:300/h:79/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Configuration_des_pastilles.png 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:202/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Configuration_des_pastilles.png 768w, 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 1105w" sizes="(max-width: 640px) 100vw, 640px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:428/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Pastilles_non_traitees.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:570/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Pastilles_non_traitees.png 1024w, 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 1674w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:427/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Resultat_avant_detourage.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:569/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Resultat_avant_detourage.png 1024w, 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 1679w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:334/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Bibliotheque_d_outils.png 768w, 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 907w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:427/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Isolation_terminee.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:569/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/PERCIVAL_-_Isolation_terminee.png 1024w, 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 1676w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:366/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/LANCELOT_-_Configuration.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:488/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/LANCELOT_-_Configuration.png 1024w, 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 1251w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:366/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/LANCELOT_-_Pilotage.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:488/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/LANCELOT_-_Pilotage.png 1024w, 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 1251w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:366/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/LANCELOT_-_Usonage_automatique.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:488/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2018/05/LANCELOT_-_Usonage_automatique.png 1024w, 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 1251w" sizes="(max-width: 300px) 100vw, 300px" /></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 title="Gravure circuit imprimé sur fraiseuse Stepcraft 420" width="640" height="360"  src="about:blank" data-opt-src="https://www.youtube.com/embed/_bYgNou0XTc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p><iframe title="Perçage d&#039;un circuit imprimé sur fraiseuse Stepcraft 420" width="640" height="360"  src="about:blank" data-opt-src="https://www.youtube.com/embed/rnrIA0OaIaI?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" 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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:371/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Design_Block.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:495/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Design_Block.png 1024w, 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 1158w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:345/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Explorateur_Eagle.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:461/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Explorateur_Eagle.png 1024w, 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 1165w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, 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 352w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:334/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Regulateur_5V_Sch.png 768w, 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 771w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:410/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Regulateur_5V_Brd.png 768w, 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 1022w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:384/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Save_Dbl.png 768w, https://ml9zfxsqktal.i.optimole.com/w:1024/h:512/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Save_Dbl.png 1024w, 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 1284w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, https://ml9zfxsqktal.i.optimole.com/w:768/h:377/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Dropped_dbl_OnBoard.png 768w, 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 911w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 300w, 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 577w" sizes="(max-width: 300px) 100vw, 300px" /></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" srcset="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 276w, 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 280w" sizes="(max-width: 276px) 100vw, 276px" /></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" srcset="https://ml9zfxsqktal.i.optimole.com/w:300/h:112/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Nets.png 300w, https://ml9zfxsqktal.i.optimole.com/w:auto/h:auto/q:mauto/f:best/https://amaury-laurent.fr/wp-content/uploads/2017/11/Nets.png 598w" sizes="(max-width: 300px) 100vw, 300px" /></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>
	</channel>
</rss>
