<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://modelleisenbahn.triskell.org/spip.php?page=backend.xslt" ?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>ModelleisenbahN</title>
	<link>https://modelleisenbahn.triskell.org/</link>
	<description>Modelleisenbahn traite de la construction de mon r&#233;seau &#171; Messingrohrstadt &#187;, r&#233;seau allemand de l'&#233;poque II. Des documents sur le th&#232;me de la SNCF et &#233;labor&#233;s par R&#233;my Fauvet sont &#233;galement h&#233;berg&#233;s.</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://modelleisenbahn.triskell.org/spip.php?id_rubrique=3&amp;page=backend" rel="self" type="application/rss+xml" />

	<image>
		<title>ModelleisenbahN</title>
		<url>https://modelleisenbahn.triskell.org/local/cache-vignettes/L144xH144/siteon0-d64b7.png?1692197123</url>
		<link>https://modelleisenbahn.triskell.org/</link>
		<height>144</height>
		<width>144</width>
	</image>



<item xml:lang="fr">
		<title>Un nouveau d&#233;part</title>
		<link>https://modelleisenbahn.triskell.org/spip.php?article91</link>
		<guid isPermaLink="true">https://modelleisenbahn.triskell.org/spip.php?article91</guid>
		<dc:date>2024-05-09T08:19:42Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jean-Luc</dc:creator>



		<description>
&lt;p&gt;Quand l'environnement &#233;volue plus vite que la construction du r&#233;seau, le projet devient obsol&#232;te. En effet, les enfants s'en vont, la maison se vide et des pi&#232;ces deviennent disponibles. &lt;br class='autobr' /&gt; J'ai donc pu m'installer dans une pi&#232;ce d'environ 12m2 plus un cagibi que je peux envahir en partie. La pr&#233;sence du cagibi fait que le 4e mur n'est pas utilisable sans implanter un passerelle amovible mais, comme on va le voir, ce n'est pas r&#233;ellement un probl&#232;me. Il y a toutefois une contrainte, il faut (&#8230;)&lt;/p&gt;


-
&lt;a href="https://modelleisenbahn.triskell.org/spip.php?rubrique3" rel="directory"&gt;La conception&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Quand l'environnement &#233;volue plus vite que la construction du r&#233;seau, le projet devient obsol&#232;te. En effet, les enfants s'en vont, la maison se vide et des pi&#232;ces deviennent disponibles.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;J'ai donc pu m'installer dans une pi&#232;ce d'environ 12m&lt;sup&gt;2&lt;/sup&gt; plus un cagibi que je peux envahir en partie. La pr&#233;sence du cagibi fait que le 4e mur n'est pas utilisable sans implanter un passerelle amovible mais, comme on va le voir, ce n'est pas r&#233;ellement un probl&#232;me. Il y a toutefois une contrainte, il faut que je conserve le bureau qui y est d&#233;j&#224; pr&#233;sent pour l'&#233;lectronique et le maquettisme. Le d&#233;cor ne peut donc &#234;tre continu d'un bord &#224; l'autre. Ceci n'est pas n&#233;cessairement un probl&#232;me mais aura un impact sur l'entendue des sections de pleine voie. J'aurais pu d&#233;placer le bureau &#224; l'entr&#233;e de la pi&#232;ce et disposer ainsi d'un d&#233;cor continu mais le poste de travail aurait &#233;t&#233; dans le passage et dans la zone d'ouverture de la porte.&lt;/p&gt;
&lt;div class='spip_document_431 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;45&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/png/rtdp.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH279/rtdp-7edd3.png?1715243102' width='500' height='279' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-431 '&gt;&lt;strong&gt;Plan de la pi&#232;ce o&#249; le r&#233;seau sera install&#233;
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Sur la droite de la figure, on trouve un chien assis et par cons&#233;quent des sous-pentes avec notamment une poutre de la charpente de la maison qui peut poser un probl&#232;me pour passer la voie. Sur la gauche le cagibi. La pr&#233;sence du bureau, que je ne vais pas d&#233;placer, conduit &#224; un r&#233;seau en deux parties sc&#233;niques, le bureau formant une division radicale. Le th&#232;me reste bien entendu la &lt;a href='https://modelleisenbahn.triskell.org/spip.php?article1' class=&#034;spip_in&#034;&gt;DRG, compagnie unifi&#233;e allemande, et donc un r&#233;seau &#233;poque II&lt;/a&gt;. Les rails sont toujours des PECO Code 55.&lt;/p&gt;
&lt;p&gt;Avec toute cette place je vais pouvoir augmenter la complexit&#233; bien s&#251;r mais je veux surtout plus de r&#233;alisme avec des courbes visibles larges, des longueurs de voie &#224; quai cons&#233;quentes et des cantons plus longs que sur mon ancien trac&#233; afin de constituer des trains &#233;galement plus longs.&lt;/p&gt;
&lt;p&gt;Le bureau est donc l&#233;g&#232;rement avanc&#233; (10cm) et amput&#233; de 8cm dans sa profondeur afin de m&#233;nager un passage de 18cm de largeur derri&#232;re. Les sous-pentes sont mises &#224; profit pour passer la voie.&lt;/p&gt;
&lt;p&gt;Le trac&#233; est donc form&#233; de deux zones visibles : une zone situ&#233;e au niveau 0, le long du mur est, o&#249; est implant&#233;e une gare de passage de moyenne importance et un d&#233;p&#244;t de locomotives. une seconde situ&#233;e en &#238;lot sur le mur ouest au nord du bureau o&#249; est implant&#233;e, au niveau 1, une gare terminus &#233;quip&#233;e d'un pont tournant pour retourner les vapeurs et d'un petit d&#233;p&#244;t. Le trac&#233; est un os de chien avec la premi&#232;re gare cach&#233;e dans le cagibi et la seconde sur le niveau 0 de l'&#238;lot, sous la gare terminus. Enfin, un embranchement monte de la gare de passage vers le sud et suit les murs sud et ouest vers le niveau 1 de l'&#238;lot et la gare terminus.&lt;/p&gt;
&lt;p&gt;L'implantation des parties visibles du r&#233;seau est donn&#233;e &#224; la figure ci-dessous.&lt;/p&gt;
&lt;div class='spip_document_432 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;28&#034; data-legende-lenx=&#034;&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/png/rtdp-visible.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH276/rtdp-visible-fb969.png?1715243102' width='500' height='276' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-432 '&gt;&lt;strong&gt;Parties visibles du r&#233;seau
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Comme on le voit, l'accent est mis sur deux sc&#232;nes distinctes et urbaines o&#249; il est possible de man&#339;uvrer plut&#244;t que sur des sections champ&#234;tres. Ceci va demander pas mal de travail d'installations techniques mais &#233;galement de d&#233;cor. Les deux gares cach&#233;es permettent de varier les circulations. L'implantation de ces gares est montr&#233;e ci-dessous.&lt;/p&gt;
&lt;div class='spip_document_433 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;45&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/png/rtdp-tout.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH276/rtdp-tout-7c954.png?1715243103' width='500' height='276' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-433 '&gt;&lt;strong&gt;Totalit&#233; du r&#233;seau avec les parties cach&#233;es
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;D'autres articles suivront pour d&#233;tailler les diff&#233;rentes parties.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Cela faisait 10 ans (!) que je n'avais pas aliment&#233; ce blog. La raison est que l'activit&#233; &#233;tait principalement centr&#233;e sur l'&#233;lectronique et que j'avais bascul&#233; sur &lt;a href=&#034;https://www.locoduino.org&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Locoduino&lt;/a&gt;. Le d&#233;cor ayant d&#233;marr&#233;, je relance donc le blog.&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Derni&#232;res r&#233;flexions avant la r&#233;alisation du TCO</title>
		<link>https://modelleisenbahn.triskell.org/spip.php?article87</link>
		<guid isPermaLink="true">https://modelleisenbahn.triskell.org/spip.php?article87</guid>
		<dc:date>2014-04-28T17:39:44Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jean-Luc</dc:creator>



		<description>
&lt;p&gt;Apr&#232;s une longue r&#233;flexion, j'ai fini par converger sur les diff&#233;rents points techniques qui restaient en suspens et je vais bient&#244;t commencer la construction du TCO. &lt;br class='autobr' /&gt;
Le cadre tactile &lt;br class='autobr' /&gt;
Apr&#232;s mes premiers essais de barri&#232;re IR, j'ai un moment pens&#233; &#224; r&#233;aliser un prototype miniature du cadre tactile : un cadre de 4x4 intersections. J'ai depuis renonc&#233; &#224; cette r&#233;alisation. En effet, je suis plut&#244;t confiant dans le fonctionnement de ce dispositif. Le logiciel est d&#233;j&#224; &#233;crit pour un cadre (&#8230;)&lt;/p&gt;


-
&lt;a href="https://modelleisenbahn.triskell.org/spip.php?rubrique20" rel="directory"&gt;Le TCO&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Apr&#232;s une longue r&#233;flexion, j'ai fini par converger sur les diff&#233;rents points techniques qui restaient en suspens et je vais bient&#244;t commencer la construction du TCO.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Le cadre tactile&lt;/h2&gt;
&lt;p&gt;Apr&#232;s mes &lt;a href='https://modelleisenbahn.triskell.org/spip.php?article52' class=&#034;spip_in&#034;&gt;premiers essais de barri&#232;re IR&lt;/a&gt;, j'ai un moment pens&#233; &#224; r&#233;aliser un prototype miniature du cadre tactile : un cadre de 4x4 intersections. J'ai depuis renonc&#233; &#224; cette r&#233;alisation. En effet, je suis plut&#244;t confiant dans le fonctionnement de ce dispositif. Le logiciel est d&#233;j&#224; &#233;crit pour un cadre 20x12 et l'adapter &#224; un cadre plus petit n&#233;cessiterait un travail qui, &#224; mon sens, n'est pas utile. De plus je n'ai que quelques exemplaires de LED IR en exc&#233;dent et je ne peux donc me permettre d'en utiliser sur un prototype sans &#234;tre s&#251;r de les r&#233;cup&#233;rer par la suite pour le cadre d&#233;finitif.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;L'affichage&lt;/h2&gt;
&lt;p&gt;Comme expliqu&#233; dans &#171; &lt;a href='https://modelleisenbahn.triskell.org/spip.php?article49' class=&#034;spip_in&#034;&gt;Reflexions ergonomiques sur le TCO&lt;/a&gt; &#187; mais aussi dans &#171; &lt;a href='https://modelleisenbahn.triskell.org/spip.php?article81' class=&#034;spip_in&#034;&gt;&#201;volution de l'architecture &#233;lectronique du TCO&lt;/a&gt; &#187;, l'affichage des boutons, des &#233;tats des aiguilles et des d&#233;teleurs, des itin&#233;raires, de la position du pont tournant, ... sera assur&#233; par des LED RGB WS2812B. &#192; l'origine je pr&#233;voyais de r&#233;aliser des circuits imprim&#233;s comme celui que l'on peut voir dans &#171; &lt;a href='https://modelleisenbahn.triskell.org/spip.php?article70' class=&#034;spip_in&#034;&gt;Test des LED RGB WS2812B&lt;/a&gt; &#187; mais de taille plus importante et d'y souder des LED individuelles. Avec environ 300 LED, le travail s'annon&#231;ait cons&#233;quent car 4 soudures par LED sont n&#233;cessaires ainsi que 2 autres soudures pour le condensateur de d&#233;couplage n&#233;cessaire pour chaque LED. De plus il faut que tout soit parfaitement align&#233;.&lt;/p&gt;
&lt;p&gt;Il se trouve que ces LED sont &#233;galement disponibles en rubans autocollants de 30 LED/m&#232;tre, 60 LED/m&#232;tre ou encore 144 LED/m&#232;tre. Le choix est conditionn&#233; par le pas choisi pour le maillage du cadre IR. La premi&#232;re constatation concerne le pas en Y. J'ai assez peu de recul entre le bord de mon r&#233;seau et le placard qui lui fait face. Par cons&#233;quent, il est pr&#233;f&#233;rable de conserver le pas le plus faible possible en Y, c'est &#224; dire 2cm, afin que le TCO ne d&#233;passe pas 25cm de profondeur. Ce pas disqualifie les rubans de 144 LED/m&#232;tre. En effet, avec un pas d'environ 7mm pour un bo&#238;tier de 5mm de c&#244;t&#233;s, il y a peu de place entre 2 LED sur le ruban. Par cons&#233;quent, et comme on peut le voir sur la photo ci-dessous, les condensateurs de d&#233;couplage sont soud&#233;s sur le bord du ruban au lieu d'&#234;tre soud&#233;s entre 2 LED comme c'est le cas sur les rubans de 30 ou 60 LED/m&#232;tre.&lt;/p&gt;
&lt;div class='spip_document_406 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;36&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH163/ws2812b-2-a9efd.jpg?1692197124' width='500' height='163' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-406 '&gt;&lt;strong&gt;Bande de 144 LED WS2812B par m&#232;tre
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Ces rubans sont donc assez larges, 12mm. Or il est n&#233;cessaire, pour les diagonales de disposer les rubans tous les 1cm, ce qui est impossible avec des rubans de 12mm de large. Les rubans de 30 ou 60 LED/m&#232;tre ont, quant &#224; eux, une largeur de 10mm, ce qui convient parfaitement.&lt;/p&gt;
&lt;p&gt;Afin d'assurer une densit&#233; suffisante, le choix s'est donc port&#233; sur les rubans de 60 LED/m&#232;tre, soit une LED tous les 16,6mm et un pas en X de 33,3mm pour les barri&#232;res IR.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;La r&#233;alisation&lt;/h2&gt;
&lt;p&gt;Bien que le dessin soit encore amen&#233; &#224; &#233;voluer dans le d&#233;tail, le cantonnement du d&#233;p&#244;t n'est pas encore fait, le TCO a l'aspect suivant.&lt;/p&gt;
&lt;div class='spip_document_420 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;18&#034; data-legende-lenx=&#034;&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/png/tco_touch_diffus_60_66x24.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH190/tco_touch_diffus_60_66x24-8df26.png?1692197124' width='500' height='190' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-420 '&gt;&lt;strong&gt;Apparence du TCO
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Le TCO sera r&#233;alis&#233; sur une planche de medium de 10mm d'&#233;paisseur et de dimension 80cm x 40cm. Il viendra s'encastrer comme un couvercle sur un tiroir contenant l'&#233;lectronique et les alimentations. Ce tiroir &#224; une largeur de 82,5cm, une profondeur de 41cm et une hauteur de 9,7cm. La hauteur interne disponible est de 64mm, ce qui est suffisant pour le mat&#233;riel &#233;lectronique.&lt;/p&gt;
&lt;p&gt;Les rubans de LED seront coll&#233;s &#224; l'emplacement pr&#233;vu puis les fils seront soud&#233;s sur les pistes en cuivre que l'on peut voir sur le ruban de LED ci-dessus.&lt;/p&gt;
&lt;p&gt;La carte de pilotage du TCO sera fix&#233;e au verso de celui-ci. De cette mani&#232;re il sera simple de le d&#233;poser d'un seul tenant puisque le nombre de fils &#224; d&#233;brancher sera faible :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Les deux fils du bus CAN ;&lt;/li&gt;&lt;li&gt; L'alimentation 9V de la carte de pilotage ;&lt;/li&gt;&lt;li&gt; L'alimentation 5V des LED.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Nous verrons les d&#233;tails de r&#233;alisation de ces diff&#233;rents &#233;l&#233;ments au fur et &#224; mesure.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Des postes de conduite sans fil</title>
		<link>https://modelleisenbahn.triskell.org/spip.php?article86</link>
		<guid isPermaLink="true">https://modelleisenbahn.triskell.org/spip.php?article86</guid>
		<dc:date>2014-04-19T17:24:42Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jean-Luc</dc:creator>



		<description>
&lt;p&gt;J'ambitionne de d&#233;velopper des postes de conduite de locomotive, et incidemment de contr&#244;le des appareils de voie, &#233;quip&#233;s d'une connexion sans fil. &lt;br class='autobr' /&gt;
Dans cette optique, je suis en train d'examiner les technologies adapt&#233;es, que ce soit au niveau du co&#251;t, de la facilit&#233; de mise en &#339;uvre ou des fonctionnalit&#233;s. &lt;br class='autobr' /&gt;
En ce qui concerne la communication radio, j'ai r&#233;cemment mis en &#339;uvre des modules XBee s&#233;rie 1 de Digi. Les modules s&#233;rie 1 impl&#233;mentent le protocole IEEE 802.15.4, sur lequel le (&#8230;)&lt;/p&gt;


-
&lt;a href="https://modelleisenbahn.triskell.org/spip.php?rubrique25" rel="directory"&gt;Les postes de conduite&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;J'ambitionne de d&#233;velopper des postes de conduite de locomotive, et incidemment de contr&#244;le des appareils de voie, &#233;quip&#233;s d'une connexion sans fil.&lt;/p&gt;
&lt;p&gt;Dans cette optique, je suis en train d'examiner les technologies adapt&#233;es, que ce soit au niveau du co&#251;t, de la facilit&#233; de mise en &#339;uvre ou des fonctionnalit&#233;s.&lt;/p&gt;
&lt;p&gt;En ce qui concerne la communication radio, j'ai r&#233;cemment mis en &#339;uvre des &lt;a href=&#034;http://www.digi.com/products/wireless-wired-embedded-solutions/zigbee-rf-modules/point-multipoint-rfmodules/xbee-series1-module&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;modules XBee&lt;/a&gt; s&#233;rie 1 de &lt;a href=&#034;http://www.digi.com/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Digi&lt;/a&gt;. Les modules s&#233;rie 1 impl&#233;mentent le protocole IEEE 802.15.4, sur lequel le ZigBee repose, alors que les modules s&#233;rie 2 impl&#233;mentent un protocole propri&#233;taire de Digi. Les modules s&#233;rie 2 offrent plus de possibilit&#233;s mais les modules s&#233;rie 1 suffisent largement pour l'application envisag&#233;e. Donc autant rester sur un standard. Dans les deux cas, la bande des 2,4GHz est employ&#233;e et les modules permettent un d&#233;bit de 250 kBits/s. Ces modulent brillent par leur simplicit&#233; de mise en &#339;uvre et la fiabilit&#233; de la connexion sans fil. Un module co&#251;te une vingtaine d'Euros. Certes il y a moins cher mais dans ce domaine il est pr&#233;f&#233;rable de miser sur la qualit&#233; et le support du fabricant. Digi fournit r&#233;guli&#232;rement des mise &#224; jour de firmware et le logiciel de configuration, XCTU, est suivi et qui plus est disponible pour Mac OS X&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;alors que ce n'&#233;tait pas le cas dans un pass&#233; r&#233;cent. Ceci montre (&#8230;)&#034; id=&#034;nh1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;. Je d&#233;velopperai prochainement la mise en &#339;uvre de ces modules que ce soit sur Arduino ou sur PIC.&lt;/p&gt;
&lt;div class='spip_document_415 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;45&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH355/xbee-6a0c4.jpg?1692197124' width='500' height='355' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-415 '&gt;&lt;strong&gt;Module XBee s&#233;rie 1, version &#224; antenne PCB.
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;L'interaction avec l'utilisateur sera effectu&#233;e au moyen d'un encodeur rotatif en quadrature, je d&#233;velopperai &#233;galement la mise en &#339;uvre de ce composant ainsi que la raison de ce choix dans un futur article, et d'un &#233;cran LCD graphique couleur. Le choix d'un &#233;cran LCD graphique couleur n'est pas simple. Il existe une myriade de mod&#232;les mais on retiendra surtout l'interface de pilotage de l'&#233;cran. Cette interface est soit du SPI, donc une transmission s&#233;rie bit &#224; bit des donn&#233;es &#224; afficher, soit une interface parall&#232;le. Des essais fait avec un &#233;cran de 2,2&#034; &#224; interface SPI&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Il s'agit de ce mod&#232;le disponible chez plusieurs fournisseurs pour un prix (&#8230;)&#034; id=&#034;nh2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt; ont montr&#233; que les performances sont insuffisantes pour disposer d'une interface graphique r&#233;active. M&#234;me en montant la fr&#233;quence de l'horloge de transfert SPI &#224; 16MHz ou plus, le rafraichissement complet de l'&#233;cran prend un temps cons&#233;quent et ne permet pas une fr&#233;quence de rafraichissement ad&#233;quate.&lt;/p&gt;
&lt;p&gt;L'&#233;cran envisag&#233; est un LCD graphique de 3,2&#034; &#233;galement disponible aupr&#232;s de plusieurs distributeurs pour un tarif &#233;galement tr&#232;s raisonnable&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Une douzaine d'Euros.&#034; id=&#034;nh3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt;. De plus, cet &#233;cran vient avec une dalle tactile qu'il est tr&#232;s tentant de mettre en &#339;uvre. De cette mani&#232;re, le poste de conduite sera assez minimaliste, toute l'interaction passant par l'&#233;cran tactile et l'encodeur rotatif&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb4&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Rien ne remplace un bouton rotatif pour r&#233;gler la vitesse !&#034; id=&#034;nh4&#034;&gt;4&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Le microcontr&#244;leur doit &#234;tre un mod&#232;le muscl&#233; pour permettre une gestion ais&#233;e des graphisme : une taille de m&#233;moire flash et une taille de SRAM confortables, une puissance importante, un nombre de broches suffisant et une grande facilit&#233; de mise en &#339;uvre.&lt;/p&gt;
&lt;div class='spip_document_418 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;15&#034; data-legende-lenx=&#034;&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/jpg/teensy_3_1.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH278/teensy_3_1-62b18.jpg?1692197124' width='500' height='278' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-418 '&gt;&lt;strong&gt;La Teensy 3.1
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Dans cette cat&#233;gorie, on trouve le Teensy 3.1, une &lt;i&gt;breakout board&lt;/i&gt; embarquant un microcontr&#244;leur FreeScale &#224; base d'ARM Cortex M4 et cadenc&#233; &#224; 96MHz. La taille de la flash est de 256ko et celle de la SRAM de 64ko, ce qui est tr&#232;s confortable dans un contexte embarqu&#233;. Il s'agit de plus d'une carte miniature de 3,5cm sur 1,8cm qui permet une int&#233;gration facile. Etant donn&#233; ses caract&#233;ristiques, son prix est &#233;galement tr&#232;s raisonnable : on la trouve entre 18&#8364; et 20&#8364;. Elle peut se programmer dans l'environnement Arduino et dispose de la biblioth&#232;que graphique &lt;a href=&#034;http://henningkarlsen.com/electronics/library.php?id=52&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;UTFT&lt;/a&gt; qui facilite grandement l'utilisation des &#233;crans graphiques LCD.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Int&#233;gration dans l'installation existante&lt;/h2&gt;
&lt;p&gt;Un poste de conduite filaire a d&#233;j&#224; &#233;t&#233; d&#233;velopp&#233; par Pierre et Philippe et &lt;a href=&#034;http://lestrainsdutertre.redheberg.com/TouteVapeur/Les_trains_du_Tertre/Entrees/2011/3/26_Les_boitiers_de_commande_sont_finis.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;construit &#224; 8 exemplaires&lt;/a&gt;. Les postes s'interfacent avec le gestionnaire central via un bus CAN d&#233;di&#233; et une connectique particuli&#232;re qui v&#233;hicule &#233;galement l'alimentation du poste.&lt;/p&gt;
&lt;p&gt;L'int&#233;gration de postes sans fil demande donc de concevoir une carte qui effectuera une passerelle entre le bus CAN et les postes sans fil. Cette carte recevra les ordres d'affichage destin&#233;s aux postes via le CAN, construira des trames ZigBee qui seront exp&#233;di&#233;s aux postes. En sens inverse, elle recevra les commandes des postes en ZigBee et construira les trames CAN correspondantes &#224; destination du gestionnaire central.&lt;/p&gt;
&lt;div class='spip_document_416 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;70&#034; data-legende-lenx=&#034;xx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/jpg/passerelle_can_zigbee.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH365/passerelle_can_zigbee-bceab.jpg?1692197124' width='500' height='365' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-416 '&gt;&lt;strong&gt;Passerelle CAN-ZigBee
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif crayon document-descriptif-416 '&gt;En haut le PIC18F26K80, en bas le module XBee.
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Afin de valider le fonctionnement dans les parasites &#233;mis par les locomotives, nous avons, au cours de la s&#233;ance d'essais de la carte 4 alimentation de pr&#233;s&#233;rie&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb5&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;S&#233;ance d'essai dont je parlerai une prochaine fois.&#034; id=&#034;nh5&#034;&gt;5&lt;/a&gt;]&lt;/span&gt;, test&#233; une installation consistant en une passerelle CAN-ZigBee unidirectionnelle construire autour d'un PIC 18F26K80 et d'un module XBee d'une part et d'un second module ZigBee et d'un Arduino Uno d'autre part. Le programme sur l'Arduino Uno d&#233;code les trames des ordres destin&#233;s aux postes de conduite et les affiche en clair sur la console d'un portable.&lt;/p&gt;
&lt;div class='spip_document_417 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;118&#034; data-legende-lenx=&#034;xx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/jpg/espion_pc.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH363/espion_pc-89027.jpg?1692197124' width='500' height='363' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-417 '&gt;&lt;strong&gt;R&#233;cup&#233;ration des trames ZigBee
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif crayon document-descriptif-417 '&gt;Les ordres destin&#233;s aux postes de conduites sont d&#233;cod&#233;s et affich&#233;s dans la console.
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;L'essai a &#233;t&#233; couronn&#233; de succ&#232;s et confirme la viabilit&#233; des modules XBee dans ce contexte.&lt;/p&gt;
&lt;p&gt;L'&#233;tape suivante consistera &#224; ajouter une passerelle XBee-CAN pour connecter un des poste de conduite actuels par radio.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh1&#034; class=&#034;spip_note&#034; title=&#034;Notes 1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;alors que ce n'&#233;tait pas le cas dans un pass&#233; r&#233;cent. Ceci montre l'investissement de Digi dans le suivi de ses logiciels et ces efforts pour que sa technologie soit utilisable par tous.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2&#034; class=&#034;spip_note&#034; title=&#034;Notes 2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Il s'agit de &lt;a href=&#034;http://www.elecfreaks.com/wiki/index.php?title=2.2S%22_TFT_LCD:_TFT01-2.2S&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ce mod&#232;le&lt;/a&gt; disponible chez plusieurs fournisseurs pour un prix tr&#232;s raisonnable.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh3&#034; class=&#034;spip_note&#034; title=&#034;Notes 3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;Une douzaine d'Euros.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb4&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh4&#034; class=&#034;spip_note&#034; title=&#034;Notes 4&#034; rev=&#034;appendix&#034;&gt;4&lt;/a&gt;] &lt;/span&gt;Rien ne remplace un bouton rotatif pour r&#233;gler la vitesse !&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb5&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh5&#034; class=&#034;spip_note&#034; title=&#034;Notes 5&#034; rev=&#034;appendix&#034;&gt;5&lt;/a&gt;] &lt;/span&gt;S&#233;ance d'essai dont je parlerai une prochaine fois.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>&#201;volution de l'architecture &#233;lectronique du TCO</title>
		<link>https://modelleisenbahn.triskell.org/spip.php?article81</link>
		<guid isPermaLink="true">https://modelleisenbahn.triskell.org/spip.php?article81</guid>
		<dc:date>2014-02-22T20:07:02Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jean-Luc</dc:creator>



		<description>
&lt;p&gt;Initialement je pensais s&#233;parer les fonctions n&#233;cessaires au TCO en deux. Une premi&#232;re carte de contr&#244;le &#233;quip&#233;e d'un PIC 18F26K80 devait g&#233;rer l'acquisition des entr&#233;es provenant de l'utilisateur, voir &#224; ce sujet &#171; L'architecture &#233;lectronique du cadre tactile &#187;, et envoyer via le bus CAN les coordonn&#233;es touch&#233;es. Une seconde carte &#233;quip&#233;e elle aussi d'un PIC 18F26K80 devait piloter des LED tricolores WS2812B et recevait les ordres d'affichage via le bus CAN &#233;galement. &lt;br class='autobr' /&gt;
Outre les (&#8230;)&lt;/p&gt;


-
&lt;a href="https://modelleisenbahn.triskell.org/spip.php?rubrique20" rel="directory"&gt;Le TCO&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Initialement je pensais s&#233;parer les fonctions n&#233;cessaires au TCO en deux. Une premi&#232;re carte de contr&#244;le &#233;quip&#233;e d'un PIC 18F26K80 devait g&#233;rer l'acquisition des entr&#233;es provenant de l'utilisateur, voir &#224; ce sujet &#171; &lt;a href='https://modelleisenbahn.triskell.org/spip.php?article53' class=&#034;spip_in&#034;&gt;L'architecture &#233;lectronique du cadre tactile&lt;/a&gt; &#187;, et envoyer via le bus CAN les coordonn&#233;es touch&#233;es. Une seconde carte &#233;quip&#233;e elle aussi d'un PIC 18F26K80 devait piloter des LED tricolores WS2812B et recevait les ordres d'affichage via le bus CAN &#233;galement.&lt;/p&gt;
&lt;div class='spip_document_406 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;36&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH163/ws2812b-2-a9efd.jpg?1692197124' width='500' height='163' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-406 '&gt;&lt;strong&gt;Bande de 144 LED WS2812B par m&#232;tre
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Outre les possibilit&#233;s offerte par l'&#233;clairage rouge/vert/bleu, le gros int&#233;r&#234;t de ces LED est la simplicit&#233; de c&#226;blage. En effet, les LED de la s&#233;rie WS2812 sont cha&#238;nables et un seul fil suffit entre le micro-contr&#244;leur et la premi&#232;re LED de la cha&#238;ne. Pour profiter de cette caract&#233;ristique il est pr&#233;f&#233;rable de faire une cha&#238;ne la plus longue possible. Par exemple, sur mon TCO, une architecture logique consisterait &#224; former une cha&#238;ne de LED pour le d&#233;p&#244;t (100 environ), une seconde pour la gare (75 environ) et une troisi&#232;me pour le port et les boutons de commande globaux (100 environ).&lt;/p&gt;
&lt;div class='spip_document_407 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;117&#034; data-legende-lenx=&#034;xx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH344/ring-neopixel-3f814.jpg?1692197125' width='500' height='344' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-407 '&gt;&lt;strong&gt;Ring NeoPixel d'Adafruit
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif crayon document-descriptif-407 '&gt;3 versions sont disponibles : 12, 16 et 24 LED WS2812. Il s'agit ici de la version 24 LED.
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Une cha&#238;ne est rafraichie enti&#232;rement par l'envoi d'une s&#233;quence de bits &#224; une vitesse de 800kBits/s. cette s&#233;quence est tr&#232;s contrainte temporellement car il n'y a pas d'horloge s&#233;par&#233;e pour synchroniser l'&#233;metteur et le r&#233;cepteur lors de l'envoi des bits. De plus, le mode de fonctionnement fait qu'un rafraichissement d'une cha&#238;ne de LED n'est pas interruptible. Il n'est pas non plus possible de rafraichir une portion qui ne serait pas au d&#233;but de la cha&#238;ne. Cette contrainte est extr&#234;mement g&#234;nante car pendant le rafraichissement de la cha&#238;ne le micro-contr&#244;leur ne peut pas ex&#233;cuter d'autre t&#226;che.&lt;/p&gt;
&lt;p&gt;Notamment, les messages CAN entrant ne peuvent pas &#234;tre trait&#233;s pendant le rafraichissement. Par cons&#233;quent, si le temps de rafraichissement exc&#232;de le temps de transmission d'un nombre de messages CAN plus grand que le nombre de tampons de r&#233;ception mat&#233;riels disponibles, un ou plusieurs messages seront perdus. D'une part, le bus CAN des accessoires travaille &#224; 125kBits/s et le message CAN le plus court a une taille de 47 bits. D'autre part, le rafraichissement de 100 LED n&#233;cessite la transmission de 24 bits par LED, soit 2400 bits. Le temps n&#233;cessaire est donc de 3ms. Pendant ce temps, 8 messages CAN peuvent avoir &#233;t&#233; re&#231;us.&lt;/p&gt;
&lt;p&gt;Permettre de rafraichir les LED et de recevoir les messages CAN n&#233;cessiterait donc de saucissonner les cha&#238;nes de LED avec pour r&#233;sultat de complexifier le logiciel mais surtout le c&#226;blage.&lt;/p&gt;
&lt;p&gt;Il est donc pr&#233;f&#233;rable de d&#233;dier un micro-contr&#244;leur au rafraichissement des LED et un second micro-contr&#244;leur &#224; l'interfa&#231;age avec le bus CAN, les deux machines communicant via un bus s&#233;rie, le SPI par exemple. Le micro-contr&#244;leur d&#233;di&#233; au rafraichissement des LED serait un Arduino avec l'avantage de b&#233;n&#233;ficier de la &lt;a href=&#034;https://github.com/adafruit/Adafruit_NeoPixel&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;biblioth&#232;que Neopixel d'Adafruit&lt;/a&gt;. Il serait ma&#238;tre sur le SPI et ce serait donc lui qui initierait la communication afin de recevoir les commandes. De cette mani&#232;re, l'acquisition de nouvelle commandes et le rafraichissement des LED seraient entrelac&#233;es sans concurrence. Le micro-contr&#244;leur d'interfa&#231;age avec le bus CAN serait un PIC 18F26K80. Il mettrait les commandes entrantes venant du bus CAN dans un tampon de taille suffisamment grande, par exemple une page enti&#232;re de 256 octets, pour ne pas perdre de message alors que l'Arduino est en train de rafra&#238;chir une cha&#238;ne de LED.&lt;/p&gt;
&lt;p&gt;Cette t&#226;che de passerelle entre le bus CAN et le bus SPI est l&#233;g&#232;re et peut donc venir en plus de la gestion du balayage infrarouge du cadre tactile. Par cons&#233;quent, au lieu d'une architecture avec deux cartes, il s'agirait d'une architecture monocarte mais bi-processeurs.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Reflexions ergonomiques sur le TCO</title>
		<link>https://modelleisenbahn.triskell.org/spip.php?article49</link>
		<guid isPermaLink="true">https://modelleisenbahn.triskell.org/spip.php?article49</guid>
		<dc:date>2013-12-01T16:27:36Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jean-Luc</dc:creator>


		<dc:subject>TCO</dc:subject>
		<dc:subject>LED</dc:subject>

		<description>
&lt;p&gt;L'ergonomie du TCO me tourne dans la t&#234;te depuis quelques semaine et il est temps de fixer les r&#233;flexions sur le papier, enfin sur le web. &lt;br class='autobr' /&gt;
Les boutons tactiles &lt;br class='autobr' /&gt;
Comme expliqu&#233; dans &#171; Quelques r&#233;flexions &#187;, le TCO est constitu&#233; d'un cadre tactile de 240 points sensibles dispos&#233;s selon un maillage de 3cm en X et de 2cm en Y. Tous les points sensibles ne sont pas employ&#233;s. Ceux qui le sont doivent &#234;tre mat&#233;rialis&#233;s par une LED. &lt;br class='autobr' /&gt;
Un point important avec le tactile est que l'utilisateur doit (&#8230;)&lt;/p&gt;


-
&lt;a href="https://modelleisenbahn.triskell.org/spip.php?rubrique20" rel="directory"&gt;Le TCO&lt;/a&gt;

/ 
&lt;a href="https://modelleisenbahn.triskell.org/spip.php?mot8" rel="tag"&gt;TCO&lt;/a&gt;, 
&lt;a href="https://modelleisenbahn.triskell.org/spip.php?mot9" rel="tag"&gt;LED&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;L'ergonomie du TCO me tourne dans la t&#234;te depuis quelques semaine et il est temps de fixer les r&#233;flexions sur le papier, enfin sur le web.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Les boutons tactiles&lt;/h2&gt;
&lt;p&gt;Comme expliqu&#233; dans &#171; &lt;a href='https://modelleisenbahn.triskell.org/spip.php?article48' class=&#034;spip_in&#034;&gt;Quelques r&#233;flexions&lt;/a&gt; &#187;, le TCO est constitu&#233; d'un cadre tactile de 240 points sensibles dispos&#233;s selon un maillage de 3cm en X et de 2cm en Y&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Suite &#224; une adaptation technique, la g&#233;om&#233;trie du TCO a chang&#233; entretemps. (&#8230;)&#034; id=&#034;nh1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;. Tous les points sensibles ne sont pas employ&#233;s. Ceux qui le sont doivent &#234;tre mat&#233;rialis&#233;s par une LED.&lt;/p&gt;
&lt;p&gt;Un point important avec le tactile est que l'utilisateur doit avoir un retour imm&#233;diat de ses actions puisqu'il n'a aucun retour m&#233;canique. Le fait de toucher une zone sensible doit produire un changement visuel.&lt;/p&gt;
&lt;p&gt;Imaginons que la zone sensible et la LED qui la mat&#233;rialise corresponde &#224; la man&#339;uvre d'une aiguille.&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; L'aiguille au repos est symbolis&#233;e par une lumi&#232;re verte permanente ;&lt;/li&gt;&lt;li&gt; L'aiguille en mouvement est symbolis&#233;e par une lumi&#232;re jaune clignotante ;&lt;/li&gt;&lt;li&gt; Le fait de toucher la zone sensible &#233;claire en jaune permanent ;&lt;/li&gt;&lt;li&gt; Le fait de retirer le doigt de la zone sensible provoque le mouvement de l'aiguille.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Le mouvement en lui m&#234;me prend peu de temps mais le contr&#244;leur central peut diff&#233;rer le mouvement de l'aiguille parce qu'une rame, conduite en automatique ou par un autre op&#233;rateur la pr&#233;empte. Dans ce cas faut-il l'indiquer ? par une lumi&#232;re verte clignotante par exemple ?&lt;/p&gt;
&lt;p&gt;Le m&#234;me principe s'applique pour les boutons des autres dispositifs : d&#233;teleurs, coupure d'alimentation, etc, avec &#233;videmment des couleurs diff&#233;rentes selon le dispositif. Mais il y aura aussi des boutons semblables pour les fonctions. Par exemple envoyer une rame en gare cach&#233;e pourrait se faire en touchant le canton o&#249; se trouve la rame pour la s&#233;lectionner puis en touchant un bouton symbolisant la gare cach&#233;e.&lt;/p&gt;
&lt;p&gt;Les boutons correspondantes aux appareils de voie : aiguilles et d&#233;teleurs, seront situ&#233;s sur le dessin de la voie elle m&#234;me. Ceux correspondant aux :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; coupures d'alimentation ;&lt;/li&gt;&lt;li&gt; s&#233;lection de rame ;&lt;/li&gt;&lt;li&gt; position du pont tournant.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;seront d&#233;port&#233;s comme repr&#233;sent&#233; ci dessous avec les boutons des aiguilles en vert et ceux des coupures d'alimentation en jaune.&lt;/p&gt;
&lt;div class='spip_document_319 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH350/TCO-58bec.png?1692225209' width='500' height='350' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Annuler une commande&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Supposons que l'utilisateur touche un zone sensible par erreur. Que faire pour annuler la commande ? Trois pistes seront explor&#233;es.&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Disposer d'un zone sensible d'annulation mais l'utilisateur doit avoir ses deux mains libres ;&lt;/li&gt;&lt;li&gt; Ne valider la commande qu'apr&#232;s un appui d&#233;passant une certaine dur&#233;e. Un appui bref est donc annul&#233; ;&lt;/li&gt;&lt;li&gt; Annuler la commande si l'appui d&#233;passe une certaine dur&#233;e. Un appui bref est donc valid&#233;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Difficile de dire laquelle des deux derni&#232;res solutions est la meilleure. Il faudra exp&#233;rimenter. L'avantage est qu'il suffit de changer le logiciel pour opter pour l'une ou l'autre des solutions.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;La visualisation des itin&#233;raires enclench&#233;s&lt;/h2&gt;
&lt;p&gt;La visualisation des itin&#233;raires est plus d&#233;licate. En effet, le minimum syndical consiste &#224; placer une paire de LED &#224; la fourche de chaque aiguille. Comme ceci.&lt;/p&gt;
&lt;div class='spip_document_320 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L257xH110/itineraire-83f84.png?1692225209' width='257' height='110' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Toutefois l'oeil aura du mal &#224; voir un itin&#233;raire si deux aiguilles sont distantes. Une alternative consiste &#224; mettre des LED tout le long des voies et de les &#233;clairer selon l'itin&#233;raire enclench&#233;.&lt;/p&gt;
&lt;p&gt;Ces LED t&#233;moins font double emploi avec les LED de r&#233;tro-&#233;clairage et il est tentant de fusionner les deux. C'est une voie que je compte explorer.&lt;/p&gt;
&lt;p&gt;Il existe des LED RGB adressables individuellement que Pierre m'avait signal&#233;es en ao&#251;t dernier, les WS2812 et WS2812B. Je reviendrai sur le fonctionnement de ces composants prochainement.&lt;/p&gt;
&lt;p&gt;L'id&#233;e est donc de disposer &#224; intervalle r&#233;gulier en position de r&#233;tro-&#233;clairage des LED RGB dont la teinte serait adapt&#233;e &#224; l'information communiqu&#233;e avec par exemple :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Bouton, couleur adapt&#233;e au type et &#224; l'&#233;tat du bouton&lt;/li&gt;&lt;li&gt; Voie non aliment&#233;e, blanc peu lumineux&lt;/li&gt;&lt;li&gt; Canton libre ne faisant pas partie d'un itin&#233;raire, blanc&lt;/li&gt;&lt;li&gt; Canton libre faisant partie d'un itin&#233;raire, vert-jaune&lt;/li&gt;&lt;li&gt; Canton occup&#233; ne faisant pas partie d'un itin&#233;raire, violet&lt;/li&gt;&lt;li&gt; Canton occup&#233; faisant partie d'un itin&#233;raire, bleu&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Les boutons ayant des couleurs satur&#233;es et les voies et cantons des couleurs peu satur&#233;es.&lt;/p&gt;
&lt;p&gt;Difficile de juger de l'effet rendu sans essayer mais le syst&#232;me semble s&#233;duisant. L'un des avantages &#233;vident est de pouvoir r&#233;gler l'&#233;clairage et la couleur apr&#232;s-coup alors que l'utilisation de LED bicolores fixes oblige &#224; d&#233;cider de l'aspect &#224; priori.&lt;/p&gt;
&lt;p&gt;Un peu plus de 400 LED RGB seraient n&#233;cessaires pour mon TCO. &#192; 60mA de consommation unitaire, les mettre toutes au blanc &#224; l'intensit&#233; maximum n&#233;cessiterait 24A. Mais comme elles sont tr&#232;s lumineuses, il ne sera pas n&#233;cessaire de les illuminer au maximum et il est tr&#232;s probable que la consommation effective soit de moins d'un quart de la consommation maximum. Un fois encore, il faut faire des essais pour juger de l'intensit&#233; lumineuse n&#233;cessaire.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh1&#034; class=&#034;spip_note&#034; title=&#034;Notes 1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Suite &#224; une adaptation technique, la g&#233;om&#233;trie du TCO a chang&#233; entretemps. On a maintenant 20 points en X et 12 en Y&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>L'architecture &#233;lectronique du cadre tactile</title>
		<link>https://modelleisenbahn.triskell.org/spip.php?article53</link>
		<guid isPermaLink="true">https://modelleisenbahn.triskell.org/spip.php?article53</guid>
		<dc:date>2013-10-25T22:35:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jean-Luc</dc:creator>


		<dc:subject>TCO</dc:subject>

		<description>
&lt;p&gt;La commande des 32 LED IR du TCO et la lecture des 32 phototransistors IR n&#233;cessiterait 64 entr&#233;es / sorties num&#233;riques sur le micro-contr&#244;leur de pilotage. Les entr&#233;es / sorties n'&#233;tant pas disponibles en telle quantit&#233;, il est n&#233;cessaire de disposer d'une interface. La solution la plus logique est d'utiliser une s&#233;ries de registres &#224; d&#233;calage (R&#224;D), &#224; la fois pour commander les LED IR et pour lire les phototransistors. &lt;br class='autobr' /&gt;
Les R&#224;D sont des circuits int&#233;gr&#233;s de 16 &#224; 20 broches selon les (&#8230;)&lt;/p&gt;


-
&lt;a href="https://modelleisenbahn.triskell.org/spip.php?rubrique20" rel="directory"&gt;Le TCO&lt;/a&gt;

/ 
&lt;a href="https://modelleisenbahn.triskell.org/spip.php?mot8" rel="tag"&gt;TCO&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;La commande des 32 LED IR du TCO et la lecture des 32 phototransistors IR n&#233;cessiterait 64 entr&#233;es / sorties num&#233;riques sur le micro-contr&#244;leur de pilotage. Les entr&#233;es / sorties n'&#233;tant pas disponibles en telle quantit&#233;, il est n&#233;cessaire de disposer d'une interface. La solution la plus logique est d'utiliser une s&#233;ries de registres &#224; d&#233;calage (R&#224;D), &#224; la fois pour commander les LED IR et pour lire les phototransistors.&lt;/p&gt;
&lt;p&gt;Les R&#224;D sont des circuits int&#233;gr&#233;s de 16 &#224; 20 broches selon les mod&#232;les. Il s'agit g&#233;n&#233;ralement de registres 8 bits. Ils ont g&#233;n&#233;ralement un sens d'&#233;criture et de lecture. C'est &#224; dire que ce sont soit des registres que l'on va &#233;crire en s&#233;rie&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;C'est &#224; dire que les bits qui sont m&#233;moris&#233;s dans un registre sont fournis (&#8230;)&#034; id=&#034;nh1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt; et dont le contenu sera mis &#224; disposition sur 8 des broches en parall&#232;le ; soit des registres qui vont &#233;chantillonner 8 valeurs en parall&#232;le sur 8 des broches et que l'on va vider en s&#233;rie.&lt;/p&gt;
&lt;p&gt;On peut les cascader, c'est &#224; dire que la sortie s&#233;rie d'un registre peut &#234;tre branch&#233;e sur l'entr&#233;e s&#233;rie d'un autre. De cette mani&#232;re, il est possible de constituer un tr&#232;s long registre &#224; d&#233;calage de plusieurs dizaines de bits.&lt;/p&gt;
&lt;p&gt;Pour rythmer, la progression des bits dans le registres, il faut faire bagotter une horloge. Le front montant, c'est &#224; dire une transition de l'&#233;tat bas (0) &#224; l'&#233;tat haut (1) de l'horloge provoque le d&#233;calage des bits du registres et l'entr&#233;e, ou la sortie, d'un nouveau bit.&lt;/p&gt;
&lt;p&gt;Dans les R&#224;D entr&#233;e s&#233;rie/sortie parall&#232;le, les bits que l'on va entrer en s&#233;rie ne sont pas disponible directement sur les sorties parall&#232;le afin d'&#233;viter d'avoir des valeurs ind&#233;sirable sur les sorties parall&#232;les lorsque l'on remplit le registre. Les bits sont entr&#233;s en s&#233;rie dans le R&#224;D puis, en faisant bagotter un signal, les bits du R&#224;D sont recopi&#233;s dans un second registre en parall&#232;le. Ce n'est qu'alors que les bits charg&#233;s dans le R&#224;D sont disponibles sur les 8 broches de sortie.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Les registres &#224; d&#233;calage de pilotage des LED IR&lt;/h2&gt;
&lt;p&gt;Les R&#224;D de pilotage des LED sont du type entr&#233;e s&#233;rie / sortie parall&#232;le. Il s'agit du &lt;a href=&#034;http://www.ti.com/lit/ds/symlink/tpic6b595.pdf&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Texas Instruments TPIC6B595&lt;/a&gt; qui m'avait &#233;t&#233; &lt;a href=&#034;http://savignyexpress.wordpress.com/2013/09/25/gare-du-reseau-dun-ami/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;signal&#233; par Marc-Henry&lt;/a&gt;. Le gros avantage de ce circuit int&#233;gr&#233; est de conduire des courants relativement forts : 150mA en permanence et 500mA en impulsion. Il est donc tout &#224; fait adapt&#233; au pilotage des LED IR par impulsion avec un courant de 200mA. Le TPIC6B595 poss&#232;de 8 broches &lt;strong&gt;DRAINx&lt;/strong&gt; qui sont tir&#233;es &#224; la masse via un transistor MOS si le bit correspondant du registre parall&#232;le est &#224; 1. Une entr&#233;e &lt;strong&gt;SER IN&lt;/strong&gt; permet de fournir les bits en s&#233;rie, une sortie &lt;strong&gt;SER OUT&lt;/strong&gt; permet de les r&#233;cup&#233;rer en s&#233;rie &#224; l'autre bout. Pour cascader deux R&#224;D, il suffit de connecter le &lt;strong&gt;SER IN&lt;/strong&gt; du second R&#224;D au &lt;strong&gt;SER OUT&lt;/strong&gt; du premier. Les signaux d'horloge et de contr&#244;le sont :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;SRCK&lt;/strong&gt; : horloge s&#233;rie, les bits progressent dans le R&#224;D sur le front montant de cette horloge ;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;RCK&lt;/strong&gt; : horloge parall&#232;le, les bits sont copi&#233;es du R&#224;D au registre de sortie sur le front montant de cette horloge ;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;/G&lt;/strong&gt; : si &#224; 0, les sorties &lt;strong&gt;DRAINx&lt;/strong&gt; ne sont pas tir&#233;es &#224; la masse. Si &#224; 1, les sorties &lt;strong&gt;DRAINx&lt;/strong&gt; sont tir&#233;es &#224; la masse selon le contenu du registre parall&#232;le.&lt;/li&gt;&lt;li&gt; &lt;strong&gt;/SRCLR&lt;/strong&gt; : si &#224; 0, tous les bits du R&#224;D sont mis &#224; 0. Le registre parall&#232;le n'est pas affect&#233;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Comme une seule des LED IR est allum&#233;e &#224; un instant, il n'y a qu'un seul &lt;strong&gt;1&lt;/strong&gt; dans le R&#224;D et le jeu consiste &#224; l'y faire progresser &#224; raison d'une position toutes les 600&#181;s, 32 fois de suite puis de recommencer. Le fonctionnement est donc assez simple. Au d&#233;marrage de la s&#233;quence :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Mise &#224; 0 puis &#224; 1 de &lt;strong&gt;/SRCLR&lt;/strong&gt; pour initialiser le R&#224;D &#224; 0 ;&lt;/li&gt;&lt;li&gt; Positionnement d'un &lt;strong&gt;1&lt;/strong&gt; sur &lt;strong&gt;SER IN&lt;/strong&gt; ;&lt;/li&gt;&lt;li&gt; Mise &#224; 1 puis &#224; 0 de &lt;strong&gt;SRCK&lt;/strong&gt; pour faire entrer le 1 &#224; la premi&#232;re position du registre ;&lt;/li&gt;&lt;li&gt; Positionnement d'un &lt;strong&gt;0&lt;/strong&gt; sur &lt;strong&gt;SER IN&lt;/strong&gt; ;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Ce qui correspond au chronogramme suivant&lt;/p&gt;
&lt;div class='spip_document_238 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;68&#034; data-legende-lenx=&#034;xx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH182/chrono_init_tpic-2-acd7c.png?1692225209' width='500' height='182' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-238 '&gt;&lt;strong&gt;Initialisation du TPIC
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif crayon document-descriptif-238 '&gt;Mise &#224; 0 du R&#224;D et chargement d'un bit &#224; 1.
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;On va ensuite r&#233;p&#233;ter 32 fois :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Mise &#224; 1 puis &#224; 0 de &lt;strong&gt;RCK&lt;/strong&gt; pour copier le R&#224;D dans le registre parall&#232;le ;&lt;/li&gt;&lt;li&gt; Mise &#224; 1 puis &#224; 0 de &lt;strong&gt;SRCK&lt;/strong&gt; pour faire progresser le 1.&lt;/li&gt;&lt;li&gt; Mise &#224; 1 de &lt;strong&gt;/G&lt;/strong&gt; ;&lt;/li&gt;&lt;li&gt; attendre 600&#181;s ;&lt;/li&gt;&lt;li&gt; Mise &#224; 0 de &lt;strong&gt;/G&lt;/strong&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;div class='spip_document_239 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;44&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH183/chrono_bit_tpic-29401.png?1692225209' width='500' height='183' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-239 '&gt;&lt;strong&gt;D&#233;calage d'un bit et allumage de la LED IR
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Il faut aussi faire attention aux contraintes temporelles du TPIC6B595. Entre le moment o&#249; on met une valeur sur &lt;strong&gt;SER IN&lt;/strong&gt; et le front montant de &lt;strong&gt;SRCK&lt;/strong&gt; (t&lt;sub&gt;su&lt;/sub&gt;) il faut laisser s'&#233;couler 20ns minimum&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;C'est ce qu'on appelle le set-up time&#034; id=&#034;nh2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;. De m&#234;me entre le le front montant de &lt;strong&gt;SRCK&lt;/strong&gt; et le changement de valeur sur &lt;strong&gt;SER IN&lt;/strong&gt; (t&lt;sub&gt;h&lt;/sub&gt;), il faut aussi laisser s'&#233;couler 20ns minimum&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;C'est ce qu'on appelle le hold time&#034; id=&#034;nh3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt;. Les horloges &lt;strong&gt;SRCK&lt;/strong&gt; et &lt;strong&gt;RCK&lt;/strong&gt; doivent rester au minimum 40ns &#224; l'&#233;tat haut (t&lt;sub&gt;w&lt;/sub&gt;). Le micro-contr&#244;leur PIC utilis&#233; fonctionnant &#224; 16MHz, apr&#232;s division par 4 de l'horloge en interne, il a un temps de cycle de 62,5ns. Par cons&#233;quent si on change, par exemple, &lt;strong&gt;SER IN&lt;/strong&gt; et &lt;strong&gt;SRCK&lt;/strong&gt; dans deux instructions successives, le temps &#233;coul&#233; entre la nouvelle valeur de &lt;strong&gt;SER IN&lt;/strong&gt; et le front montant de &lt;strong&gt;SRCK&lt;/strong&gt; sera de 62,5ns, ce qui satisfait les exigences. De m&#234;me le temps d'une impulsion d'horloge sera de 62,5ns&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb4&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Par s&#233;curit&#233;, il est pr&#233;f&#233;rable d'ajouter une instruction qui ne fait rien (&#8230;)&#034; id=&#034;nh4&#034;&gt;4&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;5 broches de sorties num&#233;riques du micro-contr&#244;leur sont donc utilis&#233;es pour le pilotage des LED IR.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Les registres &#224; d&#233;calage de lecture des phototransistors IR&lt;/h2&gt;
&lt;p&gt;Les R&#224;D de lecture des phototransistors IR sont du type entr&#233;e parall&#232;le / sortie s&#233;rie. Il s'agit de circuits int&#233;gr&#233;s MOS &lt;a href=&#034;http://www.unisonic.com.tw/datasheet/CD4014B.pdf&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;CD4014&lt;/a&gt;. &lt;br class='autobr' /&gt;
La sortie &lt;strong&gt;Q8&lt;/strong&gt; sera utilis&#233;e avec l'entr&#233;e &lt;strong&gt;SERIAL IN&lt;/strong&gt; pour cascader les R&#224;D interm&#233;diaires. La sortie &lt;strong&gt;Q8&lt;/strong&gt; du dernier R&#224;D sera connect&#233;e &#224; une entr&#233;e du micro-contr&#244;leur pour r&#233;cup&#233;rer les bits du R&#224;D et donc l'&#233;tat des phototransistors.&lt;/p&gt;
&lt;p&gt; Les signaux d'horloge et de contr&#244;le sont :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;CLOCK&lt;/strong&gt; : l'horloge permettant soit de d&#233;caler le registre, soit de le charger en parall&#232;le selon le signal suivant ;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;PARALLEL/SERIAL CONTROL&lt;/strong&gt; ou &lt;strong&gt;P/S C&lt;/strong&gt; : Si &lt;strong&gt;0&lt;/strong&gt; le registre est d&#233;cal&#233; sur un front montant de l'horloge. Si &lt;strong&gt;1&lt;/strong&gt; le registre est charg&#233; en parall&#232;le ;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&#201;chantillonner les phototransistors revient donc &#224; :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Mettre &#224; &lt;strong&gt;1&lt;/strong&gt; le signal &lt;strong&gt;P/S C&lt;/strong&gt; ;&lt;/li&gt;&lt;li&gt; Mettre &#224; &lt;strong&gt;1&lt;/strong&gt; le signal &lt;strong&gt;CLOCK&lt;/strong&gt; ;&lt;/li&gt;&lt;li&gt; Mettre &#224; &lt;strong&gt;0&lt;/strong&gt; le signal &lt;strong&gt;CLOCK&lt;/strong&gt; ;&lt;/li&gt;&lt;li&gt; Mettre &#224; &lt;strong&gt;0&lt;/strong&gt; le signal &lt;strong&gt;P/S C&lt;/strong&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;div class='spip_document_240 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;48&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH130/chrono_echant_pt-3286c.png?1692225209' width='500' height='130' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-240 '&gt;&lt;strong&gt;&#201;chantillonnage de l'&#233;tat des phototransistors
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Il suffit ensuite de r&#233;p&#233;ter la s&#233;quence suivante 32 fois pour lire l'&#233;tat des 32 phototransistors.&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Lire &lt;strong&gt;Q8&lt;/strong&gt;&lt;/li&gt;&lt;li&gt; Mettre &#224; &lt;strong&gt;1&lt;/strong&gt; le signal &lt;strong&gt;CLOCK&lt;/strong&gt; ;&lt;/li&gt;&lt;li&gt; Mettre &#224; &lt;strong&gt;0&lt;/strong&gt; le signal &lt;strong&gt;CLOCK&lt;/strong&gt; ;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;2 broches de sorties num&#233;riques et une broche d'entr&#233;e num&#233;rique du micro-contr&#244;leur sont donc utilis&#233;es pour la lecture de l'&#233;tat des phototransistors.&lt;/p&gt;
&lt;div class='spip_document_241 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;139&#034; data-legende-lenx=&#034;xxx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH572/schema-IR-0ac9c.png?1692225209' width='500' height='572' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-241 '&gt;&lt;strong&gt;Sch&#233;ma de principe de l'&#233;lectronique
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif crayon document-descriptif-241 '&gt;Une seul LED IR &#233;tant active &#224; la fois, une seul r&#233;sistance de limitation du courant est n&#233;cessaire.
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Les contraintes temporelles sont plus s&#233;v&#232;re avec un t&lt;sub&gt;w&lt;/sub&gt; de 180ns et un t&lt;sub&gt;su&lt;/sub&gt; de 200ns. Il faudra donc mettre quelques instructions de temporisation ici et l&#224;. La fr&#233;quence minimum de &lt;strong&gt;CLOCK&lt;/strong&gt; &#224; 5V est de 3MHz. Comme on dispose de 600&#181;s pour vider les 32 bits du registre &#224; d&#233;calage, avant le prochain &#233;chantillonnage des phototransistors, il n'est pas utile de pousser le CD4014 aux limites. En effet, en fixant le cycle de &lt;strong&gt;CLOCK&lt;/strong&gt; &#224; 500ns, soit 2MHz, 16&#181;s sont n&#233;cessaires &#224; la lecture des 32 bits, ce qui laisse &#233;norm&#233;ment de temps pour calculer les intersections touch&#233;es.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;L'architecture logicielle&lt;/h2&gt;
&lt;p&gt;Comme pour la carte 6 servos, le logiciel sera s&#233;par&#233; en deux parties :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; La partie temps-r&#233;el qui s'ex&#233;cutera sous interruption toutes les 600&#181;s&lt;/li&gt;&lt;li&gt; La partie communication qui s'ex&#233;cutera dans le programme principal et enverra les messages CAN indiquant quelle intersection est touch&#233;e.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;La partie temps-r&#233;el&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;C'est dans cette partie que s'ex&#233;cute le programme permettant le pilotage des LED et la lecture des photo-transistors tels que d&#233;crit pr&#233;c&#233;demment. Un programme d'interruption ex&#233;cut&#233; toute les 600&#181;s par un &lt;i&gt;timer&lt;/i&gt; effectue les op&#233;rations de&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &#201;chantillonnage des phototransistors ;&lt;/li&gt;&lt;li&gt; Extinction des LED IR (mise &#224; 0 de &lt;strong&gt;/G&lt;/strong&gt;) ;&lt;/li&gt;&lt;li&gt; D&#233;calage pour s&#233;lectionner la LED IR suivante ;&lt;/li&gt;&lt;li&gt; Allumage des LED IR ;&lt;/li&gt;&lt;li&gt; R&#233;cup&#233;ration de l'&#233;tat des phototransistors ;&lt;/li&gt;&lt;li&gt; Si le balayage est temin&#233; :
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Si l'&#233;tat des intersections est diff&#233;rent de celui du balayage pr&#233;c&#233;dent, positionnement d'un flag pour la communication.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class='spip_document_243 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;380&#034; data-legende-lenx=&#034;xxxx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH320/fonctionnement_elec_IR-203a2.png?1692225209' width='500' height='320' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-243 '&gt;&lt;strong&gt;Exemple de fonctionnement pour les couples LED IR/phototransistor IR 0 et 1
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif crayon document-descriptif-243 '&gt;Une interruption provoque, toutes les 600&#181;s le passage d'un couple LED IR / phototransistor IR au suivant. Le signal CLOCK des 4014 &#233;chantillonnent l'&#233;tat de tous les phototransistors. Le logiciel traite ces donn&#233;es dans le temps indiqu&#233; par les pav&#233;s oranges, pendant que le couple suivant est activ&#233;.
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Le balayage des 32 couples LED IR / phototransistor IR prendra donc 19,2ms.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La partie communication&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Par comparaison entre deux balayage successifs, la partie communication construit un message CAN correspondant aux intersections qui ont chang&#233;. Ces messages seront du type &#171; intersection touch&#233;e &#187; ou &#171; intersection rel&#226;ch&#233;e &#187;.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh1&#034; class=&#034;spip_note&#034; title=&#034;Notes 1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;C'est &#224; dire que les bits qui sont m&#233;moris&#233;s dans un registre sont fournis les uns apr&#232;s les autres, &#224; la queue-leu-leu au rythme d'une horloge&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2&#034; class=&#034;spip_note&#034; title=&#034;Notes 2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;C'est ce qu'on appelle le set-up time&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh3&#034; class=&#034;spip_note&#034; title=&#034;Notes 3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;C'est ce qu'on appelle le hold time&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb4&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh4&#034; class=&#034;spip_note&#034; title=&#034;Notes 4&#034; rev=&#034;appendix&#034;&gt;4&lt;/a&gt;] &lt;/span&gt;Par s&#233;curit&#233;, il est pr&#233;f&#233;rable d'ajouter une instruction qui ne fait rien entre les deux&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Exp&#233;rimentation de barri&#232;re infra-rouge</title>
		<link>https://modelleisenbahn.triskell.org/spip.php?article52</link>
		<guid isPermaLink="true">https://modelleisenbahn.triskell.org/spip.php?article52</guid>
		<dc:date>2013-10-19T19:33:15Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jean-Luc</dc:creator>


		<dc:subject>TCO</dc:subject>

		<description>
&lt;p&gt;Le TCO comportera donc 32 barri&#232;res infrarouge dispos&#233;es en X avec un pas de 3cm et en Y avec un pas de 2cm. Chaque barri&#232;re est constitu&#233;e d'une LED infrarouge (IR) et d'un phototransistor IR. Il n'est ni souhaitable ni possible que les 32 barri&#232;res soient aliment&#233;es simultan&#233;ment. &lt;br class='autobr' /&gt;
Pas souhaitable parce que chaque LED IR va baver sur les phototransistors IR de ses voisines. Si les LED IR sont aliment&#233;es en permanence, l'interruption de faisceau ne sera pas d&#233;tectable car les LED voisines (&#8230;)&lt;/p&gt;


-
&lt;a href="https://modelleisenbahn.triskell.org/spip.php?rubrique20" rel="directory"&gt;Le TCO&lt;/a&gt;

/ 
&lt;a href="https://modelleisenbahn.triskell.org/spip.php?mot8" rel="tag"&gt;TCO&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Le TCO comportera donc 32 barri&#232;res infrarouge dispos&#233;es en X avec un pas de 3cm et en Y avec un pas de 2cm. Chaque barri&#232;re est constitu&#233;e d'une LED infrarouge (IR) et d'un phototransistor IR. Il n'est ni souhaitable ni possible que les 32 barri&#232;res soient aliment&#233;es simultan&#233;ment.&lt;/p&gt;
&lt;p&gt;Pas souhaitable parce que chaque LED IR va baver sur les phototransistors IR de ses voisines. Si les LED IR sont aliment&#233;es en permanence, l'interruption de faisceau ne sera pas d&#233;tectable car les LED voisines illumineront le phototransistor correspondant au faisceau interrompu.&lt;/p&gt;
&lt;p&gt;Impossible car alimenter 32 LED IR sous 5V avec, disons, 100mA demanderait 3,2A ce qui n&#233;cessite plusieurs r&#233;gulateurs 5V et des complications sur la carte de pilotage du TCO.&lt;/p&gt;
&lt;p&gt;De plus, les LED IR permettent une alimentation par impulsion avec un courant bien sup&#233;rieur au courant admis pour une alimentation permanente. De cette mani&#232;re on peut envoyer une impulsion lumineuse de forte intensit&#233; et diff&#233;rencier nettement l'impulsion re&#231;ue par le transistor de la lumi&#232;re IR ambiante.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Caract&#233;ristiques des composants&lt;/h2&gt;
&lt;p&gt;La LED IR choisie est une Vishay&#174; TSHF5210 dont voici la &lt;a href=&#034;http://www.vishay.com/docs/81313/tshf5210.pdf&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;datasheet&lt;/a&gt;. Il s'agit d'une LED IR con&#231;ue pour les t&#233;l&#233;commandes et plus g&#233;n&#233;ralement pour la transmission de donn&#233;es. Ses caract&#233;ristiques dynamiques sont donc bonnes avec des temps de r&#233;ponse de 30ns. Son intensit&#233; lumineuse est excellente avec 180mW/sr. Le faisceau d'&#233;mission est assez &#233;troit : 10&#176;, ce qui permet de ne pas trop &#233;clairer le paysage. Les autres caract&#233;ristiques qui nous int&#233;ressent sont donn&#233;es &#224; la figure 3, page 3 de la datasheet. Figure que je reproduis ci-dessous.&lt;/p&gt;
&lt;div class='spip_document_207 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;275&#034; data-legende-lenx=&#034;xxxx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L400xH340/carac_diodeIR-e5597.png?1692225209' width='400' height='340' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-207 '&gt;&lt;strong&gt;Courant maximum admissible dans la LED IR
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif crayon document-descriptif-207 '&gt;Le courant est donn&#233; en fonction de la dur&#233;e de l'impulsion et du rapport cyclique de l'impulsion. Chacune des courbes correspond &#224; un rapport cyclique. En partant du bas, la premi&#232;re courbe correspond &#224; un rapport cyclique de 50%.
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Comme on peut le voir, il est possible de monter jusqu'&#224; 400mA avec des impulsions de 1ms pourvu que le rapport cyclique soit autour des 15%.&lt;/p&gt;
&lt;p&gt;Le phototransistor est un L-93DP3C de KingBright dont voici la &lt;a href=&#034;http://www.kingbright-europe.de/wp-content/uploads/2009/09/L-93DP3CVer.5.pdf&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;datasheet&lt;/a&gt;. Voyons donc exp&#233;rimentalement de quoi il retourne.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Le banc d'essai&lt;/h2&gt;
&lt;p&gt;Le banc est constitu&#233; d'une baguette en pin et de deux supports pour d'un c&#244;t&#233; la LED IR et de l'autre le phototransistor IR. Afin de mettre le plus de chances du c&#244;t&#233; de Murphy, la distance entre les deux est de 74cm au lieu des 59cm que j'aurai sur le TCO. Pour la m&#234;me raison, les fils qui vont de la platine d'essai au phototransistor font 1m de long.&lt;/p&gt;
&lt;div class='spip_document_232 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;97&#034; data-legende-lenx=&#034;xx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/jpg/LED_IR-2.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH281/LED_IR-2-6ea7e.jpg?1692225209' width='500' height='281' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-232 '&gt;&lt;strong&gt;Montage de la LED IR sur le banc
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif crayon document-descriptif-232 '&gt;Un trou de 5mm est pratiqu&#233; dans le tasseau pour loger la LED.
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;div class='spip_document_231 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;183&#034; data-legende-lenx=&#034;xxx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/jpg/phototransistor_IR-2.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH281/phototransistor_IR-2-908f8.jpg?1692225209' width='500' height='281' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-231 '&gt;&lt;strong&gt;Montage du phototransistor sur la banc
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif crayon document-descriptif-231 '&gt;Le phototransistor est mont&#233; au fond d'un tube pour limiter le bruit IR ambiant. De m&#234;me le culot est mis &#224; l'abri par un tour de scotch noir.
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;L'&#233;lectronique de commande est tr&#232;s simple est est repr&#233;sent&#233;e dans le sch&#233;ma ci-dessous. Lorsque le faisceau IR n'est pas interrompu, le phototransistor IR est passant et un niveau bas est mesur&#233;. Lorsque le faisceau est interrompu, le phototransistor IR est bloqu&#233; et un niveau haut est mesur&#233;.&lt;/p&gt;
&lt;div class='spip_document_212 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;347&#034; data-legende-lenx=&#034;xxxx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH221/expe1-c9dbb.png?1692225209' width='500' height='221' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-212 '&gt;&lt;strong&gt;Montage exp&#233;rimental
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif crayon document-descriptif-212 '&gt;Le BC547 est th&#233;oriquement limit&#233; &#224; 100mA. Toutefois, il s'agit d'une courant maximum permanent. En commutant le transistor par impulsions, il est possible de monter plus haut comme ici, 200mA. Avec un gain de 200, il faut au moins un courant de base d'1mA pour saturer le transistor et donc sous 5V une r&#233;sistance de 4,7k&#937;.
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Il s'est rapidement av&#233;r&#233; que la dur&#233;e de l'impulsion avait une grande influence. En effet, le phototransistor a un temps de r&#233;action assez long. Avec une impulsion de 200mA dans la LED IR, il faut de 700&#181;s &#224; 800&#181;s pour que le signal au point de mesure descende en dessous de 1V. Le signal r&#233;cup&#233;r&#233; au point de mesure est montr&#233; &#224; la figure suivante.&lt;/p&gt;
&lt;div class='spip_document_228 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;263&#034; data-legende-lenx=&#034;xxxx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/jpg/graphe_200mA_39k-2.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH404/graphe_200mA_39k-2-0f29e.jpg?1692225209' width='500' height='404' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-228 '&gt;&lt;strong&gt;R&#233;ponse du phototransistor avec une r&#233;sistance de tirage de 39k&#937; &#224; une impulsion de 200mA dans la LED IR.
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif crayon document-descriptif-228 '&gt;Le niveau haut s'&#233;tablit &#224; 4,3V &#224; cause du bruit IR ambiant. Le niveau bas est &#224; 0,8V. Il pourrait &#234;tre l&#233;g&#232;rement meilleur avec une impulsion plus longue.
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Pendant ces mesures, j'ai pos&#233;, par hasard, ma carte de r&#233;f&#233;rence des codes de couleur de r&#233;sistances sur le banc. Il s'agit d'une carte noire mais dont la surface est l&#233;g&#232;rement glac&#233;e. J'ai constat&#233; que la r&#233;ponse du phototransistor avait chang&#233; comme ceci :&lt;/p&gt;
&lt;div class='spip_document_229 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;132&#034; data-legende-lenx=&#034;xxx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/jpg/graphe_200mA_39k_avec_reflecteur-2.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH404/graphe_200mA_39k_avec_reflecteur-2-0b570.jpg?1692225209' width='500' height='404' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-229 '&gt;&lt;strong&gt;R&#233;ponse du phototransistor avec un r&#233;flecteur
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif crayon document-descriptif-229 '&gt;La r&#233;sistance de tirage est toujours de 39k&#937; et l'impulsion de 200mA dans la LED IR.
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;En effet, la carte glac&#233;e agit comme un r&#233;flecteur et le phototransistor voit le faisceau direct de la LED mais aussi son image sur la surface r&#233;flechissante et par cons&#233;quent re&#231;oit une intensit&#233; lumineuse plus importante.&lt;/p&gt;
&lt;p&gt;J'ai r&#233;alis&#233; que mon banc &#233;tait assez &#233;loign&#233; de ce que serait le TCO. Le TCO aura un fond noir recouvert d'une surface transparente. De plus, le faisceau IR direct sera plus proche de la surface et le faisceau r&#233;fl&#233;chi aura un angle d'incidence plus important&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;L'angle d'incidence est l'angle par rapport &#224; la normale &#224; la surface&#034; id=&#034;nh1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt; et correspondra donc &#224; un angle d'&#233;mission o&#249; l'intensit&#233; lumineuse de la LED est plus importante.&lt;/p&gt;
&lt;p&gt;J'ai donc entrepris de rapprocher la conception de mon banc de ce que serait le TCO. J'ai rehauss&#233; le &#171; fond &#187; du banc d'essai de 3mm avec une feuille de Depron puis j'ai ajout&#233; par dessus une bande de Canson noir et enfin une bande de verre synth&#233;tique d'&#233;paisseur 1,2mm.&lt;/p&gt;
&lt;div class='spip_document_227 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;52&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/jpg/tco_like-2.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH281/tco_like-2-8fcb3.jpg?1692225209' width='500' height='281' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-227 '&gt;&lt;strong&gt;Ajout d'une surface semblable &#224; ce que sera le TCO
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Le r&#233;sultat est spectaculaire. Le phototransistor recevant plus de lumi&#232;re de la part de la LED IR, sa r&#233;ponse est beaucoup plus rapide et le niveau bas descend &#224; 0,2V. Pourtant la r&#233;sistance de tirage a &#233;t&#233; diminu&#233;e &#224; 22k&#937;, ce qui explique le meilleur niveau haut.&lt;/p&gt;
&lt;div class='spip_document_230 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;153&#034; data-legende-lenx=&#034;xxx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/jpg/graphe_200mA_22k_tco_like-2.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH414/graphe_200mA_22k_tco_like-2-e26db.jpg?1692225209' width='500' height='414' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-230 '&gt;&lt;strong&gt;R&#233;ponse du phototransistor avec une surface semblable au TCO d&#233;finitif
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif crayon document-descriptif-230 '&gt;Le r&#233;sultat est spectaculaire. L'&#233;tat bas de 0,2V est atteint en moins de 400&#181;s.
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Il reste &#224; mettre en place la derni&#232;re am&#233;lioration. Le tube d'aluminium au fond duquel &#233;tait log&#233; le phototransistor n'est pas id&#233;al. Il r&#233;fl&#233;chit le bruit IR ambiant et fait que le phototransistor conduit un peu en permanence. Le tube d'aluminium est donc remplac&#233; par un assemblage de deux tubes en plastique Evergreen&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Le tube dans lequel s'ins&#232;re le phototransitor est de diam&#232;tre 4mm. Il est (&#8230;)&#034; id=&#034;nh2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt; peint en noir &#224; l'int&#233;rieur et &#224; l'ext&#233;rieur par trempage.&lt;/p&gt;
&lt;div class='spip_document_233 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;100&#034; data-legende-lenx=&#034;xx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/jpg/tube_noir-2.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH281/tube_noir-2-29522.jpg?1692225209' width='500' height='281' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-233 '&gt;&lt;strong&gt;Tube anti bruit IR pour le phototransistor
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif crayon document-descriptif-233 '&gt;La peinture a &#233;t&#233; compl&#233;t&#233;e par un tour d'adh&#233;sif noir.
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Avec cette derni&#232;re modification, le niveau haut devient aussi bon que le niveau bas&lt;/p&gt;
&lt;div class='spip_document_234 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;105&#034; data-legende-lenx=&#034;xx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/jpg/graphe_200mA_22k_tco_like_tube_noir-2.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH404/graphe_200mA_22k_tco_like_tube_noir-2-096b7.jpg?1692225209' width='500' height='404' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-234 '&gt;&lt;strong&gt;R&#233;ponse du phototransistor avec un montage limitant le bruit IR ambiant
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif crayon document-descriptif-234 '&gt;Le niveau haut passe &#224; 4,7-4,8V
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Pour parfaire les essais il reste &#224; v&#233;rifier que le phototransistor r&#233;agit faiblement &#224; l'&#233;clairage de la pi&#232;ce comme par exemple la lampe de travail&lt;/p&gt;
&lt;div class='spip_document_235 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/jpg/robustesse_lampe-2.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH281/robustesse_lampe-2-f5749.jpg?1692225209' width='500' height='281' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Ce que permet de v&#233;rifier que le tube peint en noir remplit son office m&#234;me avec un &#233;clairage ambiant &#224; proximit&#233;.&lt;/p&gt;
&lt;div class='spip_document_236 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;175&#034; data-legende-lenx=&#034;xxx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/jpg/robustesse_lampe_reponse-2.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH395/robustesse_lampe_reponse-2-ec83f.jpg?1692225209' width='500' height='395' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-236 '&gt;&lt;strong&gt;R&#233;ponse du phototransistor en pr&#233;sence de la lame de travail
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif crayon document-descriptif-236 '&gt;Le niveau haut est d&#233;grad&#233; par l'augmentation du bruit IR ambiant mais reste malgr&#233; tout tr&#232;s proche du maximum.
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh1&#034; class=&#034;spip_note&#034; title=&#034;Notes 1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;L'angle d'incidence est l'angle par rapport &#224; la normale &#224; la surface&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2&#034; class=&#034;spip_note&#034; title=&#034;Notes 2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Le tube dans lequel s'ins&#232;re le phototransitor est de diam&#232;tre 4mm. Il est lui m&#234;me coiff&#233; d'un tube gigogne de diam&#232;tre 5,5mm qui vient recouvrir le culot du phototransistor.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Quelques r&#233;flexions</title>
		<link>https://modelleisenbahn.triskell.org/spip.php?article48</link>
		<guid isPermaLink="true">https://modelleisenbahn.triskell.org/spip.php?article48</guid>
		<dc:date>2013-10-05T08:00:01Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jean-Luc</dc:creator>


		<dc:subject>TCO</dc:subject>

		<description>
&lt;p&gt;Le TCO, pour Tableau de Contr&#244;le Optique, est en mod&#233;lisme ferroviaire d&#233;tourn&#233; de l'usage de son grand fr&#232;re. En effet les TCO des postes d'aiguillage ou des postes de commande centralis&#233;s ne servent qu'&#224; l'affichage de l'&#233;tat du r&#233;seau alors qu'en mod&#233;lisme, ils servent aussi &#224; la commande des aiguilles, des d&#233;teleurs, etc. &lt;br class='autobr' /&gt;
Il y a quelques temps, le TCO n'&#233;tait pas dans mes priorit&#233;s, j'avais d'autres chats &#224; fouetter. Les choses ont chang&#233; avec la r&#233;alisation de la carte de pilotage des (&#8230;)&lt;/p&gt;


-
&lt;a href="https://modelleisenbahn.triskell.org/spip.php?rubrique20" rel="directory"&gt;Le TCO&lt;/a&gt;

/ 
&lt;a href="https://modelleisenbahn.triskell.org/spip.php?mot8" rel="tag"&gt;TCO&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Le TCO, pour Tableau de Contr&#244;le Optique, est en mod&#233;lisme ferroviaire d&#233;tourn&#233; de l'usage de son grand fr&#232;re. En effet les TCO des postes d'aiguillage ou des postes de commande centralis&#233;s ne servent qu'&#224; l'affichage de l'&#233;tat du r&#233;seau alors qu'en mod&#233;lisme, ils servent aussi &#224; la commande des aiguilles, des d&#233;teleurs, etc.&lt;/p&gt;
&lt;p&gt;Il y a quelques temps, le TCO n'&#233;tait pas dans mes priorit&#233;s, j'avais d'autres chats &#224; fouetter. Les choses ont chang&#233; avec la r&#233;alisation de la carte de pilotage des servo-moteurs mais aussi avec la d&#233;cision de progresser sur tous les fronts en me concentrant sur un seul lieu du r&#233;seau : la gare terminus et principale de &lt;i&gt;Messingrohrstadt&lt;/i&gt;. Le but est de mettre en &#339;uvre les syst&#232;mes (commande des aiguilles, alimentation traction, d&#233;connexion des voies de garage, commande des d&#233;teleurs...) au fur et &#224; mesure qu'ils seront disponibles afin de valider le tout avant de passer &#224; l'installation sur le reste du r&#233;seau.&lt;/p&gt;
&lt;p&gt;La totalit&#233; du r&#233;seau ne sera pas repr&#233;sent&#233;e. Seules les parties visibles le seront. Les parties cach&#233;es seront g&#233;r&#233;es automatiquement. Peu m'importe qu'elle voie est disponible dans la gare cach&#233;es ou si la rame doit &#234;tre retourn&#233;e ou non, c'est l'informatique qui doit se charger de g&#233;rer ces d&#233;tails.&lt;/p&gt;
&lt;p&gt;Philippe avait pris plusieurs longueurs d'avance dans ses r&#233;flexions sur le TCO. Il voulait notamment un TCO tactile. Les technologies envisag&#233;es &#233;taient les syst&#232;mes r&#233;sistifs ou capacitifs. Dans le premier la r&#233;sistance du doigt est d&#233;tect&#233;e, dans le second c'est le courant induit dans notre corps du fait que nous baignons dans le 50Hz du secteur qui est d&#233;tect&#233; via un condensateur (voir &lt;a href=&#034;http://www.sonelec-musique.com/electronique_bases_touches_sensitives.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Touches sensitives&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Ces technologies ne sont pas tr&#232;s faciles &#224; mettre en &#339;uvre. La technologie capacitive est plus s&#233;duisante car mono-point mais demande une mise en &#339;uvre &#233;lectronique plus complexe. Elle consomme aussi une E/S du micro-contr&#244;leur par bouton ce qui, &#233;tant donn&#233; le nombre d'aiguille visibles, n&#233;cessitait plusieurs microcontr&#244;leurs. Je m'&#233;tais donc orient&#233; vers des boutons poussoirs soud&#233;s sur des circuits imprim&#233;s ad-hoc et lus en matrice. Tant pis pour le tactile.&lt;/p&gt;
&lt;p&gt;Et puis Philippe a trouv&#233; LA techno qu'il fallait. Peu ch&#232;re, et tr&#232;s souple &#224; mettre en &#339;uvre : un tableau tactile dot&#233; d'un cadre comportant &#224; gauche et en bas des photodiodes infra-rouge et en vis-&#224;-vis, &#224; droite et en haut (par exemple), des phototransistors infra-rouge &#233;galement. Un doigt pos&#233; &#224; une intersection interrompt un faisceau en X et un faisceau en Y et permet de conna&#238;tre la position du doigt.&lt;/p&gt;
&lt;p&gt;J'avoue avoir &#233;t&#233; sceptique au d&#233;but mais Philippe a effectu&#233; les premiers essais de d&#233;tection &#224; une distance de 60cm avec succ&#232;s ce qui a lev&#233; mes doutes. J'ai aussit&#244;t entrepris de redessiner mon TCO selon une grille de pas 3cm en X et 2cm en Y. Cet espacement est calqu&#233; sur celui choisi par Philippe et permet de garantir&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Pourvu que l'on garde le doigt suffisamment vertical&#034; id=&#034;nh2-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt; que le doigt n'interrompe pas deux faisceaux horizontaux ou verticaux simultan&#233;ment. Un espacement plus important en X qu'en Y conduit &#224; un dessin plus harmonieux du TCO avec des angles de bretelles d'environ 30&#176;.&lt;/p&gt;
&lt;p&gt;Voici donc le dessin auquel j'ai abouti. Le TCO ferait 62cm de largeur sur 22cm de hauteur. Le dessin est en contraste inverse de ce que sera la r&#233;alisation. En effet, il est pr&#233;vu de r&#233;tro-&#233;clairer le TCO pour une exploitation en nocturne et les voies seront par cons&#233;quent illumin&#233;es tandis que les surfaces libres seront noires et opaques. La grille repr&#233;sente le maillage des couples photodiode / phototransistor et permet la mise en &#339;uvre de 231 zones tactiles. 30 d'entre-elles sont occup&#233;es par les boutons de commande des aiguilles et du pont tournant. Le reste est libre pour les autres fonctions qui sont encore &#224; d&#233;finir.&lt;/p&gt;
&lt;div class='spip_document_206 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;40&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/png/tco_touch.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH177/tco_touch-35458.png?1692225209' width='500' height='177' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-206 '&gt;&lt;strong&gt;Dessin du TCO sur une grille 3cm x 2cm
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Le cadre tactile&lt;/h2&gt;
&lt;p&gt;La r&#233;alisation du cadre n&#233;cessite 32 couples photodiode / phototransistor. J'envisage de piloter les photodiodes via 4 registres &#224; d&#233;calage 8 bits&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Je remercie SavignyExpress pour m'avoir r&#233;v&#233;l&#233; l'existence de ces circuits (&#8230;)&#034; id=&#034;nh2-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt; cha&#238;n&#233;s entre eux. Ces circuits permettent de charger une information binaire en s&#233;rie et de la placer sur les sorties en parall&#232;le. De m&#234;me les phototransistors seront lus via 4 registres &#224; d&#233;calage 8 bits impl&#233;mentant la fonction inverse des pr&#233;c&#233;dents et qui permettront de r&#233;cup&#233;rer les entr&#233;es en parall&#232;le et de les extraire en s&#233;rie.&lt;/p&gt;
&lt;p&gt;Ces op&#233;rations d'illumination des photodiodes et de lecture des phototransistors seront effectu&#233;es au moyen d'un micro-contr&#244;leur PIC. Comme les informations sont &#233;mises et r&#233;cup&#233;r&#233;es en s&#233;rie, peu de broches d'entr&#233;es / sortie sont n&#233;cessaires et un PIC 18F26K80 d&#233;di&#233; &#224; cette fonction suffira. Le balayage des couples photodiode / phototransistor sera effectu&#233; &#224; fr&#233;quence moyenne, probablement sup&#233;rieure &#224; 100Hz. &#192; chaque changement de l'&#233;tat du TCO, le micro-contr&#244;leur enverra, sur le bus CAN des accessoires et &#224; destination du contr&#244;leur central, un message donnant l'intersection qui a chang&#233; d'&#233;tat. Nous ne sommes pas en analogique classique et le TCO sera simplement reli&#233; au reste du syst&#232;me via le bus CAN, un c&#226;ble en entr&#233;e et un en sortie, une alimentation 9 ou 12V, c'est tout.&lt;/p&gt;
&lt;p&gt;Les composants sont arriv&#233;s derni&#232;rement et il reste &#224; faire une preuve de concept avec quelques photo-diodes et photo-transistors et une paire de registres &#224; d&#233;calage avant de passer &#224; la r&#233;alisation du cadre et &#224; l'&#233;criture du logiciel. La gravure d'une carte suivra pour finaliser le cadre tactile.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;L'affichage : t&#233;moins et mat&#233;rialisation des boutons&lt;/h2&gt;
&lt;p&gt;L'affichage emploiera des LED de diverses couleurs voire bicolores en 5mm de &#216; pour les zones tactiles et en 3mm de &#216; pour les t&#233;moins. Ici aussi je pense employer des registres &#224; d&#233;calage et un PIC 18F26K80 pour piloter les LED. Structur&#233;s en 4 s&#233;ries de 5 &#224; 6 registres, ces modules permettront de piloter de 160 &#224; 192 LED en n'employant que 16 broches du micro-contr&#244;leur.&lt;/p&gt;
&lt;p&gt;L'affichage sera rafra&#238;chi &#224; fr&#233;quence &#233;lev&#233;e&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2-3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Difficile d'&#234;tre d&#233;finitif &#224; ce sujet &#224; l'heure actuelle mais une &#233;tude (&#8230;)&#034; id=&#034;nh2-3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt; afin de permettre le r&#233;glage de l'intensit&#233; lumineuse en laissant les diodes &#233;teintes une partie du temps sans que l'oeil ne puisse voir de fluctuation. J'envisage ainsi de r&#233;gler le r&#233;tro-&#233;clairage et l'intensit&#233; des voyants avec un r&#233;glage manuel tactile mais aussi automatiquement en fonction de l'&#233;clairage de la pi&#232;ce comme c'est le cas pour les claviers r&#233;tro-&#233;clair&#233;s des MacBook Apple.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb2-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 2-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Pourvu que l'on garde le doigt suffisamment vertical&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb2-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 2-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Je remercie &lt;a href=&#034;http://savignyexpress.wordpress.com&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;SavignyExpress&lt;/a&gt; pour m'avoir r&#233;v&#233;l&#233; l'existence de ces circuits int&#233;gr&#233;s qu'il utilise dans une application de commande de relais&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb2-3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2-3&#034; class=&#034;spip_note&#034; title=&#034;Notes 2-3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;Difficile d'&#234;tre d&#233;finitif &#224; ce sujet &#224; l'heure actuelle mais une &#233;tude rapide sur le coin de l'&#233;vier montre qu'il est possible de charger 1 bit en 5 instructions PIC qui chacune met, en se basant sur une horloge &#224; 16MHz et en arrondissant, 100ns &#224; s'ex&#233;cuter. Par cons&#233;quent, le chargement de 1000 bits (on maximise largement encore une fois en multipliant par 5) demandera 500&#181;s. On peut raisonnablement penser qu'un rafra&#238;chissement toutes les 1ms est faisable. La fr&#233;quence maximum de fonctionnement du micro-contr&#244;leur &#233;tant de 64MHz, il reste une marge de man&#339;uvre.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>La carte de commande 6 servo-moteurs, la messagerie et les commandes</title>
		<link>https://modelleisenbahn.triskell.org/spip.php?article41</link>
		<guid isPermaLink="true">https://modelleisenbahn.triskell.org/spip.php?article41</guid>
		<dc:date>2013-08-23T10:05:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jean-Luc</dc:creator>


		<dc:subject>servo</dc:subject>
		<dc:subject>bus CAN</dc:subject>

		<description>
&lt;p&gt;Le pilotage des servo-moteurs a &#233;t&#233; pr&#233;sent&#233; dans &#171; La carte de commande 6 servo-moteurs, le logiciel &#187;, voici maintenant la messagerie CAN ainsi que les commandes auxquelles la carte r&#233;pond. &lt;br class='autobr' /&gt;
Sur un r&#233;seau CAN, les messages ne comporte pas une ent&#234;te indiquant quelle est la station r&#233;ceptrice. Au lieu de cela, chaque message comporte un identifiant qui sert aussi de priorit&#233;. Les stations int&#233;ress&#233;es par un message le reconnaissent gr&#226;ce &#224; son identifiant. &lt;br class='autobr' /&gt;
Les messages peuvent &#234;tre (&#8230;)&lt;/p&gt;


-
&lt;a href="https://modelleisenbahn.triskell.org/spip.php?rubrique8" rel="directory"&gt;L'&#233;lectronique et l'informatique&lt;/a&gt;

/ 
&lt;a href="https://modelleisenbahn.triskell.org/spip.php?mot5" rel="tag"&gt;servo&lt;/a&gt;, 
&lt;a href="https://modelleisenbahn.triskell.org/spip.php?mot6" rel="tag"&gt;bus CAN&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Le pilotage des servo-moteurs a &#233;t&#233; pr&#233;sent&#233; dans &#171; &lt;a href='https://modelleisenbahn.triskell.org/spip.php?article40' class=&#034;spip_in&#034;&gt;La carte de commande 6 servo-moteurs, le logiciel&lt;/a&gt; &#187;, voici maintenant la messagerie CAN ainsi que les commandes auxquelles la carte r&#233;pond.&lt;/p&gt;
&lt;p&gt;Sur un r&#233;seau CAN, les messages ne comporte pas une ent&#234;te indiquant quelle est la station r&#233;ceptrice. Au lieu de cela, chaque message comporte un identifiant qui sert aussi de priorit&#233;. Les stations int&#233;ress&#233;es par un message le reconnaissent gr&#226;ce &#224; son identifiant.&lt;/p&gt;
&lt;p&gt;Les messages peuvent &#234;tre transport&#233;s par des trames standard et avoir un identifiant sur 11 bits, ou bien par des trames &#233;tendues avec un identifiant sur 23 bits. La messagerie CAN est d&#233;finie globalement pour les 3 participants &#224; ce projet de fa&#231;on &#224; ce que le mat&#233;riel sp&#233;cifique &#224; chacun puisse &#234;tre connect&#233; sur le r&#233;seau CAN des deux autres. Il a &#233;t&#233; convenu que seule les trames standard sont employ&#233;es en exploitation, les trames &#233;tendues sont r&#233;serv&#233;es au diagnostic et &#224; des fonctions sp&#233;ciales comme le flashage de programme via le CAN.&lt;/p&gt;
&lt;p&gt;Par convention, les identifiants des messages en provenance des cartes 6 servos sont donc compris entre 768 et 783 (16 cartes flash&#233;es avec le m&#234;me programme et 96 servos possibles) et ceux destin&#233;s aux cartes 6 servos sont compris entre 784 et 799.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Trame &#233;mise par la carte&lt;/h2&gt;
&lt;p&gt;Les cartes 6 servos &#233;mettent &#224; intervalle r&#233;gulier (toutes les 100ms en exploitation mais cet intervalle est r&#233;glable) une trame de 6 octets comportant l'&#233;tat des servos et dont l'identifiant est :&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;thead&gt;&lt;tr class='row_first'&gt;&lt;th id='idd119_c0'&gt;10&lt;/th&gt;&lt;th id='idd119_c1'&gt;9&lt;/th&gt;&lt;th id='idd119_c2'&gt;8&lt;/th&gt;&lt;th id='idd119_c3'&gt;7&lt;/th&gt;&lt;th id='idd119_c4'&gt;6&lt;/th&gt;&lt;th id='idd119_c5'&gt;5&lt;/th&gt;&lt;th id='idd119_c6'&gt;4&lt;/th&gt;&lt;th id='idd119_c7'&gt;3&lt;/th&gt;&lt;th id='idd119_c8'&gt;2&lt;/th&gt;&lt;th id='idd119_c9'&gt;1&lt;/th&gt;&lt;th id='idd119_c10'&gt;0&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td class='numeric ' headers='idd119_c0'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='idd119_c1'&gt;1&lt;/td&gt;
&lt;td class='numeric ' headers='idd119_c2'&gt;1&lt;/td&gt;
&lt;td class='numeric ' headers='idd119_c3'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='idd119_c4'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='idd119_c5'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='idd119_c6'&gt;0&lt;/td&gt;
&lt;td headers='idd119_c7'&gt;n&lt;/td&gt;
&lt;td headers='idd119_c8'&gt;n&lt;/td&gt;
&lt;td headers='idd119_c9'&gt;n&lt;/td&gt;
&lt;td headers='idd119_c10'&gt;n&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;o&#249; &lt;i&gt;nnnn&lt;/i&gt; est le num&#233;ro de la carte &#233;mettrice sur 4 bits.&lt;/p&gt;
&lt;p&gt;L'octet de rang 0 correspond au servo 0 et celui de rang 5 au servo 5. Un octet est form&#233; de la mani&#232;re suivante :&lt;/p&gt;
&lt;div class='spip_document_122 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;50&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH123/octet_etatpnfb76-09694.png?1692744474' width='500' height='123' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-122 '&gt;&lt;strong&gt;Octet d'une trame &#171; &#201;tats des servos &#187;
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Le champ &lt;strong&gt;&#233;tat&lt;/strong&gt; est l'&#233;tat dans lequel se trouve la machine d'&#233;tats du servo. Les valeurs possibles sont les suivantes :&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;thead&gt;&lt;tr class='row_first'&gt;&lt;th id='ida2b3_c0'&gt;7&lt;/th&gt;&lt;th id='ida2b3_c1'&gt;6&lt;/th&gt;&lt;th id='ida2b3_c2'&gt;5&lt;/th&gt;&lt;th id='ida2b3_c3'&gt;4&lt;/th&gt;&lt;th id='ida2b3_c4'&gt;&#201;tat du servo&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td class='numeric ' headers='ida2b3_c0'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='ida2b3_c1'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='ida2b3_c2'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='ida2b3_c3'&gt;0&lt;/td&gt;
&lt;td headers='ida2b3_c4'&gt;&#233;teint&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td class='numeric ' headers='ida2b3_c0'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='ida2b3_c1'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='ida2b3_c2'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='ida2b3_c3'&gt;1&lt;/td&gt;
&lt;td headers='ida2b3_c4'&gt;calib&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td class='numeric ' headers='ida2b3_c0'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='ida2b3_c1'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='ida2b3_c2'&gt;1&lt;/td&gt;
&lt;td class='numeric ' headers='ida2b3_c3'&gt;0&lt;/td&gt;
&lt;td headers='ida2b3_c4'&gt;op&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td class='numeric ' headers='ida2b3_c0'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='ida2b3_c1'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='ida2b3_c2'&gt;1&lt;/td&gt;
&lt;td class='numeric ' headers='ida2b3_c3'&gt;1&lt;/td&gt;
&lt;td headers='ida2b3_c4'&gt;frein&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td class='numeric ' headers='ida2b3_c0'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='ida2b3_c1'&gt;1&lt;/td&gt;
&lt;td class='numeric ' headers='ida2b3_c2'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='ida2b3_c3'&gt;0&lt;/td&gt;
&lt;td headers='ida2b3_c4'&gt;arr&#234;t&#233;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td class='numeric ' headers='ida2b3_c0'&gt;1&lt;/td&gt;
&lt;td class='numeric ' headers='ida2b3_c1'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='ida2b3_c2'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='ida2b3_c3'&gt;0&lt;/td&gt;
&lt;td headers='ida2b3_c4'&gt;erreur&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Le champ &lt;strong&gt;erreur&lt;/strong&gt; signale sur quel fin de course une erreur a &#233;t&#233; d&#233;tect&#233;e. Notez qu'il peut aussi s'agir d'une panne de servo-moteur. Les valeurs possibles sont les suivantes :&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;thead&gt;&lt;tr class='row_first'&gt;&lt;th id='id1369_c0'&gt;3&lt;/th&gt;&lt;th id='id1369_c1'&gt;2&lt;/th&gt;&lt;th id='id1369_c2'&gt;Erreur&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td class='numeric ' headers='id1369_c0'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='id1369_c1'&gt;0&lt;/td&gt;
&lt;td headers='id1369_c2'&gt;Aucune erreur&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td class='numeric ' headers='id1369_c0'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='id1369_c1'&gt;1&lt;/td&gt;
&lt;td headers='id1369_c2'&gt;Anomalie fin de course horaire&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td class='numeric ' headers='id1369_c0'&gt;1&lt;/td&gt;
&lt;td class='numeric ' headers='id1369_c1'&gt;0&lt;/td&gt;
&lt;td headers='id1369_c2'&gt;Anomalie fin de course trigo&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td class='numeric ' headers='id1369_c0'&gt;1&lt;/td&gt;
&lt;td class='numeric ' headers='id1369_c1'&gt;1&lt;/td&gt;
&lt;td headers='id1369_c2'&gt;Anomalie sur les deux fins de course&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Enfin, le champ &lt;strong&gt;fdc&lt;/strong&gt; donne l'&#233;tat des interrupteurs de fin de course. Les valeurs possibles sont les suivantes :&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;thead&gt;&lt;tr class='row_first'&gt;&lt;th id='idec8f_c0'&gt;1&lt;/th&gt;&lt;th id='idec8f_c1'&gt;0&lt;/th&gt;&lt;th id='idec8f_c2'&gt;Fins de course&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td class='numeric ' headers='idec8f_c0'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='idec8f_c1'&gt;0&lt;/td&gt;
&lt;td headers='idec8f_c2'&gt;Les deux fins de course sont enfonc&#233;s&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td class='numeric ' headers='idec8f_c0'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='idec8f_c1'&gt;1&lt;/td&gt;
&lt;td headers='idec8f_c2'&gt;Fin de course trigo enfonc&#233;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td class='numeric ' headers='idec8f_c0'&gt;1&lt;/td&gt;
&lt;td class='numeric ' headers='idec8f_c1'&gt;0&lt;/td&gt;
&lt;td headers='idec8f_c2'&gt;Fin de course horaire enfonc&#233;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td class='numeric ' headers='idec8f_c0'&gt;1&lt;/td&gt;
&lt;td class='numeric ' headers='idec8f_c1'&gt;1&lt;/td&gt;
&lt;td headers='idec8f_c2'&gt;Aucun des fins de course n'est enfonc&#233;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;h2 class=&#034;spip&#034;&gt;Trames de commande re&#231;ues par la carte&lt;/h2&gt;
&lt;p&gt;Une trame de commande de servo permet d'envoyer une commande &#224; un des servos de la carte ou &#224; la carte dans sa globalit&#233;. L'identifiant d'une trame de commande est :&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;thead&gt;&lt;tr class='row_first'&gt;&lt;th id='idce30_c0'&gt;10&lt;/th&gt;&lt;th id='idce30_c1'&gt;9&lt;/th&gt;&lt;th id='idce30_c2'&gt;8&lt;/th&gt;&lt;th id='idce30_c3'&gt;7&lt;/th&gt;&lt;th id='idce30_c4'&gt;6&lt;/th&gt;&lt;th id='idce30_c5'&gt;5&lt;/th&gt;&lt;th id='idce30_c6'&gt;4&lt;/th&gt;&lt;th id='idce30_c7'&gt;3&lt;/th&gt;&lt;th id='idce30_c8'&gt;2&lt;/th&gt;&lt;th id='idce30_c9'&gt;1&lt;/th&gt;&lt;th id='idce30_c10'&gt;0&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td class='numeric ' headers='idce30_c0'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='idce30_c1'&gt;1&lt;/td&gt;
&lt;td class='numeric ' headers='idce30_c2'&gt;1&lt;/td&gt;
&lt;td class='numeric ' headers='idce30_c3'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='idce30_c4'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='idce30_c5'&gt;0&lt;/td&gt;
&lt;td class='numeric ' headers='idce30_c6'&gt;1&lt;/td&gt;
&lt;td headers='idce30_c7'&gt;n&lt;/td&gt;
&lt;td headers='idce30_c8'&gt;n&lt;/td&gt;
&lt;td headers='idce30_c9'&gt;n&lt;/td&gt;
&lt;td headers='idce30_c10'&gt;n&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;o&#249; &lt;i&gt;nnnn&lt;/i&gt; est le num&#233;ro de la carte destinataire sur 4 bits.&lt;/p&gt;
&lt;p&gt;Si plusieurs commandes doivent &#234;tre envoy&#233;es, plusieurs trames sont n&#233;cessaires. Une trame de commande de servo comprend 2 octets de donn&#233;es. Le premier octet contient, dans les 4 bits de poids fort, le num&#233;ro du servo et, dans les 4 bits de poids faible, la commande. Le second octet contient l'argument de la commande dont la signification est variable selon la commande. Certaines commandes s'adressent &#224; la carte dans sa globalit&#233; et, dans ce cas, le num&#233;ro de servo est ignor&#233;.&lt;/p&gt;
&lt;div class='spip_document_123 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;19&#034; data-legende-lenx=&#034;&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L461xH168/trame_comman116b-9e32b.png?1692205427' width='461' height='168' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-123 '&gt;&lt;strong&gt;Trame de commande
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Commandes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Les commandes sont r&#233;sum&#233;es dans le tableau &#224; la fin du billet.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Commande&lt;/i&gt; Aucune op&#233;ration&lt;/p&gt;
&lt;p&gt;Code : 0000&lt;/p&gt;
&lt;p&gt;Cette commande est sans effet.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Commande&lt;/i&gt; Position&lt;/p&gt;
&lt;p&gt;Code : 0001&lt;/p&gt;
&lt;p&gt;La commande de position permet de fixer la consigne de position d'un servo. L'argument peut avoir les valeurs suivantes :&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;thead&gt;&lt;tr class='row_first'&gt;&lt;th id='id72ed_c0'&gt;Argument&lt;/th&gt;&lt;th id='id72ed_c1'&gt;Signification&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id72ed_c0'&gt;00 (0)&lt;/td&gt;
&lt;td headers='id72ed_c1'&gt;Pas de changement de position&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id72ed_c0'&gt;01 (1)&lt;/td&gt;
&lt;td headers='id72ed_c1'&gt;Position trigo&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id72ed_c0'&gt;10 (2)&lt;/td&gt;
&lt;td headers='id72ed_c1'&gt;Position horaire&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id72ed_c0'&gt;11 (3)&lt;/td&gt;
&lt;td headers='id72ed_c1'&gt;Position milieu&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;i&gt;Les commandes de vitesse&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Les commandes de vitesse permettent de fixer la vitesse de rotation du servo dans le sens trigonom&#233;trique, horaire ou les deux &#224; la fois. Si le servo est en mouvement au moment de la r&#233;ception d'une commande de vitesse, la nouvelle vitesse ne sera prise en compte que pour le mouvement suivant.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Commande&lt;/i&gt; Vitesse trigo&lt;/p&gt;
&lt;p&gt;Code : 0010&lt;/p&gt;
&lt;p&gt;La commande Vitesse trigo permet de fixer la vitesse du servo quand il tourne dans le sens trigonom&#233;trique. L'argument est la vitesse sur 3 bits (de 1 &#224; 7) dans les bits 2 &#224; 0 de l'argument. La valeur 0 est sans effet.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Commande&lt;/i&gt; Vitesse horaire&lt;/p&gt;
&lt;p&gt;Code : 0011&lt;/p&gt;
&lt;p&gt;La commande Vitesse horaire permet de fixer la vitesse du servo quand il tourne dans le sens horaire. L'argument est la vitesse sur 3 bits (de 1 &#224; 7) dans les bits 2 &#224; 0 de l'argument. La valeur 0 est sans effet.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Commande&lt;/i&gt; Vitesses&lt;/p&gt;
&lt;p&gt; Code : 0100&lt;/p&gt;
&lt;p&gt;La commande Vitesses permet de fixer &#224; la fois les vitesses trigonom&#233;trique et horaire du servo. L'argument est la vitesse trigonom&#233;trique sur les bits 6 &#224; 4 (de 1 &#224; 7) et la vitesse horaire sur les bits 2 &#224; 0. Pour les deux vitesses, la valeur 0 est sans effet.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Commande&lt;/i&gt; Alimentation servo&lt;/p&gt;
&lt;p&gt;Code : 0101&lt;/p&gt;
&lt;p&gt;La commande Alimentation servo permet d'allumer ou d'&#233;teindre un servo. L'argument est 0 (extinction) ou 1 (allumage) dans le bit 0 de l'argument. L'allumage est sans effet si le servo n'est pas dans l'&#233;tat servo &#233;teint. L'extinction est toujours effective.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Commande&lt;/i&gt; Reset servo&lt;/p&gt;
&lt;p&gt;Code : 0110&lt;/p&gt;
&lt;p&gt;Cette commande permet de passer un servo de l'&#233;tat Servo en erreur &#224; l'&#233;tat Servo &#233;teint. Aucun argument n'est n&#233;cessaire. La commande est sans effet si le servo n'est pas dans l'&#233;tat Servo en erreur.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Commande&lt;/i&gt; Envoi trame d'&#233;tat&lt;/p&gt;
&lt;p&gt;Code : 0111&lt;/p&gt;
&lt;p&gt;Cette commande permet de d&#233;marrer ou d'arr&#234;ter l'envoi de la trame d'&#233;tat des servos. Le num&#233;ro de servo est ignor&#233;. Au d&#233;marrage, l'envoi est arr&#234;t&#233;. L'argument est 0 (arr&#234;t) ou 1 (d&#233;marrage) dans le bit 0 de l'argument.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Commande&lt;/i&gt; P&#233;riode d'envoi trame d'&#233;tat&lt;/p&gt;
&lt;p&gt;Code : 1000&lt;/p&gt;
&lt;p&gt;Cette commande permet de fixer la p&#233;riode d'envoi de la trame d'&#233;tat des servos. Cette p&#233;riode est r&#233;glable par multiple de 20ms. La valeur 0 correspond &#224; une p&#233;riode de 20ms, 1 &#224; 40ms, . . . 255 &#224; 5,12s.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Commande&lt;/i&gt; Fixer nombre d'erreur maximum&lt;/p&gt;
&lt;p&gt;Code : 1001&lt;/p&gt;
&lt;p&gt;Cette commande permet de fixer le nombre d'erreurs admissible avant qu'un servo passe dans l'&#233;tat servo erreur.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Commande&lt;/i&gt; Ecrire param&#232;tres dans EEPROM&lt;/p&gt;
&lt;p&gt;Code : 1010&lt;/p&gt;
&lt;p&gt;Cette commande permet d'enregistrer les param&#232;tres utiles d'un d&#233;marrage sur l'autre dans l'EEPROM.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Commande&lt;/i&gt; Limiter le nombre de servos en mouvement&lt;/p&gt;
&lt;p&gt;Code : 1011&lt;/p&gt;
&lt;p&gt;Cette commande permet de limiter le nombre de servos qui peuvent &#234;tre en mouvement simultan&#233;ment. L'argument est le nombre de servos. Un argument de 0 est sans effet. Un argument sup&#233;rieur &#224; 6 est ramen&#233; &#224; 6.&lt;/p&gt;
&lt;div class='spip_document_126 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;22&#034; data-legende-lenx=&#034;&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/png/commandespng5fd2.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH216/commandespng5fd2-07c32.png?1692744474' width='500' height='216' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-126 '&gt;&lt;strong&gt;R&#233;sum&#233; des commandes
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Ce billet conclut la pr&#233;sentation de la carte 6 servos. Rendez vous dans la rubrique &#171; &lt;a href='https://modelleisenbahn.triskell.org/spip.php?rubrique17' class=&#034;spip_in&#034;&gt;Journal de bord&lt;/a&gt; &#187; pour la suite.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>La carte de commande 6 servo-moteurs, le logiciel</title>
		<link>https://modelleisenbahn.triskell.org/spip.php?article40</link>
		<guid isPermaLink="true">https://modelleisenbahn.triskell.org/spip.php?article40</guid>
		<dc:date>2013-08-21T11:41:50Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jean-Luc</dc:creator>


		<dc:subject>servo</dc:subject>

		<description>
&lt;p&gt;Le logiciel de la carte 6 servos remplit les fonctions suivantes : pilotage de chacun des 6 servos avec d&#233;tection d'erreur interfa&#231;age avec le contr&#244;leur central : r&#233;ception de commandes, &#233;mission de l'&#233;tat des servos. &lt;br class='autobr' /&gt;
Le pilotage des servos &lt;br class='autobr' /&gt;
Multiplexage des servos &lt;br class='autobr' /&gt;
Comme indiqu&#233; dans &#171; La carte de commande 6 servo-moteurs, le mat&#233;riel &#187; un servo-moteur est command&#233; via une consigne en PWM qui se r&#233;p&#232;te toutes les 20 ms. Comme 6 servos sont &#224; commander, les 20 ms sont d&#233;coup&#233;s en 6 (&#8230;)&lt;/p&gt;


-
&lt;a href="https://modelleisenbahn.triskell.org/spip.php?rubrique8" rel="directory"&gt;L'&#233;lectronique et l'informatique&lt;/a&gt;

/ 
&lt;a href="https://modelleisenbahn.triskell.org/spip.php?mot5" rel="tag"&gt;servo&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Le logiciel de la carte 6 servos remplit les fonctions suivantes :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; pilotage de chacun des 6 servos avec d&#233;tection d'erreur&lt;/li&gt;&lt;li&gt; interfa&#231;age avec le contr&#244;leur central : r&#233;ception de commandes, &#233;mission de l'&#233;tat des servos.&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;Le pilotage des servos&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Multiplexage des servos&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Comme indiqu&#233; dans &#171; &lt;a href='https://modelleisenbahn.triskell.org/spip.php?article36' class=&#034;spip_in&#034;&gt;La carte de commande 6 servo-moteurs, le mat&#233;riel&lt;/a&gt; &#187; un servo-moteur est command&#233; via une consigne en PWM qui se r&#233;p&#232;te toutes les 20 ms. Comme 6 servos sont &#224; commander, les 20 ms sont d&#233;coup&#233;s en 6 intervalles de 3,33 ms. Dans chacun de ces intervalles, la PWM du servo correspondant est g&#233;n&#233;r&#233;e. C'est &#224; dire que le signal de commande est mis &#224; 1 au d&#233;marrage de l'intervalle et mis &#224; 0 au bout du temps correspondant &#224; la position demand&#233;e.&lt;/p&gt;
&lt;div class='spip_document_114 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;62&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/png/multiplexage.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH279/multiplexage-11ef4.png?1692744474' width='500' height='279' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-114 '&gt;&lt;strong&gt;Multiplexage de la commande des servos sur 6 slots de 3,33ms
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Les instants des slots sont g&#233;r&#233;s au moyen d'un timer 8 bits. Il n'est pas possible de compter jusqu'&#224; 3,33 ms et le &lt;i&gt;tick&lt;/i&gt; de base a donc &#233;t&#233; fix&#233; &#224; approximativement un sixi&#232;me de 3,33 ms, soit 552 &#181;s. Par cons&#233;quent, une interruptions est g&#233;n&#233;r&#233;e tous les 552 &#181;s et toutes les 6 interruptions le logiciel g&#232;re l'un des servos.&lt;/p&gt;
&lt;p&gt;Le signal de commande est mis &#224; 1 et un second timer est programm&#233; avec la dur&#233;e voulue pour la PWM. Lorsque ce timer expire, une interruption est g&#233;n&#233;r&#233;e et le logiciel remet la commande &#224; 0.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Machine d'&#233;tats d'un servo&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&#192; chaque servo est associ&#233;e une machine d'&#233;tats qui permet de fixer la valeur des signaux de commande d'allumage et de PWM. Les entr&#233;es de cette machine sont les &#233;tats des interrupteurs de fin de course et les commandes re&#231;ues (allumage, consigne de position) ainsi que des variables internes.&lt;/p&gt;
&lt;div class='spip_document_121 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;41&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://modelleisenbahn.triskell.org/IMG/png/machine_serv9d8a.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L500xH317/machine_serv9d8a-20761.png?1692744475' width='500' height='317' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-121 '&gt;&lt;strong&gt;Machine d'&#233;tats associ&#233;e &#224; chaque servo
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;La machine d&#233;marre dans l'&#233;tat initial &lt;i&gt;&#233;teint&lt;/i&gt; avec une consigne &#233;gale &#224; l'&#233;tat des interrupteurs de fin de course. Un commande d'allumage, &lt;i&gt;on&lt;/i&gt;, conduit au calcul d'une vitesse de d&#233;placement nulle si le servo est dans la position milieu et positive ou n&#233;gative si l'un des interrupteurs de fin de course est enfonc&#233;. Cette vitesse est telle que le servo va se d&#233;sengager du fin de course enfonc&#233;. La machine passe dans l'&#233;tat &lt;i&gt;calib&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Dans l'&#233;tat &lt;i&gt;calib&lt;/i&gt;, la vitesse est maintenue tant que l'interrupteur de fin de course concern&#233; est enfonc&#233; (fdc = consigne). D&#232;s qu'il n'est plus enfonc&#233; (fdc &#8800; consigne), la vitesse de d&#233;placement est mise &#224; 0 et la machine passe dans l'&#233;tat &lt;i&gt;arr&#234;t&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;On reste dans l'&#233;tat &lt;i&gt;arr&#234;t&lt;/i&gt; tant que la consigne est identique &#224; l'&#233;tat des interrupteurs de fins de course (fdc = consigne). Si la consigne n'est pas atteinte ou change (fdc &#8800; consigne), la vitesse permettant de satisfaire la consigne est calcul&#233;e et la machine passe dans l'&#233;tat &lt;i&gt;op&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Dans l'&#233;tat &lt;i&gt;op&lt;/i&gt;, la vitesse est maintenue tant que l'interrupteur de fin de course concern&#233; n'est pas enfonc&#233; (fdc &#8800; consigne). D&#232;s qu'il est enfonc&#233; (fdc = consigne), un compteur est initialis&#233; (cpt &#10229; N) et la machine passe dans l'&#233;tat &lt;i&gt;frein&lt;/i&gt;. On n'arr&#234;te pas imm&#233;diatement le servo, on continue de mani&#232;re &#224; bien enfoncer l'interrupteur de fin de course. &#201;videmment il faut tenir compte de la vitesse et de l'inertie du moteur pour calculer N. Plus la vitesse est grande et plus N doit &#234;tre petit. Le calcul est le suivant N = 2 &#215; (Vmax - V).&lt;/p&gt;
&lt;p&gt;Dans l'&#233;tat &lt;i&gt;frein&lt;/i&gt;, le mouvement du servo est poursuivi et &lt;i&gt;cpt&lt;/i&gt; d&#233;cr&#233;ment&#233; tant qu'il n'est pas nul. Si &lt;i&gt;cpt&lt;/i&gt; devient nul, la vitesse du servo est mise &#224; 0 et la machine passe dans l'&#233;tat &lt;i&gt;arr&#234;t&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;La PWM n'est g&#233;n&#233;r&#233;e que dans les &#233;tats &lt;i&gt;calib&lt;/i&gt;, &lt;i&gt;op&lt;/i&gt; et &lt;i&gt;frein&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;D&#233;tection des erreurs&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le logiciel v&#233;rifie les conditions d'erreur en confrontant la valeur de la PWM (c'est &#224; dire la position attendue du servo) avec l'&#233;tat des interrupteurs de fin de course. 3 valeurs de PWM de r&#233;f&#233;rence sont employ&#233;es : la valeur correspondant &#224; la position milieu&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb3-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;une valeur pr&#233;cise n'est pas n&#233;cessaire, il suffit d'avoir une valeur (&#8230;)&#034; id=&#034;nh3-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;, une valeur extr&#234;me dans le sens horaire et une valeur extr&#234;me dans le sens trigonom&#233;trique. Ces deux derni&#232;res valeurs correspondent &#224; des positions m&#233;caniques non atteignables. Si la PWM est entre la valeur milieu et la valeur extr&#234;me horaire, on dit qu'elle est dans le secteur horaire. Si elle est entre la position milieu et la valeur extr&#234;me trigo, on dit qu'elle est dans le secteur trigo.&lt;/p&gt;
&lt;p&gt;Les conditions suivantes sont test&#233;es :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; interrupteur de fin de course horaire enfonc&#233; et PWM dans le secteur trigo : panne du servo ou fin de course horaire coll&#233; ;&lt;/li&gt;&lt;li&gt; interrupteur de fin de course trigo enfonc&#233; et PWM dans le secteur horaire : panne du servo ou fin de course trigo coll&#233; ;&lt;/li&gt;&lt;li&gt; interrupteur de fin de course horaire non enfonc&#233; et PWM au del&#224; de la position extr&#234;me horaire : panne du servo ou fin de course horaire manquant ou en panne ;&lt;/li&gt;&lt;li&gt; interrupteur de fin de course trigo non enfonc&#233; et PWM au del&#224; de la position extr&#234;me trigo : panne du servo ou fin de course trigo manquant ou en panne ;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;De fa&#231;on a &#234;tre robuste vis-&#224;-vis des erreurs transitoires, la d&#233;tection d'une erreur ne provoque pas imm&#233;diatement le passage dans l'&#233;tat &lt;i&gt;erreur&lt;/i&gt;. Un compteur d'erreurs est associ&#233; &#224; chaque servo. La d&#233;tection d'une erreur engendre l'incr&#233;mentation de ce compteur. L'absence d'erreur engendre sa d&#233;cr&#233;mentation. Si le compteur d&#233;passe un seuil, alors le passage dans l'&#233;tat &lt;i&gt;erreur&lt;/i&gt; se produit.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;La s&#233;quence l'allumage&lt;/h2&gt;
&lt;p&gt;Lorsque le logiciel d&#233;marre, tous les servos voient leur commande d'allumage mise &#224; &lt;i&gt;on&lt;/i&gt;. Toutefois, le comportement voulu est un allumage s&#233;quentiel, ceci afin de limiter l'appel de courant. Pour cela, un jeton autorisant l'allumage est partag&#233; par les machines d'&#233;tats des servos. Le premier servo qui s'allume prend le jeton et ne le rel&#226;che que lorsqu'il passe dans l'&#233;tat &lt;i&gt;arr&#234;t&lt;/i&gt; ou bien si une erreur est d&#233;tect&#233;e. Le servo suivant ne peut donc d&#233;marrer que lorsque le servo qui d&#233;tient le jeton a termin&#233; son allumage. Ce jeton n'est pas un bool&#233;en. En effet, chaque machine d'&#233;tats doit savoir si c'est elle qui poss&#232;de le jeton, ceci afin de pouvoir le rel&#226;cher au bon moment. Le jeton est donc initialis&#233; &#224; -1 (non poss&#233;d&#233;) et contient sinon le num&#233;ro de la machine qui le poss&#232;de.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Limitation du nombre de servo en mouvement&lt;/h2&gt;
&lt;p&gt;&#201;galement pour des raisons de consommation, le nombre de servos en mouvement peut-&#234;tre limit&#233;. &#192; cet effet, un compteur est partag&#233; par les machines d'&#233;tat. Ce compteur est initialis&#233; aux nombre de servos qui peuvent bouger simultan&#233;ment. Une machine ne peut commencer un mouvement que si ce compteur est &gt; 0. Quand une machine commence le mouvement d'un servo (passage de l'&#233;tat &lt;i&gt;arr&#234;t&lt;/i&gt; &#224; l'&#233;tat &lt;i&gt;op&lt;/i&gt;, elle d&#233;cr&#233;mente ce compteur pour le rel&#226;cher quand elle passe dans l'&#233;tat &lt;i&gt;arr&#234;t&lt;/i&gt; ou &lt;i&gt;erreur&lt;/i&gt;.&lt;/p&gt;
&lt;div class=&#034;spip_document_111 spip_document spip_documents spip_document_video spip_document_avec_legende&#034; data-legende-len=&#034;45&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;div class=&#034;video-intrinsic-wrapper&#034; style='height:0;width:640px;max-width:100%;padding-bottom:75%;position:relative;'&gt; &lt;div class=&#034;video-wrapper&#034; style=&#034;position: absolute;top:0;left:0;width:100%;height:100%;&#034;&gt; &lt;video class=&#034;mejs mejs-111&#034; data-id=&#034;d0cb9505718327ecc203d91f0884052a&#034; data-mejsoptions='{&#034;iconSprite&#034;: &#034;plugins-dist/medias/lib/mejs/mejs-controls.svg&#034;,&#034;alwaysShowControls&#034;: true,&#034;pluginPath&#034;:&#034;plugins-dist/medias/lib/mejs/&#034;,&#034;loop&#034;:false,&#034;videoWidth&#034;:&#034;100%&#034;,&#034;videoHeight&#034;:&#034;100%&#034;}' width=&#034;100%&#034; height=&#034;100%&#034; controls=&#034;controls&#034; preload=&#034;none&#034; &gt; &lt;source type=&#034;application/x-shockwave-flash&#034; src=&#034;http://www.youtube.com/v/M3bmHMFShvI?hl=fr_FR&amp;version=3&amp;rel=0&#034; /&gt; &lt;img src='https://modelleisenbahn.triskell.org/local/cache-vignettes/L64xH64/swf-d2c4d-75a7b.svg?1779463451' width='64' height='64' alt='Impossible de lire la video' /&gt; &lt;/video&gt; &lt;/div&gt;
&lt;/div&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-111 '&gt;&lt;strong&gt;Limitation du nombre de servos en mouvement
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;
&lt;div class=&#034;base64javascript8368435686a3b6d567408c3.68057396&#034; title=&#034;PHNjcmlwdD4gdmFyIG1lanNwYXRoPSdwbHVnaW5zLWRpc3QvbWVkaWFzL2xpYi9tZWpzL21lZGlhZWxlbWVudC1hbmQtcGxheWVyLm1pbi5qcz8xNzc5NDQzNTM4JyxtZWpzY3NzPSdwbHVnaW5zLWRpc3QvbWVkaWFzL2xpYi9tZWpzL21lZGlhZWxlbWVudHBsYXllci5taW4uY3NzPzE3Nzk0NDM1MzgnOwp2YXIgbWVqc2xvYWRlcjsKKGZ1bmN0aW9uKCl7dmFyIGE9bWVqc2xvYWRlcjsidW5kZWZpbmVkIj09dHlwZW9mIGEmJihtZWpzbG9hZGVyPWE9e2dzOm51bGwscGx1Zzp7fSxjc3M6e30saW5pdDpudWxsLGM6MCxjc3Nsb2FkOm51bGx9KTthLmluaXR8fChhLmNzc2xvYWQ9ZnVuY3Rpb24oYyl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhLmNzc1tjXSl7YS5jc3NbY109ITA7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpO2IuaHJlZj1jO2IucmVsPSJzdHlsZXNoZWV0IjtiLnR5cGU9InRleHQvY3NzIjtkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKGIpfX0sYS5pbml0PWZ1bmN0aW9uKCl7ITA9PT1hLmdzJiZmdW5jdGlvbihjKXtqUXVlcnkoImF1ZGlvLm1lanMsdmlkZW8ubWVqcyIpLm5vdCgiLmRvbmUsLm1lanNfX3BsYXllciIpLmVhY2goZnVuY3Rpb24oKXtmdW5jdGlvbiBiKCl7dmFyIGU9ITAsaDtmb3IoaCBpbiBkLmNzcylhLmNzc2xvYWQoZC5jc3NbaF0pO2Zvcih2YXIgZiBpbiBkLnBsdWdpbnMpInVuZGVmaW5lZCI9PQp0eXBlb2YgYS5wbHVnW2ZdPyhlPSExLGEucGx1Z1tmXT0hMSxqUXVlcnkuZ2V0U2NyaXB0KGQucGx1Z2luc1tmXSxmdW5jdGlvbigpe2EucGx1Z1tmXT0hMDtiKCl9KSk6MD09YS5wbHVnW2ZdJiYoZT0hMSk7ZSYmalF1ZXJ5KCIjIitjKS5tZWRpYWVsZW1lbnRwbGF5ZXIoalF1ZXJ5LmV4dGVuZChkLm9wdGlvbnMse3N1Y2Nlc3M6ZnVuY3Rpb24oYSxjKXtmdW5jdGlvbiBiKCl7dmFyIGI9alF1ZXJ5KGEpLmNsb3Nlc3QoIi5tZWpzX19pbm5lciIpO2EucGF1c2VkPyhiLmFkZENsYXNzKCJwYXVzaW5nIiksc2V0VGltZW91dChmdW5jdGlvbigpe2IuZmlsdGVyKCIucGF1c2luZyIpLnJlbW92ZUNsYXNzKCJwbGF5aW5nIikucmVtb3ZlQ2xhc3MoInBhdXNpbmciKS5hZGRDbGFzcygicGF1c2VkIil9LDEwMCkpOmIucmVtb3ZlQ2xhc3MoInBhdXNlZCIpLnJlbW92ZUNsYXNzKCJwYXVzaW5nIikuYWRkQ2xhc3MoInBsYXlpbmciKX1iKCk7YS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IixiLCExKTsKYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5aW5nIixiLCExKTthLmFkZEV2ZW50TGlzdGVuZXIoInBhdXNlIixiLCExKTthLmFkZEV2ZW50TGlzdGVuZXIoInBhdXNlZCIsYiwhMSk7Zy5hdHRyKCJhdXRvcGxheSIpJiZhLnBsYXkoKX19KSl9dmFyIGc9alF1ZXJ5KHRoaXMpLmFkZENsYXNzKCJkb25lIiksYzsoYz1nLmF0dHIoImlkIikpfHwoYz0ibWVqcy0iK2cuYXR0cigiZGF0YS1pZCIpKyItIithLmMrKyxnLmF0dHIoImlkIixjKSk7dmFyIGQ9e29wdGlvbnM6e30scGx1Z2luczp7fSxjc3M6W119LGUsaDtmb3IoZSBpbiBkKWlmKGg9Zy5hdHRyKCJkYXRhLW1lanMiK2UpKWRbZV09alF1ZXJ5LnBhcnNlSlNPTihoKTtiKCl9KX0oalF1ZXJ5KX0pO2EuZ3N8fCgidW5kZWZpbmVkIiE9PXR5cGVvZiBtZWpzY3NzJiZhLmNzc2xvYWQobWVqc2NzcyksYS5ncz1qUXVlcnkuZ2V0U2NyaXB0KG1lanNwYXRoLGZ1bmN0aW9uKCl7YS5ncz0hMDthLmluaXQoKTtqUXVlcnkoYS5pbml0KTtvbkFqYXhMb2FkKGEuaW5pdCl9KSl9KSgpOzwvc2NyaXB0Pg==&#034;&gt;&lt;/div&gt; &lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Un prochain article pr&#233;sentera les commandes possibles et la messagerie CAN.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb3-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh3-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 3-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;une valeur pr&#233;cise n'est pas n&#233;cessaire, il suffit d'avoir une valeur correspondant &#224; une position o&#249; aucun des interrupteurs de fin de course n'est enfonc&#233;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
