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

<channel>
	<title>ElettroEasy</title>
	<atom:link href="http://elettroeasy.altervista.org/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://elettroeasy.altervista.org</link>
	<description>L&#039;elettronica semplice..</description>
	<lastBuildDate>Tue, 27 Dec 2011 16:15:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Led a Ritmo di Musica</title>
		<link>http://elettroeasy.altervista.org/?p=277</link>
		<comments>http://elettroeasy.altervista.org/?p=277#comments</comments>
		<pubDate>Tue, 27 Dec 2011 13:28:55 +0000</pubDate>
		<dc:creator>Valerio Conicella</dc:creator>
				<category><![CDATA[Elettronica]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://elettroeasy.altervista.org/?p=277</guid>
		<description><![CDATA[In questo articolo viene illustrato il funzionamento di un piccolo circuito capace di pilotare dei led a ritmo di musica.  Il cuore del circuito è l&#8217;amplificatore operazionale LM358 configurato come filtro attivo passa basso invertente(perchè il segnale d&#8217;ingresso è applicato al morsetto invertente). Il morsetto non invertente è collegato a massa, per cui in uscita avremo un [...]]]></description>
			<content:encoded><![CDATA[<p>In questo articolo viene illustrato il funzionamento di un piccolo circuito capace di pilotare dei led a ritmo di musica.  Il cuore del circuito è l&#8217;amplificatore operazionale LM358 configurato come filtro attivo passa basso invertente(perchè il segnale d&#8217;ingresso è applicato al morsetto invertente). Il morsetto non invertente è collegato a massa, per cui in uscita avremo un  segnalo sfasato di 180° rispetto al segnale d&#8217;ingresso. L&#8217;amplificatore operazionale è alimentato con una tensione singola di +12Vcc.<br />
Con questa configurazione l&#8217;amplificatore operazionale amplifica solo la parte del segnale compresa tra 0 e +Vi, in questo modo è possibile pilotare il transistor usato come interruttore on-off.<br />
L&#8217;amplificazione scelta per l&#8217;operazionale è stata ottenuta ponendo la resistenza di retroazione <strong>R2= 100K e R1=10K</strong>;  i valori dei componenti per l&#8217;amplificazione si possono ricavare dalla formula teorica: <strong>A= &#8211; R2/R1.</strong><br />
Per la tensione di uscita si ottiene <strong>Vo= Vi*A</strong> questa tensione arriva in base al transistor attraverso la resistenza <strong>R3=10K </strong>che serve a limitare la corrente di base garantendo un corretto funzionamento.<br />
La frequenza di taglio del circuito sarà data dalla relazione: <strong>1/6,28*C1*R2</strong>, in questo caso otteniamo una frequenza di taglio che si aggira intorno ai 150Hz , quindi il led lampeggerà solo in presenza di audio a basse frequenze.</p>
<p><span style="color: #ff0000;"><strong>Schema e pcb</strong></span></p>
<p><strong><span style="color: #ff0000;"> <a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/12/schema.png"><img class="alignleft size-medium wp-image-331" title="schema" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/12/schema-300x124.png" alt="" width="300" height="124" /></a></span></strong></p>
<p><strong><span style="color: #ff0000;"> </span></strong></p>
<p><strong><span style="color: #ff0000;"> </span></strong></p>
<p><strong><br />
</strong></p>
<div>
<p><span style="color: #0000ee;"><strong><span style="text-decoration: underline;"><br />
</span></strong></span></p>
<div>
<div><img class="alignleft size-full wp-image-333" style="border-style: initial; border-color: initial;" title="led a ritmo" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/12/led-a-ritmo.png" alt="" width="235" height="219" /></div>
</div>
</div>
<div>
<p><strong><span style="color: #ff0000;"> </span></strong></p>
<p><strong><span style="color: #ff0000;"><br />
</span></strong><strong><span style="color: #ff0000;"> </span></strong></p>
<p><strong><span style="color: #ff0000;"> </span></strong></p>
<p><strong><span style="color: #ff0000;"> </span></strong></p>
<p><strong><span style="color: #ff0000;"> </span></strong></p>
<p><strong><span style="color: #ff0000;"> </span></strong></p>
<p><strong><span style="color: #ff0000;"> </span></strong></p>
<p><strong><span style="color: #ff0000;"> <span id="more-277"></span></span></strong></p>
<p><strong><span style="color: #ff0000;">Lista componenti<br />
</span></strong><span style="color: #000000;">- R1 = 100K 1/4 Watt;<br />
- R2,R3 = 10K  1/4 Watt;<br />
- R4 = da calcolare (vedi ulteriori informazioni);<br />
- R5 = trimmer 10K;<br />
- C1 = 10 nF ceramico;<br />
- C2,C3 = 10uF elettrolitico;<br />
- T1 = BC337;<br />
- IC1 = LM358;<br />
-X1,X2,X3 = morsetti a due poli. </span></p>
<p><strong style="color: #ff0000;">Foto della realizzazione </strong></p>
<p><strong><span style="color: #ff0000;"><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/12/IMG_0083.jpg"><img class="alignleft size-thumbnail wp-image-365" title="IMG_0083" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/12/IMG_0083-150x150.jpg" alt="" width="150" height="150" /></a><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/12/led-a-ritmo.png"><br />
</a></span></strong></p>
<p><span style="color: #ff0000;"><strong> </strong></span></p>
<p><strong style="color: #ff0000;"> </strong></p>
<p><strong style="color: #ff0000;"> </strong></p>
<p><strong style="color: #ff0000;"> </strong></p>
<p><strong style="color: #ff0000;"> </strong></p>
<p><strong style="color: #ff0000;">Ulteriori informazioni</strong></p>
<p>Aggiungo dicendo che per aumentare il numero dei led nel circuito si possono aggiungere in serie altri led modificando opportunamente la resistenza a seconda del tipo e del numero di led utilizzato. Per ricavare il valore della resistenza <strong>R4</strong> in modo da non bruciare i diodi led ed accenderli nel modo corretto, anche in caso di più&#8217; diodi in cascata, è necessario conoscere le tensioni di funzionamento dei diodi, le correnti di funzionamento e la tensione di alimentazione del circuito. Es.  la tensione di alimentazione è 12V, ed i diodi led in serie sono 2. Avendo due led in serie la cui caduta di tensione è di 2V, significa che assieme richiederanno 4V per funzionare. Avendo 12V in partenza, vuol dire che dobbiamo sottrarne 4 per ottenere la giusta tensione: <strong>Vd = Va &#8211; (VL * N)</strong> = 12 &#8211; (2 * 2) = 8 Volt</p>
<p>Va = Tensione di alimentazione del circuito;<br />
VL = Tensione di alimentazione del led;<br />
N = Numero di led;<br />
Vd = Caduta di tensione;</p>
<p>Utilizzeremo quindi questa formula, ricavata dalla legge di Ohm: <strong>R1 = Vd / A</strong> = 8 / 0.016 = 500Ohm</p>
<p>R1 = Resistenza da calcolare;<br />
Vd = Caduta di tensione da ottenere;<br />
A = Ampere richiesti dal circuito ( 0.016A dei led = 16mA );</p>
<p>Il valore 500 ohm quindi è il valore resistivo da inserire in serie al circuito per limitare la corrente a 16mA, ma siccome non è un valore standard, utilizzeremo quello prossimo, ovvero 470 ohm oppure da 560 ohm. Un ultima operazione da effettuare è quella di calcolare la potenza della resistenza.</p>
<p><strong>W = Vd x A</strong> = 8 * 0.016 = 0.128 W , in questo caso sarà sufficiente una resistenza da 1/4 di Watt.</p>
<p>a cura di: Conicella Valerio</p>
<p><span style="color: #ff0000;"><strong><br />
</strong></span></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://elettroeasy.altervista.org/?feed=rss2&#038;p=277</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alimentatore per Breadboard</title>
		<link>http://elettroeasy.altervista.org/?p=212</link>
		<comments>http://elettroeasy.altervista.org/?p=212#comments</comments>
		<pubDate>Mon, 26 Dec 2011 14:43:25 +0000</pubDate>
		<dc:creator>Valerio Conicella</dc:creator>
				<category><![CDATA[Elettronica]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://elettroeasy.altervista.org/?p=212</guid>
		<description><![CDATA[Poco tempo fa ho pensato di  realizzare un semplice alimentatore stabilizzato a +5 Volt, che possa essere montato sulla BreadBoard, per una questione di comodità facilitando le operazioni di montaggio sulla basetta sperimentale. Questo alimentatore funziona nel seguente modo: riceve in ingresso una tensione compresa nel range 8-20V e fornisce in uscita una tensione stabilizzata [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000;"><strong></strong><span style="color: #000000;"></span></span></p>
<p><span style="color: #ff0000;"><span style="color: #000000;"> Poco tempo fa ho pensato di  realizzare un semplice alimentatore stabilizzato a +5 Volt, che possa essere montato sulla BreadBoard, per una questione di comodità facilitando le operazioni di montaggio sulla basetta sperimentale.<br />
Questo alimentatore funziona nel seguente modo: riceve in ingresso una tensione compresa nel range 8-20V e fornisce in uscita una tensione stabilizzata di  5Volt. La tensione in ingresso alla scheda può essere fornita tramite l&#8217;utilizzo di un connettore jack DC. La corrente massima che può erogare l&#8217;integrato 7805 è pari a 1,5 ampere, ma disponendo  di un piccolo dissipatore (come nella foto) sarà meglio non prelevare più di 500mA, altrimenti, l&#8217;integrato si surriscalderà fino a saltare. Inoltre sulla scheda è stato inserito uno switch per poter accendere o spegnere in maniera rapida il circuito che si sta alimentando senza la necessità di scollegare il cavo di alimentazione.<br />
Il condensatore C1 ha la funzione di livellare la tensione presenta all&#8217;ingresso del circuito mentre C2, C3 servono ad eliminare eventuali disturbi presenti in uscita.Il diodo D1 ha lo scopo di salvaguardare il circuito in caso di errato inserimento della tensione di alimentazione. L&#8217;accensione del led segnala la presenza della tensione d&#8217;uscita. Come riportato nelle caratteristiche dell&#8217;intergrato l&#8217;alimentazione del circuito dovrà essere compresa tra i 8 e i 20 V continui, nel caso si notasse un surriscaldamento dell&#8217;integrato è possibile montare su di esso un&#8217;apposita aletta di raffreddamento.<br />
<strong></strong></span></span></p>
<p><span style="color: #ff0000;"><strong> </strong></span><strong style="color: #ff0000;">Caratteristiche</strong></p>
<p style="text-align: left;">- Tensione in input: 8-20V (Power Jack);<br />
- Tensione in output:  5V;<br />
-  Corrente (max) in output: 500mA;<br />
- Switch per accensione/spegnimento (ON/OFF);<br />
- Power Status Led<strong>;</strong></p>
<p style="text-align: left;"><span style="color: #ff0000;"><strong> </strong></span></p>
<p style="text-align: left;"><span style="color: #ff0000;"><strong>Schema e pcb<br />
</strong></span></p>
<p style="text-align: left;"><span style="color: #ff0000;"><span style="color: #000000;">Questo è lo schema del circuito:</span></span></p>
<p><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/12/alimentatore3.png"><img class="size-large wp-image-264 alignleft" title="schema alimentatore" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/12/alimentatore3-1024x455.png" alt="" width="377" height="166" /></a></p>
<p><span style="color: #ff0000;"><strong> </strong></span></p>
<p><span style="color: #ff0000;"><strong> </strong></span></p>
<p><span style="color: #ff0000;"><strong> </strong></span></p>
<p><span style="color: #ff0000;"><strong> </strong></span></p>
<p><span style="color: #ff0000;"><strong> </strong></span></p>
<p><strong style="color: #ff0000;"> </strong></p>
<p><strong style="color: #ff0000;"><span id="more-212"></span></strong> </p>
<p><strong style="color: #ff0000;"></strong>Questo è lo schema pratico di montaggio dell&#8217;alimentatore, e più in basso abbiamo il pcb per la realizzazione.</p>
<p><strong style="color: #ff0000;"><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/12/cia.png"><img class="size-medium wp-image-281 alignleft" title="schema di montaggio" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/12/cia-300x150.png" alt="" width="300" height="150" /></a></strong></p>
<p><strong style="color: #ff0000;"> </strong></p>
<div><strong style="color: #ff0000;">  </strong></div>
<div><strong style="color: #ff0000;"></strong><strong style="color: #ff0000;"> </strong></div>
<div><strong style="color: #ff0000;"> </strong></div>
<div><strong style="color: #ff0000;"> </strong></div>
<div><strong style="color: #ff0000;"> </strong></div>
<div><strong style="color: #ff0000;"> </strong></div>
<div>
<div><strong style="color: #ff0000;"> </strong></div>
<div><strong style="color: #ff0000;"> </strong></div>
<p><img class="alignleft size-medium wp-image-283" style="border-style: initial; border-color: initial;" title="pcb" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/12/pcb-300x150.png" alt="" width="300" height="150" /></p>
</div>
<div>
<div><strong style="color: #ff0000;"> </strong></div>
<div><strong style="color: #ff0000;"> </strong></div>
<div><strong style="color: #ff0000;"><strong><br />
</strong> </strong></div>
<div><strong style="color: #ff0000;"> </strong></div>
<div><strong style="color: #ff0000;">  </strong></div>
<div><strong style="color: #ff0000;"> </strong></div>
<div><strong style="color: #ff0000;"> </strong></div>
<div><strong style="color: #ff0000;">Lista componenti:</strong></div>
<div>
<p><span style="color: #ff0000;"><span style="color: #000000;">R1: 220 ohm 1/4 watt;<br />
C1,C2: 47uF 25Volt;<br />
C3: 100nF poliestere;<br />
D1: diodo 1N4004 o simili;<br />
IC1: LM7805;<br />
S1: switch on/off;<br />
J1: connettore Jack DC;<br />
X2,X3: strip passo 2.54mm.</span></span></p>
<p style="text-align: center;"><strong><span style="color: #ff0000;">Foto della realizzazione</span></strong></p>
<p style="text-align: center;">
<p style="text-align: center;"><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/12/IMG_0075.jpg"><img class="size-thumbnail wp-image-346 aligncenter" style="border-style: initial; border-color: initial;" title="IMG_0075" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/12/IMG_0075-150x150.jpg" alt="" width="150" height="150" /></a><strong></strong></p>
<div></div>
<p>a cura di:  Conicella Valerio</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://elettroeasy.altervista.org/?feed=rss2&#038;p=212</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tracciamento oggetti con OpenCV</title>
		<link>http://elettroeasy.altervista.org/?p=235</link>
		<comments>http://elettroeasy.altervista.org/?p=235#comments</comments>
		<pubDate>Sat, 11 Jun 2011 14:31:57 +0000</pubDate>
		<dc:creator>Simone Giugliani</dc:creator>
				<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://elettroeasy.altervista.org/?p=235</guid>
		<description><![CDATA[Poco tempo fa mi era venuta l&#8217;ossessione del tracciamento visivo di oggetti dopo aver visto vari video su youtube. Con l&#8217;intento di realizzare qualcosa di simile, mi sono armato di pazienza e di amore verso Google. Ho scovato tutorial qua e la e soprattutto l&#8217;ambiente ideale per sviluppare applicazioni con le librerie OpenCV. Così ho [...]]]></description>
			<content:encoded><![CDATA[<p><center><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/06/OpenCV_Logo_with_text.png"><img class="size-medium wp-image-238 aligncenter" title="Logo OpenCV" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/06/OpenCV_Logo_with_text-243x300.png" alt="" width="243" height="300" /></a></center></p>
<p>Poco tempo fa mi era venuta l&#8217;ossessione del tracciamento visivo di oggetti dopo aver visto vari video su youtube. Con l&#8217;intento di realizzare qualcosa di simile, mi sono armato di pazienza e di amore verso Google. Ho scovato tutorial qua e la e soprattutto l&#8217;ambiente ideale per sviluppare applicazioni con le librerie <a href="http://opencv.willowgarage.com/wiki/">OpenCV</a>.</p>
<p>Così ho scaricato l&#8217;SDK delle OpenCV, installato eclipse galileo e il compilatore C++ chiamato MinGW per applicazioni Windows.<br />
Dopo vari tentativi ed insuccessi, sono riuscito a tracciare il movimento di una pallina gialla (color detection).<br />
Per il riconoscimento vengono usati appositi filtri che eliminano dai frame provenienti dalla webcam (io ho usato una webcam virtuale free di nome <a href="http://www.manycam.com/">ManyCam</a>) eventuali disturbi e rumori visivi. In sostanza, per eliminare ciò che non serve per il riconoscimento di uno specifico colore, si usa la tecnica del <strong>threshold</strong>, ovvero della &#8220;soglia&#8221;. Se un particolare pixel appartiene ed è contenuto dentro ad una certa soglia (come un comparatore a finestra), allora quel pixel verrà colorato di bianco, viceversa di nero. Si avrà così un&#8217;immagine che sarà bianca solo nei punti in cui si trova in quel momento la nostra pallina. Questa tecnica è chiamata anche &#8220;binarizzazione immagine&#8221; per via dei soli due bit (bianco e nero) usati per l&#8217;immagine.</p>
<p><center></center></p>
<p><center><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/06/binary_image.png"><img class="aligncenter size-medium wp-image-240" title="Esempio binarizzazione immagine" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/06/binary_image-300x133.png" alt="" width="300" height="133" /></a><br />
<em>Esempio di applicazione del filtro di THRESHOLD</em></center><br />
<span id="more-235"></span><br />
Essendo l&#8217;applicazione in C++, ho dovuto prelevare le coordinate della pallina tramite comunicazione TCP/IP facendo uso dei socket. L&#8217;applicazione di riconoscimento fa da server e l&#8217;applicazione in VB NET fa da client. Quando instauro una comunicazione fra i due software, essi si scambiano dati fra loro. L&#8217;applicazione in VB riceve le coordinate e disegna una x nello stesso punto in cui si trova la pallina. Il tutto avviene in real-time (circa 25 fps) ma nel video si vede qualche rallentamento per via delle grandi risorse che il software di registrazione succhia alla CPU. Per il resto, non è niente male come prima esperienza!<br />
In un futuro non molto lontano, utilizzerò questo sistema insieme ad un braccio robotico per afferrare oggetti, tracciati dalla telecamera..</p>
<p>Ovviamente, di seguito il video che mostra il sistema:</p>
<p><center><iframe width="425" height="349" src="http://www.youtube.com/embed/iyOJNhhtd6I" frameborder="0" allowfullscreen></iframe></center></p>
<p>I sorgenti verranno inseriti quando perfezionerò il tutto ed a lavoro ultimato.</p>
<p><center></center></p>
]]></content:encoded>
			<wfw:commentRss>http://elettroeasy.altervista.org/?feed=rss2&#038;p=235</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilizziamo il bootloader sul PIC18F4550!</title>
		<link>http://elettroeasy.altervista.org/?p=223</link>
		<comments>http://elettroeasy.altervista.org/?p=223#comments</comments>
		<pubDate>Wed, 01 Jun 2011 20:04:30 +0000</pubDate>
		<dc:creator>Simone Giugliani</dc:creator>
				<category><![CDATA[Elettronica]]></category>
		<category><![CDATA[PIC]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[bootloader]]></category>
		<category><![CDATA[microcontrollori]]></category>

		<guid isPermaLink="false">http://elettroeasy.altervista.org/?p=223</guid>
		<description><![CDATA[Un utilissimo strumento, quando si effettuano molte modifiche al firmware (come in fase di test) o semplicemente per comodità, è il bootloader. Il bootloader è essenzialmente un codice all&#8217;interno del microcontrollore che permette di caricare nuovo codice &#8220;utente&#8221; o di &#8220;applicazione&#8221; senza staccare e/o collegare un programmatore esterno alla scheda, come normalmente avviene nella fase [...]]]></description>
			<content:encoded><![CDATA[<p></p>
<p>Un utilissimo strumento, quando si effettuano molte modifiche al firmware (come in fase di test) o semplicemente per comodità, è il <strong>bootloader</strong>.</p>
<p>Il bootloader è essenzialmente un codice all&#8217;interno del microcontrollore che permette di caricare nuovo codice &#8220;utente&#8221; o di &#8220;applicazione&#8221; senza staccare e/o collegare un programmatore esterno alla scheda, come normalmente avviene nella fase di programmazione di un microcontrollore.</p>
<p>Tramite un software su PC, è possibile fare il download (scaricare) dell&#8217;HEX del nostro programma sul PIC, senza appunto staccarlo.</p>
<p>Ma come funziona il bootloader e cosa succede all&#8217;avvio del PIC?</p>
<p>Quando il PIC viene avviato, questo codice di BOOT controlla lo stato di un pin di ingresso, se questo pin è ad un certo stato logico (con un pulsante si porta a 0 logico il piedino) allora viene creata una connessione (UART oppure USB) con il PC e si entra appunto in fase di boot. Se il pulsante di boot non è stato premuto, il PIC passa nella locazione di memoria del codice della nostra applicazione, come su un normale dispositivo programmato comunemente.</p>
<p>Un esempio grafico della mappatura della memoria di un PIC con bootloader:</p>
<p style="text-align: center;"><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/05/MAPPATURA-BOOTLOADER.png"><img class="aligncenter size-medium wp-image-229" title="Mappatura della memoria con bootloader" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/05/MAPPATURA-BOOTLOADER-219x300.png" alt="" width="219" height="300" /></a></p>
<p><span id="more-223"></span></p>
<p><center></center><br />
Il disegno (chiamato anche &#8220;mappatura della memoria&#8221;) mostra com&#8217;è suddivisa la memoria all&#8217;interno del PIC. All&#8217;inizio, sul primo blocco c&#8217;è il reset vector: quando il PIC viene avviato, oppure in seguito ad un reset software o manuale, il Program Counter parte dalla locazione di memoria del reset vector, quindi è il primo blocco ad essere eseguito. Di seguito al reset vector ci sono i due vettori dei blocchi di interrupt, ricordando che sul PIC18F4550 i vettori di interrupt sono due, di alta e bassa priorità. Di seguito ancora ai vettori di interrupt si trova il blocco del bootloader, ovvero il codice che andremo a caricare con il file .hex citato precedentemente.</p>
<p>Se il bootloader viene avviato, il PIC processerà le istruzioni all&#8217;interno di quel blocco, altrimenti passerà al blocco &#8220;User Code&#8221;, ovvero il codice della nostra applicazione sviluppata.</p>
<p>Da notare, che in presenza di bootloader, bisogna &#8220;rimappare&#8221; le porzioni di memoria riservata al nostro firmware in fase di sviluppo. Come vedete infatti, gli interrupt vector (con freccia tratteggiata) rimandano alla locazione di memoria rimappata dal programmatore in fase di sviluppo. Ad esempio, se si scatena un&#8217;interrupt su piedino esterno, il PIC salterà alla locazione &#8220;Interrupt Vector xx&#8221;, dove in questa locazione ci sarà un salto alla locazione &#8220;User Interrupt Vector xx&#8221;.</p>
<p>Bene, ora conosco cos&#8217;è questo bootloader! Ma come lo ottengo?</p>
<p>Esistono versioni &#8220;originali&#8221; creata dalla stessa Microchip e proprio da quest&#8217;ultima, preleveremo il nostro bootloader <span style="text-decoration: underline;"><strong>USB</strong></span>.</p>
<p>Per prima cosa, bisogna realizzare lo schema di implementazione del bootloader:</p>
<p style="text-align: center;"><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/05/SCHEMA_BOOTLOADER.png"><img class="aligncenter size-medium wp-image-227" title="Schema del bootloader su PIC18F4550" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/05/SCHEMA_BOOTLOADER-300x164.png" alt="" width="300" height="164" /></a></p>
<p>E programma il PIC (con il connettore ICSP) oppure con programmazione esterna staccando il PIC, con questo file <a title="File .hex del bootloader per PIC18F4550" href="http://elettroeasy.altervista.org/elettronica/file/MCHPUSB.hex">.hex</a> (i sorgenti sono <a title="Sorgenti del bootloader per PIC18F4550" href="http://elettroeasy.altervista.org/elettronica/file/BOOTLOADER_FIRMWARE-PIC18F4550.rar">qui</a>).</p>
<p>Programmato il PIC, alimenta la scheda (nello schema si usa l&#8217;alimentazione del bus USB, quindi basta attaccare il cavo al PC) e per entrare nel programma di boot, tieni premuto il pulsante S2 e contemporaneamentre premi il pulsante S1, quindi rilascia S1, e poco dopo rilascia S2.</p>
<p>Se tutto è montato correttamente, la prima volta di utilizzo, il tuo computer rileverà una nuova interfaccia usb. E&#8217; il nostro bootloader!</p>
<p>Se non lo hai già fatto, scarica il framework USB della Microchip da <a title="USB Framework - Microchip" href="http://ww1.microchip.com/downloads/en/devicedoc/MCHP_App_Lib_v2010_08_04_Installer.zip" target="_blank">qui</a>.</p>
<p>Installa il pacchetto selezionando, in fase di installazione, gli esempi della Microchip. Al termine dell&#8217;installazione troverai i firmware ed i progetti sviluppati in MPLAB che potrai modificare a tuo piacere.</p>
<p><span style="color: #ff0000;"><strong>Attenzione!</strong></span> Se nel tuo progetto fai utilizzo del bootloader, bisogna rimappare l&#8217;area di memoria riservata a vettori, locazioni di configurazione, memoria programma etc..</p>
<p>Per fare questo bisogna passare al linker del compilatore, un file modificato che puoi trovare <a title="File linker rimappato e funzionante per 18F4550" href="http://elettroeasy.altervista.org/elettronica/file/rm18f4550.lkr">qui</a> (per il PIC18F4550).</p>
<p>Ora puoi utilizzare il bootloader per caricare i tuoi firmware velocemente e in modo pulito, hai bisogno solo della scheda con il PIC e due pulsanti!</p>
<p><strong>AGGIORNARE IL FIRMWARE</strong></p>
<p>Per aggiornare il firmware tramite bootloader quindi, si ha bisogno di un software che comunichi e carichi il nostro firmware (il nostro bel file .hex) sul PIC. La Microchip ha sviluppato un tool apposito, il &#8220;PICDEM FS  USB Demo Tool&#8221;, realizzato per comunicare con la scheda &#8220;PICDEM&#8221; fabbricata dalla stessa Microchip. Infatti il circuito raffigurato sopra è proprio la copia della scheda PICDEM originale.</p>
<p>Puoi scaricare il tool direttamente da ElettroEasy, andando <a title="PICDEM USB Demo Tool" href="http://elettroeasy.altervista.org/Pdfsusb.rar" target="_blank">qui</a>.</p>
<p>Apriamo quindi il file &#8220;PDFSUSB.exe&#8221; contenuto nell&#8217;archivio ed all&#8217;avvio si presenterà così:</p>
<p><center><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/06/picdem.png"><img class="size-medium wp-image-339 aligncenter" title="Software PICDEM FS USB Demo Tool" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/06/picdem-300x260.png" alt="" width="300" height="260" /></a></center></p>
<p>Quest&#8217;ottimo tool ci permette non solo di scrivere ma anche leggere la memoria programma del nostro PIC, inoltre effettua un check dei FUSES compatibili con la scheda PICDEM. Quindi se nel vostro progetto cambierete alcuni FUSES impostati di default sul progetto del PICDEM originale della Microchip, il software lo segnalerà con un avviso e se si verificherà un&#8217;errore critico, non permetterà la riscrittura della memoria.</p>
<p>Bene, colleghiamo la nostra scheda all&#8217;ingresso USB. Se tutto è andato per il verso giusto, il PC rileverà un nuovo dispositivo USB e in pochi istanti sarà pronto per essere utilizzato.</p>
<p></p>
<p>Andiamo a selezionare il nostro dispositivo alla voce &#8220;Select PICDEM FS USB Board&#8221; e selezioniamo l&#8217;unica (dipende da quante schede avete collegato) voce &#8220;PICDEM FS USB 0 (Boot)&#8221;.</p>
<p><center><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/06/select.png"><img class="size-medium wp-image-340 aligncenter" title="Selezionare il dispositivo" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/06/select-300x54.png" alt="" width="300" height="54" /></a></center></p>
<p>Ora si sbloccheranno anche le varie funzioni del programma, interagendo pienamente con il PIC.</p>
<p>Per aggiornare il firmware, facciamo click sul pulsante &#8220;<strong>Load HEX file</strong>&#8221; e selezioniamo il nostro firmware (che ricordo deve essere compilato utilizzando il template in MPLAB del PICDEM che puoi trovare <a title="Template per PICDEM" href="http://elettroeasy.altervista.org/TEMPLATE_PICDEM_18F4550.rar" target="_blank">qui)</a>. A questo punto, se non abbiamo incontrato errori, facciamo click sul pulsante &#8220;<strong>Program Device</strong>&#8220;, aspettiamo alcuni istanti ed il nostro firmware è stato caricato sul nostro PIC in maniera pulita, veloce e se vogliamo, in maniera &#8220;professionale&#8221;.</p>
<p>Se si sono verificati errori nella fase di caricamento del firmware, consiglio di riguardare il sorgente e adattarlo alla Board originale della Microchip. In particolare è meglio non toccare le configurazioni dei FUSES.</p>
<p>Per poter eseguire il programma appena caricato, basta fare un reset del PIC, tramite il pulsante posto sul pin MCLR oppure utilizzando il pulsante &#8220;<strong>Execute</strong>&#8221; presente sul tool.</p>
<p>Come già detto, oltre a programmare è possibile anche leggere, salvare la memoria programma, cancellare la memoria e anche provare alcune funzioni Demo della board, ma che in questo caso non sono state implementate dal nostro circuito.</p>
<p>Bene, penso sia tutto per quanto riguarda questa breve e semplice infarinatura del Bootloader per il PIC 18F4550.</p>
]]></content:encoded>
			<wfw:commentRss>http://elettroeasy.altervista.org/?feed=rss2&#038;p=223</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Uno sguardo alla EasyPIC5!</title>
		<link>http://elettroeasy.altervista.org/?p=220</link>
		<comments>http://elettroeasy.altervista.org/?p=220#comments</comments>
		<pubDate>Mon, 16 May 2011 11:31:23 +0000</pubDate>
		<dc:creator>Simone Giugliani</dc:creator>
				<category><![CDATA[Elettronica]]></category>
		<category><![CDATA[PIC]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[microcontrollori]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://elettroeasy.altervista.org/?p=220</guid>
		<description><![CDATA[Uno sguardo alla demoboard EASYPIC5, relazionata dal sottoscritto per presentare le sue funzioni e l&#8217;utilizzo per un semplice progetto didattico. Come funziona e come viene utilizzata la EasyPIC5 di mamma mikroElektronika?? Inoltre una breve introduzione ai PICmicro! Scoprilo con la relazione in PDF scritta da me! Per leggere la relazione, clicca qui -&#62; Relazione EasyPIC5 [...]]]></description>
			<content:encoded><![CDATA[<p>Uno sguardo alla demoboard EASYPIC5, relazionata dal sottoscritto per presentare le sue funzioni e l&#8217;utilizzo per un semplice progetto didattico. Come funziona e come viene utilizzata la EasyPIC5 di mamma mikroElektronika?? Inoltre una breve introduzione ai PICmicro!</p>
<p>Scoprilo con la relazione in PDF scritta da me!</p>
<p>Per leggere la relazione, clicca qui -&gt; <a title="Relazione EasyPIC5" href="http://www.box.net/shared/4s5mubdoua" target="_blank">Relazione EasyPIC5 (di Simone Giugliani)</a></p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/05/logo.gif"><img class="aligncenter size-medium wp-image-221" title="MikroElektronika logo" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/05/logo-300x48.gif" alt="" width="300" height="48" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://elettroeasy.altervista.org/?feed=rss2&#038;p=220</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A lezione con Arduino![N°3] &#8211; Semaforo didattico</title>
		<link>http://elettroeasy.altervista.org/?p=132</link>
		<comments>http://elettroeasy.altervista.org/?p=132#comments</comments>
		<pubDate>Wed, 04 May 2011 14:49:37 +0000</pubDate>
		<dc:creator>Valerio Conicella</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Elettronica]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[atmel]]></category>
		<category><![CDATA[microcontrollori]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://elettroeasy.altervista.org/?p=132</guid>
		<description><![CDATA[Introduzione: In questa terza lezione di Arduino voglio presentarvi un semplice semaforo didattico,  che eseguirà tramite dei LED la sequenza da verde, giallo lampeggiante, rosso. Questo progetto potrebbe essere utilizzato su un modello ferroviario. Esercizio 3 componenti utilizzati : Per la realizzazione di questo semaforo occorrono: -  la bread-board; - 3 LED possibilmente di tre colori [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000;"><strong>Introduzione:</strong></span></p>
<p>In questa terza lezione di Arduino voglio presentarvi un semplice <strong>semaforo</strong> didattico,  che eseguirà tramite dei LED la sequenza da verde, giallo lampeggiante, rosso. Questo progetto potrebbe essere utilizzato su un modello ferroviario.</p>
<p><span style="color: #ff0000;"><strong>Esercizio 3 componenti utilizzati :</strong></span></p>
<p><span style="color: #ff0000;"><span style="color: #000000;">Per la realizzazione di questo semaforo occorrono:<br />
</span></span></p>
<p>-  la bread-board;<br />
<span style="color: #ff0000;"><span style="color: #000000;">- 3 LED possibilmente di tre colori diversi (rosso,giallo,verde)</span></span>;<br />
- 3 resistenze da 220 ohm 1/4 watt;<br />
- cavi per bread-board.</p>
<p><span id="more-132"></span> Come si nota dal programma ho utilizzato l&#8217; istruzione <strong>for</strong> che in questo caso permette di far lampeggiare 10  volte il led giallo. E&#8217; possibile determina l&#8217;esecuzione di una porzione di programma ripetuta <em>per un certo numero di volte</em>, modificando semplicemente il valore della<strong> condizione,</strong> in questo caso è 10.<br />
<br />
L&#8217;istruzione <strong>for </strong> serve per ripetere un blocco di istruzioni racchiuso tra parentesi graffe. Si distingue in questo modo da altre forme di ciclo, come il ciclo <strong>while</strong>, che determina la ripetizione di una porzione di un programma <em>fino al verificarsi di una determinata condizione</em>. La scelta fra questi due tipi di ciclo è legata a considerazioni di leggibilità e chiarezza del codice; in linea di principio, infatti, qualunque algoritmo che impieghi un ciclo <strong> for</strong> può essere trascritto in una forma che usa solo il ciclo <strong>while</strong>, e viceversa.</p>
<p>Ci sono tre parti per il  ciclo di intestazione:</p>
<pre class="brush: cpp; title: ; notranslate">for ( l'inizializzazione , condizione , incremento )

{ qui si fa qualcosa;

}</pre>
<p><span style="color: #ff0000;"><strong>Programma : </strong></span></p>
<pre class="brush: cpp; title: ; notranslate">
int redPin = 10;//led connesso al pin digitale 10
int yellowPin = 9;//led connesso al pin digitale 9
int greenPin = 8;//led connesso al pin digitale 8
void setup() { //ripeti una sola volta quando il programma inizia
pinMode(redPin, OUTPUT);//imposta il pin come uscita
pinMode(yellowPin, OUTPUT);//imposta il pin come uscita
pinMode(greenPin, OUTPUT);//imposta il pin come uscita
}
void loop() {  //esegui più volte
digitalWrite(redPin, LOW);// imposta il pin digitale a livello basso
digitalWrite(greenPin, HIGH);// imposta il pin digitale a livello alto
digitalWrite(yellowPin,LOW);//imposta il pin digitale a livello basso
delay(10000);//attende 10 secondi
digitalWrite(greenPin,LOW);//imposta il pin digitale a livello basso
for(int x = 0; x &lt; 10; x++) { //ripeti 10 volte
 digitalWrite(yellowPin,HIGH);//imposta il pin digitale a livello alto
 delay(500);//attende 500ms
 digitalWrite(yellowPin,LOW);//imposta il pin digitale a livello basso
 }
digitalWrite(yellowPin, LOW); // imposta il pin digitale a livello basso
digitalWrite(greenPin, LOW); // imposta il pin digitale a livello basso
digitalWrite(redPin, HIGH); //imposta il pin digitale a livello alto
delay(10000); // attendi 10 secondi
}
</pre>
<p><strong><span style="color: #ff0000;">Schema :</span></strong></p>
<p>Lo schema non richiede particolari spiegazioni, vi ricordo di rispettare la polarità dei 3 led, il <strong>pin</strong> più lungo è <strong>l&#8217;anodo (+)</strong>, mentre il pin più corto è il <strong>catodo (-)</strong>. Come si nota dallo schema bisogna  inserire come sempre sull &#8216;anodo del LED una <strong>resistenza</strong> da 220 ohm circa,ed infine collegarla al pin digitale corrispondente.</p>
<p><strong><span style="color: #ff0000;"><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/05/Immagine.bmp"><img class="alignnone size-full wp-image-178" title="Immagine" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/05/Immagine.bmp" alt="" width="770" height="509" /></a></span></strong></p>
<p><span style="color: #000000;">a cura di: Conicella Valerio </span></p>
<p><span style="color: #000000;"><strong><br />
</strong></span></p>
]]></content:encoded>
			<wfw:commentRss>http://elettroeasy.altervista.org/?feed=rss2&#038;p=132</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tutorial introduttivo ai &#8220;PIC&#8221;</title>
		<link>http://elettroeasy.altervista.org/?p=135</link>
		<comments>http://elettroeasy.altervista.org/?p=135#comments</comments>
		<pubDate>Fri, 29 Apr 2011 13:25:46 +0000</pubDate>
		<dc:creator>Simone Giugliani</dc:creator>
				<category><![CDATA[Elettronica]]></category>
		<category><![CDATA[PIC]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[microcontrollori]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://elettroeasy.altervista.org/?p=135</guid>
		<description><![CDATA[I PIC o i Programmable Integrated Circuit, che come si evince dal nome sono dei circuiti integrati programmabili. Sono prodotti dalla azienda americana Microchip. &#160; &#160; I Programmable Integrated Circuit si divino in “famiglie” ovvero gruppi di PIC riuniti per funzioni, porte di I/O, numeri di pin, tipo di memoria, quantità di memoria etc..Si parte [...]]]></description>
			<content:encoded><![CDATA[<p>I PIC o i <em><strong>Programmable Integrated Circuit</strong></em>, che come si evince dal nome sono dei circuiti integrati programmabili. Sono prodotti dalla azienda americana <a title="Microchip Website" href="http://www.microchip.com/">Microchip</a>.</p>
<p>&nbsp;</p>
<p><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/04/pic_pl1.jpg"><img class="aligncenter size-full wp-image-136" title="pic_pl1" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/04/pic_pl1.jpg" alt="" width="252" height="189" /></a>&nbsp;</p>
<p><br />
<span id="more-135"></span><br />
I <em><strong>Programmable Integrated Circuit</strong></em> si divino in “famiglie” ovvero gruppi di PIC riuniti per funzioni, porte di I/O, numeri di pin, tipo di memoria, quantità di memoria etc..Si parte da PIC con poche funzioni e numeri di pin come i PIC 12C5xx fino ad arrivare a PIC più grandi che contengono numerose funzioni e numeri di pin.<br />
I PIC possono essere usati in migliaia di applicazioni, sia complicate che semplici..Le applicazioni più comuni riguardano il timing, l’automazione ed il controllo di apparecchiature varie. In questo articolo vedremo come far lampeggiare un led.</p>
<p>&nbsp;</p>
<p>Prima di tutto abbiamo bisogno dello schema, ed è il seguente:</p>
<p><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/04/pic_flash.png"><img class="aligncenter size-medium wp-image-137" title="pic_flash" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/04/pic_flash-300x187.png" alt="" width="300" height="187" /></a></p>
<p>Come si vede sul semplice schema abbiamo usato pochi componenti. 2 condensatori da 22pF (C1, C2), 1 quarzo da 4 mhZ, 1 resistenza da 220 ohm (R2) e un’altra da 4,7k ohm (R1) e il led. La configurazione dei condensatori e del quarzo serve per dare si una giusta frequenza al PIC (la frequenza serve per scandire i processi del PIC) ma anche uno sbilanciamento iniziale dato dai condensatori. La tensione di alimentazione per qualsiasi PIC è di 5V…<br />
<span style="color: #ff0000;"><strong>ATTENZIONE</strong></span>: Non superare la tensione di alimentazione per evitare il malfunzionamento oppure la rottura dell’integrato stesso. Di solito per stabilizzare la tensione si usa un regolatore di tensione (es. 7805) molto semplice da costruire che vedremo presto nelle pagine di questo sito.<br />
Per far funzionare il PIC serve anche il codice eseguibile (in formato HEX ovvero esadecimale) da inserire nel PIC. Al giorno d’oggi, molti ambienti di sviluppo e linguaggi di programmazione ci vengono incontro per creare codice per il nostro gioiellino. Un linguaggio di programmazione molto diffuso ma che a prima vista e a primo approcio si presenta difficile e incomprensibile è l’ASSEMBLER un linguaggio macchina di basso livello, e se vogliamo dire anche un pò sorpassato. Noi non tratteremo dell’assembler ma parleremo del linguaggio di programmazione C rivolto per i PIC.<br />
Il C si presenta più flessibile e comprensibile per un principiante, ma anche per un professionista. Ma quale codice dobbiamo inserire nel PIC??….è presto detto:<br />
Il nostro primo programma farà lampeggiare il nostro led situato sul piedino 6 ovvero RB0, la prima porta della serie di I/O B. Quindi ecco il codice (sviluppato in <a title="Compilatore mikroC" href="http://www.mikroe.com/eng/products/view/7/mikroc-pro-for-pic/">MikroC</a>):</p>
<pre class="brush: cpp; title: ; notranslate">void main(){
TRISB = 0;
while(1){
PORTB = 0b00000001;
Delay_ms(250);
PORTB = 0b00000000;
Delay_ms(250);
}}
</pre>
<p>Esaminiamo il codice..<br />
<strong>void main()</strong> è l’inizio del programma. Ogni programma sull’ambiente di sviluppo MikroC inizia con questa riga ( void main() specifica una funzione. In questo caso la principale)<br />
<strong>TRISB = 0;</strong> configura le porte di I/O della serie B come uscite (Output). Mettendo 1 le porte sono di entrata (Input)<br />
<strong>while (1)</strong> crea un ciclo all’infinito grazie al while che processa le istruzioni solamente quando la sua condizione è vera. In questo caso, con 1, è sempre vera.<br />
<strong>PORTB = 0b00000001;</strong> Manda l’uscita RB0 (pin 6) del PIC a livello alto (+5V) quindi per far accendere il LED.</p>
<p><strong>Delay_ms(250);</strong> Genera un ritardo software. Il PIC in parole povere si addormenta per poi risvegliarsi dopo il tempo passatogli come parametro. Ovviamente è possibile cambiare il tempo che in questa caso è espresso in millisecondi. 250 ms corrispondo ad 1/4 di secondo..<br />
E infine le parentesi di chiusura.<br />
Avendo un ciclo all’infinito il led si spegnerà e si accenderà ogni 250 ms fino allo spegnimento del circuito.</p>
<p><br />
<span style="color: #ff0000;"><strong>IL PROGRAMMATORE</strong></span><br />
Molti si staranno chiedendo, “ma come è possibile inserire un file “astratto” in un circuito integrato?!?”. E bene, ci viene in contro il programmatore.<br />
Il programmatore è un dispositivo hardware che interfaccia il PC con il nostro PIC. Il classico e più semplice programmatore è il ludipipo.<br />
Questo è lo schema:</p>
<p><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/04/progr_seriale.png"><img class="aligncenter size-medium wp-image-138" title="progr_seriale" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/04/progr_seriale-300x176.png" alt="" width="300" height="176" /></a>In questo caso il programmatore è di tipo seriale, non molto affidabile. Se pensate di voler fare sul serio con i PIC vi consiglio di comprare il pickit2 che è originale Microchip, è USB è programma tranquillamente quasi tutti i PIC.</p>
<p>Come vedete è molto semplice. La lista dei componenti è la seguente:</p>
<p>R1,R2 = 2,2K<br />
R3=22K<br />
R4=5,6K<br />
D2=1N4148<br />
D1=5V6 (zener)<br />
C1=10uF<br />
Connettore DB9 femmina</p>
<p>Il programmatore però deve comunicare con il PC tramite un altro software inerenti i PIC. Esso è sempre un programmatore ma è un software che programma il PIC.</p>
<p>Il più noto è <a href="http://www.ic-prog.com">IC-Prog</a>. Potete scaricare IC-Prog da <a href="http://ic-prog.com/icprog106C.zip">qui</a>.</p>
<p>IC-Prog si presenta così:</p>
<p><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/04/ic-prog.png"><img class="aligncenter size-medium wp-image-139" title="ic-prog" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/04/ic-prog-300x239.png" alt="" width="300" height="239" /></a>&nbsp;</p>
<p>Se avete Windows XP o superiori aprite la cartella appena estratta. Non vi resta che aprire il file ICProg.bat e configurare il software in questo modo:</p>
<p>Aprite IC-Prog e andare su <strong>Settaggi</strong> -&gt; <strong>Opzioni</strong> e sul <strong>Tabs Misc</strong>. Spuntare la voce <strong>Abilita il driver NT/2000/XP</strong>. A questo punto potete programmare il vostro PIC</p>
<p>In Windows 98 non c’è bisogno del driver poichè permette la comunicazione diretta con le periferche. Con le nuove versioni bisogna aggirare il Sistema Operativo.</p>
<p>Per questo articolo ho preparato il file hex che và caricato sul PIC con IC-Prog. Lo potete scaricare qui.</p>
<p>Caricate in IC-Prog (File -&gt; Open File) e mettete come oscillatore <strong>XT</strong> perchè usiamo un quarzo di media frequenza e spuntate la voce <strong>PWRT</strong> e togliete la spunta su <strong>WDT</strong>.</p>
<p>A questo punto potete premere F5 e rispondere Si alla domanda e attendere la fine della programmazione. Se tutto è a suo posto, non dovrebbe accadere nessun errore.</p>
<p>Questo è tutto.<br />
Ad una prossima puntata..</p>
<p>a cura di: Simone Giugliani</p>
]]></content:encoded>
			<wfw:commentRss>http://elettroeasy.altervista.org/?feed=rss2&#038;p=135</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A lezione con Arduino! [N° 2] &#8211; Crepuscolare con arduino</title>
		<link>http://elettroeasy.altervista.org/?p=92</link>
		<comments>http://elettroeasy.altervista.org/?p=92#comments</comments>
		<pubDate>Thu, 28 Apr 2011 15:35:32 +0000</pubDate>
		<dc:creator>Valerio Conicella</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Elettronica]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[atmel]]></category>
		<category><![CDATA[microcontrollori]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://elettroeasy.altervista.org/?p=92</guid>
		<description><![CDATA[Introduzione: Siamo già alla seconda lezione di Arduino, e voglio proporvi come realizzare un semplice interruttore crepuscolare che  come si evince dal nome, una volta montato ed eventualmente programmato,  entra in azione automaticamente  con l’arrivo del buio (crepuscolo) e si spegne con l’arrivo dell’alba. Per esempio, con esso è possibile controllare le luci del giardino di casa in modo [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"></p>
<p><span style="color: #ff0000;"><strong>Introduzione: </strong></span></p>
<p style="text-align: left;">Siamo già alla seconda lezione di <strong>Arduino</strong>, e voglio proporvi come realizzare un semplice <strong>interruttore crepuscolare</strong> che  come si evince dal nome, una volta montato ed eventualmente programmato,  entra in azione automaticamente  con l’arrivo del buio (crepuscolo) e si spegne con l’arrivo dell’alba. Per esempio, con esso è possibile controllare le luci del giardino di casa in modo totalmente automatico. Noi riprodurremo un piccolo crepuscolare in grado di controllare un<strong> LED</strong>; quindi nel momento in cui si farà buio il led automaticamente si accenderà, mentre in condizioni di luce il led si spegnerà. Questo è possibile grazie ad un sensore chiamato fotoresistenza. La <strong>fotoresistenza</strong> è un componente elettronico la cui resistenza è <strong>inversamente proporzionale</strong> alla quantità di luce che lo colpisce. Si comporta come un tradizionale resistore , ma il suo valore in Ohm diminuisce mano a mano che aumenta l’intensità della luce che la colpisce. Ciò comporta che la corrente elettrica che transita attraverso tale componente è proporzionale all&#8217;intensità di una sorgente luminosa.</p>
<p><span id="more-92"></span></p>
<p style="text-align: left;"><span style="color: #ff0000;"><strong>Esercizio 2:</strong></span></p>
<p style="text-align: left;">Ora vi presento lo <strong>sketch</strong> del crepuscolare. Ho usato le istruzioni if, else se avete bisogno di sapere come si usano vi consiglio di visitare il sito ufficiale sulla pagina reference: <a href="http://arduino.cc/en/Reference/HomePage">http://arduino.cc/en/Reference/HomePage</a></p>
<p style="text-align: left;">Questo è il programma:</p>
<p></p>
<div>
<pre class="brush: cpp; title: ; notranslate">
const int sensorValue = 600;  //imposta il valore del sensore
int ledPin = 5; // connettere il LED al pin digitale 5
void setup() { // esegui una sola volta quando il disegno inizia
pinMode(ledPin,OUTPUT); // imposta il piedino 5 come uscita
Serial.begin (9600);  // imposta comunicazione seriale 9600bps
}
void loop() {  //esegui più volte
int sensor = analogRead(A0); // imposta il sensore
if (sensor &lt; sensorValue) {  // registra il valore max del sensore
digitalWrite(ledPin,LOW);  // imposta il piedino 5 a livello basso
Serial.println(&quot;giorno&quot;);  // stampa &quot;giorno&quot; sul monitor
delay(1000);  //attende 1 secondo
}
else {
digitalWrite(ledPin,HIGH);  // imposta il piedino 5 a livello alto
Serial.println(&quot;notte&quot;);  // stampa &quot;notte&quot; sul monitor
delay(1000);    // attende 1 secondo
}
}
</pre>
<p><span style="color: #ff0000;"><strong>Schema di cablaggio:</strong></span></p>
<p>Come si nota dallo schema il piedino <strong>anodo</strong> del LED è stato collegato in uscita al pin digitale 5 con una resistenza in serie da 220 ohm per limitare la corrente che scorre in esso,  mentre l&#8217;altro terminale, il <strong>katodo</strong> è stato collegato a massa. Per quanto riguarda il sensore invece, è stato realizzato un <strong>partitore resistivo</strong> formato dalla <strong>fotoresistenza</strong> e da una <strong>resistenza</strong> da 10 Kohm 0,25 watt.</p>
<p style="text-align: center;"><strong><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/04/interruttore_crepuscolare.bmp"><img class="aligncenter size-full wp-image-128" title="interruttore_crepuscolare" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/04/interruttore_crepuscolare.bmp" alt="" width="354" height="281" /></a><br />
</strong></p>
</div>
<p style="text-align: left;">﻿a cura di : Conicella Valerio</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: center;">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://elettroeasy.altervista.org/?feed=rss2&#038;p=92</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A lezione con Arduino! [N° 1] &#8211; Introduzione</title>
		<link>http://elettroeasy.altervista.org/?p=39</link>
		<comments>http://elettroeasy.altervista.org/?p=39#comments</comments>
		<pubDate>Thu, 28 Apr 2011 13:38:26 +0000</pubDate>
		<dc:creator>Valerio Conicella</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Elettronica]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[atmel]]></category>
		<category><![CDATA[microcontrollori]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://elettroeasy.altervista.org/?p=39</guid>
		<description><![CDATA[Introduzione: Arduino è il nome di una piattaforma hardware per lo sviluppo di applicazioni basate sui microcontrollori ATMEL.  Arduino può essere utilizzato per lo sviluppo di oggetti interattivi, ma può anche interagire con software presenti sul computer. Questa che vedete qui  sotto è l&#8217;ultima versione di Arduino UNO che ha sostituito la precedente versione Arduino [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000;"><strong>Introduzione:</strong></span></p>
<p><strong>Arduino</strong> è il nome di una piattaforma hardware per lo sviluppo di applicazioni basate sui microcontrollori <strong>ATMEL</strong>.  Arduino può essere utilizzato per lo sviluppo di oggetti interattivi, ma può anche interagire con software presenti sul computer. Questa che vedete qui  sotto è l&#8217;ultima versione di <strong>Arduino UNO</strong> che ha sostituito la precedente versione <strong>Arduino 2009</strong>.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://tronixstuff.files.wordpress.com/2010/04/arduinounofront1.jpg?w=300&amp;h=248" alt="" width="300" height="248" /></p>
<p><span id="more-39"></span></p>
<p>Se volete saperne di più andate sul sito ufficiale: <a href="http://www.arduino.cc/">http://www.arduino.cc/</a></p>
<p>Attraverso questa serie di articoli vorrei lanciare i concetti base per poter utilizzare al meglio questa potente piattaforma facendo alcuni utili e divertenti programmi in C++. Questi post verranno pubblicati ad intervalli regolari sempre sul tasto tutorial.</p>
<p></p>
<p><span style="color: #ff0000;"><strong>Esercizio 1:</strong></span></p>
<p><span><span>Vi presento il primo blink molto interessante. Riprodurre l&#8217;effetto <em><strong>Supercar </strong>con 8 led</em> </span>( Supercar popolare serie televisiva girata tra gli anni1982/1986, con protagonista David Hasselhoff). </span><span><span>La vostra missione, è quella di ricreare semplicemente con il vostro Arduino, usando 8 LED. </span></span></p>
<p><span><span> </span></span><em><span><span>Avrete bisogno di:</span></span></em></p>
<ul>
<li><span><span>Il tuo Arduino  (computer, cavo,Arduino Uno)</span></span><span><span>;</span></span></li>
<li><span><span>8 diodi emettitori di luce ( LED</span></span><span><span>).</span> <span>Qualsiasitipo purché richiedono  una corrente minore di 40mA;</span></span></li>
<li><span><span>8 resistenze da 220 ohm 0,25 W .</span> <span>Per  ridurre la corrente che scorre nel LED;</span></span></li>
<li><span><span>bread board;</span></span></li>
<li>cavi per bread board;</li>
</ul>
<p><span style="color: #ff0000;"><strong>Sketch (programma):</strong></span></p>
<pre class="brush: cpp; title: ; notranslate">int del=100;

void setup()    //eseguire una sola volta quando il disegno inizia
{
pinMode(2, OUTPUT);  //imposta il pin digitale come OUTPUT
pinMode(3, OUTPUT);  //imposta il pin digitale come OUTPUT
pinMode(4, OUTPUT);  //imposta il pin digitale come OUTPUT
pinMode(5, OUTPUT);  //imposta il pin digitale come OUTPUT
pinMode(6, OUTPUT);  //imposta il pin digitale come OUTPUT
pinMode(7, OUTPUT);  //imposta il pin digitale come OUTPUT
pinMode(8, OUTPUT);  //imposta il pin digitale come OUTPUT
pinMode(9, OUTPUT);  //imposta il pin digitale come OUTPUT
}
void loop()   {
digitalWrite(2, HIGH);   // imposta il LED a livello alto
delay(del);              // attendi
digitalWrite(2, LOW);    // imposta LED a livello basso
digitalWrite(3, HIGH);   // imposta il LED a livello alto
delay(del);              // attendi
digitalWrite(3, LOW);    // imposta LED a livello basso
digitalWrite(4, HIGH);   // imposta il LED a livello alto
delay(del);              // attendi
digitalWrite(4, LOW);    // imposta LED a livello basso
digitalWrite(5, HIGH);   // imposta il LED a livello alto
delay(del);              // attendi
digitalWrite(5, LOW);    // imposta LED a livello basso
digitalWrite(6, HIGH);   // imposta il LED a livello alto
delay(del);              // attendi
digitalWrite(6, LOW);    // imposta LED a livello basso
digitalWrite(7, HIGH);   // imposta il LED a livello alto
delay(del);              // attendi
digitalWrite(7, LOW);    // imposta LED a livello basso
digitalWrite(8, HIGH);   // imposta il LED a livello alto
delay(del);              // attendi
digitalWrite(8, LOW);    // imposta LED a livello basso
digitalWrite(9, HIGH);   // imposta il LED a livello alto
delay(del);              // attendi
digitalWrite(9, LOW);    // imposta LED a livello basso
digitalWrite(8, HIGH);   // imposta il LED a livello alto
delay(del);              // attendi
digitalWrite(8, LOW);    // imposta LED a livello basso
digitalWrite(7, HIGH);   // imposta il LED a livello alto
delay(del);              // attendi
digitalWrite(7, LOW);    // imposta LED a livello basso
digitalWrite(6, HIGH);   // imposta il LED a livello alto
delay(del);              // attendi
digitalWrite(6, LOW);    // imposta LED a livello basso
digitalWrite(5, HIGH);   // imposta il LED a livello alto
delay(del);              // attendi
digitalWrite(5, LOW);    // imposta LED a livello basso
digitalWrite(4, HIGH);   // imposta il LED a livello alto
delay(del);              // attendi
digitalWrite(4, LOW);    // imposta LED a livello basso
digitalWrite(3, HIGH);   // imposta il LED a livello alto
delay(del);              // attendi
digitalWrite(3, LOW);    // imposta LED a livello basso
}</pre>
<p><br />
<strong>Schema e cablaggio:</strong></p>
<p>Questo è lo schema di montaggio del circuito,  molto facile, basta collegare ad ogni<strong> LED</strong> il suo corrispondente piedino digitale inserendo tra essi una <strong>resistenza</strong> di valore compresa tra 220-560 ohm. Per quanto riguarda l&#8217;alimentazione è possibile usare un alimentatore esterno con tensione compresa tra 7-12 V, oppure sfruttando la tensione presente sul cavo USB che proviene dal vostro PC.  In questo modo vedrete i led accendersi uno alla volta in sequenza da destra verso sinistra e viceversa.</p>
<p style="text-align: center;"><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/04/Immagine1.bmp"><img class="aligncenter size-full wp-image-83" title="Schema di montaggio dei led con Arduino" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/04/Immagine1.bmp" alt="" width="470" height="350" /></a></p>
<p>a cura di: Conicella Valerio</p>
<p><strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://elettroeasy.altervista.org/?feed=rss2&#038;p=39</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comandare la porta parallela con LPT Trigger!</title>
		<link>http://elettroeasy.altervista.org/?p=33</link>
		<comments>http://elettroeasy.altervista.org/?p=33#comments</comments>
		<pubDate>Wed, 27 Apr 2011 16:21:25 +0000</pubDate>
		<dc:creator>Simone Giugliani</dc:creator>
				<category><![CDATA[Elettronica]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[lpt]]></category>
		<category><![CDATA[porta parallela]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://elettroeasy.altervista.org/?p=33</guid>
		<description><![CDATA[Ieri mi è capitato di scrivere un pò di codice per un amico della community di Grix. Il suo problema era di comandare 3 uscite della porta paralla, per attivare tramite transistor, 3 relè. Il software ovviamente è stato eseguito e prontamente inviamo all’amico ik3ssg. Ne è derivata una nuova versione, completa di tutti e [...]]]></description>
			<content:encoded><![CDATA[<p></p>
<p>Ieri mi è capitato di scrivere un pò di codice per un amico della community di Grix. Il suo problema era di comandare 3 uscite della porta paralla, per attivare tramite transistor, 3 relè.<br />
Il software ovviamente è stato eseguito e prontamente inviamo all’amico ik3ssg.</p>
<p>Ne è derivata una nuova versione, completa di tutti e 8 i pin di output della LPT. Il software è stato chiamato “LPT Trigger”.</p>
<p style="text-align: center;"><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/04/lpt_trigger.jpg"><img class="aligncenter size-medium wp-image-34" title="lpt_trigger" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/04/lpt_trigger-275x300.jpg" alt="" width="275" height="300" /></a></p>
<p><span id="more-33"></span></p>
<p>Il tutto è molto semplice..Il programma appena avviato setta come porta di uscita la 378 (la LPT di default sulla maggior parte dei computer). Ovviamente è possibile modificare la porta mettendo il numero che trovate sulle risorse di sistema. Potete trovare il numero di porta seguendo questa procedura:</p>
<p><em><strong>Pannello di controllo  -&gt;  Sistema  -&gt;  andare su proprietà  -&gt;  Tab hardware  -&gt; Gestione periferiche  -&gt;  Port COM e LPT  -&gt; Selezionare la porta LPT  -&gt; Tasto destro e proprietà  -&gt;  Risorse  -&gt;  leggere la riga “Intervallo I/O”</strong></em></p>
<p style="text-align: center;"><em><strong><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/04/risorse-lpt.jpg"><img class="aligncenter size-medium wp-image-35" title="risorse-lpt" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/04/risorse-lpt-271x300.jpg" alt="" width="271" height="300" /></a></strong></em></p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;">Impostata la porta non ci rimane che provare il programma. Se non avete voglia di farvi il circuito finale solo per provarlo, potete usare un tester su una scala non inferiore a 5V e mettere i contatti sui rispettivi pin. Il puntale negativo va sul piedino 18 oppure dal 18 al 25.<br />
Il programma può operare in due modi: In configurazione pulsante, ovvero attivare il pin della porta per un lasso di tempo prestabilito (modificabile attraverso lo scroll orizzontale, da 1 a 100 millisecondi) oppure in modalità interruttore, spuntando la casella “Mantieni” della rispettiva uscita. Una volta attivata un’uscita, il pallino rosso si accenderà e diventerà verde, a significare della avvenuta attivazione del pin. In alto nella casella “Valore” potete vedere il valore decimale che la porta sta assumendo, cioè i pin che sono stati attivati. Se volete sapere quali porte sono attive avendo il numero decimale, basta la semplice calcolatrice di Windows e impostarla in modalità “Scientifica”. Immettere il valore decimale (assicuradosi che sia attivata la option “Dec” e poi cliccando sulla value “Bin”. Allo stesso modo potrete convertire il numero in Hex (esadecimale) e ottale..<br />
Se per esempio dovete attivare i relè potete seguire questo semplice schema. Le uscite sono solo 3, ma basta aggiungere le porte che volete:</p>
<p style="text-align: center;"><a href="http://elettroeasy.altervista.org/wp-content/uploads/2011/04/schema.png"><img class="aligncenter size-medium wp-image-36" title="schema" src="http://elettroeasy.altervista.org/wp-content/uploads/2011/04/schema-300x193.png" alt="" width="300" height="193" /></a></p>
<p style="text-align: left;">Bene, la breve spiegazione del software è giunta al termine..non mi resta che darvi l’eseguibile..<br />
Potete trovare il programma <a href="http://elettroeasy.altervista.org/LPT Trigger.zip">QUI</a>.</p>
<p style="text-align: left;">A presto,</p>
<p style="text-align: left;">Simone</p>
<p><center></center></p>
]]></content:encoded>
			<wfw:commentRss>http://elettroeasy.altervista.org/?feed=rss2&#038;p=33</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

