Arduino ai raggi X: cosa fare per renderlo professionale – Prima Parte

Arduino Uno

Il successo quasi senza confini di questa scheda ha coinvolto tutti. Ogni genere di smanettone, studioso, appassionato, dall'ingegnere fino al meccanico. Tutti si sono più o meno cimentati in progetti di difficoltà molto diverse tra loro per utilizzare al meglio questa scheda. Purtroppo, però, per farne uno strumento professionale, industrialmente affidabile, la strada è ancora davvero lunga. Oggi vediamo quali sono le carenze di questa scheda e come si possono risolvere alcuni dei suoi problemi con qualche piccolo stratagemma o accorgimento pensato su misura. Analizzeremo nello specifico (e risolveremo) vari problemi legati all'alimentazione, alla protezione degli I/O ed alla precisione dei segnali quando gestiti dalle periferiche. Non solo per makers 😉

Arduino è una scheda molto semplice da programmare ed è per questo che è molto utilizzata. Però, come dicevamo in apertura, ci sono alcuni problemi che devono essere risolti per poterla rendere anche una scheda affidabile e davvero versatile quando i progetti debbano avere un ambito di applicazione più professionale.

I problemi di alimentazione

Vi sarà certamente capitato di scrivere del codice "al volo", per poi rendervi conto che, dopo averlo caricato sulla scheda, aver guardato il LED lampeggiare ed aver atteso la conferma dell'upload, esso non funziona affatto. Controllare il codice, la sintassi, la corrispondenza del numero delle variabili e così via dicendo in queste situazioni non è servito a molto ed infatti il problema non avete capito quale fosse. Se vi siete trovati in questa situazione, sappiate che il vostro problema potrebbe essere di alimentazione!
La scheda lavora molto bene con segnali analogici e digitali ma probabilmente siete incappati in alcuni dei suoi "strani" problemi che, è innegabile, la affliggono e che sono di diversa natura.
Non appena alimentate la scheda, infatti, nella sezione di alimentazione della stessa (versione uno), per intenderci appena inserite il connettore coassiale, l'intero dispositivo viene polarizzato.

Analizzando lo schema elettrico (PDF) possiamo notare come Arduino possa essere alimentato sia direttamente dal cavo USB che dall'apposito plugin di alimentazione. I casi possibili quindi sono 3: alimentazione da USB, da plugin oppure entrambe.
Alimentazione USB: i 5V provenienti dalla connessione USB alimentano tutta la scheda tramite il mosfet T1 che viene attivato dal comparatore U5A perchè il segnale all'ingresso non-invertente non è presente. Questa condizione permane anche in caso di presenza dell'alimentazione da plugin, finchè quest'ultima non abbia raggiunto il valore di soglia impostato. Infatti il comparatore commutera quando (Vin/2 > 3V3). Quindi, considerando anche il diodo D1, l'alimentazione della scheda sarà collegata all'USB se la tensione Vin del plugin è inferiore a 7V3 (ricavato dalla formula (Vin-0,7)/2 > 3V3).
Alimentazione da plugin: questa alimentazione può variare da 6V a 20V (come riportato nelle specifiche di Arduino come valori limite e da 7V a 12V come valori raccomandati. Quando la scheda è sufficientemente alimentata dal plugin allora il mosfet T1 non sarà in conduzione, proteggendo la porta USB da ritorni di alimentazione.
La tensione di ingresso, dal plugin, giunge al diodo D1 e poi al regolatore U1 dal quale escono appunto i 5V regolati necessari per alimentare l'intera scheda ed i suoi componenti.
Alimentazione da entrambe le fonti: in questo caso l'alimentazione sarà presa dalla fonte che prevarrà, infatti come abbiamo visto sopra, il comparatrore U5A gestirà il mosfet, usato come switch, che si occupa di connettere o meno i 5V USB alla scheda.

Questo è quindi il principio di funzionamento dell'alimentazione della scheda Arduino Uno Rev.3.

Parlando di tensioni non possiamo non notare che proprio accanto al connettore coassiale sono presenti due condensatori elettrolitici da 47 uF, utile per immagazzinare energia e quindi livellare la tensione, quando la scheda è alimentata.

Sempre a proposito dell'alimentazione, le specifiche riportano che la massima tensione supportata in ingresso è pari a 20V mentre il limite di questi condensatori è di solo 16V. Questa è una discrepanza notevole e che potrebbe avere gravi implicazioni sul funzionamento della scheda.
I condensatori elettrolitici, infatti, corrono rischi notevoli se vengono spinti anche soltanto al limite delle loro possibilità. Figuriamoci se queste vengono superate.
Prima di procedere, vale la pena di riportare qui direttamente le caratteristiche riportate sulle specifiche di Arduino:

  • tensione operativa: 5 V;
  • tensione d'ingresso raccomandata: compresa tra 7 e 12 V;
  • tensione di ingresso (limiti): compresa tra 6 e 20 V;
  • numero di pin di I/O digitali: 14 (di cui 6 PWM);
  • numero di pin analogici di ingresso: 6;
  • corrente DC per pin: 40 mA;
  • corrente DC per pin a 3.3 V: 50 mA.

Quindi è fondamentale tenere a mente il fatto che esistono dei limiti massimi e delle caratteristiche operative consigliate che differiscono ovviamente dal massimo perché si trovano ampiamente all'interno del range massimo segnalato.

C'è scritto, inoltre, nelle specifiche di Arduino, che se si utilizzano più di 12 V, il regolatore di tensione potrebbe riscaldarsi fino al punto da danneggiare la scheda. Questo, nei fatti, vuol dire che è necessario lavorare sulla temperatura, considerando che siccome essa aumenta più o meno linearmente così come specificato nella seguente equazione

Tj=P x θja + Ta

allora c'è da valutare e pesare tutti i componenti di quest'equazione, ovvero i coefficienti della stessa. Qui il parametro che si vuole calcolare è la temperatura di giunzione (Tj) che aumenta in maniera proporzionale alla potenza in gioco (P) che viene moltiplicata per un fattore che è, in realtà, il coefficiente di resistenza termica tra la giunzione e l'ambiente circostante (θja) al quale valore viene sommato la temperatura attuale di lavoro (Ta).

È necessario, pertanto, fare una valutazione operativa completa sull'incidenza della temperatura sulla scheda.
In linea generale, noi sappiamo che uno dei grossi problemi, probabilmente il più grosso, della tecnologia allo stato solido è il fatto che riscalda e i dispositivi vanno raffreddati in maniera opportuna, pena degrado delle prestazioni, nella migliore delle ipotesi. Ed è proprio di questo che parleremo adesso.

La cosa migliore, per tutti sempre, è quella di utilizzare il proprio pollice. L'idea è: se lo puoi toccare, non è troppo caldo.
Potete quindi mettere il pollice sopra l'integrato di turno e cominciare a fornire tensioni crescenti, ovviamente sempre e soltanto entro i limiti!
Facendo variare la tensione di esercizio per diversi intervalli temporali si nota il generale riscaldamento dell'integrato.
Dopodiché, è anche importante caratterizzare quanto tempo l'integrato resta in funzione anche per capire quanto "regge" all'aumento di temperatura nelle prestazioni e quindi correlare la capacità di operare a temperature più elevate con la sua resa effettiva.
Si nota chiaramente che esiste un limite, in particolare ci possiamo aspettare che questo sia intorno ai 65°, oltre il quale le prestazioni degradano ma soprattutto si va incontro al rischio di danneggiamento dell'integrato prima della scheda.

Ovviamente questa è una prova spannometrica, per avere una risposta precisa bisogna applicare la formula utilizzando le specifiche del componente fornite dal datasheet e, sempre consigliato, verificare anche nella realtà con un alimentatore variabile ed una sonda di temperatura applicata sul regolatore.

Noi la prova l'abbiamo fatta. Considerando 30minuti come tempo per stabilizzare la temperatura ed una temperatura ambiente di 22 C° (quindi ottimale) abbiamo ottenuto questi gradi in relazione alle varie tensioni applicate e correnti erogate.

Assorbimento Base di 50mA - Temperatura esterna, sul case (la temperatura di giunzione è decisamente più alta)

12V - 55 °C
14V - 64 °C
16V - 72 °C

Assorbimento Base di 100mA - Temperatura esterna, sul case (la temperatura di giunzione è decisamente più alta)

12V - 74°C
14V - 85°C
16V - XX°C (prova non effettuata per non danneggiare il regolatore)

Considerando che Arduino è una scheda pensata per connettersi alle shield e nella maggior parte dei casi alimentarle, direi che la sua alimentazione è insufficiente per tale compito, basti pensare che la sola shield ethernet assorbe circa 200mA. Valore difficilmente sopportabile dal regolatore U1.

Inoltre, se avete un progetto con molti led, come se ne vedono tanti in rete, dovete tener presente che oltre un certo numero led (dipende dal singolo assorbimento) potreste aver problemi di assorbimento sull'alimentazione e quindi mandare in reset o addirittura bruciare il regolatore e/o il microcontrollore. Andrà quindi fatto un calcolo preciso sulla corrente assorbita che deve essere rapportata sia alla corrente massima erogabile dal micro che alla dissipazione del regolatore U1.

ATTENZIONE: non prendete queste righe come un'incitazione a provare senza criterio!

Di fatto, tornando a noi, la temperatura operativa ottimale può essere considerata valida intorno ai 50°. Questo vuol dire che, dal momento in cui è fissato l'importo di corrente e di tensione continua che si sta fornendo scheda, bisogna considerare che la corrente massima è pari a:

Imax = P / V = 500 mW / (Vin - 5V)

Una potenza di 500 mW vuol dire che, se abbiamo 5 V in ingresso, stiamo lavorando con 100 mA. Se la tensione in ingresso è pari a 12 V, ne risulta una corrente pari a 70 mA e se questo vi sembra strano, effettivamente avete ragione.
Questo valore non è accettabile.
Ovviamente questi limiti devono essere considerati in relazione a queste cifre. Dopodiché, caso per caso, progetto del progetto, bisogna confrontare i valori che si hanno con quelli teorici massimi supportati dalla scheda ed è proprio di questo che dobbiamo imparare a tener conto.

Per risolvere il problema del fatto che l'integrato si riscalda, basta pensare a raffreddarlo. Questa affermazione lapalissiana non è poi così evidente dal momento che la progettazione di un dissipatore, lo abbiamo visto poco tempo fa sul proprio su queste pagine è piuttosto delicata, complessa e deve tener conto di diversi fattori per garantire la più efficiente delle attività di dissipazione del calore. Questa soluzione dovrà tenere poi conto anche del tipo di regolatore di tensione con quale abbiamo a che fare, non ultimo per via del fatto che non tutti regolatori forniscono lo stesso livello di tensione.

Vale la pena precisare che 12 V è un valore piuttosto comodo per pilotare una serie di dispositivi circuiti integrati disponibili commercialmente e che possono avere diverse funzioni. Pertanto, potremmo non voler rinunciare all'utilizzo di questo valore di tensione. Come si fa a renderlo pienamente compatibile allora con Arduino se c'è questa che sembra rendere le due grandezze incompatibili?
Se non si desidera utilizzare il dissipatore, è comunque possibile pensare ad una scheda esterna. Il nuovo regolatore che lavori con questo valore di tensione potrebbe essere, di fatto, uno stadio di alimentazione esterno ad Arduino, perfettamente configurato e che si limiti a fornire i 5 V di cui la scheda bisogna ed i 12, invece, al resto del circuito da alimentare.
In questo modo la scheda non verrebbe sovraccaricata.

Sarebbe stato quindi anche opportuno che il regolatore di tensione utilizzato (NCP1117) fosse stato in un contenitore differente, rispetto all'attuale SOT223 montato sulla scheda Arduino. Dal link precedente potete trovare il relativo datasheet e quindi verificare che esistono package con una dissipazione migliore, come il DPAK sempre a montaggio superficiale.
Inoltre un regolatore compatibile, e ce ne sono molti, con un basso dropout (LDO) avrebbe contribuito ad un ulteriore abbassamento della dissipazione.

Ma abbiamo l'NCP1117 e quindi una soluzione pratica potrebbe essere di alimentare la scheda a 9V oppure interfacciare l'alimentazione con un ulteriore regolatore che fornisca 9V appunto, o meglio ancora 8V.

Le uscite analogiche

Quello che andiamo ad analizzare della sezione dei pin analogici riguarda aspetti leggermente più complicati rispetto a quelli che concernono (o intervengono) in semplici progetti. Questo ed il prossimo paragrafo, avrete modo di accorgervene, parlano di aspetti dei quali è molto difficile che si accorgano gli utenti alle prime armi, quelli molto inesperti. Questo perché lo scopo dell'articolo è cercare di rendere Arduino più professionale analizzando soprattutto problemi dei quali si accorgano utenti che cominciano, come si suol dire, a "contare i peli" alla scheda e a spingerla oltre i suoi limiti. Programmatori certamente più smaliziati o elettronici di lungo corso, soprattutto esperti di elettronica analogica. D'altronde, però, sapere prima è molto meglio che rimanere delusi poi, non trovate?

Ci sono i pin 3, 5, 6, 9, 10 e 11 della sezione digitale che sono marchiati con una ~, a differenza degli altri che non la riportano. Questo perchè che quelli, e soltanto quelli, "marchiati" possono produrre in uscita segnali PWM (Pulse Width Modulation). Anche se, in realtà, il controllo di questi pin può essere effettuato mediante la funzione

analogwrite(pin, value)

il cui nome suggerirebbe che ci sia un qualche modo "analogico" per controllarli, questi segnali NON hanno a che fare con un convertitori DAC. Ecco, questi, in realtà, forniscono uscite digitali e, quindi, quantizzate, non davvero analogiche.

Quando questo diventa importante?
Beh, è semplice: il convertitore è a 10 bit quindi questo vuol dire che i valori possibili vanno da 0 a 1023. E allora, se il numero di ampiezze "utili" per noi e per la nostra applicazione, è estremamente contenuto, non ci accorgeremo mai di questa limitazione. Se invece i valori di cui abbiamo necessità dovessero aumentare e diventarre confrontabili con la risoluzione, sentiremmo il problema.
Non soltanto "il numero di numeri" necessari è importante ma anche la precisione con la quale generiamo il numero. Per esempio, anche soltanto nel lampeggio di un LED (anche riferendoci al valore massimo di corrente di cui abbiamo parlato in precedenza) possiamo aver necessità di essere estremamente precisi.

La ragione per la quale necessario stare attenti è molto semplice: i pin con cui è possibile lavorare in PWM implementano in hardware un counter-timer che automaticamente genera forme d'onda senza necessità di interventi da parte del programmatore (tramite codice).
A differenza di quello che succede quando il PWM viene comandato via codice, il timer hardware produce esattamente impulsi che hanno quella temporizzazione con periodo stabile. Ora, il parametro value imposta il duty-cycle per, poi, moltiplicarlo per un numero complesso fra 0 e 255 (il che vuol dire che siamo parlando di 8 bit) che è un intero senza segno.
Quando parliamo del duty-cycle c'è da intendersi anche sulla notazione perché è possibile anche che siate abituati a riferirvi a questa cifra in percentuale normalizzata (per intenderci con un minimo di 0.0 ed un massimo di 1.0). Ad ogni modo, il concetto resta perfettamente identico.

Supponiamo di volere un duty-cycle pari al 30%:

0,3 x 255 = 76,5

Ci si pone, di fatto, il problema di sempre: qual è il valore più vicino? In questo caso poi siamo nella condizione di scegliere tra 76 e 77 quasi in maniera indifferente. Ci rendiamo conto che scegliere 76 implicherebbe, in realtà, un valore di 0.298 mentre scegliere 77 vorrebbe dire 0.30196. E allora? Questi valori vanno bene o vanno male?

Qui ci colleghiamo alla premessa iniziale: la risposta è che dipende dalla precisione, o meglio dall'imprecisione, che siete disposti a tollerare. Quanto potete essere di "bocca buona" dipende dal grado di precisione che il vostro specifico progetto richiede.
Siccome c'è un'incertezza sui valori misurati pari allo 0,4% del valore di fondo scala, c'è anche da valutare se tale incertezza sia effettivamente compatibile con il tipo di progetto che state portando avanti.

Per garantire la corretta alimentazione e la scrittura del valore desiderato, è possibile seguire un primo approccio,in cui imponiamo semplicemente valori alto o basso, chiaramente inseriti in un loop con delle temporizzazioni precise:

pinMode(10, OUTPUT);
analogWrite(11,LOW);
analogWrite(11,HIGH);

oppure, un secondo approccio in cui andiamo a specificare esattamente il valore che vogliamo inserire:

pinMode(10, OUTPUT);
analogWrite(11,130);

In questa seconda modalità PWM ci accorgeremo che i LED rispondono comunque bene. Questo perché la loro luminosità, o meglio l'intensità luminosa, dipende criticamente proprio dal valore che andiamo a scrivere sul pin. Tuttavia resta un fatto: l'occhio umano risponde, alla stimolazione luminosa, in maniera pressoché logaritmica e pertanto l'intensità luminosa del LED, in realtà, va misurata in ottave.

Tutto questo va riferito anche al fatto che, siccome il segnale (digitale) proviene da un PWM e potremmo utilizzare un filtro RC molto semplice per estrarre il valore medio dal treno di impulsi, allora nasce la presenza di un polo. La frequenza caratteristica è pari a

f=1/(2 π RC)

il che implica anche la figura del roll-off è fondamentale. Non è questo, però, l'aspetto fondamentale bensì il fatto che la frequenza può essere modulata, modificata (come effetto delle modifiche fatte in hardware) fino ad ottenere dei risultati migliori. Su che cosa? È semplice: in generale, aumentare la frequenza risolve la maggior parte dei problemi che stiamo sperimentando. Soprattutto non richiede ulteriore hardware aggiuntivo.

Il firmware, invece, se aumentare la frequenza è quello che vogliamo, non risulta di alcuna utilità, a meno di non pilotare direttamente l'uscita come abbiamo visto precedentemente, ma anche in questo caso avremo i limiti imposti dalla frequenza di lavoro del microcontrollore.
Non c'è modo quindi di farlo adeguatamente tramite software.
Sostanzialmente la cosa è trasparente all'utente.
Quindi, se abbiamo l'esigenza di farlo in software, l'unica è interpellare direttamente i Timer dei microcontrollori. In particolare stiamo parlando di Timer0, Timer1 e Timer2. Questi timer infatti sono la base dei tempi per i rispettivi PWM.

Tuttavia il filtraggio analogico non riduce l'errore, o meglio l'imprecisione, dello 0,4% su passi successivi di cui abbiamo parlato in precedenza.
Sia l'ATmega168 sia l'ATmega328 hanno counter-timer e hardware PWM che includono la maggior parte delle opzioni e delle features interessanti che l'interfaccia di Arduino mostra. Pertanto, vale la pena di leggere la documentazione ufficiale della Atmel in maniera tale da comprendere meglio come funziona e perché.

In realtà, sulla nuova versione della scheda, Arduino DUE, che è basata sul microcontrollore a 32 bit SAM3X8E, ci sono convertitori che hanno 12 bit che producono anche la bellezza di 12 output PWM ulteriori e che, differentemente da quanto succede per le uscite filtrate digitalmente, possono produrre più alte risoluzioni per l'estensione analogica con bande decisamente più accettabili. Questo si traduce nel fatto che si può lavorare molto meglio con l'audio rispetto a quello che si può fare con la UNO.

Ancora una volta, quindi, l'alimentazione è fondamentale. Questo perché i valori DC forniti sono proporzionali alle tensioni di alimentazione ai convertitori.
Vale la pena di sottolineare, a questo proposito, che la maggior parte dei progetti, specie quelle amatoriali, si basa certamente sull'alimentazione che proviene dall'USB dei computer. Questa non è necessariamente una soluzione ottimale perché spesso siamo solo vicini ai 5 V e comunque non è possibile effettuare un controllo estremamente fine della corrente che viene erogata tramite queste connessioni.

I pin digitali e analogici

E' necessario connettere, in maniera corretta, input e output del microcontrollore in maniera tale che il progetto possa funzionare al meglio. A differenza di quanto succede nel mondo ideale, il mondo reale impone dei requisiti sia sulla circuiteria esterna sia su Arduino che troppo spesso vengono ignorati. Ed, esattamente come per le altre considerazioni fatte, è possibile verificare effetti indesiderati sia sui dati sia sulla scheda che rischia, tra le altre cose, potenzialmente, di essere danneggiata.
A questo punto, vale la pena di analizzare i pin in maniera tale da valorizzare anche il progetto.

I 6 pin analogici d'ingresso di Arduino, ovvero quelli numerati da A0 ad A5, possono anche servire da uscite, dal momento che anche questi sono programmabili e potrebbero essere impiegati come pin di I/O general purpose.

Molti dei problemi che si verificano con i progetti su Arduino vengono fuori da eventuali interazioni tra il circuito esterno e l'hardware provvisto per microcontrollori sulla scheda.
Per esempio, anche se generalmente pensiamo che i pin digitali abbiano sempre la possibilità di lavorare fra una tensione minima pari a 0 V ed una massima pari a VCC = 5V, in realtà non è esattamente così. Soprattutto non si riesce ad andare con precisione rail-to-rail.
Facendo test e misure si riesce a scoprire che, in particolare, il limite minimo sembra essere 0,5 V mentre per quanto riguarda il limite superiore parliamo di un massimo di 5,5 V.
L'intervallo totale effettivo rilevabile risulta essere compreso tra -0.5 e 5.5 V. Questo può causare dei problemi quando abbiamo il livello 0 V come riferimento. In particolare è possibile che ci siano feedback di correnti negative che possono anche creare dei danni non indifferenti alla scheda.
Se utilizziamo una sezione di alimentazione per un'eventuale espansione del nostro progetto, sarà necessario utilizzare dei diodi, magari degli Zener, per limitare questi fenomeni al massimo.

In realtà uno degli aspetti più interessanti è rappresentato anche dal ruolo di ciascun pin. Come abbiamo detto, scrivendo un firmware opportuno, la funzione di tutti gli I/O può essere facilmente personalizzata. Tuttavia, quando interviene un evento di RESET, salvo specifiche condizioni, ciascuno di essi torna ad avere la funzione che aveva originariamente. Ergo è assolutamente indispensabile essere sicuri di quale funzione ciascun pin stava svolgendo prima di adoperare il circuito.

Le condizioni di RESET, in realtà, possibili sono tre: la prima occorre quando viene meno l'alimentazione del circuito, ovviamente. La seconda è quando si effettui un reset via software mentre la terza corrisponde alla pressione del pulsante predisposto sulla scheda.

Come tutti circuiti digitali, esistono valori di tensione notevoli relativi alla specifica famiglia logica. In particolare stiamo parlando di VIL, VIH, VOL e VOH. Sono valori caratteristici che corrispondono ai minimi e massimi delle tensioni in ingresso ed in uscita corrispondenti ad una commutazione. Talvolta può capitare che ci sia corrente all'interno anche se non c'è niente connesso alla scheda.
Considerati i limiti delle famiglie logiche, le loro caratteristiche e quindi le specifiche tensioni già nominate, le correnti di leakage in input potrebbero esserci anche per pin impostati per valori logici "LOW". A maggior ragione questo vale se invece il pin è "alto". Un valore notevole, ed anche frequente, per questa condizione potrebbe essere 1 uA; ancora una volta, rispetto allo specifico sistema, questo potrebbe essere troppo grande oppure assolutamente ininfluente.

Una sorgente di questo genere di interferenze potrebbero essere i condensatori. Anche piccole cariche accumulate all'interno dei condensatori elettrolitici possono risultare da un campo elettrostatico esterno, dall'interruzione brusca di corrente oppure ancora da un forte segnale a radiofrequenze, da interferenze, ancorché a bassa frequenza (linee di segnale a 50 Hz, per esempio).
La documentazione, ma l'esperienza soprattutto, suggeriscono di utilizzare dei semplici fotodiodi oppure delle capacità commutate per misurare valori di corrente effettivamente presenti.

Continua...

 

Quello che hai appena letto è un Articolo Premium reso disponibile affinché potessi valutare la qualità dei nostri contenuti!

 

Gli Articoli Tecnici Premium sono infatti riservati agli abbonati e vengono raccolti mensilmente nella nostra rivista digitale EOS-Book in PDF, ePub e mobi.
volantino eos-book1
Vorresti accedere a tutti gli altri Articoli Premium e fare il download degli EOS-Book? Allora valuta la possibilità di sottoscrivere un abbonamento a partire da € 2,95!
Scopri di più

22 Comments

  1. alex272 alex272 14 gennaio 2014
  2. Emanuele Emanuele 14 gennaio 2014
  3. Giorgio B. Giorgio B. 14 gennaio 2014
  4. Giorgio B. Giorgio B. 14 gennaio 2014
  5. Giorgio B. Giorgio B. 14 gennaio 2014
  6. Piero Boccadoro Piero Boccadoro 14 gennaio 2014
  7. Piero Boccadoro Piero Boccadoro 14 gennaio 2014
  8. Piero Boccadoro Piero Boccadoro 14 gennaio 2014
  9. Marven 14 gennaio 2014
  10. Piero Boccadoro Piero Boccadoro 14 gennaio 2014
  11. h3nk3relett 14 gennaio 2014
  12. adrirobot 14 gennaio 2014
  13. alex272 alex272 14 gennaio 2014
  14. paolo.barbuti 16 gennaio 2014
  15. Piero Boccadoro Piero Boccadoro 16 gennaio 2014
  16. Marven 22 gennaio 2014
  17. Emanuele Emanuele 23 gennaio 2014
  18. Emanuele Emanuele 23 gennaio 2014
  19. Fabio Fioravanzo 22 febbraio 2014
  20. Fabio Fioravanzo 22 febbraio 2014
  21. leleastro 2 aprile 2014
  22. Emanuele Emanuele 3 aprile 2014

Leave a Reply

Flip&Click Arduino e Python compatibile

Fai un abbonamento Platinum (EOS-Book + Firmware), ricevi in OMAGGIO la nuova Flip&Click, inviaci il tuo progetto e OTTIENI IL RIMBORSO