<?xml version="1.0" encoding="iso-8859-1" ?>
<rss version="2.0">
<channel>
	<title><![CDATA[Journal d'un Arduinaute]]></title>
	<link>http://www.robot-maker.com/forum/blog/62-journal-dun-arduinaute/</link>
	<description><![CDATA[Journal d'un Arduinaute Syndication]]></description>
	<pubDate>Thu, 16 Mar 2017 11:52:40 +0000</pubDate>
	<webMaster>webmaster@robot-maker.com (Robot Maker)</webMaster>
	<generator>IP.Blog</generator>
	<ttl>60</ttl>
	<item>
		<title>Débuter avec la STM32 (F103)</title>
		<link>http://www.robot-maker.com/forum/blog/62/entry-68-debuter-avec-la-stm32-f103/</link>
		<category></category>
		<description><![CDATA[Aujourd'hui on va voir comment installer une STM32F103 (carte compatible Arduino avec quelques avantages, voir "caract&#233;ristiques"), l'utiliser avec Arduino IDE et le port microUSB ainsi que quelques exemples basiques de montages.<br /><span  style='font-size: 18px'>Caract&#233;ristiques :</span><br />Pour d&#233;buter, j'ai choisi la carte STM32F103C8T6 (Cortex-M3 72Mhz) que vous pourrez trouver facilement sur internet :<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[68]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-73275400-1489270294.jpg" title="SAM_3305.JPG - Taille : 70,18 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-73275400-1489270294.jpg" class='bbc_img linked-image' alt="SAM_3305.JPG" /></span></a>
</p><strong class='bbc'>M&#233;moire flash :</strong> 64ko ou <strong class='bbc'>128ko </strong>(Arduino UNO : 32ko)<br /><strong class='bbc'>M&#233;moire SRAM :</strong> 20ko (Arduino UNO : 2ko)<br /><strong class='bbc'>V<span  style='font-size: 12px'>in</span> : </strong>2,0-3.6V<br /><strong class='bbc'>R&#233;solution des entr&#233;es :</strong> 4096 (Arduino UNO : 1025)<br /><strong class='bbc'>Fr&#233;quence de travail : </strong>72Mhz (Arduino UNO : 16Mhz)<br /><strong class='bbc'>Tension de sortie :</strong> 3V3 (Arduino UNO : 5V)<br />&#160;<br /><span  style='font-size: 18px'>Pr&#233;-requis :</span><br />Avant de commencer, une petite liste des choses n&#233;cessaire pour continuer :<ul class='bbc'><li>1 carte STM32F103C8T6 (Blue Pills)</li><li>1 <a href='http://www.robot-maker.com/shop/accessoires-robotiques/22-ftdi-5v-et-33v.html' class='bbc_url' title=''>adaptateur S&#233;rie</a> (pour charger le bootloader)</li><li>1 c&#226;ble micro-USB</li><li>+ de quoi souder</li></ul>Il est possible que vous ayez &#224; remplacer une r&#233;sistance mont&#233;e en surface (nomm&#233;e R10, a remplac&#233; par une r&#233;sistance de 1.5k Ohm) plac&#233;e sous la carte qui pose certains probl&#232;mes lors du t&#233;l&#233;versement de programme par le port micro-USB. De mon cot&#233;, j'ai chang&#233; la r&#233;sistance sur l'une des cartes et laiss&#233; celle d'origine sur l'autre pour voir la diff&#233;rence (au final, les 2 ont fonctionn&#233;), donc le meilleur moyen de savoir, c'est d'essayer d'abord avec celle d'origine puis si vous rencontrez des probl&#232;mes, li&#233;s &#224; la reconnaissance du port USB et que vous n'arrivez pas &#224; le r&#233;soudre, de la modifi&#233;e.<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[68]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-54659900-1489271005.png" title="SAM_3311.png - Taille : 1,37 Mo"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-54659900-1489271005.png" class='bbc_img linked-image' alt="SAM_3311.png" /></span></a>
</p><p class='bbc_center'><a class='resized_img' rel='lightbox[68]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-87774200-1489271043.jpg" title="SAM_3312.JPG - Taille : 79,99 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-87774200-1489271043.jpg" class='bbc_img linked-image' alt="SAM_3312.JPG" /></span></a>
</p>&#160;<br /><span  style='font-size: 18px'>Quelques liens :</span><br />Voici quelques sites o&#249; vous pourrez trouver des informations &#224; propos de ces cartes :<ul class='bbc'><li><strong class='bbc'>Wiki : </strong><a href='http://wiki.stm32duino.com/index.php?title=Blue_Pill' class='bbc_url' title='Lien externe' rel='nofollow external'>http://wiki.stm32duino.com/index.php?title=Blue_Pill</a></li><li><strong class='bbc'>Pinout :</strong> <a href='http://reblag.dk/wordpress/wp-content/uploads/2016/07/The-Generic-STM32F103-Pinout-Diagram.pdf' class='bbc_url' title='Lien externe' rel='nofollow external'>http://reblag.dk/wordpress/wp-content/uploads/2016/07/The-Generic-STM32F103-Pinout-Diagram.pdf</a></li><li><strong class='bbc'>Site de ST :</strong> <a href='http://www.st.com/en/microcontrollers/stm32-32-bit-arm-cortex-mcus.html?querycriteria=productId=SC1169' class='bbc_url' title='Lien externe' rel='nofollow external'>http://www.st.com/en/microcontrollers/stm32-32-bit-arm-cortex-mcus.html?querycriteria=productId=SC1169</a></li><li><strong class='bbc'>Projet &#224; base de STM :</strong> <a href='https://www.hackster.io/paramaggarwal/converting-an-stm32f103-board-to-a-black-magic-probe-e701d4' class='bbc_url' title='Lien externe' rel='nofollow external'>https://www.hackster.io/paramaggarwal/converting-an-stm32f103-board-to-a-black-magic-probe-e701d4</a></li><li><strong class='bbc'>Forum : </strong><a href='http://www.stm32duino.com/' class='bbc_url' title='Lien externe' rel='nofollow external'>http://www.stm32duino.com/</a></li></ul>&#160;<br /><span  style='font-size: 18px'>Utiliser le port USB pour t&#233;l&#233;verser ses programme avec Arduino IDE :</span><br />La plupart des cartes viennent sans bootloader, il va donc vous falloir suivre un certain nombre d'&#233;tapes d&#233;crites ci-dessous. J'ai essay&#233; plusieurs techniques avant d'&#233;crire celles-ci donc si vous rencontrez le moindre probl&#232;me, n'h&#233;sitez pas &#224; le signaler dans les commentaires <img src='http://www.robot-maker.com/forum/public/style_emoticons/default/smile.png' class='bbc_emoticon' alt=':)' /><br /><strong class='bbc'>Etape 1 :</strong> Apr&#232;s avoir souder les broches, connectez le serial adapter comme indiqu&#233; ci-dessous et trouvez son port COM avec Arduino IDE ou le gestionnaire de P&#233;riph&#233;riques (COM3 dans mon cas)<br />Serial&#160;&#160;&#160;&#160;&#160;&#160; STM32<br />3V3&#160; &#160; --&gt; 3,3<br />GND&#160;&#160; --&gt; GND (not&#233; G)<br />RX&#160;&#160;&#160;&#160;&#160; --&gt; A10 (compatible 5V)<br />TX&#160;&#160;&#160;&#160;&#160; --&gt; A9&#160;&#160; (compatible 5V)<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[68]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-19277400-1489271958.jpg" title="SAM_3314.JPG - Taille : 97,16 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-19277400-1489271958.jpg" class='bbc_img linked-image' alt="SAM_3314.JPG" /></span></a>
</p><strong class='bbc'>Etape 2 :</strong> Modifiez l'emplacement de boot0 sur 1 et appuyez sur le bouton RESET :<br /><br /><br /><p class='bbc_center'><a class='resized_img' rel='lightbox[68]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-65627300-1489272071.jpg" title="SAM_3315.JPG - Taille : 97,08 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-65627300-1489272071.jpg" class='bbc_img linked-image' alt="SAM_3315.JPG" /></span></a>
</p><strong class='bbc'>Etape 3 : </strong>T&#233;l&#233;chargez cette archive : <a href='https://github.com/rogerclarkmelbourne/Arduino_STM32' class='bbc_url' title='Lien externe' rel='nofollow external'>https://github.com/rogerclarkmelbourne/Arduino_STM32</a><br /><strong class='bbc'>Etape 4 :</strong> D&#233;compressez-la dans votre dossier Documents-&gt;Arduino-&gt;Hardware (cr&#233;ez-le si il n'existe pas).<br /><strong class='bbc'>Etape 5 : </strong>Dans le fichier d&#233;compress&#233;, allez dans Arduino_STM32-&gt;drivers-&gt;win et lancez le fichier install_drivers<br /><strong class='bbc'>Etape 6 :</strong> Puis collez <a href='https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/STM32F1/binaries/generic_boot20_pc13.bin' class='bbc_url' title='Lien externe' rel='nofollow external'>ce fichier</a>dans hardware/Arduino_STM32/tool/win et lancez un terminal (fichier-&gt;ouvrir l'invit&#233; de commande, sous win8) dans ce dossier.<br /><strong class='bbc'>Etape 7</strong><strong class='bbc'> :</strong> Entrez cette commande (modifiez le COM si besoin) :<pre class='prettyprint lang-auto linenums:0'>
stm32flash.exe -w generic_boot20_pc13.bin COM3
</pre>Si tout s'est bien pass&#233;, vous devriez obtenir ceci :<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[68]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-38377700-1489272260.png" title="ss (2017-03-11 at 10.43.36).png - Taille : 10,86 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-38377700-1489272260.png" class='bbc_img linked-image' alt="ss (2017-03-11 at 10.43.36).png" /></span></a>
</p>Si c'est le cas, replacez BOOT0 sur 0 et appuyez sur RESET.<br />&#160;<br /><strong class='bbc'>Etape 8 :</strong> Ouvrez Arduino IDE et t&#233;l&#233;chargez les paquets pour l'Arduino Due et Zero (en cherchant dans le gestionnaire de carte, accessible comme indiqu&#233; ci-dessous) et red&#233;marrez Arduino IDE :<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[68]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-73396300-1489272454.png" title="ss+(2017-03-11+at+10.45.46).png - Taille : 39,61 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-73396300-1489272454.png" class='bbc_img linked-image' alt="ss+(2017-03-11+at+10.45.46).png" /></span></a>
</p>&#160;<br /><strong class='bbc'>Etape 9 : </strong>D&#233;connectez le serial adapter et connectez la carte au PC via le port microUSB:<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[68]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-73237200-1489272573.jpg" title="SAM_3316.JPG - Taille : 84 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-73237200-1489272573.jpg" class='bbc_img linked-image' alt="SAM_3316.JPG" /></span></a>
</p>&#160;<br /><strong class='bbc'>Etape 10 :</strong> Cr&#233;ez un sketch vide :<pre class='prettyprint lang-auto linenums:0'>
void setup() { 
}

void loop() {  
}
</pre>Puis entrez les param&#232;tres de votre carte dans "Outils" :<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[68]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-98104900-1489272711.png" title="ss+(2017-03-11+at+10.51.10).png - Taille : 5,03 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-98104900-1489272711.png" class='bbc_img linked-image' alt="ss+(2017-03-11+at+10.51.10).png" /></span></a>
</p><strong class='bbc'>Etape 11 : </strong>T&#233;l&#233;versez le programme <strong class='bbc'>sans choisir de port COM</strong> et en ayant pr&#233;alablement appuy&#233; sur le bouton RESET<br />&#160;<br />Et voil&#224;, votre ordinateur devrait avoir commenc&#233; l'installation automatique des pilotes, et le port S&#233;rie devrait apparaitre sous peu dans la liste de l'Arduino IDE ! <img src='http://www.robot-maker.com/forum/public/style_emoticons/default/smile.png' class='bbc_emoticon' alt=':)' /><br />&#160;<br /><span  style='font-size: 18px'>Quelques bases pour continuer :</span><br />Une liste des diff&#233;rentes librairies utilisables est d&#233;crite <a href='https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Libraries' class='bbc_url' title='Lien externe' rel='nofollow external'>ici</a>et une liste de projet &#224; base de ces cartes est disponible <a href='http://www.stm32duino.com/viewforum.php?f=19&sid=56c69fccabed028c9742659dc73cde2a' class='bbc_url' title='Lien externe' rel='nofollow external'>ici</a>.<br />&#160;<br />Et enfin, quelques exemples de bases :<br />&#160;<br /><span  style='font-size: 18px'>Blink sur la breadboard :</span><br />Pour cet exemple j'ai simplement connect&#233; en s&#233;rie une r&#233;sistance de 220 Ohm et une led entre le pin PA0 et le GND (not&#233; G) :<br /><br /><br /><br /><p class='bbc_center'>[PA0]----[220 Ohm]----|&gt;|----[G]</p><p class='bbc_center'><a class='resized_img' rel='lightbox[68]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-16465900-1489274685.jpg" title="SAM_3317.JPG - Taille : 74,5 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-16465900-1489274685.jpg" class='bbc_img linked-image' alt="SAM_3317.JPG" /></span></a>
</p>Et le programme utilis&#233; :<pre class='prettyprint lang-auto linenums:0'>
#define LED PA0

void setup() { 
  pinMode(LED, OUTPUT);
}

void loop() {
  digitalWrite(LED, HIGH);
  delay(1000);
  digitalWrite(LED, LOW);
  delay(1000);
}
</pre><span  style='font-size: 18px'>Utiliser un bouton :</span><br />Pas plus compliqu&#233;, il suffit d'ajouter un bouton, de connecter un cot&#233; au 3.3V et l'autre &#224; PA1 (sans oublier de connecter ce cot&#233; avec une r&#233;sistance de 10k Ohm au GND) :<br /><br /><br /><p class='bbc_center'>[3V3]----[Bouton]----[PA1]</p><p class='bbc_center'>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; |--[10k Ohm]----[G]</p><p class='bbc_center'><a class='resized_img' rel='lightbox[68]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-55742800-1489317605.jpg" title="SAM_3318.JPG - Taille : 104,78 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-55742800-1489317605.jpg" class='bbc_img linked-image' alt="SAM_3318.JPG" /></span></a>
</p><p class='bbc_center'>&#160;</p>Et le programme utilis&#233; :<pre class='prettyprint lang-auto linenums:0'>
#define LED PA0
#define BOUTON PA1

void setup() { 
  pinMode(LED, OUTPUT);
  pinMode(BOUTON, INPUT);
}

void loop() {
  if( digitalRead(BOUTON) == HIGH)
  {
    digitalWrite(LED, HIGH);
  }
  else
  {
    digitalWrite(LED, LOW);
  }
}
</pre><span  style='font-size: 18px'>Ajouter un potentiom&#232;tre et une communication S&#233;rie :</span><br />Pour cela, un simple potentiom&#232;tre dont la patte centrale est connect&#233; &#224; PA2 et les 2 autres &#224; G et 3,3 doit &#234;tre ajout&#233; :<br /><br /><br /><p class='bbc_center'><a class='resized_img' rel='lightbox[68]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-70206400-1489317697.jpg" title="SAM_3319.JPG - Taille : 82,6 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-70206400-1489317697.jpg" class='bbc_img linked-image' alt="SAM_3319.JPG" /></span></a>
</p>Pour allumer ou &#233;teindre la led avec ce programme, il vous suffit d'envoyer un 1 ou un 0 dans le moniteur S&#233;rie.<pre class='prettyprint lang-auto linenums:0'>
#define LED PA0
#define BOUTON PA1
#define POTENTIOMETRE PA2

void setup() { 
  pinMode(LED, OUTPUT);
  pinMode(BOUTON, INPUT);
  pinMode(POTENTIOMETRE, INPUT);

  Serial.begin(9600);
}

void loop() {
  Serial.print("Bouton : "); Serial.print(digitalRead(BOUTON));
  Serial.print(" | Potentiometre : "); Serial.println(analogRead(POTENTIOMETRE));
  if (Serial.available() &gt; 0)
  {
    if (Serial.readString() == "1")
    {
      digitalWrite(LED, HIGH);
    }
    else
    {
      digitalWrite(LED, LOW);
    }
  }
}
</pre>Et on remarque que l'on obtient une valeur entre 0 et 4095 sur l'entr&#233;e connect&#233;e au potentiom&#232;tre, ce qui nous permettra d'avoir une plus grande pr&#233;cision que sur l'Arduino UNO.<br />&#160;<br /><span  style='font-size: 18px'>Utiliser un servomoteur :</span><br />Vu que l'on a d&#233;j&#224; un potentiom&#232;tre, essayons d'y ajouter un servomoteur (m&#234;me si ils sont aliment&#233;s en 5V, les SG90 acceptent un signal PWM de 3.3V) dont le pin d&#233;di&#233; au signal est connect&#233; &#224; PA3, 5V sur le 5V et GND sur le G.<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[68]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-16703800-1489317773.jpg" title="SAM_3320.JPG - Taille : 88,96 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_03_2017/blogentry-9502-0-16703800-1489317773.jpg" class='bbc_img linked-image' alt="SAM_3320.JPG" /></span></a>
</p><pre class='prettyprint lang-auto linenums:0'>
#include &lt;Servo.h&gt;

#define LED PA0
#define BOUTON PA1
#define POTENTIOMETRE PA2
#define PIN_SERVO PA3

Servo servo;

void setup() { 
  pinMode(LED, OUTPUT);
  pinMode(BOUTON, INPUT);
  pinMode(POTENTIOMETRE, INPUT);
  servo.attach(PIN_SERVO);

  Serial.begin(9600);
}

void loop() {
  Serial.print("Bouton : "); Serial.print(digitalRead(BOUTON));
  Serial.print(" | Potentiometre : "); Serial.println(analogRead(POTENTIOMETRE));

  servo.write( map(analogRead(POTENTIOMETRE), 0, 4095, 0, 180) ); //Conversion en degr&#232;s
  
  if (Serial.available() &gt; 0)
  {
    if (Serial.readString() == "1")
    {
      digitalWrite(LED, HIGH);
    }
    else
    {
      digitalWrite(LED, LOW);
    }
  }
}
</pre><span  style='font-size: 18px'>Comparaison avec Arduino Nano :</span><br />Pour finir ce billet je voulais partager cette vid&#233;o qui montre la diff&#233;rence de vitesse d'ex&#233;cution d'un programme entre une Arduino Nano et une STM32 :<br /><br /><br /><p class='bbc_center'><iframe id="ytplayer" class="EmbeddedVideo" type="text/html" width="640" height="390" src="http://youtube.com/embed/5mDnKBNl9sY?html5=1&fs=1" frameborder="0" allowfullscreen webkitallowfullscreen /></iframe></p>&#160;<br />&#160;<br />&#160;<br />&#160;<div id='attach_wrap' class='rounded clearfix'>
	<h4>Image(s) jointe(s)</h4>
	<ul>
		
			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		
	</ul>
</div>]]></description>
		<pubDate>Sun, 12 Mar 2017 12:41:39 +0000</pubDate>
		<guid>http://www.robot-maker.com/forum/blog/62/entry-68-debuter-avec-la-stm32-f103/</guid>
	</item>
	<item>
		<title>Fabriquer une troisième main</title>
		<link>http://www.robot-maker.com/forum/blog/62/entry-65-fabriquer-une-troisieme-main/</link>
		<category></category>
		<description><![CDATA[Salut,<br />&#160;<br /><em class='bbc'>&#231;a fait longtemps que j'ai rien post&#233; ici...</em><br />&#160;<br />Aujourd'hui je voulais vous montrer comment faire rapidement (~30min) et &#224; partir de "rien" une troisi&#232;me main pour souder plus facilement. Cette troisi&#232;me main pourra servir aux d&#233;butants n'ayant pas encore de troisi&#232;me main ou en remplacement d'une cass&#233;e, mais je ne pense pas qu'elle soit une solution durable et elle manque de fonctionnalit&#233;s (les pinces ne sont pas articul&#233;es).<br />Tout d'abord, voici ce que vous devrez obtenir &#224; la fin de cet article si vous d&#233;cidez de la reproduire :<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[65]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-01375600-1469301447.jpg" title="SAM_2572.JPG - Taille : 67,11 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-01375600-1469301447.jpg" class='bbc_img linked-image' alt="SAM_2572.JPG" /></span></a>
</p><p class='bbc_center'><a class='resized_img' rel='lightbox[65]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-07293200-1469301525.jpg" title="SAM_2571.JPG - Taille : 60,12 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-07293200-1469301525.jpg" class='bbc_img linked-image' alt="SAM_2571.JPG" /></span></a>
</p>&#160;<br />Pour la construire j'ai utilis&#233; :<ul class='bbc'><li>Un pistolet &#224; colle chaude</li><li>7 crayons &#224; papier</li><li>Un bouchon de stylo (ou tout autre &#233;l&#233;ment cylindrique avec un diam&#232;tre l&#233;g&#232;rement sup&#233;rieur aux crayons)</li><li>Un petite vis et un tournevis</li><li>2 pinces &#224; linges</li></ul>Et c'est tout ce dont vous aurez besoin.<br />&#160;<br /><span  style='font-size: 24px'>1. Coupez les extr&#233;mit&#233;s des crayons</span><br />Pour avoir une structure &#224; peu pr&#232;s sym&#233;trique vous devrez couper les crayons de mani&#232;re &#224; ce qu'ils aient tous la m&#234;me longueur :<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[65]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-52490000-1469301887.jpg" title="SAM_2556.JPG - Taille : 56,08 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-52490000-1469301887.jpg" class='bbc_img linked-image' alt="SAM_2556.JPG" /></span></a>
</p><p class='bbc_center'>&#160;</p><span  style='font-size: 24px'>2. Percez un trous et choisissez une vis</span><br />Afin de pouvoir inclin&#233; les pinces fix&#233;es sur le crayons en haut de la pyramide que l'on va construire, j'ai pris un bouchon de stylo dont j'ai coup&#233; le haut et percer un trou au centre afin d'y passer une vis pour serrer le crayon (&#224; la mani&#232;re des compas) :<br /><br /><p class='bbc_center'><a class='resized_img' rel='lightbox[65]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-04486900-1469302104.jpg" title="SAM_2559.JPG - Taille : 36,55 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-04486900-1469302104.jpg" class='bbc_img linked-image' alt="SAM_2559.JPG" /></span></a>
</p><p class='bbc_center'><a class='resized_img' rel='lightbox[65]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-31011700-1469302177.jpg" title="SAM_2561.JPG - Taille : 36,36 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-31011700-1469302177.jpg" class='bbc_img linked-image' alt="SAM_2561.JPG" /></span></a>
</p><p class='bbc_center'><a class='resized_img' rel='lightbox[65]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-84720000-1469302244.jpg" title="SAM_2562.JPG - Taille : 35,27 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-84720000-1469302244.jpg" class='bbc_img linked-image' alt="SAM_2562.JPG" /></span></a>
</p><span  style='font-size: 24px'>3. Fixez les pinces &#224; linges :</span><br />Personnellement, j'ai fix&#233; les pinces &#224; linges apr&#232;s avoir fait la pyramide mais il est plus simple de le faire avant. Ici vous n'aurez qu'a mettre la colle sur votre pince &#224; linge, la placer sur le crayon et attendre que &#231;a s&#232;che puis consolider la liaison :<br /><br /><p class='bbc_center'><a class='resized_img' rel='lightbox[65]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-67442600-1469302987.jpg" title="SAM_2567.JPG - Taille : 52,28 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-67442600-1469302987.jpg" class='bbc_img linked-image' alt="SAM_2567.JPG" /></span></a>
</p>&#160;<br /><span  style='font-size: 24px'>4. Formez la pyramide :</span><br />Pour la base de la pyramide, formez un triangle avec 3 crayons et collez les extr&#233;mit&#233;s entre elles :<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[65]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-66225600-1469302491.jpg" title="SAM_2564.JPG - Taille : 56,04 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-66225600-1469302491.jpg" class='bbc_img linked-image' alt="SAM_2564.JPG" /></span></a>
</p>Puis collez les 3 crayons suppl&#233;mentaires sur les extr&#233;mit&#233;s et collez ces trois crayons au sommet puis collez le cylindre :<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[65]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-52453900-1469302906.jpg" title="SAM_2566.JPG - Taille : 63,32 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-52453900-1469302906.jpg" class='bbc_img linked-image' alt="SAM_2566.JPG" /></span></a>
</p><p class='bbc_center'><a class='resized_img' rel='lightbox[65]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-67442600-1469302987.jpg" title="SAM_2567.JPG - Taille : 52,28 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-67442600-1469302987.jpg" class='bbc_img linked-image' alt="SAM_2567.JPG" /></span></a>
</p>N'h&#233;sitez pas &#224; renforcer les intersections pour que la structure soit plus solide <img src='http://www.robot-maker.com/forum/public/style_emoticons/default/wink.png' class='bbc_emoticon' alt=';)' /><br />&#160;<br />&#160;<br />Et voil&#224;, votre troisi&#232;me main faite maison est termin&#233;e :<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[65]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-54068600-1469303297.jpg" title="SAM_2572.JPG - Taille : 67,11 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-54068600-1469303297.jpg" class='bbc_img linked-image' alt="SAM_2572.JPG" /></span></a>
</p><p class='bbc_center'><a class='resized_img' rel='lightbox[65]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-12315000-1469303222.jpg" title="SAM_2571.JPG - Taille : 60,12 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-12315000-1469303222.jpg" class='bbc_img linked-image' alt="SAM_2571.JPG" /></span></a>
</p><p class='bbc_center'><br /><a class='resized_img' rel='lightbox[65]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-22252400-1469303063.jpg" title="SAM_2568.JPG - Taille : 56,11 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-22252400-1469303063.jpg" class='bbc_img linked-image' alt="SAM_2568.JPG" /></span></a>
<br />&#160;</p>Pour les objets plus grands ou lourds, il vous suffit d'ajouter un contre-poids de l'autre cot&#233; pour que la main soit stable :<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[65]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-69326400-1469303141.jpg" title="SAM_2570.JPG - Taille : 73,37 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_07_2016/blogentry-9502-0-69326400-1469303141.jpg" class='bbc_img linked-image' alt="SAM_2570.JPG" /></span></a>
</p><div id='attach_wrap' class='rounded clearfix'>
	<h4>Image(s) jointe(s)</h4>
	<ul>
		
			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		
	</ul>
</div>]]></description>
		<pubDate>Sat, 23 Jul 2016 20:01:00 +0000</pubDate>
		<guid>http://www.robot-maker.com/forum/blog/62/entry-65-fabriquer-une-troisieme-main/</guid>
	</item>
	<item>
		<title>Utiliser une nunchuk</title>
		<link>http://www.robot-maker.com/forum/blog/62/entry-57-utiliser-une-nunchuk/</link>
		<category></category>
		<description><![CDATA[<p>Vous connaissez s&ucirc;rement le contr&ocirc;leur de jeu de Nintendo qu'est la Nunchuk, mais le fait de pouvoir l'utiliser avec Arduino l'est d'autant moins, peut-&ecirc;tre...<br />
Quoi qu'il en soit, on va voir dans ce billet comment utiliser une avec une carte Arduino ainsi que quelques exemples de ce que l'on peut faire avec.<br />
<br />
<span style="font-size: 24px;">Pourquoi l'utiliser ?</span><br />
<br />
Car une Nunchuk comporte beaucoup de composants int&eacute;ressants tels que :</p>
<ul class="bbc">
<li>Deux boutons (nomm&eacute;s C et Z)</li>
<li>Un joystique (malheureusement, les coins sont difficilement atteignables)</li>
<li>Un acc&eacute;l&eacute;rom&egrave;tre 3 axes</li>
<li>Une bonne longueur de c&acirc;ble</li>
</ul>
<p>Le tout dans une manette que je trouve tr&egrave;s agr&eacute;able &agrave; tenir en main, compar&eacute; &agrave; une breadboard sur laquelle ont aurait mis les composants <img src='http://www.robot-maker.com/forum/public/style_emoticons/default/happy.png' class='bbc_emoticon' alt='^_^' />, ainsi qu'une exploitation des donn&eacute;es tr&egrave;s facile gr&acirc;ce aux biblioth&egrave;ques. De plus, aucune soudure n'est n&eacute;cessaire si vous souhaitez l'utiliser sur votre arduino que temporairement.<br />
<br />
<span style="font-size: 24px;">Comment ?</span><br />
<span style="font-size: 24px;">Le c&acirc;blage :</span><br />
<br />
Afin d'utiliser la manette avec votre Arduino, prenez le connecteur de la manette de face :</p>
<p class="bbc_center"><a class='resized_img' rel='lightbox[57]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_05_2016/blogentry-9502-0-43343000-1464300812.jpg" title="SAM_2035.JPG - Taille : 43,5 Ko"><img itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_05_2016/blogentry-9502-0-43343000-1464300812.jpg" class='bbc_img linked-image' alt="SAM_2035.JPG" /></a>
</p>
<p>&nbsp;<br />
Vous n'aurez besoin que de 4 c&acirc;bles, &agrave; brancher comme ceci sur la manette :</p>
<p class="bbc_center"><a class='resized_img' rel='lightbox[57]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_05_2016/blogentry-9502-0-54471200-1464300606.jpg" title="SAM_2033.JPG - Taille : 85,06 Ko"><img itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_05_2016/blogentry-9502-0-54471200-1464300606.jpg" class='bbc_img linked-image' alt="SAM_2033.JPG" /></a>
</p>
<br />
<p>Et il vous suffit juste de les raccorder aux pins de votre Arduino indiqu&eacute;s sur la photo.<br />
<br />
Attention &agrave; bien choisir le pin d'alimentation, on utilise ici du <span style="font-size: 14px;"><strong class="bbc">3,3V</strong></span>.<br />
<br />
<span style="font-size: 24px;">Cot&eacute; programmation, la biblioth&egrave;que :</span><br />
<br />
Il en existe plusieurs mais celle que j'ai choisi d'utiliser se nomme <a class="bbc_url" href="https://github.com/GabrielBianconi/ArduinoNunchuk"><strong class="bbc">ArduinoNunchuk</strong></a>, &eacute;crite par <strong class="bbc">Gabriel Bianconi</strong>. Elle n'est plus maintenue mais comporte tout ce dont il vous faut et elle fonctionne facilement. Il vous suffit de t&eacute;l&eacute;charger l'archive puis de copier le dossier ArduinoNunchuk dans le dossier nomm&eacute; libraries d'Arduino.<br />
D&egrave;s que ceci est fait, vous pouvez commencer &agrave; l'utiliser, pour commencer ajoutez ceci en haut de votre programme :</p>
<pre class="prettyprint lang-auto linenums:0">#include</pre>
<p>Puis avant la boucle setup(), attribuez un nom &agrave; votre nunchuk, comme vous l'auriez fait pour un servomoteur, il vous faut donc ajouter ceci :</p>
<pre class="prettyprint lang-auto linenums:0">ArduinoNunchuk wii = ArduinoNunchuk();</pre>
<p>N'h&eacute;sitez pas &agrave; modifier le nom "wii" par celui que vous souhaitez mais n'oubliez pas de le remplacer par la suite aussi.<br />
<br />
Ensuite, il vous suffit d'&eacute;crire ceci dans la fonction setup:</p>
<pre class="prettyprint lang-auto linenums:0">wii.init();</pre>
<p>Et votre carte Arduino est pr&ecirc;te &agrave; recevoir les informations de la Nunchuk.<br />
<br />
Enfin, &eacute;crivez ceci avant chaque lecture de donn&eacute;es provenant de la manette afin de les mettre &agrave; jour :</p>
<pre class="prettyprint lang-auto linenums:0">wii.update();</pre>
<p>Et voici comment lire et afficher sur l'interface s&eacute;rie les diff&eacute;rentes informations (il vous faudra ajouter le "wii.update()" au tout d&eacute;but) :</p>
<pre class="prettyprint lang-auto linenums:0">Serial.print(wii.analogX, DEC); //Haut/Bas du joystique --&gt; wii.analogX
  Serial.print(' ');
  Serial.print(wii.analogY, DEC); //Gauche/Droite du Joystique --&gt; wii.analogY
  Serial.print(' ');
  Serial.print(wii.accelX, DEC);
  Serial.print(' ');
  Serial.print(wii.accelY, DEC); 
  Serial.print(' ');
  Serial.print(wii.accelZ, DEC); 
  Serial.print(' ');
  Serial.print(wii.zButton, DEC); //Renvoie un 0 si on appuie pas sur le bouton Z ou un 1 si on appuie dessus
  Serial.print(' ');                    // ---&gt; wii.ZButton
  Serial.println(wii.cButton, DEC); //Renvoie un 0 si on appuie pas sur le bouton C ou un 1 si on appuie dessus
                                        // ---&gt; wii.CButton</pre>
<p class="bbc_center">(Morceau de code du programme d'exemple)</p>
<p class="bbc_center">&nbsp;</p>
<br />
<p><span style="font-size: 24px;">Exemples d'utilisations de la nunchuk :</span><br />
<br />
Un des exemples qui m'a pousser &agrave; utiliser cette manette est le contr&ocirc;le d'un servomoteur gr&acirc;ce &agrave; un axe de l'acc&eacute;l&eacute;rom&egrave;tre, &ccedil;a tombe bien, les deux exemples que je vais vous montrer utilisent des servomoteurs.<br />
<span style="font-size: 18px;">&nbsp;</span><br />
<span style="font-size: 18px;">Exemple n&deg;1 avec 1 servo :</span><br />
<span style="font-size: 14px;">Le but ici est de contr&ocirc;ler un servomoteur avec un des axes de la manette, pour cela j'ai ajouter au montage existant (d&eacute;crit plus haut) un servomoteur SG90 dont le contr&ocirc;le se fait via le pin 9.</span><br />
&nbsp;<br />
<span style="font-size: 14px;">Voici &agrave; quoi ressemble le montage :</span></p>
<br />
<p class="bbc_center"><a class='resized_img' rel='lightbox[57]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_05_2016/blogentry-9502-0-33598800-1464300675.jpg" title="SAM_2042.JPG - Taille : 87,28 Ko"><img itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_05_2016/blogentry-9502-0-33598800-1464300675.jpg" class='bbc_img linked-image' alt="SAM_2042.JPG" /></a>
</p>
<p>&nbsp;<br />
<span style="font-size: 14px;">Ainsi que le programme que j'ai utilis&eacute; :</span><br />
&nbsp;</p>
<pre class="prettyprint lang-auto linenums:0">//Biblioth&egrave;ques 
#include "Servo.h"
#include 
#include 

// Nunchuk:
ArduinoNunchuk wii = ArduinoNunchuk();
int axeY;

//Servo du bas :
Servo servoBas;
int pinServoBas = 9;
int servoBasInit = 90;

void setup() {
//Initialisation des servos :
  servoBas.attach(pinServoBas);
  servoBas.write(servoBasInit);

//Initialisation de la nunchuk et de la liaison s&eacute;rie
  wii.init();
  Serial.begin(9600);
}

void loop() {

  wii.update();

//Acc&eacute;l&eacute;rateur Y -&gt; Servo du bas:
  axeY = wii.accelY, DEC;
     Serial.println(axeY);
  axeY = map(axeY, 330, 700, 0, 180);
  servoBas.write(axeY);


delay(30);
}</pre>
<p>&nbsp;<br />
Et la petite d&eacute;monstration qui va avec :<br />
&nbsp;</p>
<p class="bbc_center"><iframe width="560" height="315" src="https://www.youtube.com/embed/iqvmrr76aIo?rel=0" frameborder="0" allowfullscreen></iframe></p>
<br />
<p><span style="font-size: 18px;">Exemple n&deg;2 avec 2 servos :</span><br />
Exemple de programme pour contr&ocirc;ler 2 servomoteurs (ici de m&ecirc;me axe), l'un avec un axe de l'acc&eacute;l&eacute;rom&egrave;tre et l'autre avec un axe du joystick. Les 2 servos sont dispos&eacute;s comme ceci :<br />
&nbsp;<br />
<br />
<br />
&nbsp;</p>
<br />
<p class="bbc_center"><a class='resized_img' rel='lightbox[57]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_05_2016/blogentry-9502-0-95031500-1464300743.jpg" title="SAM_2040.JPG - Taille : 80,12 Ko"><img itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_05_2016/blogentry-9502-0-95031500-1464300743.jpg" class='bbc_img linked-image' alt="SAM_2040.JPG" /></a>
</p>
<p>&nbsp;<br />
Ainsi que le programme, dont le second servo se contr&ocirc;le via le pin 10 :</p>
<pre class="prettyprint lang-auto linenums:0">//Biblioth&egrave;ques
#include "Servo.h"
#include 
#include 

// Nunchuk:
ArduinoNunchuk wii = ArduinoNunchuk();
int axeY,jY;

//Servo du bas :
Servo servoBas;
int pinServoBas = 9;
int servoBasInit = 90;

//Servo du haut :
Servo servoHaut;
int pinServoHaut = 10;
int servoHautInit = 90;

void setup() {
//Initialisation des servos :
&nbsp; servoBas.attach(pinServoBas);
&nbsp; servoBas.write(servoBasInit);
&nbsp; servoHaut.attach(pinServoHaut);
&nbsp; servoHaut.write(servoHautInit);

//Initialisation de la nunchuk et de la liaison s&eacute;rie
&nbsp; wii.init();
&nbsp; Serial.begin(9600);
}

void loop() {

&nbsp; wii.update();

//Acc&eacute;l&eacute;rateur Y -&gt; Servo du bas:
&nbsp; axeY = wii.accelY, DEC;
&nbsp;&nbsp;&nbsp;&nbsp; Serial.print(axeY);
&nbsp;&nbsp;&nbsp;&nbsp; Serial.print(" ");
&nbsp; axeY = map(axeY, 330, 700, 0, 180);
&nbsp; servoBas.write(axeY);

//Joystick Y (nomm&eacute; jY) -&gt; Servo du haut
&nbsp; jY = wii.analogY, DEC;
&nbsp;&nbsp;&nbsp;&nbsp; Serial.println(jY);
&nbsp; jY = map(jY, 220, 30, 0, 180);
&nbsp; servoHaut.write(jY);


delay(30);
}</pre>
<p>Ainsi que la d&eacute;monstration :</p>
<p class="bbc_center">&nbsp;</p>
<p class="bbc_center"><iframe width="560" height="315" src="https://www.youtube.com/embed/xXS9ZQXCnnE?rel=0" frameborder="0" allowfullscreen></iframe></p>
<p>&nbsp;<br />
<span style="font-size: 24px;">Id&eacute;es suppl&eacute;mentaires :</span><br />
Si vous souhaitez aller plus loin dans l'utilisation de la Nunchuk voici quelques id&eacute;es d'utilisation :</p>
<ul class="bbc">
<li>Contr&ocirc;ler sa souris ou des touches de clavier (pour contr&ocirc;ler l'avion dans Google Earth par exemple)</li>
<li>Contr&ocirc;ler une base roulante (<a class="bbc_url" href="http://www.robot-maker.com/forum/topic/10494-rocbot/">ou un robot comme celui d'Ashira par exemple</a>)</li>
<li>Contr&ocirc;ler une cam&eacute;ra &agrave; distance</li>
</ul>
<p>Bref, les possibilit&eacute;s sont nombreuses.<br />
&nbsp;<br />
Voil&agrave; tout pour ce billet, j'esp&egrave;re qu'il vous aura plu <img src='http://www.robot-maker.com/forum/public/style_emoticons/default/smile.png' class='bbc_emoticon' alt=':)' /><br />
&nbsp;<br />
A bient&ocirc;t !</p><div id='attach_wrap' class='rounded clearfix'>
	<h4>Image(s) jointe(s)</h4>
	<ul>
		
			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		
	</ul>
</div>]]></description>
		<pubDate>Thu, 26 May 2016 17:27:00 +0000</pubDate>
		<guid>http://www.robot-maker.com/forum/blog/62/entry-57-utiliser-une-nunchuk/</guid>
	</item>
	<item>
		<title><![CDATA[[N-P]TimeLapse Machine]]></title>
		<link>http://www.robot-maker.com/forum/blog/62/entry-55-n-ptimelapse-machine/</link>
		<category></category>
		<description><![CDATA[Cette cat&#233;gorie sera d&#233;di&#233; &#224; des tr&#232;s petits projet (fais en moins d'une journ&#233;e) que j&#8217;appellerais Nano-Projets, ce qui ne veut pas dire forc&#233;ment des projets &#224; base d'Arduinos Nano.<br />&#160;<br />Maintenant que l'on a vu quelques bases d'Arduino il est temps de les mettre en &#339;uvres pour cr&#233;er une petite bricole !<br /><br />Je tiens &#224; pr&#233;ciser que le but de ce nano-projet est de <strong class='bbc'>mettre en &#339;uvre ce que l'on a vu pr&#233;c&#233;demment </strong>dans un exemple concret, j'ai fait quelques essais de vid&#233;os, <strong class='bbc'>le rendu n'est pas utilisable</strong> du fait du <strong class='bbc'>manque de pr&#233;cision</strong> du servo (et de mes r&#233;glages s&#251;rement) on voit distinctement les diff&#233;rents angle ce qui rend l'image pas fluide du tout.<br /><br />J'ai depuis un moment une cam&#233;ra sportive avec un mode timelapse, et ayant d&#233;j&#224; vu des vid&#233;os avec des timelapses panoramiques, j'ai voulu reproduire le m&#233;canisme moi-m&#234;me avec les quelques composants que je poss&#232;de. Donc on commence par les pr&#233;-requis:<br />&#160;<br /><span  style='font-size: 24px'>Pr&#233;-requis :</span><br /><span  style='font-size: 18px'>Comp&#233;tences :</span><br /><br /><strong class='bbc'>Celle d&#233;j&#224; abord&#233;es :</strong><br /><br />-Savoir utiliser un bouton, des potentiom&#232;tres, un servomoteur, et des leds (voir les articles pr&#233;c&#233;dents)<br />&#160;<br /><strong class='bbc'>Celles pas encore abord&#233;es :</strong><br /><br /><strong class='bbc'>Cr&#233;e une fonction et l&#8217;appel&#233;e :</strong><br />Une fonction est un morceau de code que vous pouvez rappeler quand vous le souhaiter, leur avantage est d'&#233;viter d'avoir &#224; se r&#233;p&#233;ter et permet de modifier plus rapidement une partie du code qui se r&#233;p&#232;te.<br />Pour en cr&#233;er une il vous suffit de taper ceci tout &#224; la fin de votre programme (en dehors de la fonction loop):<pre class='prettyprint lang-auto linenums:0'>
void nomFonction() {
    #Votre code
}
</pre>Puis de l'appeler o&#249; vous le voulez comme ceci:<pre class='prettyprint lang-auto linenums:0'>
nomFonction();
</pre>C'est aussi simple que &#231;a.<br />&#160;<br /><strong class='bbc'>L'&#233;cran &#224; 7 segments :</strong><br />C'est une option, le code pr&#233;sent sur 123d.circuits.io ne le prend pas en compte donc si vous n'en avez pas ce n'est pas grave.<br />Si vous avez un &#233;cran &#233;quip&#233; de la puce TM1637, je vous conseil d'utiliser <a href='https://github.com/bremme/arduino-tm1637' class='bbc_url' title='Lien externe' rel='nofollow external'>cette biblioth&#232;que</a> qui vous permettra de l'utiliser simplement. L'installation est plutot simple, il vous suffit d'extraire de l'archive t&#233;l&#233;charg&#233;e le dossier de la librairie et le placer dans votre dossier /arduino/libraries . Vous pouvez aussi retrouvez toute la doc de la biblioth&#232;que sur le lien pr&#233;c&#233;dent.<br /><br />Mat&#233;riel :<br />- 1 Arduino UNO<br />- 1 cam&#233;ra/APN permettant de faire des timelapses<br />- 1 servo (j'utilise un SG90)<br />- 1 bouton poussoir<br />- 2 potentiom&#232;tres<br />- 2 leds<br />- 2 r&#233;sistances &gt; 220Ohm<br />- 1 r&#233;sistance 10kOhm<br />- Un bon paquet de fils<br /><br />Option :<br />- Un &#233;cran lcd 7 segments (TM1637 ou autres, il vous suffit de lire la doc correspondante)<br />&#160;<br /><span  style='font-size: 24px'>Le but :</span><br />&#160;<br />Cr&#233;er un syst&#232;me configurable pour pouvoir faire des timelapses panoramiques &#224; la vitesse &#224; laquelle on le souhaite (en modifiant le temps de pause entre chaque angles) et de choisir l'angle de d&#233;part et celui d'arriv&#233; gr&#226;ce &#224; des potentiom&#232;tres. La cam&#233;ra sera fix&#233;e sur l'axe du servo.<br />L'&#233;cran servira &#224; afficher la valeur du temps de pause entre chaque angle.<br />&#160;<br /><span  style='font-size: 24px'>Le montage :</span><br />Commencez par placer les diff&#233;rents composants puis &#224; les reli&#233;s comme ceci :<br />&#160;<br /><a class='resized_img' rel='lightbox[55]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_05_2016/blogentry-9502-0-56080200-1462398887.png" title="Sélection_002.png - Taille : 95,61 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_05_2016/blogentry-9502-0-56080200-1462398887.png" class='bbc_img linked-image' alt="Sélection_002.png" /></span></a>
<br />L'un des potentiom&#232;tres sert &#224; g&#233;rer le temps de pause (A1) entres chaque degr&#233;s, l'autre l'angle &#224; rejoindre (A0) et le bouton sert &#224; atteindre directement l'angle sans prendre en compte le temps de pause.L'une des leds montre que l'angle est atteint, l'autre que le bouton poussoir est enfonc&#233;.<br />&#160;<br /><span  style='font-size: 18px'>Quelques photos :</span><br />&#160;<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[55]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_05_2016/blogentry-9502-0-82741600-1462396194.jpg" title="SAM_1954.JPG - Taille : 103,32 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_05_2016/blogentry-9502-0-82741600-1462396194.jpg" class='bbc_img linked-image' alt="SAM_1954.JPG" /></span></a>
</p><p class='bbc_center'><br /><a class='resized_img' rel='lightbox[55]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_05_2016/blogentry-9502-0-05237200-1462396624.jpg" title="SAM_1955.JPG - Taille : 116,62 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_05_2016/blogentry-9502-0-05237200-1462396624.jpg" class='bbc_img linked-image' alt="SAM_1955.JPG" /></span></a>
<br />&#160;</p><p class='bbc_center'><a class='resized_img' rel='lightbox[55]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_05_2016/blogentry-9502-0-76770200-1462398452.jpg" title="SAM_1957.JPG - Taille : 114,46 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_05_2016/blogentry-9502-0-76770200-1462398452.jpg" class='bbc_img linked-image' alt="SAM_1957.JPG" /></span></a>
</p><p class='bbc_center'>&#160;</p>&#160;<br />Ensuite, il vous suffit de faire votre programme et le tour est jou&#233;. Le programme pour la version avec &#233;cran :<br /><br />Et celui sans &#233;cran :<br /><br />&#160;<br />Comme d'habitude vous pourrez retrouver le sch&#233;ma de c&#226;blage et le programme (sans l'&#233;cran) <a href='https://123d.circuits.io/circuits/1873906-timelapse-machine/' class='bbc_url' title='Lien externe' rel='nofollow external'>ici</a>.<br />&#160;<br />J'esp&#232;re que cela vous aura plu,<br />&#160;<br />A bient&#244;t !<div id='attach_wrap' class='rounded clearfix'>
	<h4>Image(s) jointe(s)</h4>
	<ul>
		
			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		
	</ul>
</div><div id='attach_wrap' class='rounded clearfix'>
	<h4>Fichier(s) joint(s)</h4>
	<ul>
		
			<li class='clear'>
				<a href="http://www.robot-maker.com/forum/index.php?app=core&module=attach&section=attach&attach_id=3710" title="Télécharger la pièce jointe"><img src="http://www.robot-maker.com/forum/public/style_extra/mime_types/txt.gif" alt="Fichier joint" /></a>
&nbsp;<a href="http://www.robot-maker.com/forum/index.php?app=core&module=attach&section=attach&attach_id=3710" title="Télécharger la pièce jointe">timelapse_lcd.txt</a> <span class='desc'><strong>(2,11 Ko)</strong></span>
<br /><span class="desc info">téléchargement(s): 74</span>
			</li>
		

			<li class='clear'>
				<a href="http://www.robot-maker.com/forum/index.php?app=core&module=attach&section=attach&attach_id=3711" title="Télécharger la pièce jointe"><img src="http://www.robot-maker.com/forum/public/style_extra/mime_types/txt.gif" alt="Fichier joint" /></a>
&nbsp;<a href="http://www.robot-maker.com/forum/index.php?app=core&module=attach&section=attach&attach_id=3711" title="Télécharger la pièce jointe">timelapse.txt</a> <span class='desc'><strong>(2,56 Ko)</strong></span>
<br /><span class="desc info">téléchargement(s): 57</span>
			</li>
		
	</ul>
</div>]]></description>
		<pubDate>Wed, 04 May 2016 21:48:00 +0000</pubDate>
		<guid>http://www.robot-maker.com/forum/blog/62/entry-55-n-ptimelapse-machine/</guid>
	</item>
	<item>
		<title>Les potentiomètres et les servomoteurs</title>
		<link>http://www.robot-maker.com/forum/blog/62/entry-54-les-potentiometres-et-les-servomoteurs/</link>
		<category></category>
		<description><![CDATA[Petit passage rapide par les potentiom&#232;tres et les E/S analogiques. Donc pour ceux qui ne voient pas du tout &#224; quoi peut ressembler un potentiom&#232;tre (aussi appel&#233;s r&#233;sistances variables) en voici deux exemples mais il en existe beaucoup d'autres, adapt&#233;s &#224; chaque utilisation:<br /><p class='bbc_center'><span rel='lightbox'><img class='bbc_img' src='https://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Potentiometer.jpg/124px-Potentiometer.jpg' alt='Image IPB'  /></span><a href='http://www.hostingpics.net/viewer.php?id=831391SAM1442.jpg' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/thumbs/mini_831391SAM1442.jpg' alt='Image IPB'  /></a> <a href='http://www.hostingpics.net/viewer.php?id=123524SAM1443.jpg' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/thumbs/mini_123524SAM1443.jpg' alt='Image IPB'  /></a></p>Pour ce billet j'utilise celui de droite, c'est un potentiom&#232;tre de 10k Ohm, il dispose de trois broches ceux sur les extr&#233;mit&#233;s sont utilis&#233;s pour le 5V et le GND et celui du milieu est la sortie du potentiom&#232;tre(curseur). En fonction de la position du curseur, le courant sortant par la broche du curseur sera plus ou moins &#233;lev&#233;.<br />&#160;<br /><span  style='font-size: 24px'>Les servos :</span><br />&#201;l&#233;ment incontournable sur Arduino et dans la robotique en g&#233;n&#233;rale, les servomoteurs sont des petits moteurs qui permettent d'atteindre un angle donn&#233; entre 0 et 180&#176;. Et comme l'indique Wikip&#233;dia Servo ne veut pas dire cerveau mais vient du latin <em class='bbc'>Servus</em> qui veut dire "esclave" donc n'allez pas dire que ce moteur "r&#233;fl&#233;chi" lorsque l'on vous le demande, &#224; l'oral des TPE par exemple <img src='http://www.robot-maker.com/forum/public/style_emoticons/default/rolleyes.gif' class='bbc_emoticon' alt=':rolleyes:' />, pourquoi on appelle &#231;a des Servo...<br />&#160;<br /><span  style='font-size: 24px'>Comment &#231;a marche ?</span><br />&#160;Les servomoteurs sont &#233;quip&#233;s de trois pins le GND, le 5V et PWM (si vous ne vous souvenez plus, j'en avais parl&#233; dans le <a href='http://www.robot-maker.com/forum/blog/62/entry-50-presentation-et-premiers-pas-avec-arduino/' class='bbc_url' title=''>premier billet</a>). Pour le commander vous n'avez donc pas &#224; utiliser de drivers, il suffit de le brancher correctement sur votre carte (pour rappel, les pins PWM d'une Arduino sont ceux pr&#233;c&#233;d&#233;s d'un ~) et d'inclure &#224; votre programme la biblioth&#232;que Servo.h . Attention aussi &#224; v&#233;rifier la datasheet de votre mod&#232;le de servomoteur si c'est la premi&#232;re fois que vous l'utilisez. Personnellement j'utilise des SG90, largement suffisant pour mes petits tests et peu chers :<br /><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=429040WP20160404115304Pro.jpg' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/thumbs/mini_429040WP20160404115304Pro.jpg' alt='Image IPB'  /></a><a href='http://www.hostingpics.net/viewer.php?id=600516WP20160417192003Pro.jpg' class='bbc_url' title='Lien externe' rel='nofollow external'> <img class='bbc_img' src='http://img15.hostingpics.net/thumbs/mini_600516WP20160417192003Pro.jpg' alt='Image IPB'  /></a></p><p class='bbc_center'>&#160;</p>Sur la datasheet, on retrouve ceci :<br /><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=822863ss20160418at082713.png' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/pics/822863ss20160418at082713.png' alt='Image IPB'  /></a></p><p class='bbc_center'>Veillez &#224; respecter les conditions de vos datasheets, j'en ai d&#233;j&#224; fait les frais <img src='http://www.robot-maker.com/forum/public/style_emoticons/default/happy.png' class='bbc_emoticon' alt='^_^' /> ...</p><p class='bbc_center'>&#160;</p>Les principales fonctions de la librairie Servo.h &#224; connaitre sont :<ul class='bbc'><li>Servo votre_nom_de_servo; &#160; &#160; &#160; #A d&#233;clar&#233; avant la fonction setup;</li><li>votre_nom_de_servo.attach(9);&#160; #A d&#233;clar&#233; dans la fonction setup() n'oubliez pas de modifier le "9" avec le num&#233;ro de votre pin PWM;</li><li>votre_nom_de_servo.write(position);&#160;&#160; #A mettre l&#224; o&#249; vous le souhaitez elle permet de faire atteindre au servo un certain angle, n'oubliez pas de mettre un delay apr&#232;s cette fonction afin de laisser le temps au servo d'atteindre la position donn&#233;e.</li></ul>&#160;<br />Afin de tester chaque servomoteur que j'ai achet&#233;, j'ai fait ce petit montage disponible <a href='https://123d.circuits.io/circuits/1984117-the-unnamed-circuit' class='bbc_url' title='Lien externe' rel='nofollow external'>ici</a> :<br />&#160;<br /><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=337118ss20160418at092424.png' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/pics/337118ss20160418at092424.png' alt='Image IPB'  /></a></p><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=768406WP20160324183025Pro.jpg' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/thumbs/mini_768406WP20160324183025Pro.jpg' alt='Image IPB'  /></a><a href='http://www.hostingpics.net/viewer.php?id=492150WP20160324183710Pro.jpg' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/thumbs/mini_492150WP20160324183710Pro.jpg' alt='Image IPB'  /></a></p>&#160;<br />Avec ce programme-ci :<pre class='prettyprint lang-auto linenums:0'>
  // Librairies :
#include &lt;Servo.h&gt;
  // Pins E/S :
  Servo servo;
int potent = A0;
  // Variables :
int pos = 90;
int val = 90;
  //Fonction d'initialisation
void setup() {
  // D&#233;claration E/S :
pinMode(potent, INPUT);
  // Servomoteur(s) :
servo.attach(9);
  // Connectique :
Serial.begin(9600);
}

  // Boucle inifinie :
void loop() {
  val = analogRead(potent);
  pos = map(val, 0, 1024, 0, 180);
  servo.write(pos);
  Serial.print("Position :");
  Serial.println(pos);
  delay(10);
}
</pre>Le but de ce programme est de lire la valeur que renvoie le potentiom&#232;tre, puis de la convertir avec la fonction map (en suivant cette syntaxe : map(val, min_d&#233;part, max_d&#233;part, min_arriv&#233;e, max_arriv&#233;e) ) pour que le servo puisse se d&#233;placer sur l'ensemble de la course du curseur. Puis de l'afficher dans le moniteur s&#233;rie.<br />&#160;<br />Voici l'algorigramme qui devrait vous aider &#224; comprendre :<br /><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=782921servo.png' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/pics/782921servo.png' alt='Image IPB'  /></a></p><p class='bbc_center'>&#160;</p>Voil&#224; tout pour ce billet, &#224; bient&#244;t !]]></description>
		<pubDate>Mon, 18 Apr 2016 20:15:00 +0000</pubDate>
		<guid>http://www.robot-maker.com/forum/blog/62/entry-54-les-potentiometres-et-les-servomoteurs/</guid>
	</item>
	<item>
		<title>La liaison Série - Arduino</title>
		<link>http://www.robot-maker.com/forum/blog/62/entry-53-la-liaison-serie-arduino/</link>
		<category></category>
		<description><![CDATA[La connexion USB entre votre PC et votre Arduino ne sert pas qu'&#224; t&#233;l&#233;verser vos programmes et &#224; alimenter votre carte. Elle peut aussi servir &#224; faire communiquer l'Arduino avec votre PC (ou n'importe quel autre terminal compatible, il existe des applications sur Android pour ceci) lorsque votre programme tourne, pour ceci on se sert de la liaison S&#233;rie.<br />&#160;<br /><span  style='font-size: 24px'>Recevoir des donn&#233;es de la carte :</span><br />Recevoir des informations de la carte Arduino via le c&#226;ble USB est quelque chose que je consid&#232;re comme indispensable durant la phase de test de votre montage, cela vous permet de savoir ce que vous voulez (un angle, une tension, un &#233;tat,...) en temps r&#233;el.<br />Pour commencer &#224; faire communiquer votre carte avec votre PC il faut &#233;crire ceci dans le logiciel Arduino:<pre class='prettyprint lang-auto linenums:0'>
void setup() {

  Serial.begin(9600);

}

void loop() {

}
</pre>Ceci permet de d&#233;buter la liaison S&#233;rie, l'attribut 9600 correspond &#224; une vitesse de communication en <a href='https://fr.wikipedia.org/wiki/Baud_%28mesure%29' class='bbc_url' title='Lien externe' rel='nofollow external'>bauds</a>, 9600 &#233;tant la valeur par d&#233;faut.<br />Ensuite il vous suffit d'&#233;crire :<pre class='prettyprint lang-auto linenums:0'>
Serial.print(var); //Pour afficher une variable
Serial.print("Texte"); // Pour afficher du texte
</pre>Mais Serial.print &#233;crira tout ce que vous voulez sur une seule ligne, si vous souhaitez revenir &#224; la ligne apr&#232;s chaque transmission il vous faut &#233;crire :<pre class='prettyprint lang-auto linenums:0'>
Serial.println(var);
</pre>Puis lorsque vous avez t&#233;l&#233;verser votre programme cliquez sur ce bouton :<br /><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=979966ss20160403at110634.png' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img11.hostingpics.net/pics/979966ss20160403at110634.png' alt='Image IPB'  /></a></p>&#160;<br />Une boite de dialogue va apparaitre, v&#233;rifier bien le port sur lequel vous &#234;tes connect&#233; ainsi que le nombre de bauds qui doit &#234;tre identique &#224; celui entr&#233; dans votre programme.<br />Ainsi lorsque votre programme s'ex&#233;cutera vous verrez apparaitre dans cette fen&#234;tre les diff&#233;rentes informations que vous souhaitez.<br />&#160;<br /><span  style='font-size: 24px'>Envoyer des donn&#233;es &#224; la carte :</span><br />Si vous souhaitez commander votre Arduino depuis votre PC vous pouvez utiliser la liaison s&#233;rie pour lui envoyer des informations. Eskimon l'a tr&#232;s bien d&#233;velopp&#233; sur cette <a href='http://eskimon.fr/104-arduino-302-envoyer-recevoir-des-donnees-voie-serie#544488' class='bbc_url' title='Lien externe' rel='nofollow external'>page</a>, donc si vous souhaitez mieux comprendre ce que je vais dire aller la voir&#160; <img src='http://www.robot-maker.com/forum/public/style_emoticons/default/wink.png' class='bbc_emoticon' alt=';)' />&#160; .<br />&#160;<br />Pour v&#233;rifier si la carte a re&#231;u des donn&#233;es on va cr&#233;er une variable (mail ici) qui va stocker un nombre (-1 si l'on a rien envoy&#233; dans notre cas) donn&#233; par Serial.avaible();&#160; :<pre class='prettyprint lang-auto linenums:0'>
void loop() {

int mail = Serial.available();
if (mail &gt; 0) {
  //Faire ceci
}
}
</pre>Si vous voulez comparez ce qu vous avez re&#231;u avec une variable existante voici ce que vous aurez &#224; faire :<pre class='prettyprint lang-auto linenums:0'>
void loop() {

int mail = Serial.available();
int num = 8;
if (mail &gt; 0) {

  if (Serial.read() == 8) {
    //Faire ceci
  }
  else {
  delay(10);
  }
}

}
</pre>Comme pour tout sur Arduino, je vous invite &#224; regarder la documentation <a href='https://www.arduino.cc/en/Reference/Serial' class='bbc_url' title='Lien externe' rel='nofollow external'>ici</a>. Elle vous permettra de faire exactement ce que vous voulez et vous apportera des pr&#233;cisions sur chaque &#233;l&#233;ment.<br />&#160;<br /><span  style='font-size: 24px'>Exemple :</span><br />Et pour finir voici un petit exemple :<br />On veut allumer une led connect&#233;e au pin digital 13 via la liaison S&#233;rie en envoyant les informations ON et OFF dans le moniteur s&#233;rie.<br />&#160;<br />Je vous laisse essayer par vous m&#234;me, il ne devrez pas y avoir de difficult&#233;s si vous vous aidez de ce que l'on a d&#233;j&#224; dit ainsi que de la documentation, mais je vous mets ce que j'ai fait ci-dessous si vous rencontrez des probl&#232;mes.<br />&#160;<br />&#160;<br />&#160;<br />&#160;<br />&#160;<br />&#160;<br />&#160;<br />&#160;<br />&#160;<br />&#160;<br />Voici ce que j'ai fait pour cet exemple :<br />&#160;<br />&#160;Le c&#226;blage :<br /><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=742324ss20160404at121129.png' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img11.hostingpics.net/pics/742324ss20160404at121129.png' alt='Image IPB'  /></a></p><p class='bbc_center'>&#160;</p>Le programme :<pre class='prettyprint lang-auto linenums:0'>
  // Pins E/S :
int led = 13;
  // Variables :
String msg;
int mail;

  //Fonction d'initialisation
void setup() {
  
  // D&#233;claration E/S :
pinMode(led, OUTPUT);

  // Connectique :
Serial.begin(9600);
}

  // Boucle inifinie :
void loop() {
  mail = Serial.available();
if (mail &gt; 0) {
  msg = Serial.readString();
 Serial.print(msg);
 Serial.println(" Recu");
 if (msg == "ON") {
  digitalWrite(led, HIGH);
  Serial.print(msg);
  Serial.println(" OK");
 }
 else if (msg == "OFF") {
  digitalWrite(led, LOW);
  Serial.print(msg);
  Serial.println(" OK");
 }
 else {
  Serial.println("Commande inconnue");
 }
}

}
</pre>R&#233;sultats :<br />Moniteur s&#233;rie :<br /><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=245811ss20160403at115305.png' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img11.hostingpics.net/pics/245811ss20160403at115305.png' alt='Image IPB'  /></a></p><p class='bbc_center'>&#160;</p>Montage :<br /><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=946062WP20160404000419Pro.jpg' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/thumbs/mini_946062WP20160404000419Pro.jpg' alt='Image IPB'  /></a><a href='http://www.hostingpics.net/viewer.php?id=363419WP20160404000439Pro.jpg' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/thumbs/mini_363419WP20160404000439Pro.jpg' alt='Image IPB'  /></a></p><p class='bbc_center'>&#160;</p><p class='bbc_center'>Vous pouvez retrouver cet exemple en simulation <a href='https://123d.circuits.io/circuits/1877720-liaison-serie-led/' class='bbc_url' title='Lien externe' rel='nofollow external'>ici</a>, avec le c&#226;blage et le programme d&#233;j&#224; fait afin que vous poussiez le tester.</p>&#160;<br /><span  style='font-size: 24px'>Probl&#232;mes possibles :</span><ul class='bbc'><li>Mauvais choix du type de variable (j'ai pr&#233;f&#233;r&#233; choisir une variable String car la fonction Serial poss&#232;de une fonction .readString )</li><li>LED branch&#233;e dans le mauvais sens.</li><li>Oublie du pinMode</li><li>Nombres de bauds diff&#233;rents ou non d&#233;clar&#233;s</li></ul>]]></description>
		<pubDate>Sun, 03 Apr 2016 22:43:00 +0000</pubDate>
		<guid>http://www.robot-maker.com/forum/blog/62/entry-53-la-liaison-serie-arduino/</guid>
	</item>
	<item>
		<title>Les Algorigrammes</title>
		<link>http://www.robot-maker.com/forum/blog/62/entry-52-les-algorigrammes/</link>
		<category></category>
		<description><![CDATA[Comme je vous l'avais dit dans le pr&#233;c&#233;dent billet, je souhaite revenir sur les algorigrammes, sur pourquoi et comment les faire.<br />&#160;<br /><span  style='font-size: 24px'>Pourquoi ?</span><br /><span  style='font-size: 24px'><span  style='font-size: 14px'>Donc les avantages d'un algorigrammes :</span></span><ul class='bbc'><li><span  style='font-size: 24px'><span  style='font-size: 14px'>Ils permettent de mieux comprendre ce que doit faire votre programme donc si vous avez besoin d'aide une personne ext&#233;rieure pourras vous aider plus facilement</span></span></li><li><span  style='font-size: 24px'><span  style='font-size: 14px'>Ils permettent d'identifier les structures que vous allez utiliser</span></span></li><li><span  style='font-size: 24px'><span  style='font-size: 14px'>Ils peuvent &#234;tre facilement traduits pour n'importe quel langage et donc processeur, il est donc plus facile de migrer son programme.</span></span></li></ul><span  style='font-size: 24px'>Comment ?</span><br />&#160;<br />Un algorigramme ressemble &#224; ceci :<br /><br /><p class='bbc_center'><br /><a href='http://www.hostingpics.net/viewer.php?id=383003boutonled.png' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/thumbs/mini_383003boutonled.png' alt='Image IPB'  /></a></p><p class='bbc_center'>&#160;</p>&#160;<br /><p class='bbc_center'>Pour en cr&#233;er facilement vous pouvez utiliser le logiciel nomm&#233; Dia (disponible sous <a href='http://dia-installer.de/index.html.en' class='bbc_url' title='Lien externe' rel='nofollow external'>Windows</a> et <a href='https://framasoft.org/article1057.html' class='bbc_url' title='Lien externe' rel='nofollow external'>Linux</a>)</p>&#160;<br /><p class='bbc_center'>&#160;</p><span  style='font-size: 18px'>Les cellules :</span><br />Il est compos&#233; de diff&#233;rentes cellules dont celles que l'on utilise principalement sont :<br />&#160;<br /><br /><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=697844boutonled.png' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/pics/98713119b458bf51.png' alt='Image IPB'  /></a></p><p class='bbc_center'><strong class='bbc'>D&#233;but, fin, interruption </strong></p><p class='bbc_center'>On l'on l'utilise le plus souvent pour la cellule du d&#233;but, elle correspond &#224; la fonction "setup" dans un programme Arduino.</p><p class='bbc_center'>&#160;</p><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=828999ss20160330at104915.png' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/pics/828999ss20160330at104915.png' alt='Image IPB'  /></a></p><p class='bbc_center'><strong class='bbc'>Traitement/Op&#233;ration interne</strong></p><p class='bbc_center'>Sert &#224; symboliser les actions internes qui ne font pas appel &#224; des entr&#233;es ou des sorties. Par exemple Attendre x secondes sera symboliser par un rectangle dans un algorigramme.</p><p class='bbc_center'>&#160;</p><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=852257ss20160330at104935.png' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/pics/852257ss20160330at104935.png' alt='Image IPB'  /></a></p><p class='bbc_center'><strong class='bbc'>D&#233;cision&#160;</strong></p><p class='bbc_center'>Toutes les boucles ainsi que de nombreuses structures sont bas&#233;es sur cette cellule, c'est g&#233;n&#233;ralement une question, une comparaison.</p><p class='bbc_center'>&#160;</p><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=267532ss20160330at104941.png' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/pics/267532ss20160330at104941.png' alt='Image IPB'  /></a></p><p class='bbc_center'><strong class='bbc'>Sous-programme</strong></p><p class='bbc_center'>Servent &#224; symboliser des portions de programmes telles que des fonctions auxquelles ont fait appel dans un programme.</p><p class='bbc_center'>&#160;</p><span  style='font-size: 18px'>Les diff&#233;rentes structures :</span><br />L'algorigramme repr&#233;sente tout ce qu'il va se passer apr&#232;s la fonction setup donc elle ne sera pas dans la traduction.<br />&#160;<br /><br /><p class='bbc_center'><strong class='bbc'>La structure lin&#233;aire :</strong></p><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=939894Diagramme1.png' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/pics/939894Diagramme1.png' alt='Image IPB'  /></a></p><p class='bbc_center'>C'est une suite d'action, il n'y a pas grand chose &#224; expliquer.</p><p class='bbc_center'>&#160;</p><p class='bbc_center'><strong class='bbc'>Les structures alternatives :</strong></p><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=758519Diagramme15.png' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/pics/758519Diagramme15.png' alt='Image IPB'  /></a></p><p class='bbc_center'>Un simple si... alors...</p><p class='bbc_center'>Traduction en langage Arduino :</p><pre class='prettyprint lang-auto linenums:0'>
if (X == HIGH)
{
  digitalWrite(led, HIGH);
  delay(500);
  digitalWrite(led, LOW);
  delay(500);
}
</pre><p class='bbc_center'>Une autre structure :</p><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=907543Diagramme2.png' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/pics/907543Diagramme2.png' alt='Image IPB'  /></a></p><p class='bbc_center'>Il s'agit d'un si..., alors..., sinon.... Il permet d'ex&#233;cuter une partie du programme si la condition est fausse.</p><p class='bbc_center'>Traduction en langage Arduino :</p><pre class='prettyprint lang-auto linenums:0'>
if (X == HIGH)
{
  digitalWrite(led, HIGH);
  delay(500);
  digitalWrite(led, LOW);
  delay(500);
}
else
{
  delay(500);
}
</pre><p class='bbc_center'><strong class='bbc'>Les structures it&#233;ratives ou r&#233;p&#233;titives :</strong></p><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=337943Diagramme3.png' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/pics/337943Diagramme3.png' alt='Image IPB'  /></a></p><p class='bbc_center'><strong class='bbc'>La structure faire... jusqu'&#224;...</strong></p><p class='bbc_center'>Execute la suite d'action contenue dans la boucle puis si la condition est v&#233;rifi&#233;e, revient au d&#233;but de la boucle.</p><p class='bbc_center'>Traduction en langage Arduino :</p><pre class='prettyprint lang-auto linenums:0'>
do {
     digitalWrite(led, HIGH);
     delay(500);
     digitalWrite(led, LOW);
     delay(500);
} while (X == HIGH);
</pre><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=575926Diagramme4.png' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/pics/575926Diagramme4.png' alt='Image IPB'  /></a></p><p class='bbc_center'><strong class='bbc'>La structure tant que... faire... :</strong></p><p class='bbc_center'>Ressemble &#224; la structure faire jusqu'&#224; mais contrairement &#224; celle-ci, si la condition n'est pas v&#233;rifi&#233;e alors la boucle ne s&#8217;ex&#233;cutera pas.</p><p class='bbc_center'>Traduction en langage Arduino :</p><pre class='prettyprint lang-auto linenums:0'>
while (X == LOW)
{
 digitalWrite(led, HIGH);
 delay(500);
 digitalWrite(led, LOW);
 delay(500);
}
</pre><p class='bbc_center'><a href='http://www.hostingpics.net/viewer.php?id=630568Diagramme5.png' class='bbc_url' title='Lien externe' rel='nofollow external'><img class='bbc_img' src='http://img15.hostingpics.net/pics/630568Diagramme5.png' alt='Image IPB'  /></a></p><p class='bbc_center'><strong class='bbc'>La structure Pour... Faire... :</strong></p><p class='bbc_center'>C'est la seule structure dont ont connait le nombre d'ex&#233;cutions, on d&#233;finit un nombre de d&#233;part, un nombre que l'on doit atteindre ainsi qu'un pas.</p><p class='bbc_center'>Traduction en langage Arduino :</p><pre class='prettyprint lang-auto linenums:0'>
for(X = 5; X &lt;= 0; X--) //(valeur initiale; valeur finale; pas)
{
  digitalWrite(led, HIGH);
  delay(500);
  digitalWrite(led, LOW);
  delay(500);
}
</pre>Pour les autres structures en Arduino vous pouvez regarder <a href='https://www.arduino.cc/en/Reference/HomePage' class='bbc_url' title='Lien externe' rel='nofollow external'>cette page</a> qui explique tout sur le langage Arduino.<br />J'esp&#232;re avoir &#233;t&#233; suffisamment clair, si vous avez des questions n'h&#233;sitez pas.]]></description>
		<pubDate>Thu, 31 Mar 2016 10:32:00 +0000</pubDate>
		<guid>http://www.robot-maker.com/forum/blog/62/entry-52-les-algorigrammes/</guid>
	</item>
	<item>
		<title>Premiers pas (suite)</title>
		<link>http://www.robot-maker.com/forum/blog/62/entry-51-premiers-pas-suite/</link>
		<category></category>
		<description><![CDATA[Maintenant que vous avez votre carte Arduino et que vous connaissez les diff&#233;rents pins, passons &#224; la suite.<br />&#160;<br /><span  style='font-size: 24px'>L'IDE :</span><br />&#160;<br /><span  style='font-size: 14px'>L'IDE, pour Integrated Development Environment (Environnement de d&#233;veloppement int&#233;gr&#233;), est un logiciel tout-en-un c'est-&#224;-dire qu'il comporte un &#233;diteur de texte, un compilateur et un d&#233;bogueur de programme dans le m&#234;me logiciel. Et bonne nouvelle<a href='https://www.arduino.cc/en/Main/Software' class='bbc_url' title='Lien externe' rel='nofollow external'> il en existe un pour Arduino</a> et il est disponible pour les distributions Linux, Windows et mac. L'installation ne devrait pas poser de probl&#232;mes donc je ne m'attarderais pas dessus.</span><br />&#160;<br />Une fois install&#233;e, vous devriez obtenir ceci lorsque vous d&#233;marrez le logiciel :<br />&#160;<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[51]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-56461800-1461488813.png" title="002-1.png - Taille : 13,87 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-56461800-1461488813.png" class='bbc_img linked-image' alt="002-1.png" /></span></a>
</p><p class='bbc_center'>&#160;</p>Une interface tr&#232;s simple, avec l'&#233;diteur de texte au centre, le d&#233;bogueur en dessous. Les 5 boutons en haut de la fen&#234;tre servent, de gauche &#224; droite, &#224; v&#233;rifier le programme, &#224; t&#233;l&#233;verser le programme sur votre carte, &#224; cr&#233;er un nouveau programme, &#224; en ouvrir un, et &#224; enregistrer celui en cours.<br />&#160;<br />Comme vous le voyez, le programme de base en Arduino se compose de deux fonctions :<pre class='prettyprint lang-auto linenums:0'>
void setup() {

}

void loop () {

}
</pre>La fonction setup sert &#224; initialiser votre syst&#232;me, elle ne s'ex&#233;cute qu'une seule fois &#224; la mise sous tension de votre carte. La seconde est une fonction infinie, celle-ci s&#8217;ex&#233;cute apr&#232;s la mise sous tension.<br />&#160;<br />Pour plus d'explications, allez voir <a href='https://tutoarduino.com/portfolio-items/tpbd1-partie-2-familiarisons-nous-avec-la-programmation/' class='bbc_url' title='Lien externe' rel='nofollow external'>l'article de TutoArduino</a> qui explique tr&#232;s bien par o&#249; commencer avec la programmation.<br />&#160;<br />Je trouve que le programme de d&#233;part est un peu simple et pour mieux m'organiser je pars d'un autre programme :<pre class='prettyprint lang-auto linenums:0'>
 
  // Librairies :

  // Pins E/S :

  // Variables :

void setup() {

  // D&#233;clarations E/S :

  // Servomoteur(s) :

  // Ecran(s) LCD :
  
  // Connectique :

}

void loop() {
  
}
</pre>Vous verrez lorsque vous aurez des programmes comportant une dizaine de variables et un bon nombre pins utilis&#233;s que votre programme sera plus lisible si vous le classez.<br />&#160;<br /><span  style='font-size: 24px'>Connecter son Arduino au PC :</span><br />&#160;<br />On a l'Arduino, l'IDE, alors qu'es-ce qu'on attend pour les connecter ? Dans la plupart des cas il vous suffira de brancher votre Arduino au PC via le c&#226;ble USB et elle sera d&#233;tect&#233;e, vous n'aurez qu'&#224; choisir le port sur lequel elle est connect&#233;e et vous serez pr&#234;t &#224; la programmer.<br />&#160;<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[51]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-55551000-1461488814.png" title="002-2.png - Taille : 24,01 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-55551000-1461488814.png" class='bbc_img linked-image' alt="002-2.png" /></span></a>
</p><p class='bbc_center'>&#160;</p>Pour moi, c'est le port COM3 et je n'ai eu qu'&#224; connecter le clone pour qu'il fonctionne. Mais pour d'autres (en particulier ceux qui ont des clones), la carte n'est pas d&#233;tect&#233;e par le PC, si c'est votre cas, regardez <a href='https://www.youtube.com/watch?v=HHF45zhe_9U' class='bbc_url' title='Lien externe' rel='nofollow external'>cette vid&#233;o</a> (en anglais mais tr&#232;s accessible).<br />&#160;<br /><span  style='font-size: 24px'>Le premier montage :</span><br />&#160;<br />Enfin vous y &#234;tes, pour le premier montage ne cherchez pas bien compliqu&#233;, une led et un bouton suffiront pour d&#233;buter.<br />Je sais que &#231;a peut paraitre inutile pour un aussi petit montage mais je vous conseille de faire un algorigramme pour chacun de vos projets, ils vous permmettent de bien voir les structures que vous allez utiliser et si vous avez un probl&#232;me l'algorigramme permet &#224; d'autres personnes de comprendre plus facilement la logique du programme. Pour ceci j'utilise Dia qui est un logiciel tr&#232;s facile &#224; utiliser, pour les bases de l'algorigramme voici <a href='http://si.lycee-desfontaines.eu/spip.php?article52' class='bbc_url' title='Lien externe' rel='nofollow external'>une page</a> qui vous explique plut&#244;t bien la logique des algorigramme, j'y reviendrais s&#251;rement dans un prochain billet.<br />Donc voici &#224; quoi il ressemble :<br /><p class='bbc_center'><span rel='lightbox'><img class='bbc_img' src='http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-97449200-1461488815.png' alt='Image IPB'  /></span></p><p class='bbc_center'>&#160;</p>Donc on pourrait le traduire en texte par: Tant que l'on appuie pas sur le bouton il faut &#233;teindre la led et attendre 100ms, sinon allumer la led et attendre 100ms. La bulle d&#233;but englobant toute la fonction setup et ce qui la pr&#233;c&#232;de dans votre programme.<br />&#160;<br /><span  style='font-size: 18px'>Le c&#226;blage :</span><br /><span  style='font-size: 14px'><strong class='bbc'>Le mat&#233;riel n&#233;cessaire pour faire ce premier montage est: une Arduino, un c&#226;ble USB, une led, un bouton-poussoir, une r&#233;sistance 220Ohm (ou 330Ohm en fonction de ce que vous avez) et une 10kOhm, 5 fils male-male, une breadboard.</strong></span><br /><span  style='font-size: 18px'><span  style='font-size: 14px'>Voici comment proc&#233;der pour le c&#226;blage, il vous suffit de reproduire le suivant :</span></span><br /><p class='bbc_center'>&#160;</p><p class='bbc_center'><span rel='lightbox'><img class='bbc_img' src='http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-59398500-1461488907.png' alt='Image IPB'  /></span></p><p class='bbc_center'>&#160;</p><span  style='font-size: 18px'><span  style='font-size: 14px'>Rien de bien compliquer comme vous le voyez, les r&#233;sistances utilis&#233;es sont une de 220Ohm pour celle reli&#233;e &#224; la led et 10kOhm pour celle reli&#233;e au bouton. La premi&#232;re sert &#224; &#233;viter de griller la led, sa valeur minimale est de 220Ohm mais g&#233;n&#233;ralement ont utilise des r&#233;sistances 330Ohm, la seconde r&#233;sistance est appel&#233;e r&#233;sistance de "pull-down"&#160; litt&#233;ralement tirer vers le bas, elle sert &#224; avoir bien 0V lorsque l'on ne ferme pas le contact.</span></span><br />&#160;<br /><span  style='font-size: 18px'><span  style='font-size: 14px'>Pour le programme si vous avez bien compris le tutoriel de TutoArduino vous ne devriez pas avoir de probl&#232;me &#224; le faire &#224; partir de l'algorigramme. Mais si vous avez un probl&#232;me, voici le programme comment&#233; que j'ai r&#233;aliser pour ce montage: </span></span><pre class='prettyprint lang-auto linenums:0'>
  // Pins E/S :
int led = 13;                        // On attribue led au pin 13
int button = 8;                      //On attribue boutton au pin 8

  //Fonction d'initialisation :
void setup() {
  // E/S :
pinMode(led, OUTPUT);                // On d&#233;finit led comme une sortie
pinMode(button, INPUT);              // On d&#233;finit bouton comme une entr&#233;e
}

// Boucle infinie :
void loop() {
  
while(digitalRead(button) == LOW)    // Boucle TANT QUE ... FAIRE
{
  digitalWrite(led, LOW);            // Mettre la sortie led &#224; l'&#233;tat BAS
  delay(100);                        // Attendre 100ms
}

digitalWrite(led, HIGH);             // Mettre la sortie led &#224; l'&#233;tat HAUT
delay(100);                          // Attendre 100ms
}
</pre>Si pour ce programme ou tout autre vous ne comprenez pas une partie de celui-ci, regardez <a href='https://www.arduino.cc/en/Reference/HomePage' class='bbc_url' title='Lien externe' rel='nofollow external'>cette page</a> qui vous explique &#224; quoi chaque &#233;l&#233;ment sert et comment l'utiliser.<br />Le montage et le programme sont disponibles sur 123d.circuits.io &#224; <a href='https://123d.circuits.io/circuits/1835799-led-bouton-debutant/' class='bbc_url' title='Lien externe' rel='nofollow external'>cette adresse</a>, vous pourrez tester le fonctionnement gr&#226;ce &#224; la simulation.<br />&#160;<br /><p class='bbc_center'><span rel='lightbox'><img class='bbc_img' src='http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-35774900-1461488941.jpg' alt='Image IPB'  /></span></p>&#160;<br /><span  style='font-size: 18px'>Les erreurs possibles :</span><br />Si votre montage ne fonctionne pas, voici quelques raisons qui pourraient &#234;tre &#224; l'origine du bug :<br />&#160;<ul class='bbc'><li><span  style='font-size: 18px'><span  style='font-size: 14px'>Mauvaise configuration des ports</span></span></li></ul>Revenez &#224; la partie concernant la configuration des ports. R&#233;essayez avec un autre port.<ul class='bbc'><li><span  style='font-size: 18px'><span  style='font-size: 14px'>Led mise dans le mauvais sens</span></span></li><li><span  style='font-size: 18px'><span  style='font-size: 14px'>Les deux bornes de la led reli&#233; &#224; du 5V</span></span></li></ul><span  style='font-size: 18px'><span  style='font-size: 14px'>V&#233;rifiez le c&#226;blage</span></span><ul class='bbc'><li><span  style='font-size: 18px'><span  style='font-size: 14px'>Probl&#232;me dans la programmation</span></span></li></ul><span  style='font-size: 18px'><span  style='font-size: 14px'>Comparez votre programme &#224; celui ci-dessus</span></span><ul class='bbc'><li><span  style='font-size: 18px'><span  style='font-size: 14px'>Tout autre erreur de c&#226;blage</span></span></li></ul>&#160;<br />C'est tout pour ce billet, si vous avez des questions ou des suggestions n'h&#233;sitez pas &#224; les poster dans les commentaires.<br />&#160;<div id='attach_wrap' class='rounded clearfix'>
	<h4>Image(s) jointe(s)</h4>
	<ul>
		
			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		
	</ul>
</div>]]></description>
		<pubDate>Sat, 26 Mar 2016 17:50:00 +0000</pubDate>
		<guid>http://www.robot-maker.com/forum/blog/62/entry-51-premiers-pas-suite/</guid>
	</item>
	<item>
		<title>Présentation et premiers pas avec Arduino</title>
		<link>http://www.robot-maker.com/forum/blog/62/entry-50-presentation-et-premiers-pas-avec-arduino/</link>
		<category></category>
		<description><![CDATA[Bienvenues sur mon blog !<br />&#160;<br />J'ai r&#233;cemment command&#233; un clone Arduino UNO ainsi que quelques autres composants sur internet et en discutant avec un ami, il me dit que lui aussi a une Arduino UNO mais ne sachant pas quoi en faire, il voulait bien me la donner. C'est pour &#231;a que j'ai cr&#233;e ce blog, pour les d&#233;butants qui ne savent pas quoi faire avec, comment faire ou qui ne savent par o&#249; commencer. Ce blog sera bas&#233; sur mes exp&#233;riences avec Arduino en partant du tout d&#233;but.<br />&#160;<br />Je tient &#224; pr&#233;ciser que je suis moi-m&#234;me un d&#233;butant en Arduino et qu'il se peut qu'il y est des erreurs mais je posterais ici seulement ce que j'aurais test&#233;.<br />&#160;<br /><span  style='font-size: 24px'>Premiers pas :</span><br />&#160;<br />Tout d'abord qu'es-ce qu'Arduino, il existe <a href='http://www.robot-maker.com/forum/tutorials/article/82-arduino/' class='bbc_url' title=''>un tr&#232;s bon tutoriel</a> sur ce site qui l'explique donc si le mot Arduino ne vous dis rien, allez y jeter un oeil.<br />&#160;<br />Arduino &#233;tant un syst&#232;me ouvert il existe de nombreux clones sur internet, mais ceux-ci changent en fonction des constructeurs. Je poss&#232;de un clone Arduino UNO et une officielle. L'avantage des clones Arduino est leur prix ridiculement bas mais si vous souhaitez soutenir Arduino je vous recommande d'acheter une carte officielle ou de faire un don.<br />&#160;<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[50]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-01850500-1461487941.jpg" title="1.jpg - Taille : 104,14 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-01850500-1461487941.jpg" class='bbc_img linked-image' alt="1.jpg" /></span></a>
</p><p class='bbc_center'><a class='resized_img' rel='lightbox[50]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-81343000-1461487945.jpg" title="2.jpg - Taille : 53,49 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-81343000-1461487945.jpg" class='bbc_img linked-image' alt="2.jpg" /></span></a>
</p><p class='bbc_center'><a class='resized_img' rel='lightbox[50]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-20631400-1461487952.jpg" title="3.jpg - Taille : 140,92 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-20631400-1461487952.jpg" class='bbc_img linked-image' alt="3.jpg" /></span></a>
</p><p class='bbc_center'>&#160;</p>Avantages et inconv&#233;nients de celle de droite, l'officielle :<br />Celle-ci est celle vendue par Arduino donc il est possible de retirer le micro-contr&#244;leur, d'utiliser certaine applications faites pour, mais il faut le c&#226;ble sp&#233;cifique.<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[50]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-26016900-1461487962.jpg" title="4.jpg - Taille : 233,44 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-26016900-1461487962.jpg" class='bbc_img linked-image' alt="4.jpg" /></span></a>
</p>&#160;<br />Avantages et inconv&#233;nients de celle de gauche, le clone :<br />Pour celle-ci le constructeur a pris quelques libert&#233;s par rapport aux cartes officielles, pour brancher l'Arduino au PC il suffit d'avoir un c&#226;ble microUSB qui sont utilis&#233;s pour de nombreux t&#233;l&#233;phones, ils ont aussi ajout&#233; 2 pins analogiques A6 et A7.<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[50]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-11786100-1461487981.jpg" title="5.jpg - Taille : 135,83 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-11786100-1461487981.jpg" class='bbc_img linked-image' alt="5.jpg" /></span></a>
</p>Mais sur cette carte il est impossible de retirer le micro-contr&#244;leur comme sur la carte pr&#233;c&#233;dente.<br />&#160;<br />Il y a &#233;norm&#233;ment de cartes diff&#233;rentes disponibles et si vous ne connaissez rien en Arduino il est recommand&#233; de prendre la UNO pour d&#233;buter.<br />&#160;<br />Une fois que vous avez votre carte Arduino, il faut la prot&#233;ger contre les chocs mais surtout les courts-circuits entre les &#233;l&#233;ments traversants la carte.<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[50]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-95669100-1461487984.jpg" title="6.jpg - Taille : 105,43 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-95669100-1461487984.jpg" class='bbc_img linked-image' alt="6.jpg" /></span></a>
</p><p class='bbc_center'>&#160;</p>Il existe un bon nombre de fa&#231;ons de prot&#233;ger sa carte comme le montre <a href='http://hackaday.com/2014/05/09/diy-arduino-cases-you-never-knew-existed/' class='bbc_url' title='Lien externe' rel='nofollow external'>cette page</a>. J'ai choisi la technique des legos:<br />&#160;<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[50]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-83544400-1461488172.jpg" title="7.jpg - Taille : 107,37 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-83544400-1461488172.jpg" class='bbc_img linked-image' alt="7.jpg" /></span></a>
<a class='resized_img' rel='lightbox[50]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-75424700-1461488186.jpg" title="8.jpg - Taille : 89,18 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-75424700-1461488186.jpg" class='bbc_img linked-image' alt="8.jpg" /></span></a>
</p><p class='bbc_center'><a class='resized_img' rel='lightbox[50]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-31602100-1461488202.jpg" title="9.jpg - Taille : 114,2 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-31602100-1461488202.jpg" class='bbc_img linked-image' alt="9.jpg" /></span></a>
<a class='resized_img' rel='lightbox[50]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-01650700-1461488213.jpg" title="10.jpg - Taille : 84,69 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-01650700-1461488213.jpg" class='bbc_img linked-image' alt="10.jpg" /></span></a>
</p><p class='bbc_center'>&#160;</p>J'y ai fix&#233; une breadboard &#224; chacune pour une meilleure organisation. Les breadboards, ce sont les planches qui permettent de relier les diff&#233;rents composants sans soudures, il y en a de toutes les tailles et sont tr&#232;s utilis&#233;es en &#233;lectronique pour les prototypes.<br /><p class='bbc_center'><a class='resized_img' rel='lightbox[50]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-21603100-1461488227.jpg" title="11.jpg - Taille : 96,93 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-21603100-1461488227.jpg" class='bbc_img linked-image' alt="11.jpg" /></span></a>
</p><p class='bbc_center'>&#160;</p><p class='bbc_center'>&#160;</p><span  style='font-size: 24px'>Les pins :</span><br />La derni&#232;re chose dont je voulais vous parler dans ce billet sont les diff&#233;rents pins importants d'une carte Arduino :<ul class='bbc'><li>Les pins digital : Ce sont des entr&#233;es ou des sorties faites pour envoyer ou recevoir du 0 ou du 5V (niveau HAUT ou BAS)</li></ul><p class='bbc_center'><a class='resized_img' rel='lightbox[50]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-88038600-1461488242.jpg" title="12.jpg - Taille : 197,68 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-88038600-1461488242.jpg" class='bbc_img linked-image' alt="12.jpg" /></span></a>
</p>Parmis les E/S (Entr&#233;es/Sorties - I/O Input/Output en anglais) digitales il y en a certaines dont le num&#233;ro est pr&#233;c&#233;d&#233; par un "~" elles sont nomm&#233;es les PWM pour <em class='bbc'>Pulse Width Modulation </em>ou MLI en fran&#231;ais pour<em class='bbc'> Modulation de largeur d'intensit&#233; </em>elles permettent de commander le temps auquel la sortie sera &#224; 5V sur une p&#233;riode de 20ms, elles servent &#224; commander certains types de moteurs (les servomoteurs).<br /><p class='bbc_center'><span rel='lightbox'><img class='bbc_img' src='http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-00128500-1461488245.png' alt='Image IPB'  /></span></p><ul class='bbc'><li>Les pins analogue: Idem que les pins digital mais peuvent envoyer ou d&#233;tecter une tension entre 0 et 5V qu'il mettra sur une &#233;chelle de 0 &#224; 1023. Par exemple pour envoyer du 5V il faut lui dire d'envoyer 1023.</li></ul><p class='bbc_center'><a class='resized_img' rel='lightbox[50]' id='ipb-attach-url-' href="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-19102300-1461488262.jpg" title="14.jpg - Taille : 250,64 Ko"><span rel='lightbox'><img class='bbc_img' itemprop="image" src="http://www.robot-maker.com/forum/uploads/monthly_04_2016/blogentry-9502-0-19102300-1461488262.jpg" class='bbc_img linked-image' alt="14.jpg" /></span></a>
</p><ul class='bbc'><li>&#160;</li><li>Les pins de puissances: pour alimenter les diff&#233;rents composants (5V, 3V3, GND(mise &#224; la masse))</li><li>&#160;</li></ul>Voil&#224; tout pour ce billet, j'esp&#232;re avoir pu en aider certains.<br />Si vous avez des suggestions, des questions n'h&#233;sitez pas <img src='http://www.robot-maker.com/forum/public/style_emoticons/default/smile.png' class='bbc_emoticon' alt=':)' /><br />&#160;<br />Sources :<ul class='bbc'><li>PWM: <a href='http://www.micropik.com/PDF/SG90Servo.pdf' class='bbc_url' title='Lien externe' rel='nofollow external'>http://www.micropik.com/PDF/SG90Servo.pdf</a></li><li>PWM: <a href='https://fr.wikipedia.org/wiki/Modulation_de_largeur_d%27impulsion' class='bbc_url' title='Lien externe' rel='nofollow external'>https://fr.wikipedia.org/wiki/Modulation_de_largeur_d'impulsion</a></li></ul><div id='attach_wrap' class='rounded clearfix'>
	<h4>Image(s) jointe(s)</h4>
	<ul>
		
			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		

			<li class=''>
				
			</li>
		
	</ul>
</div>]]></description>
		<pubDate>Fri, 25 Mar 2016 09:16:00 +0000</pubDate>
		<guid>http://www.robot-maker.com/forum/blog/62/entry-50-presentation-et-premiers-pas-avec-arduino/</guid>
	</item>
</channel>
</rss>