Netduino GPIO Speed Test

Testare la velocità di commutazione di un pin digitale

Una delle domande che mi pongo quando lavoro con un dispositivo programmabile è quanto questo sia veloce. Non so se esistano procedure specifiche che indichino la potenza di calcolo effettiva, indicativamente il test che eseguo io è quello di commutare di continuo un’uscita digitale e verificare con un oscilloscopio il tempo della durata di una istruzione.
Il codice è il seguente:

 

Questo codice generare un onda quadra con una frequenza di circa 8.4 KHz; Il segnale positivo generato dalla Write(true) dura circa 53us mentre il segnale negativo dovuto alla funzione Write(false)dura circa 64us. Verosimilmente il segnale negativo dura qualche microsecondo in più poiché il processore deve eseguire anche l’istruzione While(true). Quindi l’istruzione While viene eseguita in circa 11us (64us – 53us)

Netduino GPIO

Segnale PWM 50 per cento Continua a leggere

Usare gli ingressi analogici del Netduino

Come utilizzare le porte analogiche del Netduino

Netduino dispone di 6 ingressi per l’acquisizione di segnali analogici. Questa è una caratteristica importante perché molti sensori sono di tipo analogico, come alcuni che, ad esempio, variano la loro resistenza elettrica in base alla grandezza fisica che misurano.
Uno degli elementi più semplici che possiamo usare per imparare ad usare gli ingressi analogici del Netduino è la fotoresistenza che varia la sua resistenza elettrica in modo proporzionale alla quantità di luce a cui è sottoposta.
Prima di acquisire il segnale dobbiamo sapere che la massima tensione applicabile ai pin analogici è di 3.3Vdc. La risoluzione del Netduino, nel convertire il segnale analogico in digitale, è di 10bit, questo indica che applicando una tensione di 3.3Vdc all’ingresso analogico, otterremo un valore intero di 1024, applicando una tensione nulla otterremo un valore intero pari a 0, e applicando una tensione di 1.65 Vdc (pari alla metà della massima tensione applicabile) otterremo un valore intero di 512.
Quindi le variazioni di tensione tra 0 e 3.3v restituiranno dei valori compresi tra 0 e 1024.

Passiamo alla pratica e proviamo a collegare una fotoresistenza al Netduino. La sua resistenza varia in modo inversamente proporzionale alla quantità di luce che colpisce il sensore, più intensità luminosa corrisponde ad una minore resistenza e viceversa. Il modello che ho utilizzato io presenta una resistenza di 80-100 ohm quando il sensore è posto alla luce mentre quando è posto al buoi la sua resistenza aumenta sino a 10-15 Mohm.

Il circuito di test è il seguente:

Netduino e Fotoresistenza

La tensione di 3.3v va ad alimentare il circuito composto dalla fotoresistenza FR e dalla resistenza R da 5.6 KOhm.

Nota: Per i possessori di Netduino rev A dovete collegare anche la tensione 3.3v al pin Aref

Le variazioni di luminosità sul sensore si tradurranno in variazione di resistenza e di conseguenza in variazione di tensione. L’ingresso A0 è collegato tra la fotoresistenza e la resistenza. Continua a leggere

Caratteristiche Arduino Uno

ARDUINO UNO la scheda più famosa al mondo

Arduino Uno

Arduino Uno è un dispositivo basato su microcontrollore che permette di realizzare diversi tipi di circuiti elettronici. Possiede 14 pin digitali programmabili come ingressi o uscite (i quali hanno anche la capacità di essere utilizzati per funzioni dedicate come la generazione di segnale PWM o la comunicazione UART ) e 6 ingressi per l’acquisizione ed elaborazione di segnali analogici.
Il microcontrollore è l’ATmega328 prodotto da Atmel, ha una velocità di 16MHz, una memoria flash da 32KB, una sram da 2KB e una memoria EEPROM da 1KB.
L’alimentazione della scheda avviene tramite porta usb o tramite l’apposito connettore. In caso siano collegati sia il cavo usb sia il connettore di alimentazione, la scheda è capace di scegliere automaticamente la fonte di alimentazione esterna.

La tabella seguente elenca le caratteristiche di Arduino Uno

Tipo MicrocontrolloreAtmel ATmega328
Tensione di lavoro5Vdc
Tensione di alimentazione consigliatada 7Vdc a 12Vdc
Pin digitali14 configurabili come ingressi o uscite
Pin analogivi6 inghessi
Massima corrente per pin digitale40mA massima
Memoria Flash32KB
Memoria Sram2KB
Memoria EEPROM1KB
Velocità di clock del microcontrollore16MHz

Descrizione funzioni aggiuntive dei pin digitali

Pin 0UART RX
Pin 1UART TX
Pin 2Interrupt esterno
Pin 3Interrupt esterno oppure PWM
Pin 58 bit PWM
Pin 68 bit PWM
Pin 98 bit PWM
Pin 108 bit PWM oppure SPI(SS)
Pin 118 bit PWM oppure SPI(MOSI)
Pin 12SPI(MISO)
Pin 12SPI(SCK)

Descrizione funzioni aggiuntive dei pin analogici

Pin 4I2C (SDA)
Pin 5I2C (SCL)

Il progetto del dispositivo è open source, sono infatti disponibili schemi elettrici per la realizzazione del circuito e i sorgenti di tutto il software della piattaforma.

Il costo contenuto della scheda (neanche 30€) da la possibilità a tutti di poter sperimentare con questo dispositivo, sia per un uso puramente ludico sia per la creazione di dispositivi professionali.

Capire il duty cycle

La guida definitiva al Duty Cycle

Uno dei primi esperimenti che feci quando iniziai a studiare elettronica, fu pilotare un piccolo motorino dc. Presto capii che abbassando la tensione di alimentazione, per far diminuire la velocità del motore, portava anche a una perdita di potenza del motore stesso, dovuta ad un conseguente calo di corrente.
Dopo vari studi imparai che, per tenere il motore sempre con una certa forza a diverse velocità, non bisognava abbassare il valore di tensione, ma pilotare il motore con un segnale ad onda quadra e variare il duty cycle dello stesso.
Il duty cycle è il rapporto che c’è tra il segnale positivo e il periodo totale del segnale ad onda quadra ed è espresso in percentuale. Un duty cycle del 100% equivale ad un segnale Alto continuo, uno del 0% equivale ad un segnale Basso continuo mentre un duty cycle del 50% significa che il segnale Alto dura quanto quello Basso.

Onda quadra e duty cycle

per calcolarlo basta eseguire questa semplice formula


dove Livello Alto è il valore di tempo della durata del segnale positivo mentre Periodo è il tempo relativo al periodo del segnale ad onda quadra.
Possiamo fare un semplice esempio:

Supponendo che il livello alto duri 10ms e il periodo del segnale ad onda quadra sia di 20ms, potremmo calcolare che il duty cycle sia del 50%, infatti 10ms / 20ms = 0.5 che moltiplicato per 100 da 50(%).

Nel caso in cui invece il tempo del livello alto sia di 2ms e il periodo del segnale di 20ms otterremo un duty cycle del 10%

Duty Cycle 10%

Mentre se il tempo del livello alto è di 18ms e il periodo del segnale di 20ms otterremo un duty cycle del 90%.

Duty Cycle 90%

Questa caratteristica è stata implementata sia nel Netduino che nell’Arduino e la capacità di variare il duty cycle viene comunemente detta PWM (Pulse Width Modulation). Per generare un segnale ad onda quadra con duty cycle variabile bisogna configurare alcuni pin dedicati del Netduino/Arduino ed usare delle semplici funzioni.

Netduino far lampeggiare un led

Netduino usare il led onboard

Il primo programma che possiamo creare, per iniziare a sperimentare con Netduino, è il classico esempio che permette di far lampeggiare il led di sistema, posto sulla scheda del dispositivo.
Questo programma è ormai un classico che si può trovare un po da per tutto in internet, ma nonostante ciò, anche io volevo proporvelo.

Dopo aver avviato Visual C# e creato un nuovo progetto, apriamo il file Program.cs e all’interno del blocco Main() inseriamo le seguenti righe di codice.

 

queste istruzioni accendono e spengono il led ad una frequenza di mezzo secondo.
l’istruzione :

 

crea un oggetto che viene usato per controllare il led onboard; il costruttore della classe OutputPort richiede l’identificativo del pin e il relativo stato iniziale. Pins.ONBOARD_LED appunto, è il led fisico posto sul dispositivo e false indica lo stato iniziale, ovvero spento.

Il cico while è infinito ed esegue ciclicamente queste istruzioni:

 

la funzione write() dell’oggetto non fa altro che accendere o spegnere il led a seconda del valore booleano passato come parametro.
Thread.Sleep() serve per creare un ritardo tra le istruzioni Write() per creare l’effetto intermittente, il valore passato è espresso in millisecondi.

Non ci resta che avviare il debug per eseguire la compilazione e il caricamento dell’eseguibile nel Netduino.
Il dispositivo deve essere collegato al pc tramite porta usb e Visual c# deve essere configurato per interaggire con il Netduino piuttosto che con l’emulatore.

Caratteristiche Netduino

Netduino permette di realizzare circuiti diversi in poco tempo

Netduino caratteristiche della scheda

Netduino caratteristiche:

Vediamo quali sono le caratteristiche hardware di Netduino.

  • Processore e Memoria

Il cuore della scheda è il microcontrollore Atmel a 32bit ( AT91SAM7X512) che opera ad una frequenza di 48MHz. Ha una ram da 60KB e una memoria per ospitare il codice, pari a 128KB.

  • Ingressi ed uscite

La scheda propone 20 pin totali di cui 14 digitali (Logica TTL) che possono essere programmati via software, sia come ingressi sia come uscite e 6 ingressi per l’acquisizione di segnali analogici. I pin digitali possono anche esporre delle funzioni supplementari come il PWM, la comunicazione seriale (UART), quella SPI e I2C.

  • Pulsante e led onboard

La scheda dispone di un led e di un pulsante che possono essere utilizzati dal nostro programma. Normalmente il pulsante onboard è utilizzato per il reset del Netduino.

  • Alimentazione

Netduino richiede una tensione di alimentazione esterna che può variare da 7.5Vdc a 12Vdc oppure può utilizzare l’alimentazione proveniente dalla porta USB.
La scheda è in grado di fornire tramite alcuni pin una tensione di 5Vdc ed una di 3.3Vdc.
La massima corrente per pin è di 8mA.

  • Requisiti di sistema

In ambiente windows:

Windows XP, Vista o 7 (32bit o 64bit)
Pc con processore da 1.6GHz o superiore (Necessario per Visual C#)
Minimo 1GB di Ram (Necessario per Visual C#)
Almeno 3Gb di spazio sull’hard disk (Necessario per Visual C#)

Mac OS

Virtual Box o Parallels per far girare Windows su macchina virtuale

Linux

Mono, progetto open source per il porting del .Net Framework su Linux

  • Dimensione fisiche della scheda

Altezza ~15 mm
Lunghezza ~70 mm
Profondità ~65 mm

Il costo contenuto della scheda di aggira intorno ai 30€ questo permette di iniziare a sperimentare con un piccolo investimento iniziale anche perché, per le funzioni base, sono necessari solo pochi componenti di contorno.

Netduino, .Net micro Framework e Visual C#

Il .Net micro framework è il cuore del Netduino vediamo come configurare l’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 .net micro framework è correttamente attivo e funzionante sul Netduino.

Per prima cosa colleghiamo il Netduino al pc e verifichiamo che il led pwr sulla scheda sia acceso.
Ora avviamo Visual C# 2010 Express e creiamo un nuovo progetto:

net micro framework

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 Micro Framework, clicchiamo su di essa per visualizzare i vari tipi di progetto che possiamo creare. Se l’installazione dell’ sdk di Netduino è stata eseguita correttamente, in questo box ci sarà una voce dal nome Netduino Application

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’ambiente per lo sviluppo con Netduino e con il .Net micro framework.

visual studio net micro framework Continua a leggere

Tutorial Netduino come iniziare lo sviluppo

Tutorial Netduino

Configurare la nostra postazione per lo sviluppo con Netduino è molto semplice. Per scrivere il nostro codice C# dobbiamo procuraci Microsoft Visual Studio, se non disponiamo della versione completa dell’ambiente di sviluppo, possiamo scaricare la versione gratuita Express, per uso non commerciale, disponibile a questo indirizzo, http://www.microsoft.com/express/Downloads/#2010-Visual-CS. Cliccate sulla voce Visual C# 2010 Express, selezionate la lingua che preferite per avviare il download.
Visual C# 2010 Express installerà anche il .Net Framework 4.0 e relativi componenti.

Visual C# è ora funzionante per 30 giorni. Per eliminare questa limitazione bisogna effettuare la registrazione del prodotto. Andate nel menu ? e cliccate sulla voce Registra prodotto, seguite le istruzioni per ottenere un codice seriale che renderà attiva la vostra copia di Visual C# 2010 Express.

Il passo successivo è l’installazione del .Net Micro-Framework versione 4.1.

Scaricate ed installate l’SDK per Netduino, giunto alla versione 4.1.
In questo modo Visual Studio 2010 è pronto per scrivere e compilare programmi che verranno caricati sulla scheda Netduino. L’SDK installa anche i driver della scheda.

Sul sito web Netduino a questo indirizzo http://netduino.com/downloads/ potete trovare tutti i link aggiornati per scaricare il software necessario allo sviluppo.

Ora possiamo collegare il nostro Netduino al pc. Colleghiamo la scheda al pc tramite il cavo usb – micro usb, Windows installerà i driver del dispositivo.
Netduino viene alimentato dalla porta usb e il led pwr sulla scheda verrà acceso.

Offerte del giorno Amazon

Preferiti

Rimani aggiornato

Sondaggi

Sorry, there are no polls available at the moment.

Seguimi su Twitter