TUTOMICS: Tutorial di fumetti per entrare nel mondo dell’elettronica, dell’open hardware e del fai da te

Lo scopo di questa iniziativa è quello di sviluppare una serie di tutorial a fumetti che permette alle persone di tutte le età, cultura e genere di entrare nel mondo dell’elettronica, dell’open hardware e del fai da te in un modo divertente e flessibile.

Questi tutorial sono presentati come i fumetti per renderli più accessibili, reinventando il modo di presentare l’elettronica in modo da renderlo molto più attraente per coloro che credono ancora che questa disciplina sia noiosa o difficile da affrontare.

Per maggiori informazioni e per sostenere l’iniziativa fate click sul banner che segue.

Tutomics from Reflexiona.biz on Vimeo.

After-school programming


Desiderate aprire un club di programmazione a scuola anche se siete dei principianti?

Una bella iniziativa di codecademy che mette a disposizione l’After School Code Kit, un documento che vi aiuter� ad aprire il vostro club di programmazione e pianificare le attivit� di apprendimento vostre o della classe o del club del “dopo scuola”.

Ma perch� mai un giovane studente dovrebbero imparare a programmare?
La tecnologia sta cambiando radicalmente la nostra societ� e l’alfabetizzazione digitale � ormai una competenza fondamentale come la lettura e la scrittura.
Interagire con il mondo reale mediante la programmazione � qualcosa che affascina e coinvolge lo studente ed inoltre ne accentua le capacit� logiche/matematiche e di comunicazione.

Certamente un’idea interessante da usare per aprire le scuole al territorio, rendendole un vero luogo di sperimentazione e di apprendimento.

Strumenti musicali che suonano come un’orchestra

Diego Stocco è un fervente compositore, sound designer e performer dalle incredibili capacità artistiche. L’artista realizza composizioni digitali utilizzando strumenti musicali unici da lui creati, il risultato del suo lavoro è qualcosa di straordinario, potente ed incredibilmente creativo.

Per maggiori informazioni si consulti il sito di Diego Stocco.

Diego Stocco – Custom Built Orchestra from Diego Stocco on Vimeo.

Appunti di programmazione su Arduino: operazioni matematiche

min(x,y)

Calcola il minimo tra due numeri dati di qualsiasi tipo (nel senso di campo di appartenenza) e restituisce il più piccolo.

Parametri

x è il primo numero

y è il secondo numero

Risultato

il più piccolo tra x e y

value = min(value, 100); // imposta 'value' al valore più
                         // piccolo tra i due valori dati,
                         // 'value' o 100,
                         // assicurando che il valore
                         // non superi 100

max(x,y)

Calcola il massimo tra due numeri dati di qualsiasi tipo  (nel senso di campo di appartenenza) e restituisce il più grande.

Parametri

x è il primo numero

y è il secondo numero

Risultato

il più grande tra x e y

value = max(value, 100); // imposta 'value' al valore più
                         // grande tra i due valori dati,
                         // 'value' e 100,
                         // assicurando che il valore
                         // non superi 100

abs(x)

Restituisce il valore assoluto di x, che trasforma un numero negativo in un numero positivo.

Parametri

x: il numero

Risultato

x: se x è uguale o maggiore di 0

x: se x è minore di 0

Se x è uguale a 100 allora abs(100) restuiterà 100. Se x è uguale a -100 allora abs(-100) restituisce 100.

value = abs(-100); // alla variabile 'value'
                   // viene assegnato il valore 100

constrain(x, a, b)

Vincola un numero all’interno di un intervallo.

Parametri

x: il numero che deve essere vincolato (può essere di qualsiasi tipo)

a: il numero più piccolo dell’intervallo (può essere di qualsiasi tipo)

b: il numero più grande dell’intervallo (può essere di qualsiasi tipo)

Risultato

x: se x e tra a e b (ma diverso sia da a che da b)

a: se x è minore di a

b: se x è maggiore di b

sensVal = constrain(sensVal, 10, 150);
// limita il range del valore del sensore tra 10 e 150

map(value, fromLow, fromHigh, toLow, toHigh)

Rimappa un numero da un intervallo ad un altro intervallo

Parametri

value: valore da rimappare
fromLow: valore minimo dell’intervallo di partenza
fromHigh: valore massimo dell’intervallo di partenza
toLow: valore minimo dell’intervallo di arrivo
toHigh: valore massimo dell’intervallo di arrivo

Risultato

valore rimappato nell’intervallo toLow, toHigh

/* rimappa un valore analogico utilizzando 8 bit (da 0 a 255) */

void setup() {}

void loop()
{
  int val = analogRead(0);
  val = map(val, 0, 1023, 0, 255);
  analogWrite(9, val);
}

Si faccia riferimento alla lezione: Appunti di programmazione su Arduino: ingressi e uscite analogiche

Analizziamo il codice

int val = analogRead(0);

viene dichiarata val come variabile intera a cui viene assegnato il valore restituito da analogRead(0) che legge un valore di tensione applicato al piedino analogico 0 (la risoluzione è di 10 bit e quindi da 0 a 1023)

Il valore memorizzato in val viene rimappato dall’intervallo [0, 1023] all’intervallo [0, 255].

analogWrite(9, val);

Scrive sul piedino digitale 9 (piedino su cui è abilitato il PWM) il valore assunto dalla variabile val.

pow(base, exponent)

Calcola la potenza di un numero.

Parametri

base: numero (tipo float)

exponent: la potenza a cui è elevata la base (tipo float)

Risultato

Il risultato dell’ elevamento a potenza (tipo double)

sqrt(x)

Calcola la radice quadrata di un numero.

Parametri

x: il numero che può essere di un qualsiasi tipo

Risultato

la radice quadrata del numero (tipo double)

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

Installare l’IDE Arduino 1.0.1 su Ubuntu 12.04

Con l’avvio dell’anno scolastico ripartono i corsi di Alternanza Scuola Lavoro su Arduino per gli allievi di 4′ della sezione elettronica.
Quest’anno ho deciso di far utilizzare ai miei studenti l’ultima versione di Arduino la 1.01. La programmazione avverrà su PC con sistema operativo Ubuntu su cui ho da poco effettuato l’aggiornamento alla versione 12.04.

Problema: al primo avvio dell’IDE ho notato che non era possibile in alcun modo selezionare la porta seriale.

Come risolvere l’inconveniente?

On-line si trovano alcune soluzioni ma non risolvono completamente il mio problema.

In passato avevo superato il problema per Ubuntu 11.10, questi i tre post di riferimento:

Ma con Arduino 1.0.1 ed Ubuntu 12.04 bisogna agire in maniera un po’ diversa. Per rendere più chiaro il tutorial ripeterò alcune delle operazioni già eseguite nei post sopra citati.

Questo l’indice di esecuzione per la risoluzione del bug:

  1. installare Java
  2. installare la libreria AVR C
  3. scaricate Arduino 1.0.1
  4. riattivare la porta seriale (ttyACM0)

E’ presente inoltre un’ulteriore problema: l’avvio dell’IDE risulta molto rallentato. Mostrerò come velocizzare l’apertura del programma.

Continua a leggere