<?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>PlayArduino.fr &#187; PlayArduino.fr</title>
	<atom:link href="http://www.playarduino.fr/category/play-arduino/feed" rel="self" type="application/rss+xml" />
	<link>http://www.playarduino.fr</link>
	<description>L&#039;actualité Arduino en Français</description>
	<lastBuildDate>Thu, 25 Feb 2010 15:30:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Booster le temps de réponse de votre Arduino</title>
		<link>http://www.playarduino.fr/2009/11/booster-le-temps-de-reponse-de-votre-arduino.html</link>
		<comments>http://www.playarduino.fr/2009/11/booster-le-temps-de-reponse-de-votre-arduino.html#comments</comments>
		<pubDate>Mon, 16 Nov 2009 23:53:45 +0000</pubDate>
		<dc:creator>Michael Hurni</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[PlayArduino.fr]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[binaire]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[hardcoding]]></category>

		<guid isPermaLink="false">http://www.playarduino.fr/?p=173</guid>
		<description><![CDATA[Hardcoding
L&#8217;assignation d&#8217;un état LOW/HIGH sur une pin de votre Arduino, se fait couramment à l&#8217;aide de la méthode digitalWrite(pin, state). RazorConcepts nous présentait il y a quelques semaines une nouvelle méthode pour assigner des états aux pins de votre Arduino. Jugeant cette méthode très intéressante, j&#8217;ai décider d&#8217;aller aujourd&#8217;hui un peu plus loin dans l&#8217;explication [...]]]></description>
			<content:encoded><![CDATA[<h2>Hardcoding</h2>
<p>L&#8217;assignation d&#8217;un état <tt>LOW/HIGH</tt> sur une pin de votre Arduino, se fait couramment à l&#8217;aide de la méthode <a href="http://arduino.cc/en/Reference/DigitalWrite">digitalWrite(pin, state)</a>. RazorConcepts nous présentait <a href="http://www.instructables.com/id/Arduino-is-Slow-and-how-to-fix-it/">il y a quelques semaines</a> une nouvelle méthode pour assigner des états aux pins de votre Arduino. Jugeant cette méthode très intéressante, j&#8217;ai décider d&#8217;aller aujourd&#8217;hui un peu plus loin dans l&#8217;explication de cette technique.</p>
<p>La méthode consiste en effet à assigner directement des valeurs (binaires ou hexadécimal) aux variables PORTB PORTC et PORTD, correspondant au trois encarts ci-dessous.</p>
<p><img class="align:none" title="Arduino mapping" src="http://www.playarduino.fr/wordpress/wp-content/uploads/2009/10/arduino_mapping.png" alt="" width="545" height="313" /></p>
<p>Chacun de ces ports du micro-contrôleur utilisé par l&#8217;Arduino possède de 6 à 8 entrées/sorties. Ainsi, à chaque pins de la platine correspond un couple PORT / numéro d&#8217;entrée/sortie.</p>
<pre><span style="color: #777755;">// sortie 543210</span>
<span style="color: #777755;">//        ↓↓↓↓↓↓</span>
PORTC = 0b110110;</pre>
<ul>
<li><a href="http://www.playarduino.fr/2009/11/booster-le-temps-de-reponse-de-votre-arduino.html#p1">Notation explicite</a></li>
<li><a href="http://www.playarduino.fr/2009/11/booster-le-temps-de-reponse-de-votre-arduino.html#p2">Passer une sortie spécifique à l&#8217;état <tt>HIGH</tt></a></li>
<li><a href="http://www.playarduino.fr/2009/11/booster-le-temps-de-reponse-de-votre-arduino.html#p3">Passer une sortie à l&#8217;état <tt>LOW</tt></a></li>
<li><a href="http://www.playarduino.fr/2009/11/booster-le-temps-de-reponse-de-votre-arduino.html#p4">Notation groupée, basculement simultané</a></li>
<li><a href="http://www.playarduino.fr/2009/11/booster-le-temps-de-reponse-de-votre-arduino.html#p5">Inverser l&#8217;état d&#8217;une sortie</a></li>
<li><a href="http://www.playarduino.fr/2009/11/booster-le-temps-de-reponse-de-votre-arduino.html#p6">Gain de poids, gain de perfs</a></li>
<li><a href="http://www.playarduino.fr/2009/11/booster-le-temps-de-reponse-de-votre-arduino.html#p7">Conclusion</a></li>
</ul>
<h2><a name="p1" href="#"></a>Notation explicite</h2>
<p>Si vous souhaitez modifier l&#8217;ensemble des états de plusieurs sorties d&#8217;un même <tt>PORT</tt>, il est possible d&#8217;écrire explicitement la valeur (complète) de ce dernier. On souhaite par exemple définir les états des pins digitales 7, 5 et 2 de l&#8217;Arduino à HIGH, et les pins 6, 4, 3, 1 et 0 à <tt>LOW</tt>. Les pins digitales 0 à 7 de l&#8217;Arduino correspondent aux sorties 0 à 7 du <tt>PORTD</tt>.</p>
<pre><span style="color: #777755;">// sortie 76543210</span>
<span style="color: #777755;">//        ↓↓↓↓↓↓↓↓</span>
PORTD = 0b10100100;
PORTD = 0xA4; <span style="color: #777755;">// notation hexadécimale</span></pre>
<p>L&#8217;état 1, symbolise l&#8217;état <tt>HIGH</tt>, l&#8217;état 0, l&#8217;état <tt>LOW</tt>. Le numéro de sortie commence à zéro et part de la droite vers la gauche (du <abbr title="Least Significant Bit"><tt>LSB</tt></abbr> au <abbr title="Most Significant Bit"><tt>MSB</tt></abbr>). Pour la conversion binaire, hexadécimale, rien de plus simple qu&#8217;une <a href="http://www.google.com/search?q=0b10100100+to+hex">requête Google</a></p>
<p>Les assignations explicites peuvent s&#8217;avérer utile dans la méthode setup() visant à initialiser l&#8217;état de votre circuit. Il permet également de rendre votre code source plus pro, et plus légé <img src='http://www.playarduino.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2><a name="p2" href="#"></a>Passer une sortie spécifique à l&#8217;état <tt>HIGH</tt></h2>
<p>Prenons comme exemple le passage de la pin digitale 3 à <tt>HIGH</tt>. Le schéma nous montre que la pin digital 3 se trouve sur le <tt>PORT D3</tt>.</p>
<pre><span style="color: #777755;">//  sortie 76543210</span>
<span style="color: #777755;">//         ↓↓↓↓↓↓↓↓</span>
PORTD |= 0b00001000 (PORT PD3)</pre>
<p>ou encore avec l&#8217;une des notations suivantes</p>
<pre>PORTD |= 0b1000
PORTD |= 1 &lt;&lt; 3;
PORTD |= _BV(3);</pre>
<p>Le shortcut <tt>_<abbr title="Byte Value">BV</abbr></tt> est définit dans <tt>./hardware/tools/avr/avr/include/avr/sfr_defs.h</tt> de l&#8217;IDE Arduino. Contrairement à l&#8217;assignation explicite, ces opérations, utilisant la porte logique <tt>OR</tt>, <strong>ne modifie que l&#8217;état de la ou des sorties souhaitées</strong>.</p>
<h2><a name="p3" href="#"></a>Passer une sortie à l&#8217;état <tt>LOW</tt></h2>
<p>Nous souhaitons, définir l&#8217;état de la pin digitale 11 à <tt>LOW</tt>, soit le <tt>PORT B, sortie 3</tt>. C&#8217;est à l&#8217;aide des portes logiques <tt>AND</tt> et <tt>NOT</tt> que nous pouvons écrire :</p>
<pre>PORTB &amp;= ~0b0000<strong>1</strong>000</pre>
<p>Ou l&#8217;une de ces notations équivalentes :</p>
<pre>PORTB &amp;=  0b11110111
PORTB &amp;=  <span style="color: #CC0000;">B11110111</span> <span style="color: #777755;">// constante</span>
PORTB &amp;= ~(1&lt;&lt;3)
PORTB &amp;= ~_BV(PB3);
PORTB &amp;= ~_BV(3);
<span style="color: #777755;">// Ou enfin, en hexadécimal</span>
PORTB &amp;= ~0x8;
PORTB &amp;= 0xF7;</pre>
<p>Les constantes B* sont définies de B0 à B11111111</p>
<h2><a name="p4" href="#"></a>Notation groupée</h2>
<p>Si les sorties, dont on souhaite modifier l&#8217;état, se trouvent sur le même port, il est possible de grouper l&#8217;ensemble des instructions en une seule. Nous souhaitons dans notre exemple passer les pins 6, 2 et 1 à <tt>LOW</tt>. Commençons par écrire chacune des trois instructions nécessaires à cet exemple.</p>
<pre>PORTD &amp;= ~B01000000  <span style="color: #777755;">// sortie 6, port D</span>
PORTD &amp;= ~B00000100  <span style="color: #777755;">// sortie 2, port D</span>
PORTD &amp;= ~B00000010  <span style="color: #777755;">// sortie 1, port D</span></pre>
<p>L&#8217;opération étant la même (passage à <tt>LOW</tt>) et concernant les sorties d&#8217;un même port (le D), il est donc possible les additionner</p>
<pre>pin D6 =&gt; PD6  0b01000000
pin D2 =&gt; PD2  0b00000100
pin D1 =&gt; PD1  0b00000010
               __________
on additionne  0b01000110</pre>
<p>L&#8217;opération &#8220;groupée&#8221; à effectuer est donc</p>
<pre>PORTD &amp;= ~0b01000110
<span style="color: #777755;">//           ↑   ↑↑</span>
<span style="color: #777755;">//           6   21  fixe les sorties 6,2 et 1 du PORT D à LOW</span>
<span style="color: #777755;">//                   sans modifier l'état des autres sorties</span></pre>
<p>Ce type de programmation permet donc <strong>un basculement simultané (en un cycle processeur) de plusieurs sorties</strong>. Dans le meilleur des cas, 9 cycles processeurs sont nécessaires avec la méthode classique <tt>digitalWrite</tt>.</p>
<h2>Explication sur l&#8217;opération <tt>AND NOT &amp;=~..</tt></h2>
<p>gardons notre exemple du triple passage à <tt>LOW</tt> (sorties 6, 2 et 1).</p>
<p>~ est l&#8217;opérateur NOT qui permet &#8220;d&#8217;inverser&#8221; la valeur des bits<br />
<tt>~..000001000110  =  ..111110111001</tt></p>
<p>le nombre de 1 devant la notation binaire dépends de l&#8217;architecture du microprocesseur (ici 8 bits)</p>
<p>On peut donc écrire,</p>
<pre>  <span style="color: #777755;">//       7 543  0</span>
  <span style="color: #777755;">//       ↓ ↓↓↓  ↓    keep on if on</span>
PORTD &amp;= 0b10111001
  <span style="color: #777755;">//        ↑   ↑↑</span>
  <span style="color: #777755;">//        6   21     switch off if on</span></pre>
<p><strong>On renseigne enfaite ici les bits à maintenir allumé</strong>, si ils le sont déjà.</p>
<p>Ainsi, dans ce même exemple (mettre pin 6,2, et 1 à LOW) supposons, au hasard, un état du port D initial à <tt>0b01011101</tt></p>
<p>Nous appliquons l&#8217;opération <tt>PORTD &amp;= ~B01000110</tt> vu précédemment, qui peut également s&#8217;écrire :</p>
<pre>PORTD &amp;= 0b10111001
PORTD = PORTD &amp; 0b10111001
PORTD = 0b01011101 &amp; 0b10111001 

<span style="color: #777755;">//      0b01011101
//  &amp;   0b1<strong>0</strong>111<strong>00</strong>1
//      ----------
//      0b0<strong>0</strong>011<strong>00</strong>1
//        ↑↑↑↑↑↑↑↑
// sortie 7<strong>6</strong>543<strong>21</strong>0</span></pre>
<p>On applique l&#8217;opération AND sur chaque bit, (rappel : <tt>0b1 &amp; 0b1 = 0b1</tt>)</p>
<p>l&#8217;état final, <tt>0b0<strong>0</strong>011<strong>00</strong>1</tt>, montre donc bien une modification de l&#8217;état des sorties 6 et 2 à <tt>LOW</tt> (la pin 1 étant déjà à LOW).<strong> Cette opération n&#8217;a eu aucune incidence sur l&#8217;état des autres pins</strong>, comme souhaité ; <strong>le tout en un seul cycle</strong>.</p>
<h2><a name="p5" href="#"></a>Inverser l&#8217;état d&#8217;une sortie</h2>
<p><em>Exemple :</em> nous souhaitons inverser l&#8217;état de la sortie 5 et 7 du PORTD. Dans un cas concret, deux LED clignotant en alternance l&#8217;une de l&#8217;autre sur les pins digitales 5 et 7.</p>
<pre><span style="color: #996600;">int</span> state = 1;

<span style="color: #CC6600;">void</span> <span style="color: #993300;"><strong>setup</strong></span>() {}
<span style="color: #CC6600;">void</span> <span style="color: #993300;"><strong>loop</strong></span>() {
  <span style="color: #CC6600;">if</span>(state==1) { <span style="color: #777755;">// on réalise l'alternance à l'aide d'une variable</span>
    state = 0;
    <span style="color: #996600;">digitalWrite</span>(5, <span style="color: #CC0000;">LOW</span>);
    <span style="color: #996600;">digitalWrite</span>(7, <span style="color: #CC0000;">HIGH</span>);
  }
  <span style="color: #CC6600;">else</span> {
    state = 1;
    <span style="color: #996600;">digitalWrite</span>(5, <span style="color: #CC0000;">HIGH</span>);
    <span style="color: #996600;">digitalWrite</span>(7, <span style="color: #CC0000;">LOW</span>);
  }
  <span style="color: #996600;">delay</span>(1000); <span style="color: #777755;">// on attend 1 seconde</span>
}</pre>
<p>Avec les opérations binaires, la fonction <abbr title="eXclusive OR">XOR</abbr> nous permet d&#8217;écrire</p>
<pre><span style="color: #CC6600;">void</span> <span style="color: #993300;"><strong>setup</strong></span>() {
  PORTD = <span style="color: #CC0000;">B10000000</span>; <span style="color: #777755;">// on définit l'état initial</span>
}
<span style="color: #CC6600;">void</span> <span style="color: #993300;"><strong>loop</strong></span>() {
  <span style="color: #777755;">//sorties 7 5</span>
  <span style="color: #777755;">//        ↓ ↓</span>
  PORTD ^= <span style="color: #CC0000;">B10100000</span>; <span style="color: #777755;">// ou PORTD ^= 0xA0;</span>
  <span style="color: #996600;">delay</span>(1000);
}</pre>
<p>Une fois compilée, on obtient une ROM de 550 bytes en opération binaire contre 846 bytes en écriture standard.</p>
<p>Autre avantage, si l&#8217;on souhaite modifier l&#8217;état initial (pour par exemple faire clignoter les LEDs ensembles), une seule modification suffit, l&#8217;état initial de <tt>PORTD</tt>.</p>
<h2><a name="p6" href="#"></a>Gain de poids, gain de performances</h2>
<p>Voici un exemple simple mettant en œuvre un chenillard à 8 LEDs. En écriture &#8220;binaire&#8221;</p>
<pre><span style="color: #996600;">int</span> lednum = 0;

<span style="color: #CC6600;">void</span> <span style="color: #993300;"><strong>setup</strong></span>(){}
<span style="color: #CC6600;">void</span> <span style="color: #993300;"><strong>loop</strong></span>() {
  PORTD = 1 &lt;&lt; lednum; <span style="color: #777755;">// un seul cycle processeur</span>
  <span style="color: #996600;">delay</span>(1000);
  lednum++;
  <span style="color: #CC6600;">if</span>(lednum==8) lednum = 0;
}</pre>
<p>Le même algorithme en écriture standard</p>
<pre><span style="color: #996600;">int</span> lednum = 0;

<span style="color: #CC6600;">void</span> <span style="color: #993300;"><strong>setup</strong></span>(){}
<span style="color: #CC6600;">void</span> <span style="color: #993300;"><strong>loop</strong></span>() {
  <span style="color: #996600;">digitalWrite</span>(0, <span style="color: #CC0000;">LOW</span>); <span style="color: #777755;">// on éteint l'ensemble des LED</span>
  <span style="color: #996600;">digitalWrite</span>(1, <span style="color: #CC0000;">LOW</span>);
  <span style="color: #996600;">digitalWrite</span>(2, <span style="color: #CC0000;">LOW</span>);
  <span style="color: #996600;">digitalWrite</span>(3, <span style="color: #CC0000;">LOW</span>);
  <span style="color: #996600;">digitalWrite</span>(4, <span style="color: #CC0000;">LOW</span>);
  <span style="color: #996600;">digitalWrite</span>(5, <span style="color: #CC0000;">LOW</span>);
  <span style="color: #996600;">digitalWrite</span>(6, <span style="color: #CC0000;">LOW</span>);
  <span style="color: #996600;">digitalWrite</span>(7, <span style="color: #CC0000;">LOW</span>);
  <span style="color: #996600;">digitalWrite</span>(lednum, <span style="color: #CC0000;">HIGH</span>);
  <span style="color: #996600;">delay</span>(1000);
  lednum++;
  <span style="color: #CC6600;">if</span>(lednum==8) lednum = 0;
}</pre>
<p>Une fois compilé on obtient ici un programme 588 bytes contre 886 bytes avec le premier code source.</p>
<p>Sur ces quelques exemples concrets, le gain en poids est de l&#8217;ordre de 35 %. Toutefois, si l&#8217;on soustrait à ces tailles de programme les 436 bytes occupés par un programme vide (afin de ne retenir uniquement la taille de l&#8217;espace occupé par les instructions propres au programme). On obtient une taille de 152 bytes contre 450 bytes, soit <strong>une réduction de 66% du code</strong>.</p>
<h2><a name="p7" href="#"></a>Conclusion</h2>
<p>Outre <strong>le gain de taille, crucial sur un microprocesseur de ce type</strong>, le gain en performances. <a href="http://www.instructables.com/id/S79LPX4G145RVFC">Un benchmark réalisé par RazorConcepts</a> montre <strong>des temps de réponse 10 fois supérieurs à la fonction standard digitalWrite()</strong> proposée par l&#8217;IDE Arduino.</p>
<p>Bien entendu, je vous ai présenté ici les exemples &#8220;qui vont bien&#8221; (même PORT, opérations simples,.. ). Il y a fort à parier que dans d&#8217;autre cas, plus spécifiques, les instructions binaires ne soit pas nécessairement un choix très judicieux.</p>
<p>Ainsi, à moins de frôler dangereusement la limite imposée par votre micro-contrôleur (16 ou 32K), <strong>l&#8217;utilisation de cette technique reste dédiée aux librairies, aux montages nécessitant une réactivité accrue, ou ceux nécessitant des changements d&#8217;état simultanés</strong>.</p>
<p><strong>Trois opérations à retenir :</strong></p>
<ul>
<li>le <tt>OR</tt> (<tt>|=</tt>) qui permet de modifier la valeur des bits choisi à 1, et donc de passer les sorties à l&#8217;état <tt>HIGH</tt>.</li>
<li>le <tt>AND NOT</tt> (différent de <tt>NAND</tt> !) (<tt>&amp;=~</tt>) qui permettra de &#8220;soustraire 1&#8243; aux bits choisis, et permet donc de mettre des sorties à l&#8217;état <tt>LOW</tt></li>
<li>le <tt>XOR</tt> (<tt>^=</tt>) qui permettra d&#8217;inverser l&#8217;état des sorties renseignées pas un bit positif</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.playarduino.fr/2009/11/booster-le-temps-de-reponse-de-votre-arduino.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Communication entre deux Arduino à moins de $10</title>
		<link>http://www.playarduino.fr/2009/11/communication-entre-deux-arduino-moins-de-10-dollars.html</link>
		<comments>http://www.playarduino.fr/2009/11/communication-entre-deux-arduino-moins-de-10-dollars.html#comments</comments>
		<pubDate>Tue, 03 Nov 2009 10:57:07 +0000</pubDate>
		<dc:creator>Michael Hurni</dc:creator>
				<category><![CDATA[PlayArduino.fr]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[BlueTooth]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[RF]]></category>
		<category><![CDATA[VirtualWire]]></category>
		<category><![CDATA[Wireless]]></category>
		<category><![CDATA[Xbee]]></category>

		<guid isPermaLink="false">http://www.playarduino.fr/?p=141</guid>
		<description><![CDATA[Faire communiquer 2 platines Arduino sans fil n&#8217;est pas sans frais. Plusieurs solutions existent aujourd&#8217;hui. Du module Xbee, au module Bluetooth, en passant pourquoi pas par un module Wifi ; l&#8217;ensemble de ces solutions restent très onéreuses. Un module BT par exemple coûte presque une centaine d&#8217;euro, une Arduino BT (Arduino avec BlueTooth onboard) revient [...]]]></description>
			<content:encoded><![CDATA[<p>Faire communiquer 2 platines Arduino sans fil n&#8217;est pas sans frais. Plusieurs solutions existent aujourd&#8217;hui. Du module Xbee, au module Bluetooth, en passant pourquoi pas par un module Wifi ; <strong>l&#8217;ensemble de ces solutions restent très onéreuses</strong>. Un module BT par exemple coûte presque une centaine d&#8217;euro, une Arduino BT (Arduino avec BlueTooth onboard) revient quant à elle à <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8255">150$ chez SparkFun</a>. Sans oublier qu&#8217;il vous faudra en acquérir généralement une paire.</p>
<p>Pour palier à ce problème &#8220;financier&#8221;, Hobby Robotics, nous présentait il y a environ 2 mois <a href="http://www.glacialwanderer.com/hobbyrobotics/?p=291">une solution alternative</a>, bien plus accessible, nous permettant de faire communiquer deux platines Arduino. Vendu chez SparkFun <small>[1]</small>, le module RF (<a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8945">TX</a> et <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8947">RX</a>), vous offre <strong>une connectivité unidirectionnelle à moins de $10.</strong></p>
<p>Let&#8217;s make robots nous publie aujourd&#8217;hui <a href="http://letsmakerobots.com/node/12336">un test de cette solution</a>. <strong>Les résultats semblent concluants et conformes aux promesses du fabricant</strong>. Le lien s&#8217;établit encore à <strong>150 mètres</strong> avec un débit de <strong>2400 bauds</strong> (largement suffisant selon l&#8217;application).</p>
<p><img class="aligncenter" title="RX TX arduino" src="http://letsmakerobots.com/files/imagecache/robot_fullpage_header/field_primary_image/RXTXprim1000.jpg" alt="" width="500" height="375" /></p>
<p>La librairie utilisée quant à elle, <a href="http://www.open.com.au/mikem/arduino/VirtualWire-1.4.zip">VirtualWire</a> (ZIP), développée par Mike McCauley, permet la <strong>transmission de messages avec checksum</strong> entre les deux Arduino dûment équipées. Concrètement, le checksum (somme de contrôle) <strong>permet de vérifier l&#8217;intégrité des données reçues</strong>, pour en demander une nouvelle copie en cas de transmission défaillante par exemple. En attendant livraison de votre commande, je vous conseille la documentation très détaillée sur l&#8217;<a href="http://www.open.com.au/mikem/arduino/VirtualWire.pdf">utilisation de la libraire VirtualWire</a> (PDF).</p>
<p><small>[1] ceci n&#8217;est pas un billet sponsorisé <img src='http://www.playarduino.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.playarduino.fr/2009/11/communication-entre-deux-arduino-moins-de-10-dollars.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interview de Tom Igoe, Arduino team</title>
		<link>http://www.playarduino.fr/2009/10/interview-de-tom-igoe-arduino-team.html</link>
		<comments>http://www.playarduino.fr/2009/10/interview-de-tom-igoe-arduino-team.html#comments</comments>
		<pubDate>Tue, 13 Oct 2009 09:30:18 +0000</pubDate>
		<dc:creator>Michael Hurni</dc:creator>
				<category><![CDATA[PlayArduino.fr]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[arduino team]]></category>
		<category><![CDATA[interview]]></category>

		<guid isPermaLink="false">http://www.playarduino.fr/?p=85</guid>
		<description><![CDATA[Voici une interview traduite de Tom Igoe, membre de la team Arduino réalisé par computerworld.

ComputerWorld : Qu&#8217;est ce qui a poussé au développement de l&#8217;Arduino ?

Tom Igoe: Il y avait une poignée d&#8217;écoles enseignant les micro-contrôleurs à des non-technologues en utilisant une méthode que nous avons appelé le calcul physique (physical computing). Nous avons tous [...]]]></description>
			<content:encoded><![CDATA[<p>Voici une interview traduite de Tom Igoe, membre de la team Arduino réalisé par computerworld.</p>
<ul>
<li><strong>ComputerWorld : Qu&#8217;est ce qui a poussé au développement de l&#8217;Arduino ?</strong></li>
</ul>
<p><strong><img class="alignleft" style="margin:10px" title="Tom igoe" src="http://cdn.idg.com.au/gim/id/20704/res/2" alt="" width="198" height="198" />Tom Igoe: </strong>Il y avait une poignée d&#8217;écoles enseignant les micro-contrôleurs à des non-technologues en utilisant une méthode que nous avons appelé le calcul physique (physical computing). Nous avons tous besoin d&#8217;outils pour enseigner qui soit plus simple que les outils d&#8217;ingénierie existant sur le marché. Le Basic Stamp, et plus tard le BX-24 de NetMedia, étaient correct mais ne correspond pas réellement non plus aux outils que nous utilisions pour enseigner la programmation (Hypercard, Director, et ensuite <a href="http://processing.org">Processing</a>). Puis, à Ivrea en 2002, ont alors été créés Programa2003, <a href="http://www.wiring.org.co">Wiring</a>, puis enfin Arduino.</p>
<ul>
<li><strong>L&#8217;équipe de développement d&#8217;Arduino était alors composée de Massimo Banzi, David Cuartielles, Gianluca Martino, David Mellis, Nicholas Zambetti &#8211; qui furent les pionniers &#8211; et vous-même. Quel rôle avez vous joué dans ce projet ?</strong></li>
</ul>
<p>Massimo à développé l&#8217;environnement Programa2003 pour micro-contrôleurs PIC, un outils simple de développement sous MacOs (la plupart des étudiants d&#8217;Ivrea étant des Mac users). L&#8217;outil a facilité l&#8217;enseignement de la programmation sur micro-contrôleurs. Cela, combiné avec l&#8217;IDE Processing (open source) a servi d&#8217;exemple à d&#8217;Hernando Barragán pour développer la platine Wiring ainsi que son environnement. Rapidement, Massimo (professeur à Ivrea), David Cuatielles (chercheur à Ivrea), et Gianluca Martino (ingénieur, recruté pour développer du matériel pour les projets des élèves) ont développé une plus petite, et moins coûteux platine, la platine Arduino. C&#8217;est avec Mellis et Zambetti (étudiants à Ivrea à l&#8217;époque), qu&#8217;ils ont amélioré la base du Wiring, et élaboré une platine et son IDE utilisable en dehors de l&#8217;université.</p>
<p>Je les ai rejoint en 2005, contribuant aux bêta tests avec une autre école, ITP (ayant une population étudiante plus importante qu&#8217;Ivrea), et plus tard, en aidant à la rédaction de la documentation. J&#8217;ai également présenté l&#8217;équipe à certains distributeurs aux États-Unis afin que nous puissions créer un marché ici, ainsi qu&#8217;en Europe. Aujourd&#8217;hui, Gianluca et Massimo s&#8217;occupent de l&#8217;essentiel de la conception matériel, Mellis Dave coordonne ou écrit la plupart des logiciels, David Cuartielles travaille sur des logiciels ainsi que des tests sur Linux et gère <a href="http://arduino.cc">le site Internet</a>, et je travaille sur la documentation ainsi que des tests, à un degré moindre.</p>
<p>Nous travaillons tous ensemble sur la direction du projet, les relations avec les fabricants et les nouveaux développements. Gianluca gère l&#8217;ensemble des distributeurs ainsi que son entreprise, Smart Projects, fabricant principal de la board. Zambetti a quitté l&#8217;équipe , mais reste un collaborateur occasionnel lorsque sa vie professionnelle le permet.</p>
<p><img class="aligncenter" title="arduino team" src="http://farm3.static.flickr.com/2106/2363657276_2f14062866.jpg" alt="" width="500" height="333" /></p>
<ul>
<li><strong>En étiez-vous à essayer de résoudre un problème en particulier ?</strong></li>
</ul>
<p>Nous voulions un outil pour enseigner l&#8217;informatique physique, particulièrement la programmation de micro-contrôleurs, aux artistes et designers, ceux à qui nous enseignons. Les aprioris de ceux qui viennent d&#8217;un milieu autre que les sciences informatiques ou en génie électrique sont très différentes, et nous voulions des outils qui correspondent à cette diversité.</p>
<ul>
<li><strong>D&#8217;où vient le nom Arduino?</strong></li>
</ul>
<p><span id="more-85"></span>Arduino a été le premier roi de la région dans laquelle est situé Ivrea, nom également employé par un bar local où les étudiants et les professeurs d&#8217;Ivrea se rassemblaient.</p>
<ul>
<li><strong>Y at-il eu des difficultés particulières, voire frustrantes à surmonter dans le développement de l&#8217;Arduino?</strong></li>
</ul>
<p>Le plus grand défi n&#8217;a pas réellement été un choix technique, mais plutôt un choix culturel. <strong>La plupart des gens</strong> en informatique ou en génie électriques que j&#8217;ai rencontrés <strong>ont une image bien forgée</strong> sur la façon d&#8217;apprendre le développement autour d&#8217;un micro-contrôleurs : apprendre en un premier temps la loi d&#8217;Ohm et la loi de Thévenin, etc. Viennent alors les circuits à transistors et des amplificateurs opérationnels, enfin les circuits intégrés les plus simples (IC). Parfois vous apprendrez à utiliser un oscilloscope ou un multimètre, si cela est nécessaire.</p>
<p>Ont vous présente alors enfin les micro-contrôleurs, à commencer par la structure interne et les registres de mémoire. Ensuite, vous découvrez le langage assembleur, et d&#8217;ici là, «bien sûr», vous connaissez le C et l&#8217;environnement en ligne de commande, si vous êtes prêt pour, disons, CCS C (sur PIC) ou AVR Studio. Et 90% de cela est fait sous Windows, parce que 90% du monde fonctionne sous Windows, il est donc logique d&#8217;y développer dessus.</p>
<p>De nos jours, <strong>un grand nombre de personnes amené à coder sur des micro-contrôleurs </strong><strong>ne viennent pas de ce contexte</strong>. Ils ont grandi en considérant que l&#8217;interface graphique de l&#8217;ordinateur était son interface principale. Ils supposent aussi que vous pouvez apprendre en copiant et modifiant le code, un peu comme ce qu&#8217;offre le navigateur internet avec le &#8216;view source&#8217;. La plupart d&#8217;entre eux <strong>ne veulent pas réellement être des programmeurs, ils veulent juste &#8220;utiliser&#8221; la programmation et les circuits pour arriver à leur fins</strong>. J&#8217;entends par là créer une œuvre d&#8217;art, alimenter automatiquement la gamelle son chat, ou concevoir un nouveau dispositif d&#8217;ergothérapie.</p>
<p>Ces gens ne sont pas officiellement formé comme des ingénieurs, mais veulent construire des choses. Nous enseignons à des étudiants. C&#8217;est en accord avec leur façon de penser que nous avons conçu l&#8217;Arduino.</p>
<ul>
<li><strong>Qu&#8217;auriez vous fait différemment dans le développement de l&#8217;Arduino, si vous aviez eu la possibilité?</strong></li>
</ul>
<p>Je pense que le principal changement que nous aurions pu faire aurait été d&#8217;uniformiser l&#8217;espace entre les pins 7 et 8! Nous avons pas mal d&#8217;ennuis à cause de cette erreur, mais nous avons maintenu le non-espacement standard pour maintenir la compatibilité ascendante des boards (<em>NDLR : et leur shield</em>).</p>
<p>Cependant, d&#8217;une manière générale, je ne pense pas qu&#8217;il y ait une réponse à &#8220;Que feriez-vous différemment&#8221;, car <strong>lorsque nous rencontrons quelque chose que nous aurions du faire différemment, nous le faisons différemment</strong>.</p>
<p>Les changements sont plus délicat, maintenant que nous avons beaucoup d&#8217;utilisateurs, mais restent encore possibles.</p>
<ul>
<li><strong>Pourquoi avoir choisi respectivement &#8216;Wiring&#8217; et &#8216;Processing&#8217; comme bases pour le langage Arduino et son environnement ?</strong></li>
</ul>
<p>Car ils avaient déjà leur place à Ivrea (et ITP) à l&#8217;époque, et parce qu&#8217;ils étaient de meilleurs dispositifs d&#8217;enseignement pour nos étudiants comparés aux autres disponibles à l&#8217;époque.</p>
<p>Processing en particulier apportait de gros changement au sein des écoles d&#8217;art et de design enseignant la programmation, car les étudiants &#8220;y arrivaient&#8221;. Il était donc logique d&#8217;offrir un environnement de développement (IDE) basé sur celui-ci. Programa2003, Wiring, et Arduino ont tous grandi à partir de Processing en succession rapide.</p>
<ul>
<li><strong>Comment comparer l&#8217;Arduino aux BASIC Stamp, PICS, etc. ? Qu&#8217;est-ce qui en fait un meilleur choix ?</strong></li>
</ul>
<p>Il existe un certain nombre de choses que nous avons essayé d&#8217;améliorer.</p>
<p><strong>Le langage Arduino est un ensemble de méthodes en C / C + + qui le rend plus facile à comprendre pour les débutants. </strong><br />
Contrairement au Stamp PBASIC, l&#8217;Arduino possède toutes les fonctions puissantes de C (passage de paramètres, variables locales, et ainsi de suite) conscrites dans une syntaxe lisible. PBASIC était lisible et facile pour les débutants, mais il était si limitée que même les débutants atteignaient rapidement ses limites</p>
<p><strong>L&#8217;expérience utilisateur de l&#8217;Arduino est plus proche de l&#8217;utilisateur &#8220;consommateur&#8221;. </strong><br />
Il n&#8217;est pas nécessaire de s&#8217;attarder sur un programmeur hardware (contrairement aux environnements PIC), il se branche directement au port USB (contrairement au STAMP). La compilation et l&#8217;upload du nouveau code à votre contrôleur est réalisé en un seul clic. Les noms de méthodes sont &#8220;verbeux&#8221;, et plus proche dans l&#8217;esprit à la langue de tous les jours que le C, l&#8217;assembleur, ou tout autre langages de bas niveau.</p>
<p>Idéalement, l&#8217;expérience utilisateur est conçue pour minimiser le temps entre l&#8217;idée et la conception sur la board, tout en maintenant la puissance et la souplesse des composantes sous-jacentes autant que possible.</p>
<p><strong>Arduino incarne ce que j&#8217;appelle &#8220;glass box encapsulation&#8221;. </strong><br />
Cela signifie que vous n&#8217;avez pas besoin de regarder le code de bas niveau qui comprend les bibliothèques si vous ne voulez pas le faire, mais vous pouvez si vous le souhaitez. <em>NDLR: c&#8217;est un peu ici l&#8217;esprit du langage python, ou plus généralement même des frameworks OS.</em></p>
<p>Les bibliothèques sont compilées uniquement lorsque vous compilez votre sketch final. Donc, si vous voulez les modifier, vous le pouvez. Si vous souhaitez inclure du C &#8220;non-Arduino-style&#8221; dans votre code, vous le pouvez. Si vous voulez inclure du code assembleur brut, vous le pouvez.  L&#8217;&#8221;<em>encapsulation box</em>&#8221; est toujours là, mais vous pouvez voir à travers si vous le voulez.</p>
<p>Les contrôleurs de niveau comme le STAMP n&#8217;inclus pas cela. Et les environnements de niveau inférieur ne réalisent pas l&#8217;abstraction au même niveau que nous le faisons.<strong><br />
La board comprend un serial bootloader sur le micro-contrôleur, et un adaptateur USB/série, vous n&#8217;avez donc pas à vous préoccuper de l&#8217;interfaçage ou de la compatibilité ordinateur/micro-contrôleur.</strong><br />
La board possède également un prise d&#8217;alimentation jack et switch automatiquement entre l&#8217;alimentation USB et l&#8217;alimentation externe, toujours dans le but de simplifier le passage ordinateur / fonctionnement stand-alone. <em>NDLR : il est également possible d&#8217;alimenter la board via les pins GND et + 5V (alimentation non régulée).</em></p>
<p><strong>Le prix de la board reste raisonnable (moins cher qu&#8217;une board STAMP) et le logiciel est gratuit.</strong><br />
Nous voulons que les gens pense développement, plutôt que de voir leur contrôleur comme une seule unité qu&#8217;ils ne peuvent pas se permettre de dupliquer.</p>
<p><strong>Le tout est open source, afin que vous puissiez faire votre propre version de celui-ci si vous avez envie de fair</strong>e.<br />
Le nombre de fork nous montre que la platine est réellement utile à certains de nos utilisateurs. La continuité des ventes de la platine officielle, elle, nous indique que d&#8217;autres ont aussi la valeur de la commodité.</p>
<p><strong>Dès le début, le logiciel a été multi-plateformes. </strong><br />
Enseigner dans les écoles où les élèves sont à 90% sous Mac, à été une énorme amélioration pour nous.</p>
<p>À ITP, nous avons réussi à &#8220;libérer&#8221; un laboratoire du support du logiciel propriétaire (Windows-only) que nous utilisions alors pour le PIC. Les étudiants apprécient de pouvoir utiliser des outils sur n&#8217;importe quel système d&#8217;exploitation avec lesquels ils sont familiers.</p>
<ul>
<li><strong>Quel impact pensez-vous que cette décision a-t-elle eu?</strong></li>
</ul>
<p>Nous pensons que l&#8217;ouverture est bénéfique à l&#8217;innovation. Le caractère open source de celui-ci a eu un impact énorme sur sa propagation, je pense. Il y a des tonnes de clones sur le marché. Beaucoup d&#8217;entre eux ne cherchent même pas une clientèle au-delà de leurs amis, étudiants, etc. Mais il y a une grande valeur d&#8217;apprentissage à faire votre propre version d&#8217;un outil que vous utilisez.</p>
<p>Je pense que beaucoup de personnes font un clone tout simplement parce qu&#8217;ils le peuvent, et qu&#8217;ils pensent que ça va être fun. Dans le processus, ils apprennent quelque chose, et ils deviennent vite accroc à en apprendre plus. Cela n&#8217;arriverait pas si la plate-forme était fermée.</p>
<ul>
<li><strong>Nous avons entendu les développeurs ont exprimé le souhait que le nom &#8220;Arduino&#8221; (ou dérivé) soit exclusif au produit officiel et ne puisse pas être utilisés pour des travaux dérivés sans autorisation. Est-ce exact et si oui, pourquoi prendre cette mesure ?</strong></li>
</ul>
<p>C&#8217;est vrai, nous avons déposé la marque. Il est assez fréquent de le faire en open source. Si vous prenez par exemple Linux, MySQL, Apache, ou Ubuntu, par exemple, ils sont tous des marques déposés, bien qu&#8217;open-source. Ainsi, ces derniers sont nos modèles. Il y a certaines raisons pour lesquelles nous avons choisi pour ce faire.</p>
<p>Premièrement, le nom porte la responsabilité. Alors que nous sommes ravi que des gens utilisent les fichiers typons ou le code que nous avons créé, nous pensons que nommer une chose devrait rester unique.</p>
<p>Quand une personne achète une Arduino, elle devrait pouvoir compter sur le constructeur derrière elle. Nous l&#8217;avons fait, pour les fabricants à qui nous avons autorisées le nom, car nous travaillons étroitement avec eux pour assurer un niveau de qualité et de facilité d&#8217;utilisation dont nous sommes fiers.</p>
<p>Si, d&#8217;autre part, quelqu&#8217;un achète une board appelée Arduino auprès d&#8217;un constructeur avec lequel nous n&#8217;avons aucun contact, et l&#8217;envoie ensuite à nous ou l&#8217;un de nos fabricants pour réparation ou remplacement, nous, ou le fabricant, ne pourraient assurer un service correct. Nous ne pouvons pas garantir un niveau de qualité avec quelqu&#8217;un qui ne travail pas avec nous.</p>
<p>Deuxièmement, les noms de produit fonctionnent un peu comme les noms de personnes: Si j&#8217;écris un article et je &#8220;cite&#8221; Trevor Clarke, vous seriez probablement satisfait, mais si j&#8217;écris et &#8220;signe&#8221; Trevor Clarke, vous n&#8217;apprécieriez probablement pas. Vous n&#8217;auriez aucun moyen de s&#8217;assurer que l&#8217;article était factuellement exacte, ou représentait vos opinions. Mais il y a votre nom dessus. Nous ressentons la même chose concernant la platine et son IDE.</p>
<p>Si vous voulez utiliser les typons Arduino ou le code source pour faire votre propre board (en citant simplement le projet) c&#8217;est parfait. Si vous voulez l&#8217;appeler &#8220;Arduino-compatibles&#8221;, c&#8217;est très bien aussi. Mais nous préférons vous voire attribuer à votre propre board son propre nom.</p>
<p>Enfin, il y a une raison financière au maintient de la marque. Le hardware rend l&#8217;entreprise commercialement autonome, mais le software (non monétisé) ne se suffit pas à lui même. Nous facturons des frais de licence à des fabricants sous licence pour chaque board qu&#8217;ils vendent. Cet argent sert à financer la maintenance et le développement du logiciel et du site Web. Il permet à chacun de nous de prendre quelques heures par semaine, hors de nos autres emplois, à maintenir les éléments du système Arduino qui ne peuvent se suffirent à eux même.</p>
<p>Vous pouvez faire des travaux dérivés sans autorisation, c&#8217;est juste le nom qui est une marque déposée. La plupart des clones n&#8217;ont pas demandé notre permission, pas plus qu&#8217;ils en ont besoin, tant qu&#8217;ils ne sont pas appelés «Arduino». Il y a des tonnes de *duinos qui sont très bien [..].</p>
<ul>
<li><strong>Vous-même, avez vous utilisé l&#8217;Arduino pour un projet ?</strong></li>
</ul>
<p>Je l&#8217;utilise tout le temps. Le premier usage que j&#8217;en ai eu s&#8217;est fait avec le reste de l&#8217;équipe, le développement d&#8217;un prototype pour une entreprise d&#8217;éclairage en Italie. Ce projet m&#8217;a montré à quel point cette plateforme pouvait être utile. Je l&#8217;utilise également dans mon enseignement.  C&#8217;est la première plateforme hardware qui puisse servir à l&#8217;enseignement des étudiants et au milieu professionnel en même temps.</p>
<p>Dans <a href="http://www.tigoe.net/projects.shtml">mes projets personnels</a>, j&#8217;ai développé une nouvelle version de mon &#8220;horloge e-mail&#8221; (<a href="http://www.tigoe.net/emailclock/clock_v2.shtml">une horloge qui fait tic tac à chaque nouveau message reçu</a>) utilisant l&#8217;Arduino. J&#8217;ai également conçu une litière à chat qui m&#8217;envoie un e-mail avec une photo du chat; un outils de mesure de la qualité de l&#8217;air.. [..] et plus encore. Je l&#8217;utilise en classe à peu près tous les jours.</p>
<ul>
<li><strong>Avez-vous déjà vu l&#8217;Arduino utilisé d&#8217;une manière que vous n&#8217;auriez pas souhaité ?</strong></li>
</ul>
<p>Eh bien, l&#8217;Arduino est destinée à être déployée dans une grande variété de cas, donc pas vraiment. J&#8217;estime que la seule chose pour laquelle je ne souhaite pas qu&#8217;il soit utilisé soit pour faire mal aux gens ou de causer des dommages. J&#8217;espère ne jamais la voir utilisé en ce sens.</p>
<ul>
<li><strong>Avez-vous des conseils pour les &#8220;up-and-coming hardware hackers&#8221;?</strong></li>
</ul>
<p>Patience. Persistance. Et douches fréquentes. Je résous la plupart de mes problèmes dans la douche. <em>(NDLR : euhh.. erreur de traduction ?)</em></p>
<ul>
<li><strong>Enfin, y&#8217;a-t-il autre chose que vous aimeriez ajouter?</strong></li>
</ul>
<p>Merci à tous ceux qui ont utilisé Arduino! Nous avons beaucoup de plaisir à travailler sur ce projet, et il est incroyablement gratifiant de voir les choses réalisées par les utilisateurs, qu&#8217;on ne pensait pas être possible grâce au fruit de notre travail.</p>
<p><a href="http://www.computerworld.com.au/article/321749/-z_programming_languages_arduino_tom_igoe"><em>interview original (en)</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.playarduino.fr/2009/10/interview-de-tom-igoe-arduino-team.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ressources pour l&#8217;Arduino</title>
		<link>http://www.playarduino.fr/2009/10/ressources-pour-arduino.html</link>
		<comments>http://www.playarduino.fr/2009/10/ressources-pour-arduino.html#comments</comments>
		<pubDate>Wed, 07 Oct 2009 19:46:40 +0000</pubDate>
		<dc:creator>Michael Hurni</dc:creator>
				<category><![CDATA[Livres]]></category>
		<category><![CDATA[PlayArduino.fr]]></category>

		<guid isPermaLink="false">http://www.playarduino.fr/?p=10</guid>
		<description><![CDATA[Popularité croissante de notre chère et tendre platine oblige, de nombreuses ressources fleurissent sur la toile pour vous aidez à concevoir vos projets. Voici dans ce post une sélection de quelques tutoriels, livres, et références autour de l&#8217;Arduino et de son langage de prédilection, le C/C++.
Même si cela ne respecte pas forcement l&#8217;ordre logique d&#8217;apprentissage [...]]]></description>
			<content:encoded><![CDATA[<p>Popularité croissante de notre chère et tendre platine oblige, de nombreuses ressources fleurissent sur la toile pour vous aidez à concevoir vos projets. Voici dans ce post une sélection de quelques tutoriels, livres, et références autour de l&#8217;Arduino et de son langage de prédilection, le C/C++.</p>
<p>Même si cela ne respecte pas forcement l&#8217;ordre logique d&#8217;apprentissage de l&#8217;Arduino commençons par le <a id="rvq4" title="playground officiel" href="http://www.arduino.cc/playground/Main/InterfacingWithHardware">playground officiel</a> en charge de recenser d&#8217;innombrable libraires tierces pour différents type d&#8217;hardware. <strong>Véritable source d&#8217;inspiration pour vos projets</strong>, on y retrouve par exemple <a id="dx6b" title="un ensemble de lib" href="http://www.arduino.cc/playground/Code/LCD">un ensemble de lib</a> vous permettant d&#8217;exploiter un écran LCD (du 7 segments à l&#8217;écran couleur Nokia), ou encore de quoi mettre à profit la vieille souris PS2 qui traine au fond du tiroir, du stockage sur clé USB ou encore (moins accessible niveau budget) tout pour exploiter une puce GPS.</p>
<p>Dans la même lignée, le <a href="http://www.freeduino.org/">recensement freeduino</a>, vous donnera accès à de nombreux projets et librairies,</p>
<h2>Support web</h2>
<p>Pour vous dépatouiller avec le matériel, l&#8217;IDE et le langage (comment créer, compiler, envoyer un programme sur la platine) je vous conseille <a id="y1ds" title="les excellents cours de todbot" href="http://todbot.com/blog/spookyarduino/">les excellents cours de Tod Kurt</a> à télécharger en PDF. <strong>Une entrée en matière très pédagogique, et très détaillée</strong>.</p>
<p>Ladyada, ingénieur<strong>e</strong> chez Adafruit, propose elle aussi, de <a id="ynvj" title="bons tutoriels" href="http://www.ladyada.net/learn/arduino/">très bons tutoriels</a> détaillés de l&#8217;installation de l&#8217;environnement jusqu&#8217;à la conception de votre premier chenillard à la LEDs genre K2000.</p>
<h2>Support papier</h2>
<p><a href="http://www.amazon.fr/gp/reader/0596155514/ref=sib_dp_pt#reader-link"><img class="alignleft" src="http://ecx.images-amazon.com/images/I/51w%2BOOJSTpL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU08_.jpg" alt="" width="240" height="240" /></a><br />
Pour les amoureux du papier, un livre un peu légé, mais pas très cher (moins de 9 euros et livraison offerte) <a id="jre3" title="Getting Started Arduino" href="http://www.amazon.fr/Getting-Started-Arduino-Make-Projects/dp/0596155514">Getting Started Arduino</a> chez Amazon. Vous y apprendrez entre autres les bases de l&#8217;environnement Arduino, de l&#8217;électricité et de l&#8217;électronique.</p>
<p><a href="http://www.amazon.fr/Practical-Arduino-Projects-Source-Hardware/dp/1430224770/ref=pd_sim_eb_3">Practical Arduino: Cool Projects for Open Source Hardware </a>- 500 pages &#8211; vous offre, quant à lui, un référentiel approfondie sur la platine.</p>
<h2>Documentation officielle</h2>
<p>D&#8217;une manière générale, <strong>le site officielle reste une excellente source d&#8217;informations</strong>. Et <a id="juas" title="son forum" href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl">son forum</a>, relativement actif, possède <a id="ah2b" title="une section francophone" href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?board=francais">une section francophone</a> de quoi rassurer, un peu, les anglophobes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.playarduino.fr/2009/10/ressources-pour-arduino.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PlayArduino.fr &#8211; L&#8217;actualité Arduino en Français</title>
		<link>http://www.playarduino.fr/2009/10/playarduino-fr-lactualite-arduino-en-francais.html</link>
		<comments>http://www.playarduino.fr/2009/10/playarduino-fr-lactualite-arduino-en-francais.html#comments</comments>
		<pubDate>Wed, 07 Oct 2009 12:55:07 +0000</pubDate>
		<dc:creator>Michael Hurni</dc:creator>
				<category><![CDATA[PlayArduino.fr]]></category>

		<guid isPermaLink="false">http://www.playarduino.fr/?p=8</guid>
		<description><![CDATA[Bien que convaincu que ce genre de billet n&#8217;est jamais vraiment utile à la vie d&#8217;un blog, il semblerait qu&#8217;il en faille un. Profitons-en donc pour vous présenter les 2 blogueurs de PlayArduino.

Fabien Schwob, conquit par Mac OS, fondateur de Cocoa.fr, développeur web utilisant Django. Je me suis remis à l&#8217;électronique  après une quinzaine d&#8217;années [...]]]></description>
			<content:encoded><![CDATA[<p>Bien que convaincu que ce genre de billet n&#8217;est jamais vraiment utile à la vie d&#8217;un blog, il semblerait qu&#8217;il en faille un. Profitons-en donc pour vous présenter les 2 blogueurs de PlayArduino.</p>
<ul>
<li><strong>Fabien Schwob</strong>, conquit par Mac OS, fondateur de <a href="http://www.cocoa.fr/">Cocoa.fr</a>, développeur web utilisant Django. Je me suis remis à l&#8217;électronique  après une quinzaine d&#8217;années loin des résistances et autres transistors. Passionné en plus par la photographie, je vais dans les semaines à venir m&#8217;intéresser à l&#8217;interfaçage entre une platine Arduino et un appareil photo (dans mon cas un <a href="http://www.amazon.fr/gp/product/B000V9JR5Y?ie=UTF8&amp;tag=arduino-21&amp;linkCode=as2&amp;camp=1642&amp;creative=19458&amp;creativeASIN=B000V9JR5Y">Canon EOS 40D</a>).</li>
<li><strong>Michael Hurni</strong>, Apple-addict lui aussi, développeur web, passionné par l&#8217;électronique et plus particulièrement par l&#8217;interface hard/soft-ware, à 4 ans, il réussi à éteindre son ordinateur par e-mail (on plaisante, mais vous n&#8217;allez pourtant pas tarder à savoir comment faire). En admiration devant : la <a href="http://www.facebook.com/group.php?gid=37391651219">télécommande multi-fonctions</a> de &#8220;Hé Arnold&#8221; (mais franchement.. j&#8217;en ai rêvé).</li>
</ul>
<p>Le thème de ce blog est bien sur consacré au développement de projets autour de la platine électronique de prototypage Arduino (un billet arrive pour vous présenter l&#8217;engin). Nous vous y présenterons l&#8217;actualité d&#8217;Arduino (et platines compatibles), nos projets, les autres projets à travers le monde ainsi que, plus ponctuellement, des tutoriels, des tests de produits ou des librairies pondues par nos soins pour vous guider dans vos expérimentations.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.playarduino.fr/2009/10/playarduino-fr-lactualite-arduino-en-francais.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
