<?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>IT-Robotix &#187; bobboteck</title>
	<atom:link href="http://www.it-robotix.net/author/bobboteck/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.it-robotix.net</link>
	<description>Sito dedicato al mondo della Robotica amatoriale</description>
	<lastBuildDate>Mon, 14 Nov 2011 11:08:16 +0000</lastBuildDate>
	<language>it</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Creata la pagina Google+ di IT-Robotix</title>
		<link>http://www.it-robotix.net/2011/11/14/creata-la-pagina-google-di-it-robotix/</link>
		<comments>http://www.it-robotix.net/2011/11/14/creata-la-pagina-google-di-it-robotix/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 11:05:14 +0000</pubDate>
		<dc:creator>bobboteck</dc:creator>
				<category><![CDATA[IT-Robotix]]></category>

		<guid isPermaLink="false">http://www.it-robotix.net/?p=420</guid>
		<description><![CDATA[Clicca sul link che segue per aggiungere la pagina Google+ di IT-Robotix alle tue cerchie e segui gli aggiornamenti dei progetti. IT-Robotix on Google+]]></description>
			<content:encoded><![CDATA[<p>Clicca sul link che segue per aggiungere la pagina Google+ di IT-Robotix alle tue cerchie e segui gli aggiornamenti dei progetti.</p>
<div style="padding-left:250px"><a href="https://plus.google.com/113999583208796197322?prsrc=3" style="text-decoration: none; color: #333;">
<div style="display: inline-block; *display: inline;">
<div style="text-align: center;"><img src="https://ssl.gstatic.com/images/icons/gplus-64.png" width="64" height="64" style="border: 0;"/></div>
<div style="font: bold 13px/16px arial,sans-serif; text-align: center;">IT-Robotix</div>
<div style="font: 13px/16px arial,sans-serif;"> on Google+ </div>
</div>
<p></a></div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-robotix.net/2011/11/14/creata-la-pagina-google-di-it-robotix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modificato il codice SRF02 ora funziona correttamente</title>
		<link>http://www.it-robotix.net/2011/11/02/412/</link>
		<comments>http://www.it-robotix.net/2011/11/02/412/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 22:26:19 +0000</pubDate>
		<dc:creator>bobboteck</dc:creator>
				<category><![CDATA[Componenti]]></category>
		<category><![CDATA[sensori]]></category>
		<category><![CDATA[SRF02]]></category>
		<category><![CDATA[ultrasuoni]]></category>

		<guid isPermaLink="false">http://www.it-robotix.net/?p=412</guid>
		<description><![CDATA[Riprendo dal post precedente relativo al sensore SRF02, come avevo scritto in precedenza seguendo il codice di esempio riportato sul sito riscontravo un comportamento anomalo sulla misurazione, chiedendo ad amici che avevano lo stesso sensore, ma testato con software scritto con linguaggi diversi avevano un comportamento più corretto. Ho eseguito quindi dei test con mbed, [...]]]></description>
			<content:encoded><![CDATA[<p>Riprendo dal post precedente relativo al sensore SRF02, come avevo scritto in precedenza seguendo il codice di esempio riportato sul sito riscontravo un comportamento anomalo sulla misurazione, chiedendo ad amici che avevano lo stesso sensore, ma testato con software scritto con linguaggi diversi avevano un comportamento più corretto.<br />
Ho eseguito quindi dei test con mbed, per verificare se cambiando dispositivo anche a me il sensore funzionasse correttamente, ed in effetti i risultati sono stati positivi, confermando che il sensore non era guasto.<span id="more-412"></span><br />
Il passo successivo è stato modificare il codice per utilizzare le librerie del C18 per il BUS I2C, definendo le funzioni per l&#8217;inizializzazione della periferica e la lettura del sensore.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p412code3'); return false;">Mostra codice</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p4123"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
</pre></td><td class="code" id="p412code3"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;i2c.h&gt;</span>
&nbsp;
<span style="color: #339933;">#define SRF02   0xE0            // Address of SRF02</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/**************************************************************************
 * Inizializza la periferica MSSP per il funzionamento in I2C Master
 *************************************************************************/</span>
<span style="color: #993333;">void</span> srf02_config<span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    OpenI2C<span style="color: #009900;">&#40;</span>MASTER<span style="color: #339933;">,</span> SLEW_OFF<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    SSPADD <span style="color: #339933;">=</span> <span style="color: #208080;">0x63</span><span style="color: #339933;">;</span>              <span style="color: #666666; font-style: italic;">// 100khz BUS @ 40MHz PIC</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/**************************************************************************
 * Esegue la misurazione tramite il sensore
 *
 * Restituisce la misura effettuata in centimetri
 *************************************************************************/</span>
<span style="color: #993333;">unsigned</span> <span style="color: #993333;">int</span> srf02_read<span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #993333;">int</span> result<span style="color: #339933;">=</span><span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
    <span style="color: #993333;">unsigned</span> <span style="color: #993333;">int</span> measure<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
    <span style="color: #993333;">unsigned</span> <span style="color: #993333;">char</span> measurement<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
    result <span style="color: #339933;">=</span> EEByteWrite<span style="color: #009900;">&#40;</span>SRF02<span style="color: #339933;">,</span> <span style="color: #208080;">0x00</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x51</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #666666; font-style: italic;">// Verifica l'esito dell'operazione di avvio della lettura</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>result<span style="color: #339933;">==</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">// Attende il completamento della misurazione del sensore</span>
        Delay10KTCYx<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">70</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;">// Recupera la misurazione fatta dal sensore</span>
        result <span style="color: #339933;">=</span> EESequentialRead<span style="color: #009900;">&#40;</span>SRF02<span style="color: #339933;">,</span> <span style="color: #208080;">0x02</span><span style="color: #339933;">,</span> measurement<span style="color: #339933;">,</span> <span style="color: #0000dd;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;">// Verifica l'esito dell'operazione di lettura del sensore</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>result<span style="color: #339933;">==</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #666666; font-style: italic;">// Scrive il valore letto dal sensore</span>
            measure <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>measurement<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">&lt;&lt;</span><span style="color: #0000dd;">8</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            measure <span style="color: #339933;">+=</span> measurement<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">return</span> measure<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Di seguito invece la chiamata a questi nuovi metodi:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p412code4'); return false;">Mostra codice</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p4124"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code" id="p412code4"><pre class="c" style="font-family:monospace;"><span style="color: #993333;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    ...
    <span style="color: #202020;">srf02_config</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    lcd_clear<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">;;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        lcd_put_uint<span style="color: #009900;">&#40;</span>srf02_read<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        Delay10KTCYx<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">500</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.it-robotix.net/2011/11/02/412/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gestire un sensore ad ultrasuoni SRF02</title>
		<link>http://www.it-robotix.net/2011/09/30/gestire-un-sensore-ad-ultrasuoni-srf02/</link>
		<comments>http://www.it-robotix.net/2011/09/30/gestire-un-sensore-ad-ultrasuoni-srf02/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 14:22:49 +0000</pubDate>
		<dc:creator>bobboteck</dc:creator>
				<category><![CDATA[Componenti]]></category>
		<category><![CDATA[sensori]]></category>
		<category><![CDATA[SRF02]]></category>
		<category><![CDATA[ultrasuoni]]></category>

		<guid isPermaLink="false">http://www.it-robotix.net/?p=380</guid>
		<description><![CDATA[Finalmente è giunto il momento di mettere le mani su uno dei sensori ad ultrasuoni che conservo nei cassetti dei componenti, in particolare sto parlando del sensore SRF02, un telemetro ad ultrasuoni in grado di eseguire misurazioni comprese tra  16cm e 6m. Questo sensore può essere controllato sia in I2C che in seriale, la scelta [...]]]></description>
			<content:encoded><![CDATA[<p>Finalmente è giunto il momento di mettere le mani su uno dei sensori ad ultrasuoni che conservo nei cassetti dei componenti, in particolare sto parlando del sensore SRF02, un telemetro ad ultrasuoni in grado di eseguire misurazioni comprese tra  16cm e 6m.</p>
<p>Questo sensore può essere controllato sia in I2C che in seriale, la scelta della modalità di controllo avviene tramite uno dei 5 pin, che va collegato a massa se si vuole usare la seriale, o lasciato non collegato se si vuole usare il controllo tramite I2C. In questo articolo parlerò della mia esperienza con il sensore controllato in I2C tramite un PIC 18F2620, e come si potrà vedere la gestione del sensore è identica a quella di una comune EEPROM I2C. I dettagli sul sensore e il suo utilizzo li potete trovare a questo <a title="SRF02" href="http://www.robot-electronics.co.uk/htm/srf02techI2C.htm" target="_blank">link</a>.</p>
<p>Cominciamo ad analizzare lo schema elettrico del circuito che è quanto di più semplice possa esistere.</p>
<p style="text-align: center;"><img class="pie-img aligncenter" src="http://lh5.ggpht.com/-yqRzS8hY5DA/ToDtvwN5XGI/AAAAAAAABec/ORxeIEQdgxY/srf02.png?imgmax=400" alt="srf02.png" width="400" height="225" /><img style="margin: 10px 10px 10px 10px;" alt="" /></p>
<p><span id="more-380"></span></p>
<p>Come si può vedere, oltre alla circuiteria di base per il PIC (quarzo, condensatori e resistenza su MCLR) il sensore è collegato ai pin RC3 e RC4 rispettivamente SCL e SDA, utilizzati dal modulo MSSP del PIC per la comunicazione con dispositivi Slave I2C. Entrambi questi pin sono tenuti a livello alto tramite due resistenze di pull-up da 1,8K ohm, così come richiesto dalle specifiche del BUS I2C. Ho aggiunto allo schema anche un display, per poter visualizzare i valori restituiti dal sensore.</p>
<p>Vediamo ora il codice:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p380code6'); return false;">Mostra codice</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p3806"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
</pre></td><td class="code" id="p380code6"><pre class="c" style="font-family:monospace;"><span style="color: #993333;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #993333;">unsigned</span> <span style="color: #993333;">char</span> counter<span style="color: #339933;">;</span>
<span style="color: #993333;">unsigned</span> <span style="color: #993333;">int</span> range<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> autotune<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// Configurazione del PIC</span>
    config_system<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #666666; font-style: italic;">// Esegue 6 letture ravvicinate per l'autotune</span>
    srf02_init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// Loop infinito</span>
    <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">;;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">// Invia al sensore la richiesta per avviare la misurazione in cm</span>
        srf02_tx<span style="color: #009900;">&#40;</span>SRF08<span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">81</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        Delay10KTCYx<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">70</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;">// Legge i sei registri del sensore</span>
        srf02_rx<span style="color: #009900;">&#40;</span>SRF08<span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">6</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        lcd_clear<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;">// Scrive la versione del software del Sensore</span>
        lcd_put_uchar<span style="color: #009900;">&#40;</span>srf02_buffer<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;">// Scrive il valore del registro non usato (dovrebbe essere 0x80)</span>
        lcd_put_uchar<span style="color: #009900;">&#40;</span>srf02_buffer<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span><span style="color: #0000dd;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;">// Scrive il valore letto dal sensore</span>
        range <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>srf02_buffer<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #0000dd;">8</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	range <span style="color: #339933;">+=</span> srf02_buffer<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        lcd_put_uint<span style="color: #009900;">&#40;</span>range<span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span><span style="color: #0000dd;">8</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;">// Scrive il valore di autotune</span>
        autotune <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>srf02_buffer<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #0000dd;">8</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	autotune <span style="color: #339933;">+=</span> srf02_buffer<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">5</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        lcd_put_uint<span style="color: #009900;">&#40;</span>autotune<span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span><span style="color: #0000dd;">14</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        Delay10KTCYx<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">500</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Come si può vedere anche il codice (quello completo è scaricabile da questo <a href="http://www.it-robotix.net/wp-content/uploads/2011/09/srf02_code.zip">link</a>) è molto semplice, alla riga 15 viene chiamata la funzione che avvia la misurazione della distanza in centimetri da parte del sensore. Poi un delay attende che siano passati 70 millisecondi, il tempo necessario per ricevere l&#8217;eco più lontana e poi vengono letti i 6 registri del sensore, memorizzando i valori nell&#8217;array srf02_buffer. Come indicato nella guida ogni registro del sensore contiene delle informazioni specifiche, come si può facilmente capire dai commenti nel codice, la parte che ci interessa di più è quella alle righe 25 e 26, dove viene letta la distanza misurata tra il sensore e l&#8217;oggetto che si trova di fronte. Sul display, a scopo puramente didattico, il codice visualizza tutti gli altri valori, e come si può vedere tutto il ciclo viene ripetuto ogni mezzo secondo. Alla riga 9 viene chiamata la funzione srf02_init(), questa non fa altro che eseguire sei misurazioni in rapida sequenza, come indicato nelle <a title="SRF02" href="http://www.robot-electronics.co.uk/htm/srf02techI2C.htm" target="_blank">specifiche</a> del sensore le prime 5/6 misurazioni vengono usate per fare un&#8217;auto calibrazione del sensore.</p>
<p>In un primo momento, seguendo l&#8217;esempio riportato sulle pagine della documentazione, andavo a leggere solamente i due registri che contengono la misura della distanza, facendo in questo modo però avevo delle strane misure che, partendo da un minimo cominciavano ad incrementarsi per dieci letture consecutive per poi ricominciare da capo. La misura più piccola risultava però essere molto più precisa di quella che ottengo leggendo tutti e 6 i registri. Non avendo trovato informazioni utili su questo strano comportamento ho comunque deciso di considerare il metodo della lettura di tutti i registri come più stabile, e quindi come sistema da utilizzare. Se avete delle esperienze diverse sarei curioso di capirne di più quindi non esitate a postare commenti con le vostre esperienze.</p>
<p style="text-align: center;"><a href="http://lh6.ggpht.com/-gmQcCNLJMFE/ToOP6Y89NmI/AAAAAAAABfU/5t3AHfUgELk/IMG_9731.JPG?imgmax=640" rel="lightbox[2011-8-5-16-14-52]"><img class="pie-img" style="margin: 10px 10px 10px 10px;" src="http://lh6.ggpht.com/-gmQcCNLJMFE/ToOP6Y89NmI/AAAAAAAABfU/5t3AHfUgELk/s144-c/IMG_9731.JPG" alt="IMG_9731.JPG" width="144" height="144" /></a></p>
<p>Prossimamente voglio provare ad utilizzare anche il modello SRF10, che viene gestito analogamente al SRF02, ma essendo dotato di una capsula US trasmittente ed una ricevente riesce a gestire una misura minima più bassa pari a 6cm.</p>
<p style="text-align: center;"><a href="http://www.it-robotix.net/wp-content/uploads/2011/09/srf02_code.zip">:: Scarica il codice completo ::</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-robotix.net/2011/09/30/gestire-un-sensore-ad-ultrasuoni-srf02/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Coming soon &#8230;</title>
		<link>http://www.it-robotix.net/2011/09/26/coming-soon/</link>
		<comments>http://www.it-robotix.net/2011/09/26/coming-soon/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 13:51:14 +0000</pubDate>
		<dc:creator>bobboteck</dc:creator>
				<category><![CDATA[Robot]]></category>

		<guid isPermaLink="false">http://www.it-robotix.net/?p=372</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.it-robotix.net/wp-content/uploads/2011/09/B4.png"><img class="size-full wp-image-373 aligncenter" title="B4" src="http://www.it-robotix.net/wp-content/uploads/2011/09/B4.png" alt="B4" width="179" height="119" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-robotix.net/2011/09/26/coming-soon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Romecup 2011</title>
		<link>http://www.it-robotix.net/2011/03/10/romecup-2011/</link>
		<comments>http://www.it-robotix.net/2011/03/10/romecup-2011/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 21:46:22 +0000</pubDate>
		<dc:creator>bobboteck</dc:creator>
				<category><![CDATA[Explorer]]></category>
		<category><![CDATA[Robofesta]]></category>
		<category><![CDATA[Robot]]></category>
		<category><![CDATA[robocup]]></category>
		<category><![CDATA[romecup]]></category>

		<guid isPermaLink="false">http://www.it-robotix.net/?p=351</guid>
		<description><![CDATA[Dal 14 al 16 Marzo si svolgerà la consueta manifestazione della RomeCup una tre giorni dedicata alla Robotica, le prime due giornate si svolgeranno presso l&#8217;ITIS Galileo Galilei di Roma, mentre l&#8217;ultima giornata si svolgerà nella sala della Protomoteca del Campidoglio. E&#8217; vero che si tratta di un evento dedicato alle scuole, ma ci saranno [...]]]></description>
			<content:encoded><![CDATA[<p>Dal 14 al 16 Marzo si svolgerà la consueta manifestazione della RomeCup una tre giorni dedicata alla Robotica, le prime due giornate si svolgeranno presso l&#8217;ITIS Galileo Galilei di Roma, mentre l&#8217;ultima giornata si svolgerà nella sala della Protomoteca del Campidoglio.</p>
<p style="text-align: center;"><img class="pie-img aligncenter" src="http://lh6.ggpht.com/_ndUeRg81MJ8/TXlHB3FxJvI/AAAAAAAABeE/DSVe3A5FCc8/romecup2011.jpg?imgmax=640" alt="romecup2011.jpg" width="294" height="171" /><img style="margin: 10px 10px 10px 10px;" alt="" /></p>
<p>E&#8217; vero che si tratta di un evento dedicato alle scuole, ma ci saranno anche altre iniziative in ambito Robotico, tra le tante cito anche alcune presentazioni su Arduino tenute da un amico di Roboteck, gruppo citato anche nel programma della manifestazione.</p>
<p>Tra le gare in programma ci sono:</p>
<ul>
<li>Explorer Junior</li>
<li>Explorer Senior</li>
<li>Robocup junior open league</li>
<li>Robocup junior light weight league</li>
<li>Robocup junior Dance primary</li>
<li>Robocup junior Dance secondary</li>
<li>Robocup junior Rescue primary</li>
<li>Robocup junior Rescue secondary</li>
</ul>
<p>Se siete interessati, per maggiori dettagli potete andare sul sito ufficiale della manifestazione il link è il seguente: <a href="http://www.romecup.org/" target="_blank">http://www.romecup.org/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-robotix.net/2011/03/10/romecup-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Line Follower project start</title>
		<link>http://www.it-robotix.net/2011/03/05/line-follower-project-start/</link>
		<comments>http://www.it-robotix.net/2011/03/05/line-follower-project-start/#comments</comments>
		<pubDate>Sat, 05 Mar 2011 21:56:20 +0000</pubDate>
		<dc:creator>bobboteck</dc:creator>
				<category><![CDATA[LineFollower]]></category>
		<category><![CDATA[Robot]]></category>
		<category><![CDATA[alimentazione]]></category>
		<category><![CDATA[LDO]]></category>
		<category><![CDATA[LiPo]]></category>
		<category><![CDATA[roboteck]]></category>

		<guid isPermaLink="false">http://www.it-robotix.net/?p=337</guid>
		<description><![CDATA[Il progetto Line Follower comincia a prendere forma non solo nella mia mente, ma anche su carta almeno per il momento, la mia intenzione è quella di realizzare un &#8220;prototipo&#8221; che mi permetta di valutare di volta in volta parti nuove fino ad arrivare ad una soluzione &#8220;definitiva&#8221; che sia in grado di offrire prestazioni [...]]]></description>
			<content:encoded><![CDATA[<p>Il progetto Line Follower comincia a prendere forma non solo nella mia mente, ma anche su carta almeno per il momento, la mia intenzione è quella di realizzare un &#8220;prototipo&#8221; che mi permetta di valutare di volta in volta parti nuove fino ad arrivare ad una soluzione &#8220;definitiva&#8221; che sia in grado di offrire prestazioni di un certo livello. Per questo motivo anche in questo progetto userò la filosofia a me tanto cara della modularità, anche se questa volta viste le dimensioni ridotte dividere la sezione alimentazione e controllo motori diventa un po&#8217; difficile.<br />
La prima analisi che ho fatto sul progetto si è basata sul capire quali materiali avevo già da poter &#8220;riciclare&#8221;, quindi la scelta è ricaduta su due motoriduttori della Solarbotics, che poi sono gli stessi che ho già montato su <a href="http://www.it-robotix.net/robot/fire/" target="_self">FIRE</a>. Per il controllo dei motori l&#8217;idea è di utilizzare un L293D, che al suo interno contiene già i diodi di ricircolo, ho scartato subito la possibilità L298 perché troppo ingombrante, e questi motori non dovrebbero richiedere una corrette troppo elevata da superare le capacità del 293.<span id="more-337"></span></p>
<p>Determinato il sistema di locomozione, bisogna pensare a come alimentare sia i motori che tutta la parte di logica del Robot. Sempre per una questione di spazio la prima idea è stata quella di utilizzare 4 batterie stilo e un porta batterie di quelli con le molle, per avere la possibilità di cambiarle facilmente. Facendo un po&#8217; di calcoli però si vede subito che questa soluzione, così com&#8217;è non può andare, infatti se consideriamo 4 comuni batterie stilo da 1,5V abbiamo un totale di 6V che sono un po&#8217; pochi per una logica che funziona a 5V anche utilizzando uno stabilizzatore LDO, perché basta che si scarichino un po&#8217; le batterie per avere problemi. In più c&#8217;è da considerare anche il Ponte H che, a causa dei sui circuiti interni, che fanno scendere la tensione applicabile ai motori di 2,5V, andrebbe ad alimentare i motori con 6-2,5=3,5V e una tensione un po&#8217; troppo bassa per dei motori che nascono da 6 Volt equivale a dire perdere molti giri motore, tenendo presente che su un robot da LF la velocità è un fattore importante sicuramente non questa non è una scelta valida. Naturalmente il discorso peggiora pensando di utilizzare delle batterie ricaricabili che sono da 1,2V per elemento.</p>
<p>Ecco quindi il primo problema da affrontare, il ponte H serve anche perchè i motori saranno controllati in PWM, vorrei evitare di scegliere qualcosa di alternativo al L293, almeno per ora, quindi non mi rimane che alzare la tensione. Le possibilità sono due aumentare il numero di batterie, che vorrebbe dire più ingombro e più peso, o aggiungere un circuito elevatore di tensione, che vuol dire aumentare la complessità ed il costo del Robot.<br />
Dopo averci ragionato un po&#8217; chiedo consiglio agli amici di Roboteck per avere un loro parere, che è stato quasi unanime verso l&#8217;utilizzo di batterie Li-Po, in effetti era una soluzione che non avevo mai preso in considerazione per via dei costi, che nel tempo sono cambiati, infatti per delle buone batterie NiMH si spendo circa 4€ ad elemento quindi dovendone usare sei il totale fa 24€, mentre guardando tra i negozzi di modellismo si trovano delle buone LiPo da 7,4V (2 celle da 3,7V) 1800mAh (20C) a 20€. Escludendo la piccola differenza di prezzo, quello che cambia notevolmente è l&#8217;ingombro e il peso (80g di differenza).</p>
<p>Sulle LiPo va fatta comunque una piccola precisazione, sono delle batterie un po&#8217; delicate, quindi vanno gestite con criterio, per prima cosa necessitano di caritori appositi quindi meglio non improvvisare perchè potrebbero anche esplodere, poi quando vengono utilizzate è bene non scendere mai al disotto di una certa soglia di tensione (3V per cella) oltre la quale la batteria potrebbe anche danneggiarsi.<br />
Fatte tutte queste premesse, dettate anche dai vari consigli ricevuti, sono passato a disegnare lo schema elettrico della sezione di alimentazione che è quello che potete vedere in figura.</p>
<div><img class="pie-img aligncenter" src="http://lh3.ggpht.com/_ndUeRg81MJ8/TXKtdZrzNQI/AAAAAAAABdc/jpBvQdvXDSc/Alimentazione.png?imgmax=576" alt="Circuito di alimentazione per il nuovo Robot Line Follower" width="576" height="256" /><img style="margin: 10px 10px 10px 10px;" alt="" /><img style="margin: 10px 10px 10px 10px;" alt="" /></div>
<p>Partendo da sinistra i due ingressi X1 e X2 sono per il connettore della batteria LiPo da 7,4V, per prima cosa è presente un partitore resistivo il cui scopo è quello di ridurre la tensione che viene prelevata nel punto indicato da VBAT e inviata ad un ingresso ADC per essere misurata, lo scopo è quello di tenere sotto controllo lo stato di carica della batteria durante il funzionamento del Robot ed eventualmente intervenire nel caso in cui la tensione scenda sotto una certa soglia, il partitore serve per ridurre la tensione che arriverà all&#8217;ADC, considerando anche che a batteria carica la tensione sarà anche superiore agli 8Volt. I motori saranno alimentati direttamente dalla batteria, per la parte logica ho aggiunto un regolatore LDO (IC1) con configurazione classica dei condensatori in ingresso ed in uscita. Nel circuito ho aggiunto solamente un diodo (D1) prima del regolatore per evitare inversioni di polarità, qualcuno avrà notato però che ai motori, o meglio al ponte H arriva direttamente la tensione di batteria senza passare per il diodo, questa mia scelta serve per evitare ulteriori cadute di tensione verso i motori, e sono disposto a sacrificare ponte H che tutto il resto dell&#8217;elettronica, anche se un danno è quasi impossibile, visto che il connettore della batteria sarà comunque polarizzato.<br />
Il prossimo step sara quello di cominciare a mettere insieme i pezzi, cioè di vedere assemblati i motori sul supporto di vetronite che ospiterà anche i circuiti di alimentazione e controllo motori.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-robotix.net/2011/03/05/line-follower-project-start/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Finalmente è arrivato MBED</title>
		<link>http://www.it-robotix.net/2011/02/08/finalmente-e-arrivato-mbed/</link>
		<comments>http://www.it-robotix.net/2011/02/08/finalmente-e-arrivato-mbed/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 12:50:29 +0000</pubDate>
		<dc:creator>bobboteck</dc:creator>
				<category><![CDATA[Componenti]]></category>
		<category><![CDATA[mbed]]></category>

		<guid isPermaLink="false">http://www.it-robotix.net/?p=332</guid>
		<description><![CDATA[Finalmente è arrivato l&#8217;mbed, nella confezione ho trovato la scheda, e il cavo USB per collegarlo al PC, un foglietto con sopra stampate le semplici istruzioni per registrarsi al sito, un paio di copie della piedinatura della scheda di cui una anche plastificata e un adesivo, insomma è tutto pronto all&#8217;uso. Collegando l&#8217;mbed al PC, viene [...]]]></description>
			<content:encoded><![CDATA[<p>Finalmente è arrivato l&#8217;mbed, nella confezione ho trovato la scheda, e il cavo USB per collegarlo al PC, un foglietto con sopra stampate le semplici istruzioni per registrarsi al sito, un paio di copie della piedinatura della scheda di cui una anche plastificata e un adesivo, insomma è tutto pronto all&#8217;uso.</p>
<p>Collegando l&#8217;mbed al PC, viene visualizzato un nuovo disco rimovibile, che rappresenta la memoria flash dell&#8217;mbed dove andremo a scaricare il nostro programma, naturalmente se vediamo le proprietà si tratta di pochi KB (mai vista una chiavetta così piccola <img src='http://www.it-robotix.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ), come indicato anche nel foglietto delle istruzioni aprendo questo disco c&#8217;è dentro un file html che non è altro che un redirect alla pagina di registrazione sul sito dell&#8217;mbed.<br />
<span id="more-332"></span>Poche informazioni da compilare e ci si registra per accedere subito alla parte autenticata del sito, ho visto che da una parte è riportato un numero di serie che dovrebbe essere relativo al proprio mbed, ma non ho indagato se c&#8217;è un legame diretto o meno. La sezione autenticata fa molto Social Network, per prima cosa si accede alla propria Home da cui è possibile accedere ad altre pagine, il tutto per condividere progetti, librerie, riferimenti ad altri social network (FB,Twitter,LinkedIn), evidenziare come preferiti altri utenti, e altre funzionalità che ancora non ho avuto modo di esplorare, certo non siamo ai livelli di FB, ma ci sono diverse funzionalità utili, anche se ad un primo sguardo qualcosa manca, come ad esempio potrebbe essere un feed sull&#8217;evoluzione di progetti che si stanno seguendo.</p>
<p>Il punto forte è comunque il &#8220;Compiler&#8221;, cliccando su questo link si apre in una nuova finestra l&#8217;ambiente di sviluppo nel browser, da qui si gestiscono i propri progetti, ma è possibile anche cercare, ed importare, nel proprio workspace tutti i progetti/librerie pubbliche realizzate da altri utenti, tanto per segnalare un&#8217;altra funzionalità di navigazione, quando si incontrano dei progetti interessanti sono disponibili degli shortcut per accedere al compilatore con la sezione di import già configurata per caricare il progetto che si stava guardando.<br />
Il sito fornisce comunque una buona documentazione, a questo link ci sono le spiegazioni per cominciare ad utilizzare l&#8217;ambiente di sviluppo: <a href="http://mbed.org/handbook/Creating-a-program" target="_blank">http://mbed.org/handbook/Creating-a-program</a>.</p>
<p>Quando si crea un nuovo progetto, viene generato subito il codice per eseguire il lampeggio di uno dei 4 led presenti sulla scheda, ma basta fare un giro tra i vari progetti per capire come fare delle semplici modifiche e cominciare a fare dei semplici giochi di luci con i 4 led, magari andando ad importare qualche progetto già presente.<br />
Nel poco tempo che sono riuscito a dedicargli ieri ho visto che esiste anche la possibilità di utilizzare la connessione USB, normalmente usata per programmare la scheda, anche per la comunicazione con il PC, è sufficiente installare un driver (il driver è necessario solo per Windows), e la connessione verrà vista come una Seriale, quindi utilizzando un programma di terminale (tipo Hyper Terminal) e configurandolo come indicato nel sito si può stabilire una comunicazione bidirezionale con il PC.<br />
Per provare come funziona basta aprire la finestra del Compiler, creare un nuovo progetto e scrivere il codice che segue:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p332code8'); return false;">Mostra codice</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p3328"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code" id="p332code8"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &quot;mbed.h&quot;</span>
DigitalOut myled<span style="color: #009900;">&#40;</span>LED1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
      myled <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
      wait<span style="color: #009900;">&#40;</span><span style="color:#800080;">0.2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span style="color: #000066;">printf</span></a><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Hello World!n&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      myled <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
      wait<span style="color: #009900;">&#40;</span><span style="color:#800080;">0.2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p> Lo standard output, ma anche lo standard input, è la seriale quindi usando la printf scriviamo direttamente sul terminale. A questo punto è sufficiente salvare il progetto e avviare la compilazione, terminata la quale il bowser avvia il download di un file &#8220;bin&#8221; con il nome del nostro progetto. Questo file, che possiamo scaricare direttamente nella memoria dell&#8217;mbed, rappresenta il nostro programma compilato, ora basta avviare il programma di terminale sul PC e poi premere il pulsante di reset sull&#8217;mbed, come risultato avremo il solito led lampeggiante, mentre sul terminale comparirà la scritta &#8220;Hello World!&#8221; che si ripeterà per ogni ciclo del codice.</p>
<p>Devo dire che sono rimasto molto colpito dalla semplicità con cui sono riuscito ad ottenere questo risultato, che in altre condizioni in cui mi sono trovato per fare una cosa simile (PIC&lt;-&gt;PC) ho impiegato decisamente molto più tempo ed è stata necessaria una conoscenza molto più approfondita dell&#8217;oggetto che stavo utilizzando, mentre in questo caso con un ora di &#8220;gioco&#8221; sono arrivato a questo risultato.<br />
Certo gli argomenti testati sono molto semplici, invece ero interessato ad utilizzare l&#8217;USB come Host e mi sono perso nei meandri dei vari documenti trovati sul sito, ma questo è sicuramente un argomento più complesso che richiede sicuramente uno studio più approfondito, anche perché è la prima volta che lo affronto e mi mancano anche le basi.<br />
Spero quanto prima di avere tempo da dedicarci e cominciare a studiare nuove cose, vi terrò aggiornati sulle varie esperienze, se invece nel frattempo avete qualche domanda o curiosità da chiarire chiedete pure, vediamo se riesco ad aiutarvi <img src='http://www.it-robotix.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-robotix.net/2011/02/08/finalmente-e-arrivato-mbed/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Line Follower</title>
		<link>http://www.it-robotix.net/2011/01/31/line-follower/</link>
		<comments>http://www.it-robotix.net/2011/01/31/line-follower/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 22:11:14 +0000</pubDate>
		<dc:creator>bobboteck</dc:creator>
				<category><![CDATA[LineFollower]]></category>
		<category><![CDATA[Robot]]></category>

		<guid isPermaLink="false">http://www.it-robotix.net/?p=318</guid>
		<description><![CDATA[Il regolamento ufficiale è stato redatto, e scaricabile al seguente link, quindi mi sembra il momento giusto per spiegarvi meglio cos&#8217;è questo Line Follower, si tratta in sostanza di una competizione velocistica tra Robot, i quali devono autonomamente seguire un tracciato nel minor tempo possibile. Il tracciato è indicato da una linea nera larga 25mm, che [...]]]></description>
			<content:encoded><![CDATA[<p>Il regolamento ufficiale è stato redatto, e scaricabile al seguente <a title="Regolamento LineFollower" href="http://www.roboteck.it/doc/lf1.zip" target="_blank">link</a>, quindi mi sembra il momento giusto per spiegarvi meglio cos&#8217;è questo Line Follower, si tratta in sostanza di una competizione velocistica tra Robot, i quali devono autonomamente seguire un tracciato nel minor tempo possibile.<br />
Il tracciato è indicato da una linea nera larga 25mm, che segna un percorso articolato che varia ad ogni competizione, nell&#8217;immagine che segue si può vedere un esempio di pista.</p>
<p style="text-align: center;"><img class="pie-img" src="http://lh6.ggpht.com/_ndUeRg81MJ8/TUco4HKuS8I/AAAAAAAABbs/PKCqLmjdglU/esempio_tracciato_lf.png?imgmax=640" alt="Esempio di tracciato Line Follower" width="600" height="234" /></p>
<p><span id="more-318"></span><br />
Altri esempi di tracciato li potete trovare allegati al regolamento.</p>
<p>Sempre sul regolamento sono definite la distanza minima tra due righe, il raggio minimo di curvatura e l&#8217;angolo minimo in caso di curve angolari, che è di 90°. I segmenti ortogonali alla riga del tracciato servono come punti di rilevamento per i tempi, quindi il Robot deve essere in grado di oltrepassarli senza problemi.</p>
<p>Naturalmente vengono squalificati i Robot che non seguono correttamente il tracciato, ovvero cominciano a girovagare senza meta, maggiori dettagli ed esempi in merito sono riportati nel regolamento, che consiglio comunque di leggere.</p>
<p>Ecco un video di un Robot all&#8217;opera, ma fate un giro su YouTube ne trovante molti altri.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="390" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/73kVe9rVQHU&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="600" height="390" src="http://www.youtube.com/v/73kVe9rVQHU&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>In sostanza per realizzare un LF servono un paio di motori, dei sensori in grado di verificare la presenza della riga nera, i circuiti di controllo e tanta fantasia nello scrivere il software, semplice no.</p>
<p>Se avete voglia di cimentarvi e confrontare le vostre capacità, la prossima occasione sarà a Sutri, dove si sta organizzando un evento Robotico in cui ci sarà sia il Line Follower che altre categorie, spero presto di poter dare ulteriori dettagli sulla manifestazione.</p>
<p>Intanto penso che con buona probabilità comincerò la costruzione di un nuovo Robot LF, dopo l&#8217;esperienza di <a title="Smoke Line Follower a Pisa" href="http://www.it-robotix.net/2011/01/20/ancora-una-volta-un-bel-raduno-a-pisa/#more-293" target="_self">Smoke</a> a Pisa, ho capito che bisogna realizzare un progetto specifico, sempre su questo sito quanto prima comincerà la cronologia del progetto.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-robotix.net/2011/01/31/line-follower/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sta per arrivare mbed</title>
		<link>http://www.it-robotix.net/2011/01/26/sta-per-arrivare-mbed/</link>
		<comments>http://www.it-robotix.net/2011/01/26/sta-per-arrivare-mbed/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 20:38:35 +0000</pubDate>
		<dc:creator>bobboteck</dc:creator>
				<category><![CDATA[mbed]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[ethernet]]></category>
		<category><![CDATA[USB]]></category>

		<guid isPermaLink="false">http://www.it-robotix.net/?p=309</guid>
		<description><![CDATA[Tra qualche giorno arriverà l&#8217;mbed che ho ordinato, una nuova scheda di sviluppo basata su microcontrollore ARM. mbed.org Come dice la prima riga del sito, mbed è un tool per realizzare velocemente un prototipo con microcontrollore. Questo piccolo circuitino, contiene tutto il necessario per far funzionare un microcontrollore ARM a 32bit, ci sono due modelli [...]]]></description>
			<content:encoded><![CDATA[<p>Tra qualche giorno arriverà l&#8217;mbed che ho ordinato, una nuova scheda di sviluppo basata su microcontrollore ARM.</p>
<p><a href="http://mbed.org/">mbed.org</a></p>
<p>Come dice la prima riga del sito, mbed è un tool per realizzare velocemente un prototipo con microcontrollore.</p>
<p><img src="http://mbed.org/media/img/mbedMicrocontroller.jpg" alt="mbed" /></p>
<p>Questo piccolo circuitino, contiene tutto il necessario per far funzionare un microcontrollore ARM a 32bit, ci sono due modelli a disposizione con caratteristiche simili, le caratteristiche del modello di punta sono 64KB di RAM, 512KB di flash, un processore ARM Cortex-M3 Core a 96MHz, e molte altre periferiche incluse Ethernet, USB Device e Host, CAN, SPI, I2C, ADC, PWM e altri I/O. <span id="more-309"></span><br />
L&#8217;immagine che segue mostra tutte le periferiche disponibili da questo sistema.</p>
<p><img src="http://mbed.org/media/uploads/simon/mbedmicrocontrollerpinout4.png" alt="piedinatura di mbed" /></p>
<p><strong>Come si programma?</strong></p>
<p>Nel modo più semplice che possa esistere, tramite la porta USB presente sulla scheda, e la cosa più interessante è che non si deve installare nulla sul proprio computer, niente compilatori, niente programmatori, ma come va tanto di moda in questo periodo è tutto CLOUD! Mi spiego, una volta che ci si è registrati sul sito si può accedere al nostro workspace direttamente dal browser ed accedere al sistema di sviluppo, quindi non avremo nessun problema di sistema operativo utilizzato e di performance del PC, qui non dobbiamo fare altro che creare il nostro progetto scrivere il codice, che dimenticavo è C++, compilare ed automaticamente il browser ci propone di scaricare un file BIN, che non è altro che il nostro codice. Il sistema operativo vede mbed (collegato alla USB) come un disco esterno guarda caso, e proprio in questo disco che andiamo a copiare il file BIN che poi potremo eseguire. Non è semplicissimo?</p>
<p><strong>Disponibilità di librerie già pronte</strong></p>
<p>Direttamente sul sito di mbed, ma direi anche direttamente nel nostro ambiente di sviluppo, sono disponibili una serie di librerie standard, più tutte quelle realizzate da altri utenti come noi, senza parlare che ci sono anche tutta una serie di progetti già pronti a cui possiamo accedere sempre realizzati dalla comunità.</p>
<p>L&#8217;mbed non arriverà da solo ho preso anche un&#8217;altra scheda di &#8220;espansione&#8221; la <a href="http://www.coolcomponents.co.uk/catalog/product_info.php?products_id=608">mbed LPC1768 Workshop Development Board</a> con le seguenti caratteristiche:</p>
<ul>
<li>RJ45 Ethernet socket with magnetics and LEDs</li>
<li>USB A socket</li>
<li>USB mini-B socket</li>
<li>uSD card socket</li>
<li>Double row mbed socket for easy probe access to pins</li>
</ul>
<p>Ora non mi resta che aspettare di ricevere questo nuovo giocattolo, appena arriva comincio a muovere i primi passi e poi postero qualche articolo sulla mia esperienza in merito.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-robotix.net/2011/01/26/sta-per-arrivare-mbed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ancora una volta un bel raduno a Pisa</title>
		<link>http://www.it-robotix.net/2011/01/20/ancora-una-volta-un-bel-raduno-a-pisa/</link>
		<comments>http://www.it-robotix.net/2011/01/20/ancora-una-volta-un-bel-raduno-a-pisa/#comments</comments>
		<pubDate>Thu, 20 Jan 2011 18:56:52 +0000</pubDate>
		<dc:creator>bobboteck</dc:creator>
				<category><![CDATA[Robofesta]]></category>
		<category><![CDATA[Robot]]></category>

		<guid isPermaLink="false">http://www.it-robotix.net/?p=293</guid>
		<description><![CDATA[Anche questo 2011 ha visto le due più grandi comunita italiane della Robotica Amatoriale, ospiti della Robofesta tenutasi presso l&#8217;IPSIA Fascetti di Pisa. Come tutti gli anni la mattinata si è svolta tra le gare di robot (questanno non ci sono stati gli explorer), i saluti agli amici che non si vedono da un po&#8217;, [...]]]></description>
			<content:encoded><![CDATA[<p>Anche questo 2011 ha visto le due più grandi comunita italiane della Robotica Amatoriale, ospiti della Robofesta tenutasi presso l&#8217;IPSIA Fascetti di Pisa.<br />
Come tutti gli anni la mattinata si è svolta tra le gare di robot (questanno non ci sono stati gli explorer), i saluti agli amici che non si vedono da un po&#8217;, la mostra dei robot vecchi e nuovi, e il solito chiacchierare di soluzioni tecniche utilizzate.</p>
<p style="text-align: center;"><a rel="lightbox[2011-0-0-23-7-7]" href="http://lh3.ggpht.com/_ndUeRg81MJ8/TTNUcRzCamI/AAAAAAAABaA/2uPoU1M4zxY/IMG_7559.JPG?imgmax=640"><img class="pie-img" style="margin: 10px 10px 10px 10px;" src="http://lh3.ggpht.com/_ndUeRg81MJ8/TTNUcRzCamI/AAAAAAAABaA/2uPoU1M4zxY/s144-c/IMG_7559.JPG" alt="IMG_7559.JPG" width="144" height="144" /></a><a rel="lightbox[2011-0-0-23-7-34]" href="http://lh5.ggpht.com/_ndUeRg81MJ8/TTNU9j1r14I/AAAAAAAABaA/oShFSkswi_I/IMG_7569.JPG?imgmax=640"><img class="pie-img" style="margin: 10px 10px 10px 10px;" src="http://lh5.ggpht.com/_ndUeRg81MJ8/TTNU9j1r14I/AAAAAAAABaA/oShFSkswi_I/s144-c/IMG_7569.JPG" alt="IMG_7569.JPG" width="144" height="144" /></a><a rel="lightbox[2011-0-0-23-8-13]" href="http://lh6.ggpht.com/_ndUeRg81MJ8/TTNWL6J_m8I/AAAAAAAABaA/h5Eju0D9EXs/IMG_7595.JPG?imgmax=640"><img class="pie-img" style="margin: 10px 10px 10px 10px;" src="http://lh6.ggpht.com/_ndUeRg81MJ8/TTNWL6J_m8I/AAAAAAAABaA/h5Eju0D9EXs/s144-c/IMG_7595.JPG" alt="IMG_7595.JPG" width="144" height="144" /></a></p>
<p><span id="more-293"></span><br />
La scuola ci ha messo disposizione l&#8217;aula magna per tutto il pomeriggio, così subito dopo le gare abbiamo consumato un pasto veloce per cominciare ad affrontare i punti che avevamo in programma il prima possibile.</p>
<p style="text-align: center;"><a rel="lightbox[2011-0-0-23-13-7]" href="http://lh4.ggpht.com/_ndUeRg81MJ8/TTNVF7D5cGI/AAAAAAAABaA/lC9qaepWhNg/IMG_7572.JPG?imgmax=640"><img class="pie-img" style="margin: 10px 10px 10px 10px;" src="http://lh4.ggpht.com/_ndUeRg81MJ8/TTNVF7D5cGI/AAAAAAAABaA/lC9qaepWhNg/s144-c/IMG_7572.JPG" alt="IMG_7572.JPG" width="144" height="144" /></a> <a rel="lightbox[2011-0-0-23-13-42]" href="http://lh4.ggpht.com/_ndUeRg81MJ8/TTNV5kSK0HI/AAAAAAAABaA/OsREcpNSsR4/IMG_7590.JPG?imgmax=640"><img class="pie-img" style="margin: 10px 10px 10px 10px;" src="http://lh4.ggpht.com/_ndUeRg81MJ8/TTNV5kSK0HI/AAAAAAAABaA/OsREcpNSsR4/s144-c/IMG_7590.JPG" alt="IMG_7590.JPG" width="144" height="144" /></a> <a rel="lightbox[2011-0-0-23-14-7]" href="http://lh3.ggpht.com/_ndUeRg81MJ8/TTNVSIT7uDI/AAAAAAAABaA/1LNnuTZtFJ4/IMG_7577.JPG?imgmax=640"><img class="pie-img" style="margin: 10px 10px 10px 10px;" src="http://lh3.ggpht.com/_ndUeRg81MJ8/TTNVSIT7uDI/AAAAAAAABaA/1LNnuTZtFJ4/s144-c/IMG_7577.JPG" alt="IMG_7577.JPG" width="144" height="144" /></a></p>
<p>Gli argomenti trattati nel pomeriggio sono stati molto interessanti, ed hanno portato al solito grande interesse da parte di tutti, presentando lavori fatti con vecchie conoscenze e nuovi prodotti che si affacciano nella robotica.</p>
<p><a title="Guido" href="http://www.guiott.com/" target="_blank">Guido</a> ci ha introdotto prima ad un nuovo sistema di prototipazione veloce l&#8217;<a title="mbed" href="http://www.mbed.org" target="_blank">mbed</a>, basato su un processore ARM a 32-bit facilmente programmabile e con tutta una serie di librerie realizzate da una intera comunità. Poi ci ha parlato del progetto che ha realizzato con lo PSoC (di cui se ne era parlato la prima volta proprio l&#8217;anno prima sempre in occasione dell&#8217;incontro di Pisa) per il rilevamento del tono a 4KHz per la gara dei Robot Explorer.</p>
<p>L&#8217;altro intervento della giornata è stato quello di Sergio che ci ha illustrato le potenzialità di <a title="ROS" href="http://www.willowgarage.com/pages/software/ros-platform" target="_blank">ROS</a> un framework che facilità il lavoro di sviluppo software e di interconnessioni tra i vari sistemi di un Robot.</p>
<p>Il pomeriggio si è concluso con i primi di test di Line Follower, necessari anche per validare i punti del regolamento che verrà utilizzato nelle prossime competizioni. I robot pronti per i test non erano tantissimi, ma si è già visto un buon interesse da parte di molte persone, ci si aspetta quindi una buona partecipazione alla prima gara ufficiale. Buone notizie in tal senso arrivano anche dal Fascetti, che sembrerebbe essere interessata come scuola a ospitare per il prossimo anno anche una competizione di Line Follower.</p>
<p><a rel="lightbox[2011-0-0-23-33-46]" href="http://lh6.ggpht.com/_ndUeRg81MJ8/TTNW0kdkzKI/AAAAAAAABaA/TI6KMuAZugs/IMG_7606.JPG?imgmax=640"><img class="pie-img" style="margin: 10px 10px 10px 10px;" src="http://lh6.ggpht.com/_ndUeRg81MJ8/TTNW0kdkzKI/AAAAAAAABaA/TI6KMuAZugs/s144-c/IMG_7606.JPG" alt="IMG_7606.JPG" width="144" height="144" /></a> <a rel="lightbox[2011-0-0-23-34-26]" href="http://lh5.ggpht.com/_ndUeRg81MJ8/TTNXUIPl_tI/AAAAAAAABaA/G8R0a1EuJBg/IMG_7614.JPG?imgmax=640"><img class="pie-img" style="margin: 10px 10px 10px 10px;" src="http://lh5.ggpht.com/_ndUeRg81MJ8/TTNXUIPl_tI/AAAAAAAABaA/G8R0a1EuJBg/s144-c/IMG_7614.JPG" alt="IMG_7614.JPG" width="144" height="144" /></a> <a rel="lightbox[2011-0-0-23-34-55]" href="http://lh3.ggpht.com/_ndUeRg81MJ8/TTNYPBo7DfI/AAAAAAAABaA/sR3I9oZSeeg/IMG_7629.JPG?imgmax=640"><img class="pie-img" style="margin: 10px 10px 10px 10px;" src="http://lh3.ggpht.com/_ndUeRg81MJ8/TTNYPBo7DfI/AAAAAAAABaA/sR3I9oZSeeg/s144-c/IMG_7629.JPG" alt="IMG_7629.JPG" width="144" height="144" /></a> <a rel="lightbox[2011-0-0-23-35-15]" href="http://lh3.ggpht.com/_ndUeRg81MJ8/TTNYY5VAB0I/AAAAAAAABaA/G5CrfrSAaM8/IMG_7632.JPG?imgmax=640"><img class="pie-img" style="margin: 10px 10px 10px 10px;" src="http://lh3.ggpht.com/_ndUeRg81MJ8/TTNYY5VAB0I/AAAAAAAABaA/G5CrfrSAaM8/s144-c/IMG_7632.JPG" alt="IMG_7632.JPG" width="144" height="144" /></a></p>
<p>Vi lascio con un video di Smoke impegnato nell&#8217;affrontare il circuito del Line Follower.</p>
<p><iframe title="YouTube video player" class="youtube-player" type="text/html" width="480" height="390" src="http://www.youtube.com/embed/iDsMU8rMSFE" frameborder="0" allowFullScreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.it-robotix.net/2011/01/20/ancora-una-volta-un-bel-raduno-a-pisa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

