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

<channel>
	<title>Random notes &#38; other stuff... &#187; french</title>
	<atom:link href="http://leucos.lstilde.org/wp/tag/french/feed/" rel="self" type="application/rss+xml" />
	<link>http://leucos.lstilde.org/wp</link>
	<description>...about Linux, electronics, digital photography, whatever...</description>
	<lastBuildDate>Wed, 16 Dec 2009 00:29:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Conditionnement de signal piezo</title>
		<link>http://leucos.lstilde.org/wp/2009/12/conditionnement-de-signal-piezo/</link>
		<comments>http://leucos.lstilde.org/wp/2009/12/conditionnement-de-signal-piezo/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 00:24:37 +0000</pubDate>
		<dc:creator>leucos</dc:creator>
				<category><![CDATA[electronics]]></category>
		<category><![CDATA[french]]></category>
		<category><![CDATA[piezo]]></category>
		<category><![CDATA[sensor]]></category>
		<category><![CDATA[transducer]]></category>

		<guid isPermaLink="false">http://leucos.lstilde.org/wp/?p=542</guid>
		<description><![CDATA[(an english translation for this article is available here)

Les transducteurs Piezo sont très courants, ne coutent rien, et peuvent se révéler d&#8217;excellent capteurs : son, choc, vibrations; tant que quelque chose &#171;&#160;bouge&#160;&#187; suffisamment ou fait du bruit, un capteur piézo peut être intéressant.
En revanche, le signal généré par ces petites bêtes n&#8217;est pas très amical [...]]]></description>
			<content:encoded><![CDATA[<p><em>(an english translation for this article is available <a href="http://leucos.lstilde.org/wp/2009/06/piezo-transducer-signal-conditioning/">here</a>)<br />
</em></p>
<p>Les transducteurs Piezo sont très courants, ne coutent rien, et peuvent se révéler d&#8217;excellent capteurs : son, choc, vibrations; tant que quelque chose &laquo;&nbsp;bouge&nbsp;&raquo; suffisamment ou fait du bruit, un capteur piézo peut être intéressant.</p>
<p>En revanche, le signal généré par ces petites bêtes n&#8217;est pas très amical pour l&#8217;amateur d&#8217;électronique digitale : en gros, c&#8217;est une sinusoïde qui s&#8217;aplatit avec le temps. Par ailleurs, le signal se promène souvent dans les quartiers mal fréquentés des tensions négatives, ce qui n&#8217;est pas très agréable pour la plupart des chips et µcontrolleurs utilisés en électronique digitale. Par exemple, la datasheet de l&#8217;ATMega 168 (et c&#8217;est pareil pour la plupart des µ 8 bits d&#8217;atmel) indique que la tension appliquée à n&#8217;importe quelle patte doit se trouver entre -0.5V et VCC+0.5V. Les transducteurs piézo peuvent allègrement dépasser ces limites.</p>
<p>Dans la capture ci-dessous, la tension lue aux bornes du piézo descend jusqu&#8217;à -52V et monte jusqu&#8217;à 9.2V. Ca fait plus de 60V crête à crête. Si on ne fait rien, le µ peut rapidement en faire une jaunisse&#8230; :</p>
<div id="attachment_236" class="wp-caption aligncenter" style="width: 330px"><a href="http://leucos.lstilde.org/wp/wp-content/uploads/2009/05/newfile_01.png"><img class="size-full wp-image-236" title="PiezoRaw1" src="http://leucos.lstilde.org/wp/wp-content/uploads/2009/05/newfile_01.png" alt="Raw signal from piezo (2)" width="320" height="240" /></a><p class="wp-caption-text">Signal brut du piezo</p></div>
<p>Dans la capture suivante, le signal descend d&#8217;abord à -20V, puis s&#8217;envole au dessus de 35V. Presque 60Vpp (crête à crête) ici aussi :</p>
<div id="attachment_237" class="wp-caption aligncenter" style="width: 330px"><a href="http://leucos.lstilde.org/wp/wp-content/uploads/2009/05/newfile_09.png"><img class="size-full wp-image-237" title="PiezoRaw1" src="http://leucos.lstilde.org/wp/wp-content/uploads/2009/05/newfile_09.png" alt="Raw signal from piezo" width="320" height="240" /></a><p class="wp-caption-text">Signal brut du piezo (bis)</p></div>
<p>Ce ne sont que des exemples. Je n&#8217;ai pas torturé ou frappé au marteau sur le piezo. Tapotez le juste avec un ongle et vous vous retrouverez en général avec des valeurs crête à crête énormes. L&#8217;autre problème c&#8217;est que ces valeurs sont imprévisible (les piézos le sont, mais pas la manière dont on les brutalise) : ça peut commencer par monter, puis descendre, puis monter, qui sait&#8230;</p>
<p>Un petit coup de zoom montre l&#8217;effet &laquo;&nbsp;sinusoïde qui s&#8217;aplatit&nbsp;&raquo; que l&#8217;on observe en général après les plus gros pics de tension :</p>
<div id="attachment_243" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-243" title="Piezo signal close up" src="http://leucos.lstilde.org/wp/wp-content/uploads/2009/05/newfile_04.png" alt="Piezo signal close up" width="320" height="240" /><p class="wp-caption-text">Agrandissement du signal piezo</p></div>
<p>Le conditionnement de signal est donc une étape obligatoire si l&#8217;on travaille en digital avec des piézos.</p>
<p>Récapitulons ce que nous devons faire au signal pour le dompter :</p>
<ol>
<li>rendre le signal positif : la plupart du temps, les piezos sont lus par des CAN (convertisseurs analogiques/numériques), on veut donc des tensions positives</li>
<li>restreindre son amplitude entre 0 et VCC, pour éviter que la tension n&#8217;affiche des valeurs effrayantes pour des µcontrolleurs et des CAN.</li>
<li>modifier la forme du signal pour éviter les bosses, et le rendre plus propre et prévisible</li>
</ol>
<p>Tout cela n&#8217;est pas très compliqué à obtenir en fait. On va y aller en trois étapes, traitant respectivement les trois points ci-dessus :</p>
<ol>
<li>ajouter un redresseur simple alternance, pour garder la partie positive du signal</li>
<li>ajout d&#8217;une diode zener pour éviter que les valeurs de signal soient supérieure à la tension d&#8217;avalanche de la zener</li>
<li>ajouter un couple RC afin de filtrer les vaguelettes du signal</li>
</ol>
<p><strong>Redresseur simple alternance</strong></p>
<p>En premier lieu, nous voulons rectifier le signal piezo, c&#8217;est à dire le rendre toujours positif. Pour cela, nous allons utiliser des diodes Schottky. Les diodes Schottky sont plus intéressantes car elles ont un seuil de tension directe (Vf) très bas (par comparaison avec des diodes standard), aux alentours de 0.3V.</p>
<div id="attachment_300" class="wp-caption alignleft" style="width: 160px"><a href="http://leucos.lstilde.org/wp/wp-content/uploads/2009/05/piezo_full_bridge.png"><img class="size-thumbnail wp-image-300" title="piezo_full_bridge" src="http://leucos.lstilde.org/wp/wp-content/uploads/2009/05/piezo_full_bridge-150x150.png" alt="Piezo signal as seen after a full-wave rectifier" width="150" height="150" /></a><p class="wp-caption-text">Signal du piezo vu derrière un pont redresseur complet</p></div>
<p>On peut se demander : pourquoi ne pas utiliser un pont redresseur complet à base de Schottky et rendre le signal tout entier positif (comme si l&#8217;on prenait la valeur absolue du signal) au lieu d&#8217;ignorer les tensions négatives ?</p>
<p>Regardons les premières captures de signal brut à l&#8217;oscillo. Lorsque le signal change de signe, il le fait plutôt violemment, et son amplitude peut même être plus importante après le croisement du zéro qu&#8217;avant. Maintenant essayons d&#8217;appliquer la fonction mathématique &#8216;abs&#8217; sur la courbe. On va se retrouver avec une courbe erratique : faible amplitude, plus haute, puis faible, etc&#8230; Même avec un filtrage poussé, ça sera difficile d&#8217;arriver à quelque chose de propre, et on aura toujours une coube sautillante, moins sauve que l&#8217;originale et complètement positive certes, ais difficilement exploitable.</p>
<p>L&#8217;idée consiste donc à sacrifier la partie négative de la courbe pour obtenir un résultat plus lisse (le bug Agilent est offert gracieusement).</p>
<div id="attachment_308" class="wp-caption alignleft" style="width: 160px"><a href="http://leucos.lstilde.org/wp/wp-content/uploads/2009/05/piezo_no_2nd_schottky2.png"><img class="size-thumbnail wp-image-308" title="PiezoNo2ndSchottky" src="http://leucos.lstilde.org/wp/wp-content/uploads/2009/05/piezo_no_2nd_schottky2-150x150.png" alt="Piezo signal rectified by only one Schottky diode" width="150" height="150" /></a><p class="wp-caption-text">Signal du piezo signal rectifié seulement par une diode Schottky</p></div>
<p>En fait, on va faire un peu plus qu&#8217;un redresseur simple alternance. Si on ne met qu&#8217;une diode Schottky en série on se retrouvera avec une courbe ressemblant à elle de gauche. Nous pouvons voir qu&#8217;il reste une partie non négligeable du signal sous 0V, et dans notre circuit, ce n&#8217;est pas censé se produire.<br />
Même dans l&#8217;éventualité ou l&#8217;ADC s&#8217;en accommoderait, il ne ferait pas vraiment d&#8217;étincelles en mesurant une tension négative.</p>
<p>Il y a surement une bonne raison pour que le signal se comporte de la sorte, mais je ne la connais pas. N&#8217;hésitez pas à commenter si vous avez la réponse.</p>
<p>On doit donc se débarrasser de ce reliquat négatif et pour cela, nous allons utiliser une deuxième Schottky entre la masse et le signal. On ne garde que le signal positif, ca sera nettement plus simple comme ça.</p>
<div id="attachment_311" class="wp-caption alignleft" style="width: 160px"><a href="http://leucos.lstilde.org/wp/wp-content/uploads/2009/05/piezo_rectified.png"><img class="size-thumbnail wp-image-311" title="PiezoRecified" src="http://leucos.lstilde.org/wp/wp-content/uploads/2009/05/piezo_rectified-150x150.png" alt="Piezo signal rectified by two Schottky" width="150" height="150" /></a><p class="wp-caption-text">Signal piezo rectifié par deux diodes Schottky</p></div>
<p>Notre signal rectifié par les deux Schottky ressemble à la courbe de gauche (la courbe à éét décalée vers le bas pour des raisons esthétiques). On a encore quelques tensions négatives qui apparaissent, mais c&#8217;est presque négligeable maintenant. On peut se demander si ces -400mV ont un rapport avec le Vf de la diode.</p>
<p>Même si l&#8217;échelle est différente, les vaguelettes semblent avoir disparues. C&#8217;est peut être du à la capacitance de la Schottky (14pF), qui, même si elle est faible, peut impacter les vaguelettes haute fréquence. Je n&#8217;ai pas eu le temps de vérifier.</p>
<p>Maintenant nous devons limiter la tension maximale dans notre circuit, histoire de ne pas martyriser notre CAN.<br />
<strong>Diode Zener<br />
</strong></p>
<p>Comme vu plus haut, l&#8217;amplitude en tension est importante et on peut rapidement atteindre des valeurs inadaptées pour de l&#8217;électronique digitale. On doit donc dompter cette tension générée par le piézo. Les diodes Zener peuvent le faire : elles peuvent limiter la tension dans un circuit à une valeur fixe : quand la tension dans le circuit est supérieure à la tension d&#8217;avalanche de la Zener, elle devient passante, aidant ainsi à maintenant la tension sous ce seuil.</p>
<div id="attachment_327" class="wp-caption alignleft" style="width: 160px"><a href="http://leucos.lstilde.org/wp/wp-content/uploads/2009/05/piezo_zener.png"><img class="size-thumbnail wp-image-327" title="PiezoRectifiedAndZener" src="http://leucos.lstilde.org/wp/wp-content/uploads/2009/05/piezo_zener-150x150.png" alt="Piezo signal, after Schottky rectifiers and Zener" width="150" height="150" /></a><p class="wp-caption-text">Signal du piezo signal, après les redresseurs Schottky et la  Zener</p></div>
<p>En général, on doit ajouter une résistance en série avec la Zener afin de limiter le courant traversant la diode. Mais avec un piezo, ce n&#8217;est pas nécessaire, dans la mesure ou les courants en jeu sont très faibles.</p>
<p>Après avoir ajouté notre Zener de 5.1v dans le circuit, la tension le sur le piézo ressemble à la capture de gauche.</p>
<p>Vous pouvez torturer le piezo autant que vous voulez, vous ne pourrez pas dépasser le tension d&#8217;avalanche de la Zener.</p>
<p>Si l&#8217;on en reste là, on aura pas mal de difficulté à savoir si le pizeo a été actionné une ou plusieurs fois. Nous allons devoir filtrer les pics afin d&#8217;obtenir une courbe plus docile.</p>
<p><strong>Filtrage du signal</strong></p>
<p>Ce signal peut être filtré par une cellule RC. Nous avons juste besoin de savoir combien de temps nous voulons voir la courbe durer afin d&#8217;ajuster les valeurs de R et de C. Pour mon application (batterie électronique), je voulais que le signal s&#8217;estompe en 10ms maximum. Comme l&#8217;on sait que le voltage descend à 10% de sa valeur initiale après <span style="color: red">Error:</span> http://leucos.lstilde.org/wp/wp-content/plugins/wpmathpub/phpmathpublisher/img/ must have write access <a href="http://wordpress.org/extend/plugins/wpmathpub/faq/" title="use 'chmod 755 img' to attempt to manually fix this problem on your server">Read the official wpmathpub plugin FAQ for more details</a>, on peut trouver le bon condensateur en fonction de la résistance ou vice-vesa.</p>
<p>Imaginons que nous utilisons une résistance de 1MΩ, on devra utiliser un condensateur d&#8217;approximativement <span style="color: red">Error:</span> http://leucos.lstilde.org/wp/wp-content/plugins/wpmathpub/phpmathpublisher/img/ must have write access <a href="http://wordpress.org/extend/plugins/wpmathpub/faq/" title="use 'chmod 755 img' to attempt to manually fix this problem on your server">Read the official wpmathpub plugin FAQ for more details</a>.</p>
<p style="text-align: left;">Au final, on se retrouve avec ce circuit plutôt simple :<a href="http://leucos.lstilde.org/wp/wp-content/uploads/2009/05/piezo_circuit.png"><img class="size-full wp-image-403 aligncenter" title="PiezoFinalCircuit" src="http://leucos.lstilde.org/wp/wp-content/uploads/2009/05/piezo_circuit.png" alt="PiezoFinalCircuit" width="504" height="242" /></a></p>
<p style="text-align: left;">Et avec cette ravissante courbe :</p>
<div id="attachment_248" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-248" title="Resultant signal" src="http://leucos.lstilde.org/wp/wp-content/uploads/2009/05/newfile_00.png" alt="Finaly, a clean, ADC friendly signal" width="320" height="240" /><p class="wp-caption-text">Enfin, un signal propre, agréable en bouche pour le convertisseur analogique/digital</p></div>
<p>J&#8217;espère que ce petit article vous aura aidé à dompter ces petite bêtes sauvages que sont les piézos. Attention toutefois, les piézos sont tous différents, et la taille compte. Alors expérimentez sur ces bases avant de graver en me croyant sur parole.</p>
]]></content:encoded>
			<wfw:commentRss>http://leucos.lstilde.org/wp/2009/12/conditionnement-de-signal-piezo/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>cats : un &#8216;cat&#8217; pour le port série</title>
		<link>http://leucos.lstilde.org/wp/2009/11/cats-un-cat-pour-le-port-serie/</link>
		<comments>http://leucos.lstilde.org/wp/2009/11/cats-un-cat-pour-le-port-serie/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 21:19:28 +0000</pubDate>
		<dc:creator>leucos</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[french]]></category>
		<category><![CDATA[serial port]]></category>

		<guid isPermaLink="false">http://leucos.lstilde.org/wp/?p=512</guid>
		<description><![CDATA[(an english version of this post is available here)
Pour un futur projet, j&#8217;avais besoin de faire quelquechose du genre &#8216;cat /dev/leportserie&#8217;.
Bien sur, avec cat, ça ne marche pas terrible. Alors voici &#8216;cats&#8217;, un &#8216;cat&#8217; spécial port série.
Ca a été écrit en 30 minutes, pas vraiment testé, mais à priori ça marche plutôt pas mal pour [...]]]></description>
			<content:encoded><![CDATA[<p><em>(an english version of this post is available <a href="http://leucos.lstilde.org/wp/2009/11/cats-serial-cat/">here</a>)</em></p>
<p>Pour un futur projet, j&#8217;avais besoin de faire quelquechose du genre &#8216;cat /dev/leportserie&#8217;.</p>
<p>Bien sur, avec cat, ça ne marche pas terrible. Alors voici &#8216;cats&#8217;, un &#8216;cat&#8217; spécial port série.</p>
<p>Ca a été écrit en 30 minutes, pas vraiment testé, mais à priori ça marche plutôt pas mal pour des opérations de lecture et d&#8217;écriture pas trop tordues.</p>
<p>Par défaut, cats fonctionne en 9600 bauds.</p>
<p>Compilation :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">gcc cats.c -o cats</div></div>
<p>Exécution :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">./cats /dev/ttyUSB0</div></div>
<p>Example d&#8217;utilisation : attraper votre altitude depuis le GPS qui envoie des trames NMEA sur le port série :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">./cats /dev/ttyUSB0 | grep GGA | cut -f 10 -d','</div></div>
<p>cats habite chez  GitHub : <a title="http://github.com/leucos/cats" href="http://github.com/leucos/cats">http://github.com/leucos/cats</a></p>
<p>Les retours, remarques et les engueulades sont les bienvenues.</p>
<p>EDIT : nouvelle option pour cats (timestamping). </p>
]]></content:encoded>
			<wfw:commentRss>http://leucos.lstilde.org/wp/2009/11/cats-un-cat-pour-le-port-serie/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
