<?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>Quentin PEYRÈGNE</title>
	<atom:link href="http://www.peyregne.info/wp/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.peyregne.info/wp</link>
	<description>Ingénieur en robotique mobile, et fan de &#34;Do It Yourself&#34;...</description>
	<lastBuildDate>Sat, 25 Feb 2012 08:59:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Installer Replicatorg sous Debian</title>
		<link>http://www.peyregne.info/wp/?p=390</link>
		<comments>http://www.peyregne.info/wp/?p=390#comments</comments>
		<pubDate>Fri, 24 Feb 2012 21:40:30 +0000</pubDate>
		<dc:creator>Quentin</dc:creator>
				<category><![CDATA[RepRap]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[ReplicatorG]]></category>

		<guid isPermaLink="false">http://www.peyregne.info/wp/?p=390</guid>
		<description><![CDATA[Voici un petit article pour expliquer l'installation de ReplicatorG sous Debian, mais est très facilement adaptable à tout autre distribution GNU/linux. ReplicatorG est un logiciel de contrôle sur le PC qui permet de : Ouvrir et visualiser des fichiers 3D au format .STL Générer le GCode en utilisant le moteur SkeinForge Se connecter et envoyer [...]]]></description>
			<content:encoded><![CDATA[<p>Voici un petit article pour expliquer l'installation de <strong><a href="http://replicat.org" target="_blank">ReplicatorG</a></strong> sous Debian, mais est très facilement adaptable à tout autre distribution GNU/linux.</p>
<p>ReplicatorG est un logiciel de contrôle sur le PC qui permet de :</p>
<ul>
<li>Ouvrir et visualiser des fichiers 3D au format .STL</li>
<li>Générer le GCode en utilisant le moteur SkeinForge</li>
<li>Se connecter et envoyer des ordres à la carte de commande de la RepRap.</li>
</ul>
<p>ReplicatorG est un logiciel assez populaire et beaucoup utilisé dans le monde de l'imprimante 3D libre car il dispose de beaucoup d'options et est compatible avec beaucoup de modèles d'imprimante.</p>
<p>Cette article ne couvrira que l'installation du logiciel, je ferais une présentation détaillée plus tard.</p>
<ul>
<li>Aller sur le site <a href="http://replicat.org/download">http://replicat.org/download</a> pour récupérer le logiciel correspondant à votre OS, en l’occurrence "Linux".</li>
<li>Décompresser l'archive :

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> xvzf replicatorg-0029_r2-linux.tgz</pre></div></div>

</li>
</ul>
<ul>
<li>Installer le JRE Java pour la visualisation 3D (ne fonctionne pas pour l'instant avec la version libre openjdk) :

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> sun-java6-jre</pre></div></div>

<p>Puis sélectionner la version de java à utiliser en choisissant la ligne contenant <em>sun</em> :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> update-alternatives <span style="color: #660033;">--config</span> java</pre></div></div>

</li>
<li>Ensuite il faut copier le driver librxtxSerial de votre système en lieu et place du driver embarqué dans le dossier de Replicatorg (dans mon cas, mon système est 64 bits) :

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>jni<span style="color: #000000; font-weight: bold;">/</span>librxtxSerial.so replicatorg-0029_r2<span style="color: #000000; font-weight: bold;">/</span>lib-x86_64<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>Si vous ne faites pas cette étape, il se peut que vous vous retrouviez avec ce type de crash :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">***</span> buffer overflow detected <span style="color: #000000; font-weight: bold;">***</span>: java terminated
======= Backtrace: =========
<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>x86_64-linux-gnu<span style="color: #000000; font-weight: bold;">/</span>libc.so.6<span style="color: #7a0874; font-weight: bold;">&#40;</span>__fortify_fail+0x37<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>0x7f4fa22001d7<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>x86_64-linux-gnu<span style="color: #000000; font-weight: bold;">/</span>libc.so.6<span style="color: #7a0874; font-weight: bold;">&#40;</span>+0xfd0f0<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>0x7f4fa21ff0f0<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>x86_64-linux-gnu<span style="color: #000000; font-weight: bold;">/</span>libc.so.6<span style="color: #7a0874; font-weight: bold;">&#40;</span>+0xfc569<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>0x7f4fa21fe569<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>x86_64-linux-gnu<span style="color: #000000; font-weight: bold;">/</span>libc.so.6<span style="color: #7a0874; font-weight: bold;">&#40;</span>_IO_default_xsputn+0xd8<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>0x7f4fa2176b98<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>x86_64-linux-gnu<span style="color: #000000; font-weight: bold;">/</span>libc.so.6<span style="color: #7a0874; font-weight: bold;">&#40;</span>_IO_vfprintf+0x1abd<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>0x7f4fa214931d<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>x86_64-linux-gnu<span style="color: #000000; font-weight: bold;">/</span>libc.so.6<span style="color: #7a0874; font-weight: bold;">&#40;</span>__vsprintf_chk+0x94<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>0x7f4fa21fe604<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>x86_64-linux-gnu<span style="color: #000000; font-weight: bold;">/</span>libc.so.6<span style="color: #7a0874; font-weight: bold;">&#40;</span>__sprintf_chk+0x7a<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>0x7f4fa21fe54a<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>robert<span style="color: #000000; font-weight: bold;">/</span>3dprint<span style="color: #000000; font-weight: bold;">/</span>replicatorg-0025<span style="color: #000000; font-weight: bold;">/</span>lib-x86_64<span style="color: #000000; font-weight: bold;">/</span>librxtxSerial.so<span style="color: #7a0874; font-weight: bold;">&#40;</span>fhs_lock+0x16f<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>0x7f4f873e0a9f<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>robert<span style="color: #000000; font-weight: bold;">/</span>3dprint<span style="color: #000000; font-weight: bold;">/</span>replicatorg-0025<span style="color: #000000; font-weight: bold;">/</span>lib-x86_64<span style="color: #000000; font-weight: bold;">/</span>librxtxSerial.so<span style="color: #7a0874; font-weight: bold;">&#40;</span>Java_gnu_io_RXTXCommDriver_testRead+0x65<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>0x7f4f873e0b25<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div>

</li>
</ul>
<ul>
<li>S'assurer qu'on appartient au groupe "dialout" avec la commande id.<br />
Sinon, taper en root (en remplaçant nomUtilisateur par le votre) :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">usermod <span style="color: #660033;">-a</span> <span style="color: #660033;">-G</span> dialout nomUtilisateur</pre></div></div>

</li>
<li>Lancer le logiciel :

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> replicatorg-0029_r2
.<span style="color: #000000; font-weight: bold;">/</span>replicatorg <span style="color: #000000; font-weight: bold;">&amp;</span></pre></div></div>

<p>(au premier démarrage, les fichiers de préférences vont être créés)</li>
</ul>
<p><a href="http://www.peyregne.info/wp/wp-content/uploads/2012/02/replicatorg.png"><img class="aligncenter size-full wp-image-399" title="replicatorg" src="http://www.peyregne.info/wp/wp-content/uploads/2012/02/replicatorg.png" alt="" width="560" height="564" /></a></p>
<p style="text-align: center;"><em>Et voilà !</em></p>
<p>J'espère avec ce court article avoir pu vous aider à résoudre certains problèmes d'installation, comme j'en ai eu ! <img src='http://www.peyregne.info/wp/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>

<style>
*{margin:0; padding:0;}
#socialbuttonnav li{background:none; overflow:hidden; width:140px; height:30px; line-height:30px; margin-right:2px; float:left; text-align:center;}
#fb { text-align:center;border:none; }
</style>
<p>___</p>
<p>Partager cet article :</p>
<ul id="socialbuttonnav" style="list-style:none;width:100%;margin:0 auto;">
<!--<li><div><a name="twitter_share" data-count="vertical" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>-->
<li><!-- Twitter--><div><a name="twitter_share" data-via="QNux" data-text="Installer Replicatorg sous Debian" data-url="http://www.peyregne.info/wp/?p=390" data-count="horizontal" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>
<li><!-- Google plus one--><div><g:plusone size="medium" count="true" href="http://www.peyregne.info/wp/?p=390"></g:plusone></div></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.peyregne.info/wp/?feed=rss2&#038;p=390</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sprinter : un firmware pour la RAMPS 1.2</title>
		<link>http://www.peyregne.info/wp/?p=374</link>
		<comments>http://www.peyregne.info/wp/?p=374#comments</comments>
		<pubDate>Mon, 06 Feb 2012 21:06:05 +0000</pubDate>
		<dc:creator>Quentin</dc:creator>
				<category><![CDATA[RepRap]]></category>
		<category><![CDATA[électronique]]></category>
		<category><![CDATA[Imprimante 3D]]></category>
		<category><![CDATA[Sprinter]]></category>

		<guid isPermaLink="false">http://www.peyregne.info/wp/?p=374</guid>
		<description><![CDATA[Après le préambule sur l'explication du rôle du firmware, et comme promis, voici un exemple concret du paramétrage du Firmware Sprinter pour la RAMPS 1.2. Personnellement, j'ai passé beaucoup de temps à me renseigner, essayer, configurer tout un tas de versions existantes : Teacup, Tonokips, Sprinter,... Il y a beaucoup d'exemples, voire trop, et on [...]]]></description>
			<content:encoded><![CDATA[<pre></pre>
<p>Après le <a href="http://www.peyregne.info/wp/?p=362">préambule sur l'explication du rôle du firmware</a>, et comme promis, voici un exemple concret du paramétrage du Firmware Sprinter pour la RAMPS 1.2.</p>
<p>Personnellement, j'ai passé beaucoup de temps à me renseigner, essayer, configurer tout un tas de versions existantes : <em>Teacup</em>, <em>Tonokips</em>, <em>Sprinter</em>,... Il y a beaucoup d'exemples, voire trop, et on est vite perdu dans la jungle des exemples trouvés, et qui semblent ne pas fonctionner sur sa machine.</p>
<p>Il faut alors s'armer de patience et de persévérance, car il faut faire l'effort de comprendre à quoi servent les paramètres à régler, et comment adapter un fimware pour qu'il fonctionne avec sa configuration.</p>
<p>Personellement, j'ai arrêté mon choix sur le Firmware <em>Sprinter</em>, développé principalement par Kliment et caru, et qui est un fork du Firmware Tonokips. Il est sous license GNU GPL v3, ce qui veut dire qu'on a le droit de mettre les mains dedans, et de faire partager nos modifications, ce que je vais m'empresser de faire !</p>
<p>Remplissez votre tasse de café ou votre verre de bière, cet article va être long ! <img src='http://www.peyregne.info/wp/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> <span id="more-374"></span>Tout ce qui va suivre est adapté en fonction de ma carte de commande (la RAMPS v1.2) et de mon modèle de RepRap (Prusa), mais en fouillant un peu, il peut se généraliser à d'autres cartes. Voici précisément la liste des composants dont je dispose, et qu'il faut paramétrer dans le firmware :</p>
<ul>
<li>Modèle Prusa</li>
<li>Moteurs pas à pas 200 pas / tour NEMA 17</li>
<li>Extruder modèle Wade avec moteur pas à pas 200 pas / tour</li>
<li>Thermistance d'extruder 100kOhm</li>
<li>Thermistance du lit chauffant 100kOhm</li>
<li>Electronique RAMPS version 1.2 avec driver POLOLU</li>
</ul>
<h3>Téléchargement du Firmware</h3>
<h4>Pré-requis</h4>
<p>La carte RAMPS est basé sur la plateforme Arduino, il faut donc récupérer l'IDE Arduino pour compiler et flasher facilement la carte.</p>
<h4>Télécharger le code source avec git</h4>
<p>La méthode la plus simple est de récupérer le code sur le dépot GitHub de Sprinter. Pour cela, il faut ouvrir un terminal, aller dans le dossier où son ranger les sketchs Arduino, puis taper :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">git</span> clone https:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>kliment<span style="color: #000000; font-weight: bold;">/</span>Sprinter.git</pre></div></div>

<p>Git va alors télécharger automatiquement le code source du Firmware. A l'avenir, il sera simple de mettre à jour votre code en local avec les modifications du dépot officiel en utilisant git, mais ce n'est plus le propos de cette article.</p>
<h4>Télécharger le code source, pour les allergiques à la ligne de commande</h4>
<p>Allez sur le dépot GitHub : <a href="https://github.com/kliment/Sprinter">https://github.com/kliment/Sprinter</a>, puis cliquez sur l'icône "ZIP" pour télécharger un zip contenant le code source, puis décompressez le dossier dans votre dossier contenant vous sketchs Arduino.</p>
<h3>Paramétrage du firmware</h3>
<p>Ouvrez le Sketch Sprinter avec l'IDE Arduino, ce qui va ouvrir un tas d'onglets avec tous les fichiers sources. N'ayez pas peur, nous n'aurons besoin de modifier qu'un seul fichier : <em>Configuration.h</em>.</p>
<p>C'est dans ce fichier que nous réglerons tous les coefficients, gains, vitesses, accélérations et caractéristiques des composants de la carte électronique et de la machine. Ouvrez le fichier Configuration.h, et voyons ce qu'il y a à paramétrer :</p>
<h4>Le type de carte électronique</h4>
<p>Chaque type de carte possède des entrées/sorties différentes et spécifiques, qui sont renseignées dans le fichier pins.h. Reportez-vous au commentaire du fichier pour trouver celui qui correspond à votre carte. Pour la RAMPS 1.2, il s'agit du numéro 3.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #666666;">// MEGA/RAMPS up to 1.2 = 3,</span>
<span style="color: #666666;">// RAMPS 1.3 = 33</span>
<span style="color: #666666;">// Gen6 = 5,</span>
<span style="color: #666666;">// Sanguinololu up to 1.1 = 6</span>
<span style="color: #666666;">// Sanguinololu 1.2 and above = 62</span>
<span style="color: #666666;">// Teensylu (at90usb) = 8</span>
<span style="color: #666666;">// Gen 3 Plus = 21</span>
<span style="color: #666666;">// gen 3 Monolithic Electronics = 22</span>
<span style="color: #666666;">// Gen3 PLUS for TechZone Gen3 Remix Motherboard = 23</span>
<span style="color: #339900;">#define MOTHERBOARD 3</span></pre></div></div>

<h4>Le type des thermistances</h4>
<p>Ensuite, il faut renseigner le type de thermistance utilisée pour l'extruder et le lit chauffant. La thermistance permet de mesurer la température. En effet, sa caractéristique est d'avoir une résistance variable en fonction de la température.</p>
<p>Pour les curieux, les tables de conversion sont visibles dans le fichier <em>thermistortables.h</em>. Pour ma part, j'ai deux fois la même résistance de 100k.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #666666;">// 1 is 100k thermistor</span>
<span style="color: #666666;">// 2 is 200k thermistor</span>
<span style="color: #666666;">// 3 is mendel-parts thermistor</span>
<span style="color: #666666;">// 4 is 10k thermistor</span>
<span style="color: #666666;">// 5 is ParCan supplied 104GT-2 100K</span>
<span style="color: #666666;">// 6 is EPCOS 100k</span>
<span style="color: #666666;">// 7 is 100k Honeywell thermistor 135-104LAG-J01</span>
<span style="color: #339900;">#define THERMISTORHEATER 1</span>
<span style="color: #339900;">#define THERMISTORBED 1</span></pre></div></div>

<h4>Calibration des axes</h4>
<p>La calibration des axes permet de relier le nombre de pas moteur au déplacement de l'axe. Ayant le modèle Prusa, j'ai gardé les valeurs par défaut fournies dans l'exemple. Pour faire le calcul, il faut connaître :</p>
<ul>
<li>Le nombre de pas par tour du moteur <strong>Npas</strong> ( = 200 pour le NEMA 17)</li>
<li>La résolution de controle du moteur <strong>Res</strong> (en fonction du paramétrage du driver de moteur pas à pas)  (=1/16 pour les axes X,Y et E, et 1/4 pour l'axe Z)</li>
<li>Le nombre de dents de la poulie, <strong>Ndents</strong> (=8 pour les axes X et Y)</li>
<li>La résolution de la courroie <strong>Rc</strong>, qui correspond au nombre de mm par dent (=5mm pour une courroie standard T5 de reprap).</li>
</ul>
<p>Le paramètre de calibration vaut : step_per_unit = Npas / (Res * Ndent * Rc) = 200 / (1/16* 8*5) = 80 pas par mm pour l'axe X par exemple.</p>
<p>Le type de calcul est équivalent pour les axes Y et Z (et les valeurs par défaut conviennent).</p>
<p>Là où ça se corse, c'est sur le calcul du paramètre pour l'extrudeur "E". Il faut savoir combien il faut de pas moteur pour faire avancer le fil en entrée de 1 mm. Attention cependant, en fonction de la version du moteur de génération de trajectoire, <em>Skeinforge</em> (j'ai prévu de faire un article là dessus, parce que si je commence à en parler maintenant, je ne finirai jamais cet article), sur les anciennes versions ( &lt;= 39) il fallait indiquer combien de pas moteur il fallait pour avoir en sortie de l'extruder un certain volume de matière.</p>
<p>Le plus simple est de se baser sur une version &gt;= 40 de <em>Skeinforge</em>, et de régler le premier type de paramètre, qui est pus facile à calculer.</p>
<p>En fonction de votre extruder, du moteur, du ratio de l'engrenage, le ratio "step_per_unit" de l'extruder varie beaucoup d'un repraper à l'autre. En ce qui me concerne, j'arrive à ce ratio :</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #666666;">//// Calibration variables</span>
<span style="color: #666666;">// X, Y, Z, E steps per unit - Metric Prusa Mendel with Wade extruder:</span>
<span style="color: #0000ff;">float</span> axis_steps_per_unit<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span><span style="color: #0000dd;">80</span>, <span style="color: #0000dd;">80</span>, <span style="color: #0000dd;">3200</span><span style="color: #000040;">/</span><span style="color:#800080;">1.25</span>,<span style="color: #0000dd;">700</span><span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span></pre></div></div>

<h4> Paramétrage des fins de course</h4>
<p>En fonction du type de fin de course, il faut indiquer si le capteur retourne un signal haut ou bas. Si vous avez des fins de course avec une fourche optique, laisser les valeurs par défaut à FALSE, sinon avec des fins de course mécaniques (et en fonction du câblage), il faut inverser le signal, et donc indiquer TRUE. Si malgré ce réglage les axes ne bougent que sur la course de la butée, c'est qu'il faut inverser les constantes.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #666666;">//// Endstop Settings</span>
<span style="color: #339900;">#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors</span>
<span style="color: #666666;">// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.</span>
<span style="color: #666666;">//If your axes are only moving in one direction, make sure the endstops are connected properly.</span>
<span style="color: #666666;">//If your axes move in one direction ONLY when the endstops are triggered, set [XYZ]_ENDSTOP_INVERT to true here:</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">bool</span> X_ENDSTOP_INVERT <span style="color: #000080;">=</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">bool</span> Y_ENDSTOP_INVERT <span style="color: #000080;">=</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">bool</span> Z_ENDSTOP_INVERT <span style="color: #000080;">=</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span></pre></div></div>

<h4> Vitesse de communication</h4>
<p>Il faut paramétrer la vitesse de communication en bauds, et la retenir pour l'indiquer plus tard au logiciel sur le PC pour qu'il puisse communiquer correctement avec la carte. Je vous conseille de laisser la valeur par défaut.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #666666;">// This determines the communication speed of the printer</span>
<span style="color: #339900;">#define BAUDRATE 115200</span></pre></div></div>

<h4>Utilisation d'une carte SD</h4>
<p>Si vous avez un lecteur de carte SD sur votre électronique, et que vous souhaiter booter dessus au démarrage de l'imprimante, les lignes suivantes sont faites pour ça. Sinon, laissez-les commentées.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #666666;">// Comment out (using // at the start of the line) to disable SD support:</span>
<span style="color: #666666;">//#define SDSUPPORT</span>
<span style="color: #666666;">// Uncomment to make Sprinter run init.g from SD on boot</span>
<span style="color: #666666;">//#define SDINITFILE</span></pre></div></div>

<h4>Paramétrage des axes</h4>
<p>Je vais passer quelques lignes dont vous n'aurez a priori pas à toucher pour une utilisation normale (inversion / désactivation des axes).</p>
<h4>Paramétrage des fins de course</h4>
<p>En fonction du placement de vos fins de course, il faut spécifier au firmware si les fins de course correspondent au minimum de l'axe (-1) ou au maximum (+1). Ainsi, lors de l'initialisation des axes (<em>Homing</em>), le zéro sera fait en fonction du min ou du max de la course de l'axe.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #666666;">//// ENDSTOP SETTINGS:</span>
<span style="color: #666666;">// Sets direction of endstops when homing; 1=MAX, -1=MIN</span>
<span style="color: #339900;">#define X_HOME_DIR -1</span>
<span style="color: #339900;">#define Y_HOME_DIR -1</span>
<span style="color: #339900;">#define Z_HOME_DIR -1</span></pre></div></div>

<p>On peut également définir et activer des butées logicielles sur les axes, ce qui permet de les arrêter avant d'arriver en butée physique, et de forcer voire d'endommager l'axe. Pour celà, il suffit de mesurer la capacité physique d'évolution de chaque axe à partir de la butée d'initialisation.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">const</span> <span style="color: #0000ff;">bool</span> min_software_endstops <span style="color: #000080;">=</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span> <span style="color: #666666;">//If true, axis won't move to coordinates less than zero.</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">bool</span> max_software_endstops <span style="color: #000080;">=</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span> <span style="color: #666666;">//If true, axis won't move to coordinates greater than the defined lengths below.</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> X_MAX_LENGTH <span style="color: #000080;">=</span> <span style="color: #0000dd;">200</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> Y_MAX_LENGTH <span style="color: #000080;">=</span> <span style="color: #0000dd;">200</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> Z_MAX_LENGTH <span style="color: #000080;">=</span> <span style="color: #0000dd;">100</span><span style="color: #008080;">;</span></pre></div></div>

<h4>Paramétrage des vitesses et accélérations</h4>
<p>Vous pouvez ensuite définir respectivement les vitesses de déplacement maximales des axes en mm/min (<em>feedrate</em>), les vitesses de déplacement lors de la phase d'initialisation (rester sur des vitesses lentes pour initialiser les axes avec précision). Les autres paramètres sont à laisser aux valeurs par défaut.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #666666;">//// MOVEMENT SETTINGS</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> NUM_AXIS <span style="color: #000080;">=</span> <span style="color: #0000dd;">4</span><span style="color: #008080;">;</span> <span style="color: #666666;">// The axis order in all axis related arrays is X, Y, Z, E</span>
<span style="color: #0000ff;">float</span> max_feedrate<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span><span style="color: #0000dd;">200000</span>, <span style="color: #0000dd;">200000</span>, <span style="color: #0000dd;">240</span>, <span style="color: #0000dd;">500000</span><span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">float</span> homing_feedrate<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span><span style="color: #0000dd;">1500</span>,<span style="color: #0000dd;">1500</span>,<span style="color: #0000dd;">120</span><span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">bool</span> axis_relative_modes<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span><span style="color: #0000ff;">false</span>, <span style="color: #0000ff;">false</span>, <span style="color: #0000ff;">false</span>, <span style="color: #0000ff;">false</span><span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span></pre></div></div>

<p>Pour la suite, le paramétrage des accélérations est à laisser aux valeurs par défaut, sauf si vous vous y connaissez suffisamment pour paufiner les réglages de votre imprimante.</p>
<h4>Réglage de la commande de chauffage</h4>
<p>Tous les paramètres suivants concernent le réglage de la partie chauffante, et peuvent être délicats à régler, je vous conseille de laisser les valeurs pas défaut. Cependant, il peut être intéressant de limiter la valeur maximale de température, ce qui peut être utile pour ne pas endommager l'imprimante.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#define MAXTEMP 220</span></pre></div></div>

<h3>Compilation et téléchargement du firmware</h3>
<p>Maintenant tous ces paramètres renseignés, <a href="http://arduino.cc/fr/Main/DebuterPresentationLogiciel">compilez puis téléchargez le programme sur la carte de commande</a> (cliquez pour l'aide Arduino). Vous pouvez maintenant essayer de connecter l'imprimante au logiciel de commande sur le PC (par exemple Replicatorg), et essayer de faire bouger les axes un à un ou de commander la température avec l'interface de controle du logiciel.</p>
<p>Je vous conseille fortement de garder la main sur l'interrupteur d'alimentation tant que vous n'êtes pas sûrs que les vitesses, fon de course et autre ne sont pas réglés correctement.</p>
<p style="text-align: center;">***</p>
<p>Pour la suite, je vous présenterai le logiciel <a href="http://replicat.org/">Replicatorg</a>, que j'utilise, ainsi que le logiciel <a href="http://www.skeinforge.com/">Skeinforge</a>. D'ici là, si vous avez des difficultés, vous pouvez m'en faire part dans les commentaires <img src='http://www.peyregne.info/wp/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  .</p>

<style>
*{margin:0; padding:0;}
#socialbuttonnav li{background:none; overflow:hidden; width:140px; height:30px; line-height:30px; margin-right:2px; float:left; text-align:center;}
#fb { text-align:center;border:none; }
</style>
<p>___</p>
<p>Partager cet article :</p>
<ul id="socialbuttonnav" style="list-style:none;width:100%;margin:0 auto;">
<!--<li><div><a name="twitter_share" data-count="vertical" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>-->
<li><!-- Twitter--><div><a name="twitter_share" data-via="QNux" data-text="Sprinter : un firmware pour la RAMPS 1.2" data-url="http://www.peyregne.info/wp/?p=374" data-count="horizontal" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>
<li><!-- Google plus one--><div><g:plusone size="medium" count="true" href="http://www.peyregne.info/wp/?p=374"></g:plusone></div></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.peyregne.info/wp/?feed=rss2&#038;p=374</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>RepRap : le firmware de la carte de commande.</title>
		<link>http://www.peyregne.info/wp/?p=362</link>
		<comments>http://www.peyregne.info/wp/?p=362#comments</comments>
		<pubDate>Sun, 05 Feb 2012 13:34:27 +0000</pubDate>
		<dc:creator>Quentin</dc:creator>
				<category><![CDATA[RepRap]]></category>
		<category><![CDATA[électronique]]></category>
		<category><![CDATA[Imprimante 3D]]></category>
		<category><![CDATA[Prusa]]></category>

		<guid isPermaLink="false">http://www.peyregne.info/wp/?p=362</guid>
		<description><![CDATA[L'une des parties les plus compliqués dans mon aventure RepRap a été de trouver un Firmware pour la carte de commande. Il s'agit du logiciel embarqué dans la carte permettant de contrôler tout le hardware : Pilotage des moteurs pas à pas Gestion des butées physiques et logicielles Asservissement en température de l'extruder et du [...]]]></description>
			<content:encoded><![CDATA[<p>L'une des parties les plus compliqués dans mon aventure RepRap a été de trouver un Firmware pour la carte de commande. Il s'agit du logiciel embarqué dans la carte permettant de contrôler tout le hardware :</p>
<ul>
<li>Pilotage des moteurs pas à pas</li>
<li>Gestion des butées physiques et logicielles</li>
<li>Asservissement en température de l'extruder et du lit chauffant</li>
<li>Pilotage du ventilateur de refroidissement</li>
</ul>
<p>Attention, il ne faut pas confondre ce logiciel avec celui qui est installé sur le PC et qui sert à convertir un object 3D en commandes pour l'imprimante 3D.</p>
<p>Le Firmware ne connaît pas l'objet à imprimer, il ne fait que exécuter les ordres transmis par l'ordinateur de commande : se déplacer, chauffer l'extruder à 190°C, extruder, ...</p>
<p><a href="http://www.peyregne.info/wp/wp-content/uploads/2012/02/liaisons_commande.png"><img class="aligncenter size-full wp-image-364" title="liaisons_commande" src="http://www.peyregne.info/wp/wp-content/uploads/2012/02/liaisons_commande.png" alt="" width="531" height="365" /></a></p>
<p>Cependant, l'ordinateur ne connaît pas du tout les caractéristiques du matériel. Si le PC demandeà l'axe X d'avancer de 10mm, concrètement, il va envoyer cette commande à la carte :</p>
<blockquote><p>G0 X10</p></blockquote>
<p>Je ne veux pas rentrer maintenant dans les détails du langage de commande utilisé (le <a href="http://reprap.org/wiki/G-code">GCode</a>), c'est juste pour montrer un exemple.</p>
<p>Le PC demande donc à l'axe X d'avancer de 10mm, mais il ne dit pas directement combien le moteur pas à pas doit faire de crans, avec quelle accélération, si il faut s'arrêter quand on arrive en butée,... Tout ce paramétrage se fait dans le Firmware de la carte. On commence donc a comprendre qu'il y a potentiellement énormément de paramètres à régler... et c'est le cas !</p>
<p>Fort heureusement, pour un modèle standard de RepRap, par exemple le modèle Prusa avec le "Wade's Extruder", ces paramètres sont connus et il n'y a plus qu'à copier/coller (enfin en théorie). De même, un firmware peut convenir à plusieurs cartes électroniques, mais les principales sont déjà intégrées dans le code de ces firmwares.</p>
<p>Je m'arrête là pour cet article, qui a pour vocation d'être un préambule à un prochain article sur la présentation et au paramétrage du firmware que j'utilise pour <a href="http://www.peyregne.info/wp/?p=317">ma carte RAMPS v1.2</a>, et qui arrive très bientôt (je sais que certains de mes lecteurs l'attendent avec impatience <img src='http://www.peyregne.info/wp/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ) !</p>

<style>
*{margin:0; padding:0;}
#socialbuttonnav li{background:none; overflow:hidden; width:140px; height:30px; line-height:30px; margin-right:2px; float:left; text-align:center;}
#fb { text-align:center;border:none; }
</style>
<p>___</p>
<p>Partager cet article :</p>
<ul id="socialbuttonnav" style="list-style:none;width:100%;margin:0 auto;">
<!--<li><div><a name="twitter_share" data-count="vertical" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>-->
<li><!-- Twitter--><div><a name="twitter_share" data-via="QNux" data-text="RepRap : le firmware de la carte de commande." data-url="http://www.peyregne.info/wp/?p=362" data-count="horizontal" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>
<li><!-- Google plus one--><div><g:plusone size="medium" count="true" href="http://www.peyregne.info/wp/?p=362"></g:plusone></div></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.peyregne.info/wp/?feed=rss2&#038;p=362</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Alimentation stabilisée 5V et 12V</title>
		<link>http://www.peyregne.info/wp/?p=351</link>
		<comments>http://www.peyregne.info/wp/?p=351#comments</comments>
		<pubDate>Mon, 02 Jan 2012 15:11:19 +0000</pubDate>
		<dc:creator>Quentin</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[RepRap]]></category>
		<category><![CDATA[Astuce]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Recyclage]]></category>

		<guid isPermaLink="false">http://www.peyregne.info/wp/?p=351</guid>
		<description><![CDATA[Pour alimenter une RepRap, ou tout autre équipement électronique, on a souvent besoin d'une alimentation 5 ou 12V. Dans cet article, nous allons voir rapidement comment transformer une alimentation de PC de type ATX pour avoir une alimentation utilisable facilement. ATTENTION : Cette manipulation peut être dangereuse car nous allons ouvrir un appareil 220V, avec des condensateurs qui [...]]]></description>
			<content:encoded><![CDATA[<p>Pour alimenter une RepRap, ou tout autre équipement électronique, on a souvent besoin d'une alimentation 5 ou 12V.</p>
<p>Dans cet article, nous allons voir rapidement comment transformer une alimentation de PC de type ATX pour avoir une alimentation utilisable facilement.</p>
<p><strong><span style="color: #ff0000;">ATTENTION</span> : </strong><strong>Cette manipulation peut être dangereuse car nous allons ouvrir un appareil 220V, avec des condensateurs qui sont potentiellement encore chargés. Faites bien attention !</strong></p>
<h1>Première étape : choisir l'alimentation</h1>
<p>En fonction de la puissance dont vous avez besoin, vous pourrez récupérer une vielle alimentation, ou acheter une alimentation Premier Prix. Pour une RepRap, il faut avoir idéalement 15A sous 12V, ce que peut délivrer une alimentation 300W. L'alimentation doit être compatible ATX pour pouvoir ensuite piloter l’allumage et l'extinction.<span id="more-351"></span></p>
<p style="text-align: center;"><a href="http://www.peyregne.info/wp/wp-content/uploads/2012/01/before.png"><img class="aligncenter  wp-image-353" title="before" src="http://www.peyregne.info/wp/wp-content/uploads/2012/01/before-1024x678.png" alt="" width="614" height="407" /></a></p>
<h1>Deuxième étape :</h1>
<p>Sur la grande prise, repérer le fil VERT (PS_ON) et coupez-le, ainsi qu'un fil de masse NOIR (COM) à proximité.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.smpspowersupply.com/connector_atx_pinout.GIF" alt="" width="458" height="414" /><a href="http://www.peyregne.info/wp/wp-content/uploads/2012/01/prise.png"><img class="aligncenter  wp-image-355" title="prise" src="http://www.peyregne.info/wp/wp-content/uploads/2012/01/prise-1024x678.png" alt="" width="614" height="407" /></a></p>
<h1>Troisième étape :</h1>
<p>Ouvrir l'alimentation, et tirer les câbles que vous venez de couper. Pour vérification, sur mon alimentation le fil vert est bien noté PS_ON sur la carte :</p>
<p style="text-align: center;"><a href="http://www.peyregne.info/wp/wp-content/uploads/2012/01/PS_ON.png"><img class="aligncenter  wp-image-357" title="PS_ON" src="http://www.peyregne.info/wp/wp-content/uploads/2012/01/PS_ON-1024x678.png" alt="" width="614" height="407" /></a></p>
<p style="text-align: left;">On peut alors connecter les deux fils précédemment coupés sur un interrupteur :</p>
<p style="text-align: center;"><a href="http://www.peyregne.info/wp/wp-content/uploads/2012/01/interrupteur.png"><img class="aligncenter  wp-image-354" title="interrupteur" src="http://www.peyregne.info/wp/wp-content/uploads/2012/01/interrupteur-1024x678.png" alt="" width="614" height="407" /></a></p>
<h1 style="text-align: left;">Dernière étape :</h1>
<p>Intégrez l'interrupteur dans le boîtier, et c'est fini !</p>
<p style="text-align: center;"><a href="http://www.peyregne.info/wp/wp-content/uploads/2012/01/after.png"><img class="aligncenter  wp-image-352" title="after" src="http://www.peyregne.info/wp/wp-content/uploads/2012/01/after-1024x678.png" alt="" width="614" height="407" /></a></p>

<style>
*{margin:0; padding:0;}
#socialbuttonnav li{background:none; overflow:hidden; width:140px; height:30px; line-height:30px; margin-right:2px; float:left; text-align:center;}
#fb { text-align:center;border:none; }
</style>
<p>___</p>
<p>Partager cet article :</p>
<ul id="socialbuttonnav" style="list-style:none;width:100%;margin:0 auto;">
<!--<li><div><a name="twitter_share" data-count="vertical" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>-->
<li><!-- Twitter--><div><a name="twitter_share" data-via="QNux" data-text="Alimentation stabilisée 5V et 12V" data-url="http://www.peyregne.info/wp/?p=351" data-count="horizontal" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>
<li><!-- Google plus one--><div><g:plusone size="medium" count="true" href="http://www.peyregne.info/wp/?p=351"></g:plusone></div></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.peyregne.info/wp/?feed=rss2&#038;p=351</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>L&#8217;électronique de la RepRap : Arduino + RAMPS</title>
		<link>http://www.peyregne.info/wp/?p=317</link>
		<comments>http://www.peyregne.info/wp/?p=317#comments</comments>
		<pubDate>Mon, 02 Jan 2012 12:20:31 +0000</pubDate>
		<dc:creator>Quentin</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[RepRap]]></category>
		<category><![CDATA[électronique]]></category>
		<category><![CDATA[Imprimante 3D]]></category>
		<category><![CDATA[RAMPS]]></category>

		<guid isPermaLink="false">http://www.peyregne.info/wp/?p=317</guid>
		<description><![CDATA[Un nouvel article pour expliquer l'électronique de la RepRap. Cet article n'est pas spécifique à un modèle de RepRap en particulier, la carte électronique peut être utilisée pour différents modèles d'imprimante 3D. Le modèle de l'électronique que j'ai choisi Arduino + RAMPS 1.2 en est un parmis tant d'autres, je vous conseille d'aller sur le [...]]]></description>
			<content:encoded><![CDATA[<p>Un nouvel article pour expliquer l'électronique de la RepRap. Cet article n'est pas spécifique à un modèle de RepRap en particulier, la carte électronique peut être utilisée pour différents modèles d'imprimante 3D.</p>
<p>Le modèle de l'électronique que j'ai choisi Arduino + RAMPS 1.2 en est un parmis tant d'autres, je vous conseille d'aller sur le Wiki RepRap pour avoir plus d'informations sur les autres modèles possibles. Une vidéo vaut mieux qu'un long discours pour présenter la carte :</p>
<div align="center"><iframe src="http://www.youtube.com/embed/VkhUpxHMphs?rel=0&amp;hd=1" frameborder="0" width="640" height="360"></iframe></div>
<div align="center"></div>
<p>&nbsp;<br />
D'une manière générale voici les fonctionnalités que vous retrouverez sur la carte de commande d'une imprimante 3D :</p>
<ul>
<li>Contrôle des moteurs pas à pas pour les axes</li>
<li>Contrôle de l'extrudeur (moteur pas à pas ou CC en fonction du modèle)</li>
<li>Commande des résistances de chauffage de l'extruder et du lit chauffant</li>
<li>Acquisition des températures de l'extruder et du lit chauffant</li>
<li>Acquisition des informations de fin de course (mécanique ou fourche optique)</li>
<li>Pilotage d'un ventilateur pour le refroidissement au niveau de l'extruder</li>
</ul>
<p>Ci dessous, la photos de la carte RAMPS version 1.2 en pièces détachées achetée sur le site GRRF.de. Je vous invite également à <a href="http://wiki.grrf.de/index.php/Ramps_v1.2_Elektronik" target="_blank">consulter leur wiki</a> qui explique très bien comment assembler la carte étape par étape avec beaucoup de photos (c'est en allemand, mais <a href="http://translate.google.fr/translate?hl=fr&amp;sl=de&amp;u=http://wiki.grrf.de/index.php/Ramps_v1.2_Elektronik&amp;ei=eYsBT66fCcjsOZ3LuaQB&amp;sa=X&amp;oi=translate&amp;ct=result" target="_blank">Google le traduit bien</a> si vous le souhaitez).<span style="text-align: center;"> </span></p>
<p style="text-align: center;"><a href="http://www.peyregne.info/wp/wp-content/uploads/2012/01/ramps1.2.jpg"><img class="aligncenter  wp-image-338" title="ramps1.2" src="http://www.peyregne.info/wp/wp-content/uploads/2012/01/ramps1.2-1024x724.jpg" alt="" width="614" height="434" /></a></p>
<p>Depuis, la boutique de <a href="https://shop.grrf.de/grrf-ramps-v14-p-372.html" target="_blank">GRRF.de propose la version RAMPS 1.4</a> qui ajoute la possibilité d'ajouter un second extruder, et d'ajouter une carte SD pour pouvoir imprimer sans l'ordinateur.</p>

<style>
*{margin:0; padding:0;}
#socialbuttonnav li{background:none; overflow:hidden; width:140px; height:30px; line-height:30px; margin-right:2px; float:left; text-align:center;}
#fb { text-align:center;border:none; }
</style>
<p>___</p>
<p>Partager cet article :</p>
<ul id="socialbuttonnav" style="list-style:none;width:100%;margin:0 auto;">
<!--<li><div><a name="twitter_share" data-count="vertical" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>-->
<li><!-- Twitter--><div><a name="twitter_share" data-via="QNux" data-text="L&#8217;électronique de la RepRap : Arduino + RAMPS" data-url="http://www.peyregne.info/wp/?p=317" data-count="horizontal" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>
<li><!-- Google plus one--><div><g:plusone size="medium" count="true" href="http://www.peyregne.info/wp/?p=317"></g:plusone></div></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.peyregne.info/wp/?feed=rss2&#038;p=317</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Petit point sur l&#8217;avancement de ma RepRap</title>
		<link>http://www.peyregne.info/wp/?p=319</link>
		<comments>http://www.peyregne.info/wp/?p=319#comments</comments>
		<pubDate>Mon, 31 Oct 2011 09:56:05 +0000</pubDate>
		<dc:creator>Quentin</dc:creator>
				<category><![CDATA[RepRap]]></category>
		<category><![CDATA[Prusa]]></category>

		<guid isPermaLink="false">http://www.peyregne.info/wp/?p=319</guid>
		<description><![CDATA[Mon dernier article sur la RepRap date d'un mois. Entre temps, j'ai reçu tout le matériel, monté, assemblé, soudé et réglé mon imprimante. Il y a beaucoup de travail pour l'assembler entièrement, et pour comprendre comment elle fonctionne. Je peux déjà dire que la RepRap ne s'adresse pas à un public néophyte, tant il faut chercher [...]]]></description>
			<content:encoded><![CDATA[<p>Mon dernier article sur la RepRap date d'un mois. Entre temps, j'ai reçu tout le matériel, monté, assemblé, soudé et réglé mon imprimante. Il y a beaucoup de travail pour l'assembler entièrement, et pour comprendre comment elle fonctionne. Je peux déjà dire que <strong>la RepRap ne s'adresse pas à un public néophyte</strong>, tant il faut chercher à comprendre et persévérer pour tout monter et régler l'imprimante. Je pense que les imprimantes du commerce (<a href="http://www.makerbot.com/" target="_blank">MakerBot</a> par exemple) sont plus adaptées car les réglages existent déjà, mais ce sont bien souvent des solutions deux à trois fois plus chères.</p>
<p>Dans le cas d'une RepRap, il est beaucoup plus difficile de trouver des réglages qui correspondent parfaitement à ce que l'on souhaite, du fait de la diversité des composants. Mais au final, on a la <strong>satisfaction de comprendre comment ça marche</strong>, et quand ce n'est pas le cas de comprendre pourquoi ça ne fonctionne pas <img src='http://www.peyregne.info/wp/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p>Je reviendrai dans de prochains articles sur la description de ma configuration (mécanique, électronique, et logicielle), et surtout j'expliquerai tout ce qui m'a fait perdre du temps, en espérant que cela puisse servir à d'autres !</p>
<p style="text-align: center;"><a href="http://www.peyregne.info/wp/wp-content/uploads/2011/10/first_print.jpg"><img class="aligncenter size-full wp-image-320" title="first_print" src="http://www.peyregne.info/wp/wp-content/uploads/2011/10/first_print.jpg" alt="" width="490" height="424" /></a><em>Une des premières impressions, un cube d'étalonnage.</em></p>
<p style="text-align: left;"><em><br />
</em></p>

<style>
*{margin:0; padding:0;}
#socialbuttonnav li{background:none; overflow:hidden; width:140px; height:30px; line-height:30px; margin-right:2px; float:left; text-align:center;}
#fb { text-align:center;border:none; }
</style>
<p>___</p>
<p>Partager cet article :</p>
<ul id="socialbuttonnav" style="list-style:none;width:100%;margin:0 auto;">
<!--<li><div><a name="twitter_share" data-count="vertical" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>-->
<li><!-- Twitter--><div><a name="twitter_share" data-via="QNux" data-text="Petit point sur l&#8217;avancement de ma RepRap" data-url="http://www.peyregne.info/wp/?p=319" data-count="horizontal" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>
<li><!-- Google plus one--><div><g:plusone size="medium" count="true" href="http://www.peyregne.info/wp/?p=319"></g:plusone></div></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.peyregne.info/wp/?feed=rss2&#038;p=319</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mettre à jour le firmware USB de l&#8217;Arduino Uno et Mega</title>
		<link>http://www.peyregne.info/wp/?p=300</link>
		<comments>http://www.peyregne.info/wp/?p=300#comments</comments>
		<pubDate>Mon, 03 Oct 2011 22:17:39 +0000</pubDate>
		<dc:creator>Quentin</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[DFU]]></category>
		<category><![CDATA[Mega8U2]]></category>
		<category><![CDATA[USB]]></category>

		<guid isPermaLink="false">http://www.peyregne.info/wp/?p=300</guid>
		<description><![CDATA[Les Arduino récents, Uno et Mega, comportent une puce Atmel Mega8U2 qui fait office de convertisseur USB / Serie. Récemment, je suis tombé sur un bug lié à cette puce Mega8U2, qui visiblement ne se produit que sur les systèmes GNU/Linux. Les symptômes sont les suivants : Le périphérique /dev/ttyACM0 ne répond plus, L'IDE Arduino [...]]]></description>
			<content:encoded><![CDATA[<p>Les Arduino récents, Uno et Mega, comportent une puce Atmel Mega8U2 qui fait office de convertisseur USB / Serie.</p>
<p>Récemment, je suis tombé sur un bug lié à cette puce Mega8U2, qui visiblement ne se produit que sur les systèmes GNU/Linux. Les symptômes sont les suivants :</p>
<ul>
<li>Le périphérique <em>/dev/ttyACM0</em> ne répond plus,</li>
<li>L'IDE Arduino freeze pendant plusieurs secondes,</li>
<li>Il faut parfois plus de 4-5 fois pour réussir à programmer l'Arduino</li>
</ul>
<p>En parcourant les forums, je suis tombé sur <a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1286088093/30" target="_blank">ce topic</a>, en anglais, où la solution à ce problème est donné par <em>stimmer</em>. Je vais donc traduire en français la marche à suivre pour la résolution, en espérant que cela puisse servir à d'autres !</p>
<p><span id="more-300"></span></p>
<p><strong>ATTENTION ! </strong>Je vous encourage à bien vous renseigner sur la procédure, car elle peut être risquée pour un néophyte.</p>
<ol>
<li>Préparation de la carte : sur l'Arduino Uno, il faut souder une résitance de 100 kΩ aux bornes des pastilles entourées en rouge sur la photo suivante (au dos de la carte) :<br />
<a href="http://www.peyregne.info/wp/wp-content/uploads/2011/10/arduino_back.jpg"><br />
<img class="aligncenter size-full wp-image-302" title="arduino_back" src="http://www.peyregne.info/wp/wp-content/uploads/2011/10/arduino_back.jpg" alt="" width="512" height="339" /><br />
</a></li>
<li>Installer le paquet dfu-programmer qui va permettre de reprogrammer la puce :

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;"># aptitude install dfu-programmer</pre></div></div>

</li>
<li>Télécharger le binaire correspondant à votre carte (Uno ou Mega) sur le site suivant : <a href="https://github.com/arduino/Arduino/tree/new-extension/hardware/arduino/firmwares/arduino-usbserial">https://github.com/arduino/Arduino/tree/new-extension/hardware/arduino/firmwares/arduino-usbserial</a> (clic sur le fichier, puis clic droit sur le bouton "Raw" et Enregistrer Sous)<br />
<em>Arduino-usbserial-uno.hex</em> pour l'Arduino Uno<br />
<em>Arduino-usbserial-mega.hex </em>pour l'Arduino Mega</li>
<li>Brancher l'Arduino au PC avec le câble USB.</li>
<li>Faire contact entre les deux pins entourées en rouge sur la photo suivante :<br />
<a href="http://www.peyregne.info/wp/wp-content/uploads/2011/10/arduino_front.jpg"><img class="aligncenter size-full wp-image-303" title="arduino_front" src="http://www.peyregne.info/wp/wp-content/uploads/2011/10/arduino_front.jpg" alt="" width="513" height="340" /></a></p>
<p>Cette opération permet de faire un <em>reset</em> de la puce Mega8U2. L'Arduino ne doit alors plus apparaître dans /dev/ :</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;"># ls /dev/ttyACM*</pre></div></div>

<p>Ne doit rien afficher.</li>
<li>Ensuite, il n'y a plus qu'à flasher la puce avec les commandes suivantes (à faire en root) :

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;"># dfu-programmer at90usb82 erase
# dfu-programmer at90usb82 flash --debug 1 Arduino-usbserial-uno.hex
Validating...
4058 bytes used (99.07%)
# dfu-programmer at90usb82 reset</pre></div></div>

</li>
<li>Il n'y a alors plus qu'à débrancher puis rebrancher l'Arduino, et tous les bugs cités en introduction seront normalement résolus !</li>
</ol>
<p>[Sources]<br />
<a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1286088093/30">http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1286088093/30<br />
</a><a href="http://arduino.cc/en/Hacking/DFUProgramming8U2">http://arduino.cc/en/Hacking/DFUProgramming8U2</a></p>

<style>
*{margin:0; padding:0;}
#socialbuttonnav li{background:none; overflow:hidden; width:140px; height:30px; line-height:30px; margin-right:2px; float:left; text-align:center;}
#fb { text-align:center;border:none; }
</style>
<p>___</p>
<p>Partager cet article :</p>
<ul id="socialbuttonnav" style="list-style:none;width:100%;margin:0 auto;">
<!--<li><div><a name="twitter_share" data-count="vertical" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>-->
<li><!-- Twitter--><div><a name="twitter_share" data-via="QNux" data-text="Mettre à jour le firmware USB de l&#8217;Arduino Uno et Mega" data-url="http://www.peyregne.info/wp/?p=300" data-count="horizontal" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>
<li><!-- Google plus one--><div><g:plusone size="medium" count="true" href="http://www.peyregne.info/wp/?p=300"></g:plusone></div></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.peyregne.info/wp/?feed=rss2&#038;p=300</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installer l&#8217;IDE Arduino sur Debian</title>
		<link>http://www.peyregne.info/wp/?p=279</link>
		<comments>http://www.peyregne.info/wp/?p=279#comments</comments>
		<pubDate>Sun, 02 Oct 2011 15:42:13 +0000</pubDate>
		<dc:creator>Quentin</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[chroot]]></category>
		<category><![CDATA[Debian]]></category>

		<guid isPermaLink="false">http://www.peyregne.info/wp/?p=279</guid>
		<description><![CDATA[Je suis passé sur un système GNU/Linux pour mon ordinateur personnel depuis plusieurs mois, au début sur la distribution ArchLinux, et depuis peu je suis passé sur une Debian. Ce qui était bien sur Arch, c'est d'avoir toujours la dernière version des paquets. L'inconvénient, c'est la stabilité du système. C'est pour cette raison que j'ai [...]]]></description>
			<content:encoded><![CDATA[<p>Je suis passé sur un système GNU/Linux pour mon ordinateur personnel depuis plusieurs mois, au début sur la distribution <a href="http://archlinux.fr/" target="_blank">ArchLinux</a>, et depuis peu je suis passé sur une <a href="http://www.debian.org/index.fr.html" target="_blank">Debian</a>. Ce qui était bien sur Arch, c'est d'avoir toujours la dernière version des paquets. L'inconvénient, c'est la stabilité du système. C'est pour cette raison que j'ai préféré passer sur une Debian. J'utilise Debian Wheezy comme système hôte (Debian "Testing").</p>
<p>Actuellement, les paquets <em>arduino</em> et <em>arduino-core</em>, qui sont les paquets officiels, sont en version 18 sur Wheezy, ce qui est une version assez ancienne qui ne supporte pas la dernière version de l'<a href="http://www.peyregne.info/wp/?p=133" target="_self">Arduino Uno</a>.</p>
<p>Ne voulant pas passer ma machine en testing, ni jouer avec les dépendances pour installer à la main la version 22 (qui est la dernière version à ce jour) des paquets précédents, je me suis donc fait un chroot contenant la version <em>unstable</em> nommée "Sid". Pour ça, un petit coup de debootstrap :</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;"># ﻿debootstrap --arch amd64 --variant=minbase sid /chemin/vers/chroot http://ftp.fr.debian.org/debian/</pre></div></div>

<p>Ensuite, j'ai un petit script (<em>launchChroot.sh</em>) pour monter correctement les volumes nécessaires au chroot, lancer le chroot et tout démonter correctement à la fin :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #007800;">chemin</span>=<span style="color: #000000; font-weight: bold;">/</span>chemin<span style="color: #000000; font-weight: bold;">/</span>vers<span style="color: #000000; font-weight: bold;">/</span>dossier<span style="color: #000000; font-weight: bold;">/</span>installation<span style="color: #000000; font-weight: bold;">/</span>du<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">chroot</span>
<span style="color: #c20cb9; font-weight: bold;">mount</span> <span style="color: #660033;">--bind</span> <span style="color: #000000; font-weight: bold;">/</span>dev <span style="color: #007800;">$chemin</span><span style="color: #000000; font-weight: bold;">/</span>dev
<span style="color: #c20cb9; font-weight: bold;">mount</span> <span style="color: #660033;">--bind</span> <span style="color: #000000; font-weight: bold;">/</span>proc <span style="color: #007800;">$chemin</span><span style="color: #000000; font-weight: bold;">/</span>proc
<span style="color: #c20cb9; font-weight: bold;">mount</span> <span style="color: #660033;">--bind</span> <span style="color: #000000; font-weight: bold;">/</span>sys <span style="color: #007800;">$chemin</span><span style="color: #000000; font-weight: bold;">/</span>sys
<span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>,<span style="color: #007800;">$chemin</span><span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>resolv.conf
<span style="color: #c20cb9; font-weight: bold;">chroot</span> <span style="color: #007800;">$chemin</span>;
<span style="color: #666666; font-style: italic;">#fin on demonte</span>
<span style="color: #c20cb9; font-weight: bold;">umount</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$chemin</span>&quot;</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>dev,proc,sys<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></div></div>

<p>Ensuite, un petit coup de</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;"># chmod 755 launchChroot.sh</pre></div></div>

<p>puis, pour lancer le tout :</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;"># ./launchChroot.sh</pre></div></div>

<p>On est maintenant dans le système chrooté fraîchement installé. Nous allons donc pouvoir installer les dernières version des paquets <em>arduino</em> (qui a pour dépendance <em>arduino-core</em>) :</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;"># apt-get install arduino</pre></div></div>

<p>Pour éviter de faire trop de bêtises, on se créer un compte utilisateur :</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;"># adduser nomUtilisateur</pre></div></div>

<p>On ajoute l'utilisateur au groupe <em>dialout</em> pour qu'il puisse accéder au port série (sinon le sous menu <em>Tools &gt; Serial Port</em> sera désactivé quand on lancera l'IDE arduino)</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;"># usermod -a -G dialout nomUtilisateur
# su  nomUtilisateur
# arduino &amp;</pre></div></div>

<p>Tadam !</p>
<p><a href="http://www.peyregne.info/wp/wp-content/uploads/2011/10/Arduino.png"><img class="aligncenter size-full wp-image-291" title="Arduino" src="http://www.peyregne.info/wp/wp-content/uploads/2011/10/Arduino.png" alt="" /></a></p>
<p>Ensuite petite vérification, sélectionner le Serial Port dans le menu Tools. Si vous avez un Arduino Uno par exemple, le périphérique /dev/ttyACM0 doit apparaître. Si ce n'est pas le cas, plusieurs raisons :</p>
<ul>
<li>L'utilisateur n'est pas dans le groupe <em>dialout</em></li>
<li>Vous n'avez pas bindé /dev dans le chroot (voir script du lancement de chroot ci-dessus)</li>
<li>Vérifiez la version des paquets <em>arduino</em> et <em>librxtx-java</em> :

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;"># dpkg -s arduino |grep Version</pre></div></div>

<p>(doit être  &gt;= 22)</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;"># dpkg -s librxtx-java |grep Version</pre></div></div>

<p>(doit être &gt;= 2.2pre2-3)</li>
<li>Ou encore, comme j'ai eu, vous êtes victime d'un bug concernant les drivers USB3. Je n'ai pas trop eu le temps de creuser, ce bug a l'air d'être connu mais je ne saurait dire si ça vient du hard, du noyau ou de la distro. Dans ce cas, il suffit dans brancher la carte sur un port USB2, et ça fonctionnera.</li>
</ul>
<p>Bon amusement ! <img src='http://www.peyregne.info/wp/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>

<style>
*{margin:0; padding:0;}
#socialbuttonnav li{background:none; overflow:hidden; width:140px; height:30px; line-height:30px; margin-right:2px; float:left; text-align:center;}
#fb { text-align:center;border:none; }
</style>
<p>___</p>
<p>Partager cet article :</p>
<ul id="socialbuttonnav" style="list-style:none;width:100%;margin:0 auto;">
<!--<li><div><a name="twitter_share" data-count="vertical" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>-->
<li><!-- Twitter--><div><a name="twitter_share" data-via="QNux" data-text="Installer l&#8217;IDE Arduino sur Debian" data-url="http://www.peyregne.info/wp/?p=279" data-count="horizontal" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>
<li><!-- Google plus one--><div><g:plusone size="medium" count="true" href="http://www.peyregne.info/wp/?p=279"></g:plusone></div></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.peyregne.info/wp/?feed=rss2&#038;p=279</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La mécanique de la RepRap</title>
		<link>http://www.peyregne.info/wp/?p=266</link>
		<comments>http://www.peyregne.info/wp/?p=266#comments</comments>
		<pubDate>Fri, 30 Sep 2011 23:22:05 +0000</pubDate>
		<dc:creator>Quentin</dc:creator>
				<category><![CDATA[RepRap]]></category>
		<category><![CDATA[Mécanique]]></category>
		<category><![CDATA[Prusa]]></category>

		<guid isPermaLink="false">http://www.peyregne.info/wp/?p=266</guid>
		<description><![CDATA[J'ai décidé de rentrer un peu plus dans les détails techniques de la RepRap Prusa, et j'ai prévu de faire plusieurs articles pour présenter l'électronique, la mécanique, l'extruder, le montage, la configuration et l'utilisation de cette imprimante 3D. La plupart des articles ne seront pas spécifiques au modèle Prusa, mais mon but n'est pas de [...]]]></description>
			<content:encoded><![CDATA[<p>J'ai décidé de rentrer un peu plus dans les détails techniques de la <strong>RepRap Prusa</strong>, et j'ai prévu de faire plusieurs articles pour présenter l'électronique, la mécanique, l'extruder, le montage, la configuration et l'utilisation de cette imprimante 3D. La plupart des articles ne seront pas spécifiques au modèle Prusa, mais mon but n'est pas de faire des comparatifs entre tous les modèles existants...</p>
<p>Pour ce premier article de la série, je vais parler de l'<strong>architecture mécanique</strong> de la RepRap.</p>
<p>L'imprimante est articulée autour de <strong>trois axes X, Y et Z</strong> qui permet de positionner la tête d'impression (en anglais "Extruder") en trois dimensions relativement à l'objet à imprimer. Le mouvement du plateau support est unidirectionnel selon l'axe Y, et la tête est mue selon les axes X et Z. Lors de la dépose d'une couche de plastique, seuls les axes X et Y bougent de manière synchronisée. Une fois la couche terminée, la tête de lecture est déplacée légèrement selon l'axe Z, puis une nouvelle couche peut être déposée.</p>
<p><a href="http://www.peyregne.info/wp/wp-content/uploads/2011/09/axes.png"><img class="aligncenter size-full wp-image-268" title="axes" src="http://www.peyregne.info/wp/wp-content/uploads/2011/09/axes.png" alt="" /></a></p>
<p><a href="http://www.peyregne.info/wp/wp-content/uploads/2011/09/axes.png"></a>Les mouvements selon les axes X et Y sont réalisés avec un moteur par axe, tandis qu'il faut 2 moteurs de part et d'autre de l'imprimante pour actionner l'axe Z.</p>
<p>Les moteurs sont des<strong> moteurs pas à pas</strong>, ce qui permet de les piloter facilement en position (nous y reviendrons plus tard). Les moteurs X et Y sont reliés à des courroies pour faire bouger la navette et le plateau. Les moteurs pour l'axe Z sont reliés directement aux vis permettant de monter et descendre la navette. Il existe aussi des versions avec un seul moteur pour l'axe Z, avec une courroie pour relier les deux vis permettant de faire monter la navette avec l'Extruder, mais le problème est que ces deux vis doivent être parfaitement synchronisées pour que l'axe X soit bien horizontal.</p>
<p>Le châssis de l'imprimante est composé de deux parties. <strong>Des tiges filetées et des barreaux</strong> (en gris sur l'image ci-dessus), et des <strong>pièces d'assemblage en plastique</strong> (en vert). Ce sont ces pièces qui peuvent être imprimées par l'imprimante pour en recréer d'autres, ce qui vaut à la RepRap sa qualification d'<strong>auto-réplicatrice </strong>!</p>
<p>Dans un prochain article, je vais me focaliser sur la tête d'impression.</p>

<style>
*{margin:0; padding:0;}
#socialbuttonnav li{background:none; overflow:hidden; width:140px; height:30px; line-height:30px; margin-right:2px; float:left; text-align:center;}
#fb { text-align:center;border:none; }
</style>
<p>___</p>
<p>Partager cet article :</p>
<ul id="socialbuttonnav" style="list-style:none;width:100%;margin:0 auto;">
<!--<li><div><a name="twitter_share" data-count="vertical" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>-->
<li><!-- Twitter--><div><a name="twitter_share" data-via="QNux" data-text="La mécanique de la RepRap" data-url="http://www.peyregne.info/wp/?p=266" data-count="horizontal" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>
<li><!-- Google plus one--><div><g:plusone size="medium" count="true" href="http://www.peyregne.info/wp/?p=266"></g:plusone></div></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.peyregne.info/wp/?feed=rss2&#038;p=266</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Ouvrir une liste d&#8217;URL</title>
		<link>http://www.peyregne.info/wp/?p=263</link>
		<comments>http://www.peyregne.info/wp/?p=263#comments</comments>
		<pubDate>Fri, 30 Sep 2011 21:47:52 +0000</pubDate>
		<dc:creator>Quentin</dc:creator>
				<category><![CDATA[Pratique]]></category>
		<category><![CDATA[Astuce]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[URL]]></category>

		<guid isPermaLink="false">http://www.peyregne.info/wp/?p=263</guid>
		<description><![CDATA[Voici une petite astuce, pour ouvrir une liste d'URL (par exemple une liste de photos Flickr, une liste de numéros de suivi de colis, une liste d'objets eBay à surveiller, etc...). Le site URLOpener.com permet de saisir et d'ouvrir une liste d'URL Le site OpenUpper.com permet de saisir et de sauvegarder des listes d'URL pour [...]]]></description>
			<content:encoded><![CDATA[<p>Voici une petite astuce, pour ouvrir une liste d'URL (par exemple une liste de photos Flickr, une liste de numéros de suivi de colis, une liste d'objets eBay à surveiller, etc...).</p>
<ul>
<li>Le site <a href="http://www.urlopener.com/index.php" target="_blank">URLOpener.com</a> permet de saisir et d'ouvrir une liste d'URL</li>
<li>Le site <a href="http://www.openupper.com/" target="_blank">OpenUpper.com</a> permet de saisir et de sauvegarder des listes d'URL pour les ouvrir plus tard (par exemple pour partager des listes, ça peut être utile).</li>
</ul>
<p>C'est tout ! <img src='http://www.peyregne.info/wp/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>

<style>
*{margin:0; padding:0;}
#socialbuttonnav li{background:none; overflow:hidden; width:140px; height:30px; line-height:30px; margin-right:2px; float:left; text-align:center;}
#fb { text-align:center;border:none; }
</style>
<p>___</p>
<p>Partager cet article :</p>
<ul id="socialbuttonnav" style="list-style:none;width:100%;margin:0 auto;">
<!--<li><div><a name="twitter_share" data-count="vertical" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>-->
<li><!-- Twitter--><div><a name="twitter_share" data-via="QNux" data-text="Ouvrir une liste d&#8217;URL" data-url="http://www.peyregne.info/wp/?p=263" data-count="horizontal" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>
<li><!-- Google plus one--><div><g:plusone size="medium" count="true" href="http://www.peyregne.info/wp/?p=263"></g:plusone></div></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.peyregne.info/wp/?feed=rss2&#038;p=263</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>J&#8217;ai craqué pour une RepRap&#8230;</title>
		<link>http://www.peyregne.info/wp/?p=250</link>
		<comments>http://www.peyregne.info/wp/?p=250#comments</comments>
		<pubDate>Thu, 29 Sep 2011 21:05:15 +0000</pubDate>
		<dc:creator>Quentin</dc:creator>
				<category><![CDATA[RepRap]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Imprimante 3D]]></category>
		<category><![CDATA[Prusa]]></category>

		<guid isPermaLink="false">http://www.peyregne.info/wp/?p=250</guid>
		<description><![CDATA[Oui je suis faible, j'ai craqué pour une RepRap... ( enfin !! ) Je ne vais pas expliquer ce qu'est une RepRap ici, mes lecteurs sont suffisamment geeks pour savoir ce que c'est . Ça va faire plus de deux ans que j'ai pris connaissance du projet RepRap, mais à l'époque je n'avais pas de [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://reprap.org"><img class="alignright size-full wp-image-254" style="border-style: initial; border-color: initial;" title="reprap_logo" src="http://www.peyregne.info/wp/wp-content/uploads/2011/09/reprap_logo3.png" alt="" width="110" height="137" /></a></p>
<p>Oui je suis faible, j'ai craqué pour une <a href="http://reprap.org" target="_blank">RepRap</a>... ( enfin !! <img src='http://www.peyregne.info/wp/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  )</p>
<p>Je ne vais pas expliquer ce qu'est une RepRap ici, mes lecteurs sont suffisamment geeks pour savoir ce que c'est <img src='http://www.peyregne.info/wp/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
<p>Ça va faire plus de deux ans que j'ai pris connaissance du projet RepRap, mais à l'époque<span style="text-decoration: line-through;"> je n'avais pas de sous</span> j'étais étudiant, et le modèle <a href="http://reprap.org/wiki/Mendel_(Fran%C3%A7ais)" target="_blank">Mendel "de base"</a> comportait beaucoup de pièces, qui étaient rares donc chères.  Depuis, les choses on beaucoup évolué. Tout un tas de nouveaux modèles sont sortis, qui à chaque fois permettait d'améliorer les performances de la machine, tout en diminuant le nombre de pièces nécessaires et donc le coût total. Le modèle <a href="http://reprap.org/wiki/Prusa" target="_blank">Mendel Prusa</a> a le vent en poupe ces derniers temps, et est maintenant considéré comme la nouvelle référence RepRap. A titre de comparaison, la RepRap Mendel originale nécessite 50 roulements à bille, contre 3 seulement pour la RepRap Prusa.</p>
<p>Vouloir avoir une RepRap, beaucoup de gens en rêvent. Concrétiser son rêve, c'est beaucoup plus compliqué, parce que :</p>
<ul>
<li>C'est quand même une petite somme d'argent à investir (cf plus bas),</li>
<li>Il faut beaucoup de temps pour se renseigner sur les différents modèles et choisir le sien,</li>
<li>Il faut faire la liste des pièces nécessaires, fouiller sur internet, les forums, les blogs,...</li>
<li>Il faut trouver où acheter les pièces. Et c'est là que ça se corse : les vendeurs sur internet se font rares, et les pièces à vendre sur eBay partent rapidement. Il faut donc être trèèèèès patient pour trouver les bonnes pièces au meilleur prix sans se faire arnaquer,</li>
<li>Il faut avoir du temps pour fabriquer la RepRap. Et oui c'est quand même plus marrant de tout faire soit même que d'acheter un kit déjà monté (et surtout beaucoup moins cher !!),</li>
<li>Il faut avoir du temps pour modéliser les pièces et les imprimer. Il faut compter 10 à 20 cm<sup>3</sup> par heure de débit de plastique (enfin quand on en est rendu à cette étape, on est content)</li>
</ul>
<p>Personnellement, ça fait quelques semaines que je me renseigne activement sur la RepRap, et j'ai jeté mon dévolu sur le modèle Prusa, qui est suffisamment connu et diffusé pour qu'on trouve de la documentation à son sujet. Cette étape est vraiment primordiale pour bien savoir dans quoi on se lance, connaître les pièces à obtenir, les différents organes de la machine, etc.</p>
<p>Vient ensuite la chasse aux meilleurs prix et aux disponibilités sur internet. Le site officiel RepRap.org contient beaucoup de liens vers des sites marchand qui fournissent des kits plus ou moins complest, mais souvent à des prix prohibitifs. La solution pour moi a donc été de chercher dans les recoins d'eBay des pièces détachées, pour petit à petit cocher toutes les lignes de la liste des composants requis. En faisant cela, je suis arrivé à un coût nettement inférieur aux revendeurs de kits complets (de l'ordre de -40%, avec les frais de ports).</p>
<p>Voici le détail du coût de ma RepRap:</p>
<ul>
<li>Kit de pièces imprimés "Prusa" métrique : 78€</li>
<li>Éléments mécaniques (tiges, vis, écrous,...) : 60€</li>
<li>Base chauffante : 33€</li>
<li>5 Moteurs pas à pas : 100€</li>
<li>Electronique complète : 200€</li>
<li>Tête chauffante : 50€</li>
<li><strong>TOTAL : 521€</strong></li>
</ul>
<p>En cherchant encore plus, j'aurais pu rogner encore quelques dizaines d'euros, mais je n'avais pas envie de faire 50 commandes non plus...</p>
<p>Bref, je suis maintenant dans la phase d'attente de réception de tout ce matériel, ce qui me laisse le temps de faire grandir ma liste d'objets à imprimer... <img src='http://www.peyregne.info/wp/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<style>
*{margin:0; padding:0;}
#socialbuttonnav li{background:none; overflow:hidden; width:140px; height:30px; line-height:30px; margin-right:2px; float:left; text-align:center;}
#fb { text-align:center;border:none; }
</style>
<p>___</p>
<p>Partager cet article :</p>
<ul id="socialbuttonnav" style="list-style:none;width:100%;margin:0 auto;">
<!--<li><div><a name="twitter_share" data-count="vertical" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>-->
<li><!-- Twitter--><div><a name="twitter_share" data-via="QNux" data-text="J&#8217;ai craqué pour une RepRap&#8230;" data-url="http://www.peyregne.info/wp/?p=250" data-count="horizontal" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>
<li><!-- Google plus one--><div><g:plusone size="medium" count="true" href="http://www.peyregne.info/wp/?p=250"></g:plusone></div></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.peyregne.info/wp/?feed=rss2&#038;p=250</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>I&#8217;m back :-)</title>
		<link>http://www.peyregne.info/wp/?p=235</link>
		<comments>http://www.peyregne.info/wp/?p=235#comments</comments>
		<pubDate>Mon, 26 Sep 2011 21:41:14 +0000</pubDate>
		<dc:creator>Quentin</dc:creator>
				<category><![CDATA[Divers]]></category>

		<guid isPermaLink="false">http://www.peyregne.info/wp/?p=235</guid>
		<description><![CDATA[Mon dernier article remonte à février... D'ailleurs la réparation du Macbook de mon frère fonctionne toujours ! Entre temps, j'ai beaucoup été pris par le boulot, et par Atlantronic, mon équipe participant à la Coupe de France de robotique. Cette année, nous remettons le couvert pour une nouvelle participation, ma cinquième Sinon j'ai beaucoup de projets personnels plus [...]]]></description>
			<content:encoded><![CDATA[<p>Mon dernier article remonte à février... D'ailleurs <a href="http://www.peyregne.info/wp/?p=227" target="_blank">la réparation du Macbook de mon frère</a> fonctionne toujours !</p>
<p>Entre temps, j'ai beaucoup été pris par le boulot, et par <a href="http://www.atlantronic.fr" target="_blank">Atlantronic</a>, mon équipe participant à la Coupe de France de robotique. Cette année, nous remettons le couvert pour une nouvelle participation, ma cinquième <img src='http://www.peyregne.info/wp/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Sinon j'ai beaucoup de projets personnels plus ou moins avancés (dont <a href="http://www.peyregne.info/wp/?p=164" target="_blank">mon horloge binaire</a> à qui j'ai fait un beau boîtier), donc potentiellement plein d'articles à écrire. Encore une fois, il faut que je trouve le temps de faire tout ça, mais je ne désespère pas !</p>

<style>
*{margin:0; padding:0;}
#socialbuttonnav li{background:none; overflow:hidden; width:140px; height:30px; line-height:30px; margin-right:2px; float:left; text-align:center;}
#fb { text-align:center;border:none; }
</style>
<p>___</p>
<p>Partager cet article :</p>
<ul id="socialbuttonnav" style="list-style:none;width:100%;margin:0 auto;">
<!--<li><div><a name="twitter_share" data-count="vertical" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>-->
<li><!-- Twitter--><div><a name="twitter_share" data-via="QNux" data-text="I&#8217;m back :-)" data-url="http://www.peyregne.info/wp/?p=235" data-count="horizontal" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>
<li><!-- Google plus one--><div><g:plusone size="medium" count="true" href="http://www.peyregne.info/wp/?p=235"></g:plusone></div></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.peyregne.info/wp/?feed=rss2&#038;p=235</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Démarrer un Macbook Unibody sans clavier</title>
		<link>http://www.peyregne.info/wp/?p=227</link>
		<comments>http://www.peyregne.info/wp/?p=227#comments</comments>
		<pubDate>Sun, 20 Feb 2011 19:15:43 +0000</pubDate>
		<dc:creator>Quentin</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[clavier]]></category>
		<category><![CDATA[macbook]]></category>
		<category><![CDATA[power switch]]></category>
		<category><![CDATA[unibody]]></category>

		<guid isPermaLink="false">http://www.peyregne.info/wp/?p=227</guid>
		<description><![CDATA[Récemment mon frère a renversé du Coca sur son Macbook Unibody, ce qui est peu recommandé. Le problème est que son clavier fonctionnait toujours, mais par intermittence, et parfois même des touches se "tapaient" toutes seules. Il existe deux solutions pour résoudre le problème : Celle du riche fainéant : faire remplacer le clavier par [...]]]></description>
			<content:encoded><![CDATA[<p>Récemment mon frère a renversé du Coca sur son Macbook Unibody, ce qui est peu recommandé. Le problème est que son clavier fonctionnait toujours, mais par intermittence, et parfois même des touches se "tapaient" toutes seules. Il existe deux solutions pour résoudre le problème :</p>
<ul>
<li>Celle du riche fainéant : faire remplacer le clavier par Apple (200 €)</li>
<li>Celle <strike>du pauvre</strike> de l'étudiant curieux : acheter un clavier externe (20 €) et déconnecter l'interne.</li>
</ul>
<p>Le problème de la seconde solution, c'est que ça ne résout pas le problème des frappes intempestives sur clavier interne. Une solution facile est de déconnecter physiquement le clavier de la carte mère, et pour cela j'ai fait confiance un très célèbre site <a href="http://www.ifixit.com/" target="_blank">iFixit</a>, spécialiste des réparations de produits Apple. La manipulation est décrite dans l'<a href="http://www.ifixit.com/Guide/Repair/Installing-MacBook-Unibody-Model-A1278-Logic-Board-Replacement/765/5" target="_blank">étape 15 de l'article de ce lien</a>.</p>
<p>Le gros soucis, c'est que le bouton de mise en marche est justement relié par ce connecteur ! Qu'à cela ne tienne, j'ai donc cherché des les recoins d'internet et je suis tombé sur <a href="http://forums.macrumors.com/showthread.php?t=949088" target="_blank">ce forum</a> ou quelqu'un décrit quels sont les pins à relier ensemble pour simuler un appui sur le bouton.</p>
<p>Pour pouvoir <strong>allumer le Macbook sans le clavier</strong>, il suffit dont de <strong>faire contact entre les pins 5 et 29 du connecteur du clavier</strong>. Pour éviter d'avoir à ouvrir le portable pour chaque mise en route, j'ai donc soudé deux petits câbles, maintenus par un bon coup de pisto-colle, que j'ai fait sortir par la grille de ventilation arrière, et le tour est joué !</p>
<p style="text-align: center;"><a href="http://www.peyregne.info/wp/wp-content/uploads/2011/02/macbook_inside.jpg"><img class="aligncenter size-full wp-image-228" title="macbook_inside" src="http://www.peyregne.info/wp/wp-content/uploads/2011/02/macbook_inside.jpg" alt="" width="560" height="424" /></a></p>
<p>Et démarrer son Macbook à la MacGyver, ça n'a pas de prix !</p>
<p style="text-align: center;"><a href="http://www.peyregne.info/wp/wp-content/uploads/2011/02/macbook_outside.jpg"><img class="aligncenter size-full wp-image-229" title="macbook_outside" src="http://www.peyregne.info/wp/wp-content/uploads/2011/02/macbook_outside.jpg" alt="" width="560" height="420" /></a></p>
<p>(J'ai pensé à protéger un peu les contacts pour ne pas que la machine ne démarre ou s'arrête toute seule...)</p>

<style>
*{margin:0; padding:0;}
#socialbuttonnav li{background:none; overflow:hidden; width:140px; height:30px; line-height:30px; margin-right:2px; float:left; text-align:center;}
#fb { text-align:center;border:none; }
</style>
<p>___</p>
<p>Partager cet article :</p>
<ul id="socialbuttonnav" style="list-style:none;width:100%;margin:0 auto;">
<!--<li><div><a name="twitter_share" data-count="vertical" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>-->
<li><!-- Twitter--><div><a name="twitter_share" data-via="QNux" data-text="Démarrer un Macbook Unibody sans clavier" data-url="http://www.peyregne.info/wp/?p=227" data-count="horizontal" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>
<li><!-- Google plus one--><div><g:plusone size="medium" count="true" href="http://www.peyregne.info/wp/?p=227"></g:plusone></div></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.peyregne.info/wp/?feed=rss2&#038;p=227</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Capteur de température DS1631 et Arduino</title>
		<link>http://www.peyregne.info/wp/?p=211</link>
		<comments>http://www.peyregne.info/wp/?p=211#comments</comments>
		<pubDate>Sun, 09 Jan 2011 20:29:54 +0000</pubDate>
		<dc:creator>Quentin</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[DS1631]]></category>
		<category><![CDATA[I2C]]></category>
		<category><![CDATA[Minitel]]></category>

		<guid isPermaLink="false">http://www.peyregne.info/wp/?p=211</guid>
		<description><![CDATA[Le DS1631 est un capteur de température, et est disponible en sample sur le site de Maxim, le fabriquant. Ce capteur s'interface facilement avec l'Arduino avec une liaison I2C. Il retourne une température avec une précision réglable allant jusqu'au 1/16ème de degré. Diagramme du DS1631 Ci-dessous un exemple de cablage avec l'Arduino, sachant qu'on peut [...]]]></description>
			<content:encoded><![CDATA[<p>Le <a href="http://www.maxim-ic.com/datasheet/index.mvp/id/3241" target="_blank">DS1631</a> est un capteur de température, et est disponible en <a href="http://www.maxim-ic.com/samples" target="_blank">sample sur le site de Maxim</a>, le fabriquant. Ce capteur s'interface facilement avec l'Arduino avec une liaison I<sup>2</sup>C. Il retourne une température avec une précision réglable allant jusqu'au 1/16<sup>ème</sup> de degré.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-212" title="DS1631" src="http://www.peyregne.info/wp/wp-content/uploads/2011/01/DS1631.png" alt="" width="281" height="178" /><em>Diagramme du DS1631</em></p>
<p><span id="more-211"></span>Ci-dessous un exemple de cablage avec l'Arduino, sachant qu'on peut choisir une partie de l'adresse I<sup>2</sup>C avec les pins A0, A1, A2 ce qui peut s'avérer pratique pour gérer plusieurs capteurs en même temps.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-213" title="DS1631_Arduino" src="http://www.peyregne.info/wp/wp-content/uploads/2011/01/DS1631_Arduino.png" alt="" width="477" height="653" /><em>Branchement du DS1631 avec l'Arduino</em></p>
<p style="text-align: left;">Et voici le code permettant de lire puis d'afficher la température sur à l'aide d'une liaison série sur mon Minitel.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #ff0000; font-style: italic;">/*
 * DS1631 Temperature sensor
 * www.peyregne.info
*/</span>
&nbsp;
<span style="color: #339900;">#include &lt;Wire.h&gt;</span>
&nbsp;
<span style="color: #666666;">// Adress pins of the DS1631 device</span>
<span style="color: #666666;">// 0 if pin connected to GND, 1 to VDD</span>
&nbsp;
<span style="color: #339900;">#define DS1631_A0 0</span>
<span style="color: #339900;">#define DS1631_A1 0</span>
<span style="color: #339900;">#define DS1631_A2 0</span>
&nbsp;
<span style="color: #339900;">#define DS1631_CFG_R1     1  // resolution 9 to 12 bits</span>
<span style="color: #339900;">#define DS1631_CFG_R0     1  // set to 12 bits (750ms conversion time)</span>
<span style="color: #339900;">#define DS1631_CFG_POL    0  // T_OUT polarity (1=active high, 0=active low)</span>
<span style="color: #339900;">#define DS1631_CFG_1SHOT  1  // Conversion mode (1=one shot mode, 0=continuous mode)</span>
&nbsp;
<span style="color: #666666;">// Do not change the following definitions</span>
&nbsp;
<span style="color: #339900;">#define DS1631_ADDR (0x48 | DS1631_A2&lt;&lt;2 | DS1631_A1&lt;&lt;1 | DS1631_A0)</span>
&nbsp;
<span style="color: #339900;">#define DS1631_CFG (DS1631_CFG_R1 &lt;&lt; 3 \
                    | DS1631_CFG_R0 &lt;&lt; 2 \
                    | DS1631_CFG_POL &lt;&lt; 1 \
                    | DS1631_CFG_1SHOT)</span>
&nbsp;
<span style="color: #339900;">#define DS1631_DONE_MASK 0x80;</span>
&nbsp;
<span style="color: #0000ff;">void</span> setup<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  <span style="color: #666666;">// Opening I2C interface as Master</span>
  Wire.<span style="color: #007788;">begin</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
  <span style="color: #666666;">// First, stop the conversion (if configured in continuous</span>
  <span style="color: #666666;">// conversion mode) to access the configuration register.</span>
  Wire.<span style="color: #007788;">beginTransmission</span><span style="color: #008000;">&#40;</span>DS1631_ADDR<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  Wire.<span style="color: #007788;">send</span><span style="color: #008000;">&#40;</span><span style="color: #208080;">0x22</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// Stop conversion</span>
  Wire.<span style="color: #007788;">endTransmission</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>  
&nbsp;
  <span style="color: #666666;">// Configuration of DS1631 (see Datasheet)</span>
  Wire.<span style="color: #007788;">beginTransmission</span><span style="color: #008000;">&#40;</span>DS1631_ADDR<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  Wire.<span style="color: #007788;">send</span><span style="color: #008000;">&#40;</span><span style="color: #208080;">0xAC</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// Access Configuration</span>
  Wire.<span style="color: #007788;">send</span><span style="color: #008000;">&#40;</span>DS1631_CFG<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  Wire.<span style="color: #007788;">endTransmission</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #339900;">#if DS1631_CFG_1SHOT == 0</span>
  <span style="color: #666666;">// If continuous mode is set, start continuous conversion</span>
  Wire.<span style="color: #007788;">beginTransmission</span><span style="color: #008000;">&#40;</span>DS1631_ADDR<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  Wire.<span style="color: #007788;">send</span><span style="color: #008000;">&#40;</span><span style="color: #208080;">0x51</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  Wire.<span style="color: #007788;">endTransmission</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  delay<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">750</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// delay to be sure that the first value is correct</span>
<span style="color: #339900;">#endif</span>
&nbsp;
  UCSR0C <span style="color: #000080;">=</span> B00100100<span style="color: #008080;">;</span> <span style="color: #666666;">// passage en mode 7bits + bit de parité</span>
  Serial.<span style="color: #007788;">begin</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1200</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  Serial.<span style="color: #007788;">print</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">12</span>,BYTE<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #0000ff;">void</span> loop<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  <span style="color: #0000ff;">float</span> t <span style="color: #000080;">=</span> <span style="color:#800080;">0.0</span><span style="color: #008080;">;</span>
  t <span style="color: #000080;">=</span> readTempOne<span style="color: #008000;">&#40;</span>DS1631_CFG_1SHOT<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  Serial.<span style="color: #007788;">print</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">12</span>,BYTE<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  Serial.<span style="color: #007788;">print</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">10</span>,BYTE<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  Serial.<span style="color: #007788;">print</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">13</span>,BYTE<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  Serial.<span style="color: #007788;">print</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Temperature : &quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  Serial.<span style="color: #007788;">print</span><span style="color: #008000;">&#40;</span>t,<span style="color: #0000dd;">4</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  Serial.<span style="color: #007788;">print</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot; degres&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
  delay<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">10000</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// wait 10 seconds </span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">float</span> readTempOne<span style="color: #008000;">&#40;</span>boolean oneShotMode<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  <span style="color: #0000ff;">float</span> temp <span style="color: #000080;">=</span> <span style="color:#800080;">0.0</span><span style="color: #008080;">;</span>
&nbsp;
  <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>oneShotMode<span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">&#123;</span>
    <span style="color: #666666;">// Temperature conversion request</span>
    Wire.<span style="color: #007788;">beginTransmission</span><span style="color: #008000;">&#40;</span>DS1631_ADDR<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    Wire.<span style="color: #007788;">send</span><span style="color: #008000;">&#40;</span><span style="color: #208080;">0x51</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    Wire.<span style="color: #007788;">endTransmission</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
    delay<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">750</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// delay for 12 bits precision</span>
&nbsp;
    <span style="color: #666666;">// Now we wait the end of the conversion</span>
    boolean tempAvailable <span style="color: #000080;">=</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span>tempAvailable<span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
      <span style="color: #666666;">// See if the conversion is finished</span>
      <span style="color: #666666;">// in the configuration byte</span>
      Wire.<span style="color: #007788;">beginTransmission</span><span style="color: #008000;">&#40;</span>DS1631_ADDR<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      Wire.<span style="color: #007788;">send</span><span style="color: #008000;">&#40;</span><span style="color: #208080;">0xAC</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      Wire.<span style="color: #007788;">endTransmission</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      Wire.<span style="color: #007788;">requestFrom</span><span style="color: #008000;">&#40;</span>DS1631_ADDR,<span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      Wire.<span style="color: #007788;">available</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      tempAvailable <span style="color: #000080;">=</span> Wire.<span style="color: #007788;">receive</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;</span> DS1631_DONE_MASK<span style="color: #008080;">;</span>
      delay<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">10</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
  <span style="color: #008000;">&#125;</span>
&nbsp;
  <span style="color: #666666;">// read result</span>
  Wire.<span style="color: #007788;">beginTransmission</span><span style="color: #008000;">&#40;</span>DS1631_ADDR<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  Wire.<span style="color: #007788;">send</span><span style="color: #008000;">&#40;</span><span style="color: #208080;">0xAA</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// read last conversion</span>
  Wire.<span style="color: #007788;">endTransmission</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  Wire.<span style="color: #007788;">requestFrom</span><span style="color: #008000;">&#40;</span>DS1631_ADDR,<span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  Wire.<span style="color: #007788;">available</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #0000ff;">int</span> tempMS <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span><span style="color: #008000;">&#41;</span> Wire.<span style="color: #007788;">receive</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  Wire.<span style="color: #007788;">available</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #0000ff;">int</span> tempLS <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span><span style="color: #008000;">&#41;</span> Wire.<span style="color: #007788;">receive</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
  tempLS <span style="color: #000080;">&gt;&gt;=</span> <span style="color: #0000dd;">4</span><span style="color: #008080;">;</span> <span style="color: #666666;">// last 4 bits are always 0</span>
&nbsp;
  <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>tempMS <span style="color: #000040;">&amp;</span> <span style="color: #208080;">0x80</span><span style="color: #008000;">&#41;</span> <span style="color: #666666;">// if the signed bit = 1</span>
    tempMS <span style="color: #000040;">-</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">256</span><span style="color: #008080;">;</span>
&nbsp;
  <span style="color: #666666;">// Float conversion</span>
  temp <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">float</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#40;</span>tempMS <span style="color: #000040;">+</span> tempLS<span style="color: #000040;">*</span><span style="color:#800080;">0.0625</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
  <span style="color: #0000ff;">return</span> temp<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p style="text-align: center;"><img class="aligncenter size-full wp-image-215" title="photo_ds1631" src="http://www.peyregne.info/wp/wp-content/uploads/2011/01/photo_ds1631-e1294601818270.jpg" alt="" width="400" height="571" /><br />
<em>Le programme en action</em></p>

<style>
*{margin:0; padding:0;}
#socialbuttonnav li{background:none; overflow:hidden; width:140px; height:30px; line-height:30px; margin-right:2px; float:left; text-align:center;}
#fb { text-align:center;border:none; }
</style>
<p>___</p>
<p>Partager cet article :</p>
<ul id="socialbuttonnav" style="list-style:none;width:100%;margin:0 auto;">
<!--<li><div><a name="twitter_share" data-count="vertical" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>-->
<li><!-- Twitter--><div><a name="twitter_share" data-via="QNux" data-text="Capteur de température DS1631 et Arduino" data-url="http://www.peyregne.info/wp/?p=211" data-count="horizontal" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>
<li><!-- Google plus one--><div><g:plusone size="medium" count="true" href="http://www.peyregne.info/wp/?p=211"></g:plusone></div></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.peyregne.info/wp/?feed=rss2&#038;p=211</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Chargement du .bashrc avec MacOS</title>
		<link>http://www.peyregne.info/wp/?p=206</link>
		<comments>http://www.peyregne.info/wp/?p=206#comments</comments>
		<pubDate>Sun, 09 Jan 2011 17:39:05 +0000</pubDate>
		<dc:creator>Quentin</dc:creator>
				<category><![CDATA[Pratique]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[bashrc]]></category>
		<category><![CDATA[mac os]]></category>

		<guid isPermaLink="false">http://www.peyregne.info/wp/?p=206</guid>
		<description><![CDATA[Voici une petite astuce qui pourrait aider des personnes sur MacOS. En effet je lis souvent sur les forums que le .bashrc n'est pas pris en compte en lançant Terminal par exemple. En fait, quand on lance un terminal, on accède au shell d'accès, qui n'est pas personnalisé. Pour faire simple, le .bashrc, .profile, etc. [...]]]></description>
			<content:encoded><![CDATA[<p>Voici une petite astuce qui pourrait aider des personnes sur MacOS. En effet je lis souvent sur les forums que le <em>.bashrc</em> n'est pas pris en compte en lançant Terminal par exemple.</p>
<p>En fait, quand on lance un terminal, on accède au shell d'accès, qui n'est pas personnalisé. Pour faire simple, le <em>.bashrc</em>, <em>.profile</em>, etc. ne sont pas chargés. On va alors forcer le chargement de ces fichiers à l'ouverture d'un terminal.</p>
<p>Au lancement d'un shell, le fichier <em>.bash_profile</em> qui est situé à la racine du dossier personnel est lu (s'il existe). Il suffit donc dans ce fichier de dire qu'on souhaite charger le <em>.bashrc</em> avec la commande <code>source</code> (ou ".").</p>
<p>Voici à quoi doit ressemble le <em>.bash_profile</em> pour résoudre la problème (créer le fichier à la racine de votre répertoire personnel si ce n'est déjà fait) :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #c20cb9; font-weight: bold;">clear</span>
<span style="color: #7a0874; font-weight: bold;">source</span> ~<span style="color: #000000; font-weight: bold;">/</span>.profile
<span style="color: #7a0874; font-weight: bold;">source</span> ~<span style="color: #000000; font-weight: bold;">/</span>.bashrc</pre></div></div>

<p>Maintenant, à chaque lancement du terminal, votre <em>.bahrc</em> et autres fichiers seront correctement pris en compte.</p>

<style>
*{margin:0; padding:0;}
#socialbuttonnav li{background:none; overflow:hidden; width:140px; height:30px; line-height:30px; margin-right:2px; float:left; text-align:center;}
#fb { text-align:center;border:none; }
</style>
<p>___</p>
<p>Partager cet article :</p>
<ul id="socialbuttonnav" style="list-style:none;width:100%;margin:0 auto;">
<!--<li><div><a name="twitter_share" data-count="vertical" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>-->
<li><!-- Twitter--><div><a name="twitter_share" data-via="QNux" data-text="Chargement du .bashrc avec MacOS" data-url="http://www.peyregne.info/wp/?p=206" data-count="horizontal" href="http://twitter.com/share" class="twitter-share-button" >Tweet</a></div></li>
<li><!-- Google plus one--><div><g:plusone size="medium" count="true" href="http://www.peyregne.info/wp/?p=206"></g:plusone></div></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.peyregne.info/wp/?feed=rss2&#038;p=206</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

