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

<channel>
	<title>Arduino &#8211; Carnet de notes</title>
	<atom:link href="https://jb.vioix.fr/tag/arduino/feed/" rel="self" type="application/rss+xml" />
	<link>https://jb.vioix.fr</link>
	<description>Diverses notes en électronique et informatique</description>
	<lastBuildDate>Thu, 18 Apr 2024 05:36:30 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.2</generator>
<site xmlns="com-wordpress:feed-additions:1">232311113</site>	<item>
		<title>Passer de l&#8217;Arduino à l&#8217;ATMEGA&#8230;</title>
		<link>https://jb.vioix.fr/passer-de-larduino-a-latmega/</link>
					<comments>https://jb.vioix.fr/passer-de-larduino-a-latmega/#respond</comments>
		
		<dc:creator><![CDATA[jb]]></dc:creator>
		<pubDate>Sun, 06 Dec 2015 09:59:12 +0000</pubDate>
				<category><![CDATA[Electronique]]></category>
		<category><![CDATA[Arduino]]></category>
		<guid isPermaLink="false">http://jb.vioix.fr/?p=848</guid>

					<description><![CDATA[Le côté rapide et pratique de l&#8217;Arduino n&#8217;est plus à démontrer mais une fois le prototype réalisé, on souhaite souvent passer à une réalisation définitive (avec un circuit imprimé dédié). En plus d&#8217;un rendu plus définitif cette solution est aussi plus économique (une Arduino coûte une dizaine d&#8217;euros alors qu&#8217;un ATMEGA328 seul ne coûte que&#8230; <a href="https://jb.vioix.fr/passer-de-larduino-a-latmega/" class="more-link">Lire la suite <span class="screen-reader-text">Passer de l&#8217;Arduino à l&#8217;ATMEGA&#8230;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Le côté rapide et pratique de l&rsquo;Arduino n&rsquo;est plus à démontrer mais une fois le prototype réalisé, on souhaite souvent passer à une réalisation définitive (avec un circuit imprimé dédié). En plus d&rsquo;un rendu plus définitif cette solution est aussi plus économique (une Arduino coûte une dizaine d&rsquo;euros alors qu&rsquo;un ATMEGA328 seul ne coûte que 2 €).</p>
<p><span id="more-848"></span></p>
<h1>Matériel nécessaire</h1>
<p>Le programmateur meilleur marché que l&rsquo;on trouve sur eBay est un clone de l&rsquo;USBasp pour 2€. Il est supporté par le logiciel Arduino il faudra simplement ajouter quelques fichiers dans le répertoire d&rsquo;installation d&rsquo;Arduino.</p>
<p>Il est aussi possible d&rsquo;utiliser une carte Arduino comme programmateur mais je trouve cette solution un peu plus lourde (il faut enlever l&rsquo;ATMEGA328 de la carte pour la programmation, manipulation qui peut être délicate).</p>
<h2>Préparation</h2>
<h3>Modification du programmateur</h3>
<p>Sur l&rsquo;USBasp il faut commencer par souder des picots sur JP3 s&rsquo;ils n&rsquo;ont pas été installés d&rsquo;usine (ce qui était le cas sur le mien). JP3 impose l&rsquo;horloge lente qui est (normalement) nécessaire pour programmer les AVR en sortie d&rsquo;usine, il pourra être enlevé une fois l&rsquo;ATMEL mis à jour avec le bootloader Arduino.</p>
<h3>Installation et configuration du logiciel Arduino</h3>
<p>La dernière version d&rsquo;Arduino est disponible sur <a href="https://www.arduino.cc/en/Main/Software">le site officiel</a>. Pour linux c&rsquo;est une archive au format <code>tar.xv</code>. En super utilisateur on l&rsquo;extrait dans le répertoire <code>/opt</code> (ou un autre, selon vos habitudes). La commande <code>desktop-file-install arduino.desktop</code>  permet ensuite d&rsquo;avoir Arduino dans les entrées du menu de démarrage.<br />
Lancer une fois l&rsquo;application pour définir le répertoire de l&rsquo;utilisateur. Fermer ensuite l&rsquo;application. Dans le répertoire de l&rsquo;utilisateur (par exemple <code>~/Arduino</code>) créer un répertoire <code>hardware</code> et y copier le contenu de l&rsquo;archive présente sur la <a href="https://www.arduino.cc/en/uploads/Tutorial/breadboard-1-6-x.zip">page dédiée</a>.</p>
<h4>Modification du 28/02/2016</h4>
<p>La ligne <code>atmega328bb.upload.protocol=arduino</code> doit être commentée (en plaçant un <code>#</code> devant), sinon le logiciel ignore le programmateur <em>USBasp</em> (voir ci-dessous).</p>
<h2>Premier programme</h2>
<h3>Configuration</h3>
<p>Dans le menu <em>Outils</em>, deux éléments sont à configurer :</p>
<ul>
<li><em>Type de carte</em> : choisir <em>ATmega328 on a breadboard (8 MHz internal clock)</em></li>
<li><em>Programmateur</em> : choisir <em>USBasp</em></li>
</ul>
<h3>Câblage</h3>
<p><a href="https://i0.wp.com/beta.vioix.fr/wp-content/uploads/2015/10/CablageProgramation_bb.jpg?ssl=1"><img decoding="async" data-attachment-id="867" data-permalink="https://jb.vioix.fr/passer-de-larduino-a-latmega/cablageprogramation_bb/" data-orig-file="https://i0.wp.com/jb.vioix.fr/wp-content/uploads/2015/10/CablageProgramation_bb.jpg?fit=2220%2C636&amp;ssl=1" data-orig-size="2220,636" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="CablageProgramation_bb" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/jb.vioix.fr/wp-content/uploads/2015/10/CablageProgramation_bb.jpg?fit=300%2C86&amp;ssl=1" data-large-file="https://i0.wp.com/jb.vioix.fr/wp-content/uploads/2015/10/CablageProgramation_bb.jpg?fit=825%2C236&amp;ssl=1" tabindex="0" role="button" class="alignleft wp-image-867 size-medium" src="https://i0.wp.com/beta.vioix.fr/wp-content/uploads/2015/10/CablageProgramation_bb-300x86.jpg?resize=300%2C86&#038;ssl=1" alt="Cablage pour la programmation" width="300" height="86" srcset="https://i0.wp.com/jb.vioix.fr/wp-content/uploads/2015/10/CablageProgramation_bb.jpg?resize=300%2C86&amp;ssl=1 300w, https://i0.wp.com/jb.vioix.fr/wp-content/uploads/2015/10/CablageProgramation_bb.jpg?resize=100%2C29&amp;ssl=1 100w, https://i0.wp.com/jb.vioix.fr/wp-content/uploads/2015/10/CablageProgramation_bb.jpg?resize=1024%2C293&amp;ssl=1 1024w, https://i0.wp.com/jb.vioix.fr/wp-content/uploads/2015/10/CablageProgramation_bb.jpg?resize=541%2C155&amp;ssl=1 541w, https://i0.wp.com/jb.vioix.fr/wp-content/uploads/2015/10/CablageProgramation_bb.jpg?resize=700%2C201&amp;ssl=1 700w, https://i0.wp.com/jb.vioix.fr/wp-content/uploads/2015/10/CablageProgramation_bb.jpg?resize=332%2C95&amp;ssl=1 332w, https://i0.wp.com/jb.vioix.fr/wp-content/uploads/2015/10/CablageProgramation_bb.jpg?w=1650&amp;ssl=1 1650w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p>
<p>&nbsp;</p>
<p>Le câblage est assez simple, les alimentations et les fils de programmation sont câble sur une plaque d&rsquo;essai. Le microcontrôleur sera utilisé en mode horloge interne à 8 MHz, donc pas besoin de câbler un quartz.</p>
<p>Pour vérifier que tout fonctionne bien on câble en plus une LED sur la broche 19 (qui correspond à la sortie digitale 13 de l&rsquo;Arduino). La LED est protégée par une résistance de $$470\ \Omega$$ qui sort du tiroir sans calcul (les plus rigoureux vérifieront avec les caractéristiques de la LED utilisée).</p>
<h3>Programmation</h3>
<p>Pour commencer il faut programmer le firmware Arduino dans l&rsquo;ATMEGA. Cette opération ne sera faite qu&rsquo;une seule fois. Dans le menu <em>Outils</em> l&rsquo;entrée <em>Graver la séquence d&rsquo;initialisation</em> permet de télécharger le firmware.</p>
<p>Le programme <code>Blink</code> (présent dans <em>Fichier</em>, <em>Exemples</em>, <em>01. Basics</em>) permet de faire clignoter une LED branchée sur la sortie digitale 13. Pour l&rsquo;envoyer dans l&rsquo;ATMEGA il faut aller dans le menu <em>Croquis</em> puis <em>Téléverser avec un programmateur</em>.</p>
<p>Si tout c&rsquo;est bien passé, la LED doit clignoter. Une LED qui clignote ce peut être très rassurant, c&rsquo;est que tout est OK.</p>
<h4>Problème possible</h4>
<p>Quand j&rsquo;ai commandé mes composants, je n&rsquo;ai pas fait attention à la différence entre les ATMEGA328-PU et les ATMEGA328P-PU. L&rsquo;Arduino est équipée d&rsquo;un 328P qui est reconnu par le programmateur avec la signature <code>1E 95 0F</code>. Le 328 a quand à lui la signature <code>1E 95 14</code>. Bilan de l&rsquo;opération les erreurs suivantes apparaissent lors de la programmation :</p>
<pre class="lang:default highlight:0 decode:true">avrdude: Device signature = 0x1e9514
avrdude: Expected signature for ATmega328P is 1E 95 0F
Double check chip, or use -F to override this check.</pre>
<p>Les 2 circuits sont extrêmement proches,  la seule différence est le mode basse consommation du 328P. L&rsquo;astuce consiste à faire passer le 328 pour un 328P en modifiant le fichier de déclaration. Dans le répertoire <code>/opt/arduino/hardware/tools/avr/etc</code> on édite le fichier <code>avrdude.conf</code> (avant faire une sauvegarde <code>cp ardude.conf avrdude.conf.old</code> au cas où&#8230;). Une recherche de la chaîne  <code>0x1e 0x95 0x0F</code> permet de trouver la ligne à modifier, on y remplace le  <code>0x1e 0x95 0x0F</code> par <code>0x1e 0x95 0x14</code>. Pour programmer des Arduino « normale » il faudra remettre le fichier à ses valeurs initiales (d&rsquo;où la copie de sauvegarde).</p>
<h1>Bibliographie</h1>
<ul>
<li><a href="http://www.chicoree.fr/w/Le_programmateur_AVR_le_moins_cher_du_monde">Présentation de l&rsquo;USBasp </a></li>
<li><a href="https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard">Arduino sur une platine d&rsquo;essai</a></li>
<li><a href="http://www.lydiard.plus.com/chapter2.htm">Les différences entre le 328 et le 328P</a></li>
<li><a href="http://www.semageek.com/wp-content/uploads/2013/02/arduino_atmega328_Web-600x424.png">Câblage de l&rsquo;ATMEGA328 avec le firmware Arduino</a></li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jb.vioix.fr/passer-de-larduino-a-latmega/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">848</post-id>	</item>
		<item>
		<title>Reinitialiser l&#8217;USB sous Linux</title>
		<link>https://jb.vioix.fr/reinitialiser-lusb-sous-linux/</link>
					<comments>https://jb.vioix.fr/reinitialiser-lusb-sous-linux/#respond</comments>
		
		<dc:creator><![CDATA[jb]]></dc:creator>
		<pubDate>Wed, 05 Nov 2014 10:21:09 +0000</pubDate>
				<category><![CDATA[Electronique]]></category>
		<category><![CDATA[Informatique]]></category>
		<category><![CDATA[Arducopter]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[USB]]></category>
		<guid isPermaLink="false">http://jb.vioix.fr/?p=760</guid>

					<description><![CDATA[Lors du développement avec Arduino (ou une autre carte d&#8217;une même type, en l&#8217;occurrence un Arducopter) il est souvent utile de réinitialiser le port USB sous Linux après un plantage. En trois commandes chaînées, c&#8217;est fait : Décharger le module usbhid Attendre 5 secondes pour que tout se stabilise Recharger le module sudo modprobe -r&#8230; <a href="https://jb.vioix.fr/reinitialiser-lusb-sous-linux/" class="more-link">Lire la suite <span class="screen-reader-text">Reinitialiser l&#8217;USB sous Linux</span></a>]]></description>
										<content:encoded><![CDATA[<p>Lors du développement avec Arduino (ou une autre carte d&rsquo;une même type, en l&rsquo;occurrence un Arducopter) il est souvent utile de réinitialiser le port USB sous Linux après un plantage. En trois commandes chaînées, c&rsquo;est fait :</p>
<ol>
<li>Décharger le module <code>usbhid</code></li>
<li>Attendre 5 secondes pour que tout se stabilise</li>
<li>Recharger le module</li>
</ol>
<p><code>sudo modprobe -r usbhid &amp;&amp; sleep 5 &amp;&amp; sudo modprobe usbhid</code></p>
]]></content:encoded>
					
					<wfw:commentRss>https://jb.vioix.fr/reinitialiser-lusb-sous-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">760</post-id>	</item>
	</channel>
</rss>
