Electro-Calc

Electro-Calc è un software gratuito per sistemi Windows sviluppato per facilitare l’ideazione di progetti elettrici ed elettronici. Non richiede installazione e può funzionare direttamente da chiavetta USB. L’interfaccia utente del software non è in lingua inglese, ma l’utilizzo è comunque semplice per chi ha conoscenze elettroniche.

Mettiamo in ordine il codice creato con Arduino, usiamo: Upload And Retrieve Source

Vi segnalo Upload And Retrieve Source un’estensione all’IDE di Arduino di cui ho trovato segnalazione su IDEO Labs (consiglio di aggiungere ai vostri bookmarks). L’estensione è utilissima e sicuramente proverò ad utilizzarla per rendere gli sketch pubblici su Github, ma anche recuperarli in un secondo momento, in modo semplice direttamente dall’IDE Arduino. Sicuramente un modo per tenere ordinato ed aggiornato il codice che produciamo.
Seguite il link per leggere il tutorial che vi spiega come usare l’estensione.

Appunti di programmazione su Arduino: aritmetica


Gli operatori aritmetici includono: addizioni, sottrazioni, moltiplicazioni e divisioni.
Queste operazioni restituiscono, rispettivamente: la somma, la differenza, il prodotto e il quoziente tra i due operandi.

y = y + 3;
x = x -7;
i = j * 6;
r = r / 5;

L’operazione viene eseguita usando il tipo dei dati degli operandi, così ad esempio l’operazione 9/4 (dove 9 e 4 sono stati in precedenza dichiarati di tipo intero) darà come risultato 2 e non 2,25, appunto perché 9 e 4 sono stati dichiarati interi e quindi non si avrà un risultato con punto decimale.

Questo significa anche che l’operazione può causare un overflow se il risultato eccede il valore massimo che può essere memorizzato con il tipo di dato che si sta utilizzando.

Se si sta eseguendo un’operazione tra operandi di tipo diverso, per il calcolo verrà usato il tipo di dati più grande.

Ad esempio se uno degli operandi è di tipo float e l’altro è di tipo int verrà utilizzato il calcolo in virgola mobile per il calcolo.

Bisogna quindi scegliere la dimensione dei tipi delle variabili in modo appropriato in modo che i risultati non vadano in overflow.

E’ opportuno sapere sempre con esattezza i valori che ogni volta la variabile assume, positivi e negativi, ad esempio: (0 – 1) oppure (0 – -32768).

Per la matematica che usa frazioni si dovranno utilizzare variabili di tipo float, ma bisogna essere consapevoli degli svantaggi che provoca questa scelta: dimensioni grandi dei numeri (necessità di maggiore memoria per i ccalcoli), calcoli più lenti.

Nota: potete utilizzare il cast operator per convertire il tipo di una variabile in un altro.

Ad esempio:

(int)myFloat

converte immediatamente la variabile myFloat in tipo intero.

Ad esempio:

i = (int)3.6

sarà uguale a 3

Assegnazioni composte

Le assegnazioni composte combinano le operazioni aritmetiche con assegnazioni di variabili e vengono largamente usate nei cicli for. Le assegnazioni composte più comuni includono:

x++  // uguale a x = x + 1, incrementa x di +1
x--  // uguale a x = x - 1, decrementa x di -1
x+=y // uguale a x = x + y, incrementa x di +y
x-=y // uguale a x = x - y, decrementa x di -y
x*=y // uguale a x = x * y, moltiplica x per y
x/=y // uguale a x = x / y, divide x per y

Nota: per esempio, x*=3 moltiplica per tre il valore precedente di x e riassegna il risultato a x.

Operatori di confronto

Il confronto tra variabili o costanti è spesso utilizzato nelle istruzioni if, while ma anche nei cicli for, per verificare se una determinata condizione è vera. Gli operatori di confronto sono:

x==y // x è uguale a y
x!=y // x è diverso da y
x>y  // x è maggiore di y
x>=y // x è maggiore o uguale a y

Opratori logici
Gli operatori logici vengono usalmente utilizzati per confrontare due espressioni e restituiscono un valore TRUE (vero) o FALSE (falso).

Ci sono tre operatori logici:

AND logico:

if (x>0 && x<5) // vera se solo se entrambe le espressioni sono vere

OR logico:

if (x>0 || y>0) // vero se una delle due espressioni è vera

NOT logico:

if (!x>0) // vera solo se l'epressione è falsa

Per le lezioni precedenti consultare la sezione Appunti di programmazione che trovate nella pagina Arduino di questo sito.

Intervista “doppia” a Massimo Banzi e Sergio Tanzilli

Ricevo la segnalazione dalla rivista Elettronica In, che ringrazio, della doppia intervista realizzata a Massimo Banzi e Sergio Tanzilli che consiglio di vedere. Una conversazione di poco più di 5 minuti in cui è evidente la passione nell’elettronica e l’amore per il proprio lavoro, certamente un bel messaggio a chi desidera fattivamente “fare e costruire” il proprio futuro.

A margine di World Wide Rome (www.worldwiderome.it), Simone Majocchi intervista per ElettronicaIn, in stile “Le Iene”, due personaggi di spicco dell’elettronica italiana: Massimo Banzi, animatore del progetto open-source Arduino (www.arduino.cc) e di tante altre iniziative e Sergio Tanzilli, co-fondatore di ACME Systems (www.acmesystems.it) e fautore dei sistemi Linux embedded.

Tutti i modi per distruggere Arduino: puntata 1

Non preoccupatevi questo non vuole essere un modo alternativo per divertirsi e misurare i limite estremi di Arduino, magari facendolo cadere da altezze incredibili o sottoponendolo a limiti estremi di temperatura (cosa che per altro ho fatto 🙂 ), ma un mia personale raccolta di appunti che derivano dalle richieste che mi giungono dai lettori del mio blog, da articoli letti on-line e dall’incredibile fantasia dei miei allievi che trovano sempre nuovi modi per far circolare gli elettroni dove non dovrebbero andare.

Quindi parliamo di collegamenti non corretti.

Un buon modo per danneggiare Arduino è collegare direttamente un qualsiasi piedino I/O impostato con uscita HIGH a GND, in questo caso si ha il passaggio di una sovracorrente che distrugge il piedino.

Se consultate i datasheet del microcontrollore viene specificato che la corrente massima che può circolare su ogni piedino è di 40mA, la resistenza interna su ogni piedino è di soli 25 Ohm ed un cortocircuito (colegamento diretto tra +Vcc e GND) può far fluire una corrente di 200 mA più che sufficienti per danneggiare la scheda.

Perché dico 200 mA?

Dalla legge di Ohm: V=R*I da cui I=V/R

allora, sapendo che HIGH equivale a +5V ed essendo la R del pin di 25 Ohm avro che:

I = 5/25 = 0,2A = 200 mA

Di seguito porzione dello schema elettrico della scheda Arduino UNO (link a schema completo)

Piccola parentesi meccanica.

La scheda è sufficientemente resistente come faccio a dirvi questo?
Ho disposto un Arduino UNO ad un’altezza di circa 2,5 m per realizzare un controllo presenze in una stanza mi è caduta di piatto lato componeti, non è successo nulla… molta fortuna? Sicuramente 🙂