Tutorial Arduino

Impara a programmare Arduino in modo semplice seguendo i miei articoli Tutorial Arduino. Seguendo passo passo le istruzioni dei miei articoli potrai imparare in modo semplice  e rapido a sviluppare i tuoi progetti

MKR1000 gpio speed test

Misurare frequenza di commutazione di una linea gpio della MKR1000

La MKR1000 è una scheda molto compatta, dal prezzo contenuto, che permette di realizzare interessanti progetti IoT. Questa scheda è basata sul SoC ATMEL ATSAMW25 (famiglia di dispositivi ATMEL Wireless) ed è l’insieme di questi moduli:

  • MCU SAMD21 Cortex-M0+ 32bit operante alla frequenza di 48MHz
  • Modulo Wi-Fi WINC1500 a basso consumo (2.4GHz IEEE® 802.11 b/g/n)
  • Crittografia per comunicazioni sicure basate sul chip ECC508
  • Antenna implementata sul PCB

La scheda possiede anche un caricabatterie per batterie Li-Po rendendola quindi adoperabile in ambienti dove non è presente una fonte di energia costante.
In questo articolo andremmo a misurare la velocità di commutazione di un pin digitale eseguendo lo stesso codice che ho usato per gli altri gpio speed test.

Questo test è puramente indicativo, è un metodo molto semplice che eseguo per fare un piccolo paragone tra le schede in mio possesso.

La figura seguente mostra lo schema elettrico che ho utilizzato:

MKR1000 Gpio SPeed Test

Continua a leggere

Arduino come utilizzare l’RTCC MCP7940N

Accedere ai registri dell’MCP7940N usando Arduino

Molti tutorial sull’utilizzo di un RTCC (Real Time Clock and Calendar) con Arduino riguardano l’integrato DS1307 in quanto la sua diffusione è data dalla disponibilità di diverse librerie, dal costo contenuto e dalla sua integrazione in numerose shield. Nonostante ciò sul mercato esistono molti altri dispositivi interessanti che svolgono funzioni aggiuntive e hanno precisioni molto più elevate riguardo al conteggio del tempo.

Mi sono trovato a realizzare dei progetti che come specifica richiedevano una alimentazione di 3,3V, dato che il DS1307 lavora tra i 4,5V e i 5,5V ho dovuto ripiegare su un altro rtcc. Quello che ho scelto è l’MCP7940N prodotto da Microchip. Nonostante non sia disponibile la versione PDIP ho scelto questo integrato perché oltre a lavorare con tensione di alimentazione di 3,3V ha alcune altre funzioni interessanti come la possibilità di impostare due allarmi e la possibilità di calibrare l’orologio per poter aumentare la sua precisione nel conteggio del tempo.

Continua a leggere

Genuino 101 gpio Speed Test

Misura della velocità di commutazione di un pin della Genuino 101

Ho acquistato la Genuino 101 di recente e ho realizzato un semplice gpio speed test per misurare e soprattutto paragonare la velocità di commutazione di un pin digitale rispetto alle altre schede in mio possesso. Lo schema elettrico che ho realizzato per effettuare la misura è il seguente:

Genuino 101 Gpio Speed test

Il codice caricato sulla Genuino 101 permette tramite un ciclo while di eseguire continuamente la commutazione, da uno stato alto ad uno basso, di un pin della scheda:

Continua a leggere

Arduino gps ottenere coordinate geografiche e orario

Come utilizzare un ricevitore gps con Arduino

Il ricevitore GPS (Global Positioning System) è oggi un dispositivo alla portata di tutti, dal costo contenuto e dal semplice utilizzo. Questo articolo vuole essere una guida introduttiva all’interpretazione dei dati di posizione forniti dal ricevitore gps, senza utilizzare librerie esterne. Ho utilizzato una scheda Arduino/Genuino UNO e il modulo Adafruit Ultimate GPS Breakout v3 (vedi l’articolo su Amazon).

arduino Gps

Il modulo ha una sensibilità di ben -165dBm (in tracking), questo significa che riesce a rilevare segnali di 1.25nVolt, ha un refresh di 10 Hz e permette di ‘inseguire’ 22 satelliti.

Questo dispositivo rende semplice la gestione del tracking dei satelliti ed del calcolo della posizione. I dati vengono restituiti sul canale seriale TTL, alla frequenza di 1Hz. E’ sufficiente collegarsi alla seriale per poter leggere i dati. I dati principali sono quelli di posizione (espressa in Latitudine e Longitudine) la quota e l’orario zulu ma sono presenti anche altre informazioni relative ai satelliti utilizzati per il fix.

Continua a leggere

Come usare il sensore di luminosità TSL2591

Misurare l’intensità luminosa col sensore TSL2591

Il sensore TSL2591 permette di misurare l’intensità luminosa di un ambiente. Ha una buona capacità di campionamento ed in particolare permette con un solo sensore di rilevare sia lo spettro IR sia quello visibile. Il range di misurazione va da 188 Lux sino ad arrivare ad 88000 Lux (unità di misura Lux).
Nella figura seguente potete osservare il diagramma del circuito:

TSL2591 Diagramma di funzionamento

La conversione dei due canali viene eseguita contemporaneamente. Al termine del ciclo di conversione i dati vengono memorizzati nei relativi registri (CH0 Data e CH1 Data). Dopo la memorizzazione dei dati viene automaticamente eseguita la misurazione successiva.

Continua a leggere

Arduino. Utilizzare la rete GSM per progetti IoT

Come utilizzare Arduino e rete gsm per progetti IoT

Sentire parlare di progetti IoT è quasi diventata una moda e nonostante la realizzazione di progetti più o meno interessanti, possiamo confermare che il mercato è in forte espansione e l’industria sta investendo ingenti capitali. Uno degli aspetti chiave dell’internet delle cose è sicuramente la remotizzazione dei dispositivi. Vengono perciò progettate reti dedicate, come la rete Sigfox oppure il sistema LoRa caratterizzate da lunghe distanze operative e bassi consumi.
Un altro canale di comunicazione che sta ritornando in uso è la rete gsm, forte della sua alta percentuale di copertura del territorio nazionale e un uso ormai semplificato grazie a libreria pronte all’uso.
Nonostante i moduli GSM abbiano un consumo energetico maggiore rispetto a quelli SigFox e LoRa, rimane comunque un sistema molto valido soprattutto in attesa che anche nel nostro paese vengano realizzate reti IoT dedicate.

Esistono diverse shield gsm o moduli stand alone che permettono di costruire circuiti capaci di dialogare tra loro a grandi distanze. La shield ufficiale Arduino è da tempo indisponibile, nonostante esiste una seconda versione, viste le diatribe tra le due società Arduino, ho preferito usare un altro prodotto ed in particolare quello sviluppato da Mikroelektronica che si basa sul modulo M95A perché  ha un costo contenuto ed è compatibile con la libreria ufficiale disponibile nell’ide sviluppato da Arduino.cc.

Continua a leggere

Arduino, Time, TimeAlarms e DS1307RTC

Come gestire il tempo con Arduino

I microcontrollori funzionano grazie ad una sorgente di clock che permette di temporizzare e sincronizzare tutti i moduli che lo compongono. Il clock è un segnale con una frequenza fissa e stabile tipicamente prodotta da un oscillatore al quarzo. Questo segnale è la base per tutte quelle applicazioni che devono gestire date e orari. In effetti esistono molte applicazioni in cui la gestione del tempo è il fattore principale, pensiamo a tutti quegli automatismi che vengono attivati in funzione dell’ora e della data corrente o che devono compiere delle azioni cicliche.
La gestione del tempo viene affidata a librerie esterne all’Arduino IDE, on line troviamo decine di progetti, quella che io utilizzo è la libreria Arduino Time scritta da Michael Margolis. Questa libreria comprende le classi Time, TimeAlarms e DS1307RTC, con cui è possibile avere un controllo pressoché completo sulle data e sull’orario.

La sorgente di clock alla base della generazione del dato di tempo può essere quella interna al microcontrollore oppure quella gestita da un circuito esterno, tipicamente chiamato Real Time Clock(RTC) come l’itegrato DS1307.
La differenza sostanziale è che usando un RTC avremmo sempre a disposizione il tempo e la data correnti poiché questo circuito tiene in memoria il conteggio impiegando una batteria tampone. Quando la base dei tempi è il clock interno del mirocontrollore, avremo il vantaggio di risparmiare sul costo dell’hardware esterno, ma purtroppo in caso di reset o mancata alimentazione del circuito, la perdita del conteggio. Quindi quando il nostro progetto ha bisogno di avere una fonte temporale sicura è consigliato l’uso di un circuito RTC. Per tutte le applicazioni di test possiamo invece utilizzare il conteggio interno del microcontrollore.

Continua a leggere

Arduino Day 2015 in Sardegna

Arduino Day 2015 si festeggia il compleanno di Arduino

Due gli eventi sardi per festeggiare la scheda di prototipazione creata da M. Banzi e Co. Le manifestazioni sono state organizzate dal Fablab Sardegna Ricerche e dall’Arduino User Group Cagliaritano. Quello a cui ho assistito è stato ospitato dall’istituto superiore Buccari Marconi di Cagliari in collaborazione col Fab Lab Sardegna Ricerche.

Arduino day 2015 cagliari sardegna

Oltre alle ormai onnipresenti stampanti 3D, tra le quali una realizzata dagli studenti dell’istituto, sono stati presentati anche diversi progetti di domotica e automazione.

Continua a leggere

Preferiti
Rimani aggiornato

Sondaggi
Sorry, there are no polls available at the moment.
Seguimi su Twitter