<?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>Visual C# Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/visual-c/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/visual-c/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Sat, 14 Jan 2017 22:03:59 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://logicaprogrammabile.it/wp-content/uploads/2017/11/cropped-logicaprogrammabile-logo-02-32x32.png</url>
	<title>Visual C# Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/visual-c/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Netduino, linee GPIO configurarle con InputPort e OutputPort</title>
		<link>https://logicaprogrammabile.it/netduino-inputport-outputport-tristateport/</link>
					<comments>https://logicaprogrammabile.it/netduino-inputport-outputport-tristateport/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Mon, 13 Jun 2011 08:35:28 +0000</pubDate>
				<category><![CDATA[Tutorial Netduino]]></category>
		<category><![CDATA[.Net micro framework]]></category>
		<category><![CDATA[InputPort]]></category>
		<category><![CDATA[Netduino]]></category>
		<category><![CDATA[OutPort]]></category>
		<category><![CDATA[TRiStatePort]]></category>
		<category><![CDATA[Visual C#]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=1507</guid>

					<description><![CDATA[<p>InputPort OutputPort come utilizzare e configurare le porte digitali del Netduino Pin digitali La scheda Netduino prende spunto dal progetto Arduino, infatti, la forma della scheda e la disposizione dei connettori è identica a quella di Arduino UNO. I pin digitali sono 14 e possono...</p>
<p>The post <a href="https://logicaprogrammabile.it/netduino-inputport-outputport-tristateport/">Netduino, linee GPIO configurarle con InputPort e OutputPort</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>InputPort OutputPort come utilizzare e configurare le porte digitali del Netduino</h1>
<h2>Pin digitali</h2>
<p>La scheda Netduino prende spunto dal progetto Arduino, infatti, la forma della scheda e la disposizione dei connettori è identica a quella di <strong>Arduino UNO</strong>. I pin digitali sono 14 e possono essere configurati via software come ingressi o uscite (InputPort OutputPort). La possibilità di decidere programmaticamente la funzione di ognuno di questi pin permette una elevata flessibilità nell&#8217;adattare Netduino al mondo esterno.</p>
<p>La tensione di lavoro dei pin è di 3.3Vdc ma è possibile lavorare anche con tensioni in ingresso di 5Vdc (TTL). Per quanto riguarda la corrente prelevabile abbiamo valori massimi di 8 mA; i pin 2, 3, e 7 riescono a fornire 16mA massimi.</p>
<p><span style="text-decoration: underline;">I pin sono collegati direttamente al chip Atmel, occorre fare molta attenzione ai collegamenti esterni, un corto circuito o una tensione di sovraccarico potrebbero danneggiare irreparabilmente il microcontrollore.</span></p>
<h2>Configurazione pin in uscita</h2>
<p>Vediamo come configurare un pin digitale in uscita, utilizzando la classe <strong>OutputPort</strong> (Microsoft.SPOT.Hardware.OutputPort). I parametri da passare al costruttore sono l&#8217;identificativo del pin che vogliamo usare come uscita e il suo stato iniziale (Livello logico alto pari a3.3Vdc oppure livello logico basso pari a 0Vdc).<br />
Ecco un esempio che mostra come configurare il pin0 del Netduino come uscita</p>
<pre class="lang:c# decode:true ">//Pin 0 in uscita, inizializzato a livello logico basso
OutputPort pin0 = new OutputPort(Cpu.Pin.GPIO_Pin0, false);</pre>
<p>Se stiamo realizzando un circuito di esempio consiglio di inizializzare la porta in uscita a false (livello logico basso) per evitare di collegare per errore il pin a massa (corto circuito) con conseguente possibile rottura della porta del chip Atmel.<br />
La classe Pins enumera tutte le porte del Netduino disponibili per la configurazione come uscite o ingressi.</p>
<p><span id="more-1507"></span></p>
<p>L&#8217;operazione fondamentale disponibile per il pin è il cambio di livello utilizzando il metodo Write() dell&#8217;oggetto appena istanziato.<br />
Il codice seguente mostra come utilizzare il metodo Write()</p>
<pre class="lang:c# decode:true ">//Mette a livello alto (3.3Vdc) il pin D0
pin0.Write(true);
//Mette a livello basso (0Vdc) il pin D0
pin0.Write(false);
[/csharp]

Sebbene il pin0 sia configurato come uscita, possiamo leggere, tramite il metodo Read(), il livello logico impostato con il metodo Write():

[csharp]
//creo una variabile bool per memorizzare lo stato della porta
Boolean Livello = false;
//Mette a livello alto (3.3Vdc) il pin D0
pin0.Write(true);
//leggo lo stato del livello
Livello = pin0.Read();
//restituisce true
Debug.Print(Livello.ToString());
//Mette a livello basso (0Vdc) il pin D0
pin0.Write(false);
//leggo lo stato del livello
Livello = pin0.Read();
//restituisce false
Debug.Print(Livello.ToString());</pre>
<p>&nbsp;</p>
<p>La proprietà InitialState restituisce lo stato del livello al momento della creazione dell&#8217;oggetto</p>
<pre class="lang:c# decode:true">//creo una variabile bool per memorizzare lo stato della porta
Boolean Livello = false;
//Pin 0 in uscita, inizializzato a livello logico basso
OutputPort pin0 = new OutputPort(Cpu.Pin.GPIO_Pin0, false);
//Mette a livello alto (3.3Vdc) il pin D0
pin0.Write(true);
//leggo lo stato del livello al momento della creazione
//dell'oggetto pin0
Livello = pin0.InitialState;
//restituisce false
Debug.Print(Livello.ToString());</pre>
<p>La proprietà ID fornisce il nome del piedino del microcontrollore Atmel (come definito nel datasheet)</p>
<pre class="lang:c# decode:true ">//Creo un oggetto Pin
Cpu.Pin nomePin;
//Pin 0 in uscita, inizializzato a livello logico basso
OutputPort pin0 = new OutputPort(Cpu.Pin.GPIO_Pin0, false);
//Ottengo il nome del pin riferito al microcontrollore Atmel
nomePin = pin0.Id;
Debug.Print(nomePin.ToString());</pre>
<h2>Configurazione pin in ingresso</h2>
<p>Per accettare segnali in ingresso dobbiamo decidere quali pin utilizzare e configurarli con la classe InputPort (Microsoft.SPOT.Hardware.InputPort). In questo caso i parametri da passare al costruttore sono 3, il primo definisce l&#8217;identificativo del pin da utilizzare come ingresso, il secondo permette di attivare il filtro antirimbalzo (glitch filter) e il terzo permette di attivare l&#8217;eventuale resistenza di pull-up interna al microcontrollore.<br />
Il codice seguente utilizza il pin3 del Netduino come ingresso.</p>
<pre class="lang:c# decode:true ">//Definisco il pin 3 come ingresso, abilito l'antirimbalzo e la reistenza di pullup
InputPort pin3 = new InputPort(Cpu.Pin.GPIO_Pin3, true, Port.ResistorMode.PullUp);</pre>
<p>Il metodo Read() permette di leggere il livello logico presente sul pin di ingresso. Read() restituisce un valore booleano in funzione del livello logico.</p>
<pre class="lang:c# decode:true ">Boolean Livello = false;
//Pin3 in ingresso
InputPort pin3 = new InputPort(Cpu.Pin.GPIO_Pin0, true, Port.ResistorMode.PullUp);
//leggo dal pin3
Livello = pin3.Read();</pre>
<p>Le proprietà esposte dall&#8217;oggetto sono <strong>ID</strong>, <strong>GlitchFilter</strong> e <strong>Resistor</strong></p>
<pre class="lang:c# decode:true ">Boolean Livello = false;
Boolean StatoFiltro= false;
Port.ResistorMode Resistenza;
//Variabile per contenere il nome del pin
Cpu.Pin nomePin;

//nome del pin come indicato nel datasheet del microcontrollore
nomePin = pin3.Id;
Debug.Print(nomePin.ToString());
//stato del filtro antirimbalso
StatoFiltro = pin3.GlitchFilter;
Debug.Print("StatoFiltro " + StatoFiltro.ToString());
//tipo di resistenza selezionato
Resistenza = pin3.Resistor;
Debug.Print("Resistenza " + Resistenza.ToString());</pre>
<p>&nbsp;</p>
<blockquote><p>GlitchFilter</p>
<p>Il filtro antirimbalzo permette di eliminare gli impulsi spurii che si formano nei contatti metallici di un pulsante. All&#8217;atto della chiusura del pulsante il contatto non avviene immediatamente ma esiste un piccolo tempo di assestamento che da luogo a degli impulsi spurii che possono essere interpretati erroneamente dal Netduino. Attivando il filtro, introduciamo un certo ritardo prima di leggere lo stato dell&#8217;ingresso, in questo modo possiamo avere una lettura sicura poichè il contatto meccanico si è ormai stabilizzato.<br />
La figura mostra gli impulsi spurii generati dall&#8217;interruttore:</p>
<p><a href="https://logicaprogrammabile.it/netduino-inputport-outport-tristateport/filter/" rel="attachment wp-att-1541"><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-1541" title="GlitchFilter" src="https://logicaprogrammabile.it/wp-content/uploads/2011/06/Filter.gif" alt="Filtro antirimbalzo del Netduino" width="307" height="335" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/06/Filter.gif 307w, https://logicaprogrammabile.it/wp-content/uploads/2011/06/Filter-274x300.gif 274w" sizes="(max-width: 307px) 100vw, 307px" /></a></p></blockquote>
<blockquote><p>ResistorMode</p>
<p>Questa proprietà è molto importante perché permette di eseguire delle letture sicure del livello logico in ingresso quando, il circuito esterno, non imposta un riferimento di tensione sul pin. Le resistenze di pull up permettono di forzare un livello logico alto stabile sul pin d&#8217;ingresso. Nel caso del microcontrollore SAM7X possiamo utilizzare solo le resistenze di PullUp, dato che non sono presenti quelle di pull down (Impostando Port.ResistorMode.PullDown otteniamo un eccezione).</p>
<p><a href="https://logicaprogrammabile.it/netduino-inputport-outport-tristateport/pullup/" rel="attachment wp-att-1555"><img decoding="async" class="aligncenter wp-image-1555 size-full" title="Gestione Resistenza Pull up InputPort OutputPort" src="https://logicaprogrammabile.it/wp-content/uploads/2011/06/PullUp.gif" alt="Impostare le resistenze di Pull-up sul Netduino" width="351" height="524" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/06/PullUp.gif 351w, https://logicaprogrammabile.it/wp-content/uploads/2011/06/PullUp-200x300.gif 200w" sizes="(max-width: 351px) 100vw, 351px" /></a></p></blockquote>
<p>Abbiamo visto che per leggere dai pin dobbiamo richiamare il metodo Read(), quindi se vogliamo tenere sempre sotto controllo lo stato dell&#8217;ingresso è necessario eseguire ciclicamente il metodo Read();  sarebbe comodo un sistema che monitorizzi l&#8217;ingresso in modo da rilevare i cambiamenti di stato. Fortunatamente il Netduino ed il .Net micro framework mettono a disposizione la classe InterruptPort che svolge proprio questa funzionalità.</p>
<h2>Configurazione pin in ingresso con InterruptPort</h2>
<p>La classe InterruptPort permette di utilizzare un pin come ingresso e di eseguire un metodo ogni qualvolta che si verifica un cambiamento di stato su tale pin. Vediamo come configurare un pin in ingresso con la classe InterruptPort</p>
<pre class="lang:c# decode:true ">InterruptPort pin0 = new InterruptPort(Cpu.Pin.GPIO_Pin0, false,
Port.ResistorMode.PullUp,
 Port.InterruptMode.InterruptEdgeBoth);</pre>
<p>Il costruttore è molto simile alla classe InputPort ma in questo caso abbiamo un parametro aggiuntivo che definisce in che modo deve essere generato l&#8217;interrupt per quel pin. Le possibili opzioni sono:</p>
<table>
<tbody>
<tr>
<td><strong> <a id="#Port.InterruptMode.InterruptEdgeBoth"></a> InterruptEdgeBoth</strong></td>
<td>L&#8217;interrupt viene generato sia sul fronte di salita che sul fronte di discesa del segnale in ingresso</td>
</tr>
<tr>
<td><strong>InterruptEdgeHigh</strong></td>
<td>L&#8217;interrupt viene generato solo sul fronte di salita del segnale in ingresso</td>
</tr>
<tr>
<td><strong> <a id="#Port.InterruptMode.InterruptEdgeLevelHigh"></a> InterruptEdgeLevelHigh</strong></td>
<td>L&#8217;interrupt viene generato quando il segnale in ingresso diventa alto</td>
</tr>
<tr>
<td><strong> <a id="#Port.InterruptMode.InterruptEdgeLevelLow"></a> InterruptEdgeLevelLow</strong></td>
<td>L&#8217;interrupt viene generato quando il segnale in ingresso diventa basso</td>
</tr>
<tr>
<td><strong> <a id="#Port.InterruptMode.InterruptEdgeLow"></a> InterruptEdgeLow</strong></td>
<td>L&#8217;interrupt viene generato solo sul fronte di discesa del segnale in ingresso</td>
</tr>
<tr>
<td><strong> <a id="#Port.InterruptMode.InterruptNone"></a> InterruptNone</strong></td>
<td>non viene generato nessun interrupt</td>
</tr>
</tbody>
</table>
<p><a href="https://logicaprogrammabile.it/netduino-inputport-outport-tristateport/interrupt/" rel="attachment wp-att-1584"><img decoding="async" class="aligncenter wp-image-1584 size-full" title="Gestione Interrupt Netduino InputPort OutputPort" src="https://logicaprogrammabile.it/wp-content/uploads/2011/06/Interrupt.gif" alt="Interrupt segnale in ingresso" width="564" height="311" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/06/Interrupt.gif 564w, https://logicaprogrammabile.it/wp-content/uploads/2011/06/Interrupt-300x165.gif 300w" sizes="(max-width: 564px) 100vw, 564px" /></a></p>
<p>Le opzioni sono diverse e riescono a soddisfare tutte le variazioni di segnale che possono interessare il pin in ingresso.<br />
La parte importante è la possibilità di generare un evento ogni volta che si verifica un&#8217;interrupt. Il codice di esempio mostra come farlo</p>
<pre class="lang:c# decode:true ">public static void Main()
{
//Definisco il pin0 come InterruptPort
//L'interrupt viene generato sul fronte di salita
InterruptPort pin0 = new InterruptPort(Cpu.Pin.GPIO_Pin0, false,
Port.ResistorMode.PullUp,
Port.InterruptMode.InterruptEdgeHigh);
//Creo un evento quando si scatena un interrupt
//Ogni volta che viene generato un evento viene eseguito il metodo EventoPinIngresso
pin0.OnInterrupt += new NativeEventHandler(EventoPinIngresso);

while(true)
{
//eseguo qualcosa
Thread.Sleep(100);
}
}

public static void EventoPinIngresso(uint data1, uint data2, DateTime time)
{
//eseguo qualcosa quando viene generato un interrupt
Debug.Print(data1.ToString());
Debug.Print(data2.ToString());
Debug.Print(time.ToString());
}</pre>
<p>&nbsp;</p>
<p>In questo modo ogni volta che il segnale in ingresso scatena un interrupt, Netduino esegue il codice contenuto in EventoPinIngresso.<br />
La firma del metodo EventoPinIngresso deve contenere due valori <strong>uint</strong> e una <strong>DateTime</strong>. Il primo valore (data1) contiene il numero del pin del microcontrollore, il secondo contiene il livello logico sul pin e il terzo (time) contiene il tempo in cui è stato scatenato l&#8217;evento.<br />
Da notare che la gestione dell&#8217;evento è asincrona e quindi il Netduino continua ad eseguire il codice del ciclo while ed esegue autonomamente il metodo EventoPinIngresso quando si verifica un interrupt.</p>
<p>Questa funzionalità permette di creare codice che reagisce autonomamente agli eventi esterni e fa in modo che il Netduino si adatti meglio alle esigenze progettuali moderne.</p>
<p>The post <a href="https://logicaprogrammabile.it/netduino-inputport-outputport-tristateport/">Netduino, linee GPIO configurarle con InputPort e OutputPort</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/netduino-inputport-outputport-tristateport/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Cosa posso fare con Arduino Netduino?</title>
		<link>https://logicaprogrammabile.it/cosa-posso-fare-con-arduino-netduino/</link>
					<comments>https://logicaprogrammabile.it/cosa-posso-fare-con-arduino-netduino/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Tue, 29 Mar 2011 09:11:24 +0000</pubDate>
				<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[Tutorial Netduino]]></category>
		<category><![CDATA[.Net micro framework]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Esperimenti]]></category>
		<category><![CDATA[Progetti]]></category>
		<category><![CDATA[RFID]]></category>
		<category><![CDATA[Utilizzo]]></category>
		<category><![CDATA[Visual C#]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=618</guid>

					<description><![CDATA[<p>Idee sull&#8217;uso delle schede Netduino ed Arduino Era il 1999 quando acquistai il libro Programmare Microsoft Visual Basic 6.0, di Francesco Balena, quello fu il mio ingresso nel mondo della programmazione. Ancora non sapevo cosa potessi fare, che programmi potessi sviluppare, quali problemi sarei riuscito...</p>
<p>The post <a href="https://logicaprogrammabile.it/cosa-posso-fare-con-arduino-netduino/">Cosa posso fare con Arduino Netduino?</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Idee sull&#8217;uso delle schede Netduino ed Arduino</h1>
<p>Era il 1999 quando acquistai il libro Programmare Microsoft Visual Basic 6.0, di Francesco Balena, quello fu il mio ingresso nel mondo della programmazione. Ancora non sapevo cosa potessi fare, che programmi potessi sviluppare, quali problemi sarei riuscito a risolvere. Ero entusiasta di quel libro, tutto veniva spiegato accuratamente e con grande precisione e professionalità. Sognavo di realizzare software di ogni tipo, di aiutare amici e parenti con i miei programmi.</p>
<p>La cosa che più mi intrigava fu la possibilità che il software potesse interagire con il mondo esterno. Sfruttando la porta seriale oppure quella parallela, avevo l&#8217;intenzione di costruire piccoli dispositivi per acquisire segnali da sensori e pilotare attuatori. La cosa che però mi impedì di realizzare questi circuiti, fu l&#8217;ingombro fisico del pc. Non potevo creare un sistema di irrigazione automatizzato poiché era improbabile mettere un pc nei pressi di un giardino e farlo funzionare costantemente evitando malfunzionamenti. Senza pensare ai costi realizzazione di un sistema di questo tipo!</p>
<p>Passarono gli anni e la parte &#8216;hardware&#8217; dei miei progetti fu sopraffatta da quella software&#8230; Nel mentre nacque il .Net Framework e incominciai a migrare, dopo tanto codice vb6, verso il  nuovo linguaggio C#.</p>
<p>Ogni tanto sentivo parlare su vari forum e blog del .Net micro framework e di alcuni (pochi) dispositivi che potevano essere programmati utilizzando Visual C#, ma ormai ero lanciato verso lo sviluppo desktop e web e la voglia di riprendere in mano il saldatore era <del>quasi</del> svanita.</p>
<p>Successivamente il mondo dello sviluppo software ha iniziato ad entrare nelle case, nelle auto, nei dispositivi portatili, nel controllo accessi ed in generale ha ridato linfa al mondo embedded che era una nicchia riservato all&#8217;industria e alle medio-grandi imprese.<span id="more-618"></span>Alche io ho iniziato a domandarmi se i programmatori desktop e web potessero lavorare non solo con i pc ed i server ma anche con questi piccoli dispositivi che ormai potevano essere paragonati a dei pc in miniatura.<br />
La risposta giunse quando scoprii l&#8217;esistenza di Arduino e di Netduino poi. L&#8217;idea di poter scrivere codice per queste piattaforme era sorprendentemente fantastica! Potevo riprendere a sperimentare con i dispositivi hardware è creare nuove applicazioni.</p>
<p>Ma la domanda principale che mi sono posto è, <strong>cosa posso fare con Arduino Netduino</strong>?</p>
<p>Sicuramente trovo che questi dispositivi siano davvero versatili e duttili, ma certamente penso che non possano essere impiegati ovunque. In base alla mia esperienza professionale credo che gli ambiti migliori dove utilizzare Arduino e Netduino sono:</p>
<ul>
<li>Domotica</li>
<li>Agricoltura</li>
<li>Controllo accessi</li>
<li>Robotica amatoriale</li>
<li>Dispositivi di allarme</li>
<li>Stazioni meteo</li>
<li>Sistemi di controllo, anche remoti (esclusi quelli real time)</li>
<li>Dispositivi wireless</li>
<li>Dispositivi con accesso LAN</li>
<li>Utilizzo per scopi didattici e sperimentali</li>
</ul>
<p>certamente esistono altri impieghi, ma questa lista nasce secondo le mie esperienze, secondo quello che io potrei realmente realizzare con questi dispositivi. Non mi sembra giusto scrivere una serie di applicazioni, solo per avere un elenco più lungo e importante, che poi non saprei giustificare!</p>
<p>Analizzo meglio queste voci per dare un&#8217;idea più precisa sui vari punti</p>
<p><strong>Domotica</strong>:</p>
<p style="padding-left: 30px;">Circuiti elettronici che riguardano l&#8217;ambito domestico come controllo del sistema di illuminazione, gestione dell&#8217;impianto di riscaldamento, rivelazione fumi e gas, azionamento sistemi di irrigazione del giardino.</p>
<p><strong>Agricoltura:</strong></p>
<p style="padding-left: 30px;">Sistemi automatici di irrigazione, riscaldamento e refrigerazione serre.</p>
<p><strong>Controllo Accessi</strong>:</p>
<p style="padding-left: 30px;">Gestione lettori RFID per apertura ingressi, sistemi i accesso basati su tastiere o lettori di schede magnetiche. Possibilità di interfacciamento del sistema alla rete Lan.</p>
<p><strong>Robotica Amatoriale</strong>:</p>
<p style="padding-left: 30px;">Creazione automi basati sulla gestione di diversi sensori e attuatori. Creazione di piccoli robot autonomi che svolgono compiti predefiniti.</p>
<p><strong>Dispositivi di Allarme</strong>:</p>
<p style="padding-left: 30px;">Gestione di sensori di movimento e interruttori, attivazione sirene e segnalazione intrusione via rete gsm o internet.</p>
<p><strong>Stazione Meteo</strong>:</p>
<p style="padding-left: 30px;">Controllo di sensori di temperatura, pressione, umidità, anemometri e pluviometri e possibilità di registrare tutti i dati su memoria solida o invio tramite lan.</p>
<p><strong>Sistemi di Controllo</strong>:</p>
<p style="padding-left: 30px;">Controllo e gestione di sistemi numerici, acquisizione segnali, elaborazione e attuazione. Escluderei però sistemi real-time, e impieghi in ambito industriale.</p>
<p><strong>Dispositivi Wireless</strong>:</p>
<p style="padding-left: 30px;">Comunicazioni e controllo di dispositivi senza file utilizzando trasmettitori RF.</p>
<p><strong>Dispositivi con Accesso Lan</strong>:</p>
<p style="padding-left: 30px;">Creazione di sistemi con controllo remoto del dispositivo, piccoli server web, comunicazione con protocolli UDP e TCP/IP</p>
<p><strong>Utilizzo per scopi didattici</strong>:</p>
<p style="padding-left: 30px;">Realizzazione di semplici esperimenti per iniziare a imparare il funzionamento dei sistemi di controllo, dell&#8217;acquisizione segnali e loro elaborazione. Come sistema sperimentale per iniziare ad esplorare il mondo dell&#8217;elettronica.</p>
<p>La mia considerazione non vuole dare una  risposta definitiva alla domanda, ma penso che aiuti molti principianti, che ancora stanno valutando se acquistare questi dispositivi piuttosto che altri.<br />
Il mio consiglio è, visto il basso costo delle schede e la disponibilità di ambienti di sviluppo gratuiti, di investire un po di denaro per poter provare a sperimentare e creare piccoli circuiti. La pratica fa subito capire la potenzialità di queste schede e ci fa entrare in un mondo sicuramente interessante che puo dare tante soddisfazioni.<br />
Buona sperimentazione a tutti!</p>
<p>The post <a href="https://logicaprogrammabile.it/cosa-posso-fare-con-arduino-netduino/">Cosa posso fare con Arduino Netduino?</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/cosa-posso-fare-con-arduino-netduino/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Netduino, .Net micro Framework e Visual C#</title>
		<link>https://logicaprogrammabile.it/net-micro-framework-netduino-c-sharp/</link>
					<comments>https://logicaprogrammabile.it/net-micro-framework-netduino-c-sharp/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Tue, 01 Mar 2011 12:59:48 +0000</pubDate>
				<category><![CDATA[Tutorial Netduino]]></category>
		<category><![CDATA[.Net micro framework]]></category>
		<category><![CDATA[Configurazione]]></category>
		<category><![CDATA[Led]]></category>
		<category><![CDATA[Visual C#]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=68</guid>

					<description><![CDATA[<p>Il .Net micro framework è il cuore del Netduino vediamo come configurare l&#8217;ambiente Ora che abbiamo il nostro mini laboratorio per creare i prototipi e il software sul pc è installato correttamente possiamo avviare il primo progetto per verificare se tutto funziona e se il...</p>
<p>The post <a href="https://logicaprogrammabile.it/net-micro-framework-netduino-c-sharp/">Netduino, .Net micro Framework e Visual C#</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Il .Net micro framework è il cuore del Netduino vediamo come configurare l&#8217;ambiente</h1>
<p>Ora che abbiamo il nostro mini laboratorio per creare i prototipi e il software sul pc è installato correttamente possiamo avviare il primo progetto per verificare se tutto funziona e se il .net micro framework è correttamente attivo e funzionante sul Netduino.</p>
<p>Per prima cosa colleghiamo il <strong>Netduino </strong>al pc e verifichiamo che il led pwr sulla scheda sia acceso.<br />
Ora avviamo <strong>Visual C# 2010 Express</strong> e creiamo un nuovo progetto:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-69 size-medium" title="NuovoProgetto" src="https://logicaprogrammabile.it/wp-content/uploads/2011/03/NuovoProgetto-300x201.jpg" alt="net micro framework" width="300" height="201" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/03/NuovoProgetto-300x201.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2011/03/NuovoProgetto.jpg 344w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>la finestra Nuovo Progetto mostra tutti i tipi di soluzioni che possiamo generare con la nostra copia di Visual C# 2010 Express. Cliccando sulla voce Visual C# potremmo vedere la sottovoce <strong>Micro Framework</strong>, clicchiamo su di essa per visualizzare i vari tipi di progetto che possiamo creare. Se l&#8217;installazione dell&#8217; sdk di Netduino è stata eseguita correttamente, in questo box ci sarà una voce dal nome Netduino Application</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-70 size-full" title="NetduinoApp" src="https://logicaprogrammabile.it/wp-content/uploads/2011/03/NetduinoApp.jpg" width="270" height="181" /></p>
<p>Selezioniamo la voce come mostrato in figura, diamo un nome alla nostra soluzione compilando la casella di testo Nome e clicchiamo sul pulsante OK per dar modo a Visual C# di impostare l&#8217;ambiente per lo sviluppo con Netduino e con il .Net micro framework.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-71 size-medium" title="Soluzione" src="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Soluzione-300x231.jpg" alt="visual studio net micro framework" width="300" height="231" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Soluzione-300x231.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2011/03/Soluzione.jpg 320w" sizes="auto, (max-width: 300px) 100vw, 300px" /><span id="more-68"></span></p>
<p>Di tutte le voci elencate nella finestra Esplora Soluzione quella che ci interessa maggiormente è Program.cs che conterrà il codice della nostra applicazione. Avviamo l&#8217;editor cliccando due volte su questo file.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-72 size-medium" title="Programcs" src="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Programcs-292x300.jpg" width="292" height="300" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Programcs-292x300.jpg 292w, https://logicaprogrammabile.it/wp-content/uploads/2011/03/Programcs.jpg 363w" sizes="auto, (max-width: 292px) 100vw, 292px" /></p>
<p>Il nostro codice può essere inserito nel blocco Main(), ma per il momento lasciamo tutto così com&#8217;è e proviamo subito a caricare il sorgente nel nostro Netduino.</p>
<p>Per prima cosa dobbiamo configurare Visual C# per comunicare con la scheda. Dalla finestra Esplora Soluzione clicchiamo due volte sulla voce Propierties per aprire la finestra delle proprietà della soluzione.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-75 size-medium" title="Proprieta" src="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Proprieta-300x189.jpg" width="300" height="189" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Proprieta-300x189.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2011/03/Proprieta.jpg 442w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>Selezioniamo la voce .Net Micro Framework; come si può vedere dalla figura nel box Deployment per default è selezionato l&#8217;emulatore. Per caricare il programma sul Netduino dobbiamo scegliere nella combobox Transport la voce USB. In questo modo Visual C# controllerà i dispositivi collegati alla porta usb e gli elencherà nella combobox Device. Selezioniamo la voce Netduino_Netduino disponibile nella lista dei device per poter comunicare con il Netduino.<br />
Ora chiudiamo la finestra delle proprietà.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-78 size-medium" title="Proprieta1" src="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Proprieta1-300x182.jpg" width="300" height="182" srcset="https://logicaprogrammabile.it/wp-content/uploads/2011/03/Proprieta1-300x182.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2011/03/Proprieta1.jpg 455w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>Tutto è pronto per programmare il  Netduino basta cliccare sull&#8217;icona Avvia Debug(F5) e Visual C# compilerà il sorgente e caricherà l&#8217;eseguibile sul dispositivo</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-77 size-full" title="AvviaDebug" src="https://logicaprogrammabile.it/wp-content/uploads/2011/03/AvviaDebug.jpg" width="144" height="68" /></p>
<p>Nella finestra Output di Visual Studio (Menu Visualizza -&gt; Output) potremmo vedere tutti i passaggi della compilazione e del caricamento del sorgente sul Netduino.</p>
<p>Il .net micro framework contenuto nel Netduino inizierà a gestire ed eseguire il programma.</p>
<p>The post <a href="https://logicaprogrammabile.it/net-micro-framework-netduino-c-sharp/">Netduino, .Net micro Framework e Visual C#</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/net-micro-framework-netduino-c-sharp/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
