Archivi tag: arduino

Arduino: effetti luminosi per rendere attraente la lezione

Ormai � da tempo che svolgo i mie corsi su Arduino e gli allievi stanno diventando sempre pi� esigenti. Mi accorgo che andando avanti con le lezioni, gli allievi hanno l’esigenza, legittime, di realizzare esperienze di laboratorio sempre pi� attinenti al mondo reale che loro conoscono. Qualche anno fa era sufficiente mostrare come era semplice variare il colore di un diodo led RGB per avere interesse ed attenzione duratura, ci� mi permetteva di conseguenza di dettagliare alcuni aspetti di programmazione che se non spiegati con Arduino sarebbero risultati pi� difficili da comprendere, ma ora per mantenere lo stesso livello di attenzione � necessario aggiungere altri elementi di sensibilizzazione.

Maggiori pretese e quindi fin dalle prime lezioni si vuole “la sorpresa tecnologica”…

mamma mia quanto � faticoso fare l’insegnante!

Sono in quel periodo del corso in cui si accendono il led con Arduino in tutte le maniere possibili, dal blink al fade, in sequenza e in molti altri modi, ma alla lunga, mi rendo conto, la cosa pu� diventare un po’ “noiosetta”, vorrei evitare il pi� possibile l’effetto “sbadiglio” 🙂 e quindi ho pensato di modificare le prime esperienze con qualcosa di pi� coreografico.

Tutto nasce da alcune idee che ho sulla realizzazione di una struttura semplificata (ad incastro) per la realizzazione di un kit robotico basato su Arduino da usare a scuola e da realizzare con materiali di basso costo di facile reperibilit�, sto costruendo alcuni prototipi usando il plexiglass.

E proprio mentre manipolavo il plexiglass ho avuto l’idea di utilizzare questo materiale per nuove esperienze che fanno uso di led.

Ho voluto condividere questa bozza di lezione con voi in modo che se vorrete potrete darmi suggerimenti o alternative che potranno essere in futuro sfruttate a scuola.

Tutti sapete che quando la luce passa attraverso due materiali diversi, come tra l’aria e l’acqua oppure tra l’aria e la plastica, subisce rifrazione, effetto tipico che potete notare quando ad esempio mettete una cannuccia in un bicchiere d’acqua, si nota che la cannuccia nell’acqua sembra piegata.
Sfruttiamo questo fenomeno per far cambiare direzione alla luce che attraversa uno strato di plexiglass e la variazione di percorso della luce viene realizzata incidendo (graffiando) la superficie di plastica, cos� facendo i raggi luminosi prodotti da diodi led che colpiscono la zona incisa si rifletteranno (cambiano direzione) provocando un effetto visivo molto bello.

Poich� siamo in periodo natalizio l’idea potrebbe essere quella di realizzare una piccola insegna su cui scrivere “Buone Feste” facendo variare il suo colore in maniera ciclica.

Scopo dell’esperienza:

reciclando materiali di uso comune reperibili a scuola, realizzare un’insegna luminosa che auguri “Buone Feste” ai visitatori della scuola.
Tempo di realizzazione 3 ore (max).

Materiali:

  • plexiglass (misure a piacere nel mio caso inferiori alla lunghezza massima di una breadboard)
  • piccolo trapano con punta per incisione
  • breadboard
  • Arduino UNO
  • 2 diodi RGB (nel mio caso ad anodo comune)
  • 4 resistenze da 82 ohm
  • 2 resistenze da 150 ohm
  • porta diodi (per evitare la saldatura diretta su millefori dei LED)
  • millefori
  • mammut (usati come supporto a scorrimento – vedi foto)
  • pezzi metallici per blocco insegna (ho usato delle punte da saldatore)

Vi state chiedendo perch� ho usato i mammut e le punte da saldatore?
Perch� nel magazzino della scuola ho trovato una scorta infinita e quindi mi sembrava uno spreco non usarli 🙂

Continua a leggere

Sgridato da un allievo – sistemazione banner WebApp Arduino

Sono stato sgridato da un mio allievo 🙂

Ma Prof. è mai possibile che per trovare la sua WebApp bisogna scrollare tutta la pagina?

E come dargli torto…

Aggiunto banner in colonna destra.

WebApp Arduino – le mie lezioni di programmazione su Arduino in formato portable

La necessità di convertire le lezioni di programmazione su Arduino in una WebApp nasce dalla mia personale esigenza di sperimentare nuove tecniche di formazione improntate su una filosofia Open Source e sulla libertà di apprendere sempre ed in ogni luogo. Ritengo lo smartphone, più che il tablet, l’oggetto tecnologico più utilizzato da uno studente e disegnare una didattica che utilizza anche questo strumento deve, a mio parere, essere presa in seria considerazione, soprattutto perché l’apprendimento “portable” è istantaneo e può essere fruito comodamente in qualsiasi momento.

Da sempre, come più volte ho avuto modo di dire su queste pagine, assimilo il mio cellulare ad un “tricorder” che mi assiste e mi aiuta nella risoluzione di problemi e partendo da questa banale osservazione ho pensato di fare i primi esperimenti realizzando una WebApp su alcuni dei contenuti di questo blog che vengono consultati moltissimo dai lettori del sito.

In questa settimana ho studiato quale potesse essere il modo più rapido e meno dispendioso per creare documentazione didattica, ma anche applicazioni interattive su smartphone che potessero aiutarmi nel mio lavoro.

In genere quando si pensa ad applicazioni per dispositivi mobili si immagina di operare con applicazioni native, cioè usabili solamente da uno specifico dispositivo e quindi per supportare più dispositivi (iOS, Android, ecc…) bisognerebbe implementare la propria App su più sistemi operativi.

Per gli impiegni e per le risorse (in tempo e denaro) attuali di cui dispongo ho necessità di giungere in modo veloce al risultato e il miglior compromesso è, per ora, usare i framework per applicazioni web mobile, che possono fornire un’esperienza molto vicina a quella delle applicazioni native, con il vantaggio che si riesce ad essere “compatibili” su un buon numero di dispositivi e sistemi operativi diversi.

Il framework che ho utilizzato è jQuery Mobile compatibile con molte piattaforme, una griglia completa di compatibilità la potete trovare seguendo il link: Mobile Graded Browser Support.

Ho creato la WebApp in tre giorni, districandomi tra lavoro ed impegni familiari e sicuramente in essa potrete ritrovare alcune imperfezioni di fruizione o di contenuto, per questo me ne scuso fin d’ora, sarà mia premura correggere gli errori che mi segnalerete.
Ho pensato ad una App fruibile da cellulare iOS ed Android, l’uso su tablet non è ottimizzato, ma possibile (penserò più avanti ad una nuova release).

Per usare la WebApp Arduino collegatevi al seguente link:

www.maffucci.it/m/arduino/

Di seguito le pagine che in successione vi vengono mostrate.

Collegandovi al link sopra indicato vedrete la pagina al “passo 1” e dopo qualche secondo, “passo 2”, comparirà il bookmark bubble che vi proporrà di installare l’applicazione sul vostro iPhone (in realtà ciò che viene installato è un link alle pagie on-line):

Accettando di installare l’App vi verranno proposte le schermate “passo 3” e “passo 4”:

A questo punto verrà aggiunta l’icona “Arduino” come da “passo 5” e il tap sull’icona vi consentirà di aprile l’App come una applicazione nativa:

I passi per sistema operativo Android sono similari con l’unica differenza che non apparirà all’avvio il bookmark bubble.

All’interno troverete l’elenco delle lezioni e i link che vi condurranno direttamente alla pagina di riferimento Arduino su questo blog e al reference on-line del sito Arduino.cc, inoltre da tutte le pagine potrete inviare segnalazioni.

Nei prossimi giorni varierò ulteriormente le pagine aggiungendo contenuti ed ottimizzando il codice dell’App.

Spero che questo mio lavoro possa essere di vostro aiuto.

Un caro saluto.

lezione 01: Incominciamo con Arduino Due

Per quanto riguarda gli aspetti tecnici della scheda vi rimando al mio primo post su Arduino Due da cui potete ricavare tutte le informazioni sulla disposizione dei pin sulla scheda.

In questa prima lezione spiegherò come effettuare l’installazione dell’IDE in ambiente Mac OS X Lion e come procedere per effettuare il primo test.

Per una breve spiegazione sull’installazione su Windows (Xp e 7) seguite il link.

Effettuate il download dell’IDE per Arduino Due per il vostro sistema operativo seguendo il link

Continua a leggere

Appunti di programmazione su Arduino: numeri casuali

randomSeed(seed)

Imposta un valore di partenza per generare un numero casuale.

randomSeed(value); // assegna a value un valore casuale

Poiché Arduino non è in grado di creare un vero numero casuale la funzione randomSeed consente di inserire una variabile, una costante o un’altra funzione casuale per generare numeri “casuali” ancora più casuali 🙂
randomSeed viene utilizzata come base di partenza per generare un numero casuale, può essere utilizzata in diversi modi associandola ad altre funzioni, come ad esempio utilizzare il valore restituito da millis() funzione che restituisce il numero di millisecondi da quando la scheda Arduino è in funzione, o ancora con analogRead() per leggere il rumore elettrico attraverso un pin analogico, in questo modo trattandosi di rumore, che varia in modo caotico, la analogRead() restituirà un valore “abbastanza” casuale.

random(max)
random(min, max)

La funzione random permette di restituire numeri pseudo-casuali in un intervallo specificato tra un valore minimo e massimo.

value = random(100, 200); // assegna a 'value' un valore casuale
                          // compreso tra 100 e 200

Nota: utilizzare questa funzione dopo aver utilizzato la funzione randomSeed().

L’esempio che segue crea un numero casuale compreso tra 0 e 255 e fornisce un segnale PWM su un pin PWM uguale al valore casuale:

int randNumber; // variabile usata per memorizzare il valore casuale
int led = 10;   // un led con in serie una resistenza da 220 Ohm
                // inserito sul pin 10

void setup(){}  // non e' necessaria nessuna configurazione
void loop()
{
   randomSeed(millis());         // imposta millis() come base per
                                 // generare un numero
                                 // casuale da 0 a 255
   randNumber = random(255)      // numero casuale da 0 a 255
   analogWrite(led, randNumber); // uscita segnale PWM
   delay(500);                   // pausa di mezzo secondo
}

Come potete notare viene utilizzata la funzione randomSeed(millis()) per inizializzare il generatore di numeri casuali, agendo in questo modo siamo abbastanza sicuri di generare numri sempre diversi.

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