Archivi categoria: arduino

90 minuti per parlare dell’universo Arduino – Workshop ModelExpo 2015

model-expo-2015
Come già annunciato in un precedente post, domenica prossima, 22 febbraio, sarò a Verona al ModelExpo 2015 per parlare di Arduino, il mio intervento sarà dalle 10 alle 11,30.
Il Workshop si terrà al primo piano della galleria tra i padiglioni 6 e 7, nella Sala Puccini.
La partecipazione al Workshop è gratuita.

Mi è stato chiesto in questi giorni via mail quali saranno gli argomenti di cui parlerò.
Imposterò l’esposizione in maniera diversa dal solito, nello specifico non mi addentrerò in sperimentazioni specifiche che ho realizzato per il modellismo, ma cercherò di illustrare le possibilità che la piattaforma può offrire al modellismo.
Sempre più spesso mi giungono richieste da utenti, non ultimi in questi giorni da alcuni appassionati di ferromodellismo, in cui mi vengono esposte idee di progetti interessanti, ma ritenute complesse da sviluppare per mancanza di competenze…

da dove devo partire per imparare?
Domanda che può sembrare banale, ma a cui bisogna necessariamente rispondere ed è quella che più frequentemente mi viene posta.

Per deformazione professionale mi piace “atomizzare” il sapere, partire dai fondamentali, senza spaventare, per costruire competenze solide.

Quindi ho ritenuto importantissimo da domenica e per i futuri corsi cambiare e formare non solo sul mondo Arduino: elettronica di base, scheda e programmazione, ma incominciare a dare qualcosa di più, come dicono gli insegnati pensare ai “saperi di base” in altro modo “unire i puntini” che formano il percorso che porterà alla padronanza dello strumento.
Ovviamente in 90 minuti esporro un sunto di quanto svilupperò in futuri corsi, un’idea su un modo di procedere che potrà essere rimodulato dall’utente secondo le esigenze.

Il Workshop avrà un taglio informativo ed è pensato per chi non ha mai affrontato l’argomento o per chi ritiene che è giunto il momento di andare oltre ai semplici esempi e vuole avere riferimenti per approfondire.

Le slide del mio intervento saranno rese disponibili su queste pagine da domenica.

Sarò presente anche dopo il Workshop presso lo stand del FabLab di Brescia, che ringrazio per l’organizzazione. Il FabLab di Brescia è costituito da un gruppo di associati attivissimo sia dal punto di vista della formazione, ma cosa ancora più importante presente con iniziative di progetto che coinvolgono il territorio di Brescia e non solo con azioni volte all’imprenditorialità giovanile e alla creazione di sinergie tra scuola e mondo del lavoro.

Ricordo inoltre che nello stesso giorno si svolgerà, sempre nelle aree espositive di Verona Fiere, elettroexpo, la 52′ fiera dell’elettronica dell’informatica e del radioamatore, quindi sicuramente una giornata importantissima per i maker.

Vi aspetto a Verona 🙂

Usare i relè non è stato mai così semplice – puntata 2

Come già accennato qualche post fa, fortunatamente la caparbietà di due miei studenti Michael e Vlad è tale che sono riusciti a sistemare e mettere in funzione la strumentazione pneumatica, abbandonata da tempo,  per costruire un pannello didattico che mi permetterà di strutturare percorsi di approfondimento sull’automazione industriale. Poiché questo lavoro è utile è lodevole, mi piace segnalare l’avanzamento dei lavori su queste pagine con il video che vi allego (un’enorme Grazie al collega Piergiuseppe che li sta guidando). Ora il sistema dovrà essere modificato in modo che sposti e riconosca dei pezzi meccanici in modo da simulare un percorso di una catena di montaggio e quindi metterò mano alla mia dotazione personale con schede: sensoristica varia, bluetooth, WiFi, GSM per strutturare le future evoluzioni:

  • Controllo remoto via bluetooth che potrà governare remotamente (tablet o smartphone) il movimento dei pistoni.
  • Controllo remoto via WiFi che potrà governare remotamente (tablet o smartphone) via internet mediante interfaccia web, il movimento dei pistoni.
  • Tramite scheda GSM, invio degli allarmi.

Evoluzione:

Realizzare su pannello con una centralina di programmazione costituita da un Raspberry Pi 2 da utilizzare per programmare la scheda  Arduino che governa il circuito pneumatico.

Grazie Ragazzi.

allievi

Usare i relè non è stato mai così semplice

Le attività che gli studenti mi propongono sono tantissime e sovente capita che alcune proposte, oltre ad essere spendibili da un punto di vista pratico, mi aiutino ad impostare una futura didattica fatta di oggetti che in altro modo verrebbero dismessi o gettati in un angolo a prender polvere.
E’ questo il caso di un vecchio panello di pneumatico che qualche anno fa veniva utilizzato collegato a dei vecchi PLC, negli anni si sono perse diverse componenti e per l’italico disinteresse è stato riposto in un angolo del laboratorio.
Fortunatamente la volontà caparbia e positiva di due mie allievi di 5′, Michael e Vlad, con l’aiuto dell’amico collega Piergiuseppe, ha rimesso in attività il dispositivo. L’idea, nata dal suggerimento dei ragazzi è quella di mostrare come poter pilotare una serie di pistoni usando relè pneumatici e finecorsa, con controllo fatto sia con PLC che con Arduino, ciò mi permetterà, come loro stessi mi hanno chiesto di fare 🙂 di mostrare come è possibile governare oggetti “industriali” (i pistoni) programmando in LADDER con i PLC oppure in C con Arduino. Perchè non raccogliere questa splendida idea e farne una cosa utile?

pannello-in-costruzione-01

pannello-in-costruzione-02

Mentre l’attenzione dei ragazzi in questo momento è concentrata sulla sistemazione del pannello, io ho cercato una soluzione a bassissimo costo e di immediato utilizzo per interfacciare velocemente Arduino ad una serie di relè che mi potesse governare l’attivazione di una serie di contatti.
L’idea iniziale prevedeva la realizzazione di una scheda con una serie di relè e componentistica accessoria di cui dovevo realizzare un semplice PCB, ma una rapida ricerca mi ha permesso di trovare una soluzione migliore, sia dal punto di vista economico che dal punto di vista di praticità in classe, ho optato per l’acquisto della scheda: 8 Channel 5V Relay Module For Arduino UNO 1280 2560 ARM PIC acquisto fatto su Bangood.
La scheda è composta da ben 8 relè costituiti ciascuno un contatto normalmente aperto ed uno normalmente chiuso, il cui circuito di comando è a 5V e quindi direttamente pilotabile dalle uscite di Arduino, sul circuito di potenza potete collegare dispositivi funzionanti ad una tensione massima di 250VCA 10A oppure 30VCC 10A. Ho effettuato una semplice prova pilotando una striscia led alimentata a 12VCC.

rele01

rele02

La scheda è dotata di 12 pin:

  • da IN1 a IN8 abbiamo i comandi dei singoli relè, questi ingressi saranno collegati alle uscite digitali di Arduino
  • Vcc collegato a 5Vcc di Arduino
  • GND collegato al GND di Arduino
  • COM e GND ponticellati tra loro

La scheda dispone, per ciascuno dei relè, di un led che ne mostra l’attivazione.

Nell’esempio riportato di seguito i collegamenti tra scheda Arduino e scheda relè sono:

Arduino -> Scheda relè
Pin3    -> IN1
Pin4    -> IN2
Pin5    -> IN3
Pin6    -> IN4
Pin7    -> IN5
Pin8    -> IN6
Pin9    -> IN7
Pin10   -> IN8
5Vcc    -> VCC
GND     -> GND

rele04

rele03

Sketch di esempio:

// Prof. Michele Maffucci
// 06.02.15
// Esempio di attivazione sequenziale di 8 relè

// inizializzazione delle 8 uscite digitali dalla 2 alla 9
void setup() {
  for (int i=2; i<10; i++) {
    pinMode(i, OUTPUT);
  }
}

void loop() {
  for (int r=2; r<10; r++) { // sequenza di attivazione e disattivazione dei contatti degli 8 relè
    digitalWrite(r, HIGH);
    delay(250);
    digitalWrite(r, LOW);
    delay(250);
  }
}

Controllo accensione di una striscia led a 12Vcc

rele05

Stampe 3D del fine settimana – Arduino essential starter kit

Ho la fortuna di avere a casa e a scuola laboratori ben forniti per svolgere attività di sperimentazione con Arduino, ma il trasporto della componentistica mi costringe molto spesso a portare con me parecchio materiale e non nego che molto spesso esagero. Schede cavi e componenti che ci si porta a spasso nella borsa che spesso sfuggono negli angoli più nascosti.
Per l’esigenza giornaliera a scuola è necessario pochissimo il giusto necessario per impostare una lezione o per scrivere un post sul blog durante un momento di pausa, quindi non è necessario portare con se un intero laboratorio, diverso ovviamente è quando effettuo corsi privati dove ho necessità di portarmi molto materiale. Fino ad oggi avevo utilizzato una soluzione migliorata nel tempo che mi permetteva di portare con me il kit di sopravvivenza di sperimentazione 🙂 qualche anno fa ne avevo fatto un tutorial: Costruire una basetta sperimentale estesa portatile per circuiti elettronici, ma ho la necessità di avere qualcosa di più contenuto che possa essere agevolmente trasportato tra libri e registri nello zaino, per farla breve un Essential Arduino Starter kit.
Ho incominciato a progettare soluzioni da stampare in 3D, ma prima di me qualcuno ci ha pensato, una soluzione brillante che per ora considero la migliore per le mie necessità e la consiglio: The Folding Arduino Lab di Jason Welsh che ringrazio.
Quindi in questo fine settimana ho provveduto a stamparmi questo laboratorio tascabile e per me che amo piccoli attrezzi multifunzione (dai coltellini victorinox ai set di cacciavite e minuterie) avere anche un micro laboratorio trasportabile sempre a portata di mano è… concedetemelo… divertente 🙂

…piccoli vezzi

Esercizio Arduino in 5 minuti – usare un Sensor Tracking

Continuo la recensione del kit sensori di cui avevo parlato qualche giorno fa con questo breve post che nasce dall’esigenza di un lettore del blog che mi ha chiesto come utilizzare il sensor tracking incluso nella confezione. Il sensore si presenta come una piccola scheda elettronica i cui componenti principali sono costituiti da un led emettitore ad infrarossi ed un ricevitore.
Un’applicazione in cui io sfrutto questo sensore è ad esempio per la realizzazione di robot segui linea o ancora per realizzare un contagiri e controllare la velocità di rotazione dei miei prototipi robotico.
Potrete ad esempio di distinguere, per brevi distanza dal sensore, le differenze bianco/nero incontrate su una superficie. Su un apposito pin verrà emesso un segnale di tipo TTL che andremo a leggere con Arduino.

Il sensore è costituito da tre pin, GND, OUT (il segnale) e Vcc.
La sensibilità del sensore può essere regolata mediante un apposito trimmer.

Sensor-Tracking-03

Nell’esempio descritto, per avere percezione visiva e sonora della transizione tra bianco e nero ho utilizzato un led connesso al pin 12 ed buzzer connesso al pin 7. Utilizzerò un foglio bianco su cui ho disegnato due strisce nere.

Sensor-Tracking-01

Sensor-Tracking-02

Collegamenti:

Sensore – Arduino:

pin segnale OUT -> pin digitale 7
– negativo -> GND
+ positivo -> 5V

Buzzer – Arduino

pin segnale S -> pin digitale 4
+ positivo -> 5V
– negativo -> GND

Lo sketch è estremamente semplice è dovrete semplicemente verificare la presenza dello stato HIGH sul pin 7 di Arduino, accendere il led se si è sulla linea nera ed emettere un suono, oppure se si è sul bianco spegnere il led e non emettere suono.

// Prof. Michele Maffucci
// 25.01.15
// Utilizzo di un Sensor Tracking e di un buzzer passivo

const int pinSensore = 7;
// pin a cui è collegato il sensore

const int pinLed = 12;
// pin a cui è collegato il led

const int pinBuzzer = 4;
// pin a cui è collegato il buzzer

const int frequenza = 440;
// frequenza emessa dal buzzer (440 Hz)

void setup()
{
  // inizializzazione del pin sensore, led e buzzer
  pinMode(pinSensore, INPUT);
  pinMode(pinLed, OUTPUT);
  pinMode(pinBuzzer,OUTPUT);
}

void loop()
{
  // conserviamo nella variabile var lo stato del sensore
  int val = digitalRead(pinSensore);

  // verifichiamo se viene letto "NERO"
  // se vero accendiamo il led
  if(val == HIGH)
  {
    digitalWrite(pinLed, HIGH);   // accende il led
    tone(pinBuzzer, frequenza);   // viene emesso dal buzzer un suono a frequenza fissata
    delay(5);                     // attesa di 5 millisecondi (in modo da percepire il suono emesso)
  }
  // altrimenti spegniamo il led
  else
  {
    digitalWrite(pinLed, LOW);   // spegne il led
    noTone(pinBuzzer);           // non viene emesso nessun suono dal buzzer
  }
}