La programmazione di Arduino con

Documenti analoghi
Tinker Kit Arduino. Sensor Shield

Workshop Teachers For Teachers settembre 2013

Display numerico con i LED

PRIMI PASSI CON ARDUINO

Corso Arduino Maggio Riccardo Binetti Lezione 1 - Blinking LEDs with style

CORSO ARDUINO. Jacopo Belli Giulio Fieramosca Luca Mattii GOLEM Jacopo Belli Giulio Fieramosca Luca Mattii

DISPOSITIVO DI COMANDO A 4 CANALI CON ATTUATORE MULTIFUNZIONE ART. 442ABT4R2

1.1 Caratteristiche tecniche

FONDAMENTI DI ARDUINO

M1410 Ingresso/Uscita parallelo

INSEGUITORE SOLARE CON ARDUINO. Dispositivo che insegue il movimento solare realizzato con: 1. Arduino 2. 2 foto resistenze 3.

DIP SWITCH 1-4 LED 2 LED 1. SW1 pulsante di programmazione SEQUENZA DI PROGRAMMAZIONE MODALITÀ FUNZIONAMENTO SCHEDA

Manuale tecnico. Attuatore comando motore 1 canale 8A Easy GW GW GW 14767

SCRATCH CECILIA MONTI DIGITAL CO-FONDATRICE E DOCENTE PRESSO MAKER SCHOOL TRADATE

Circuito logico AND / AND Gate

Metronomo. Realizzato da Andrea Corda

Prof. Capuzzimati Mario - ITIS Magistri Cumacini - Como MICROCONTROLLORE

Sensori di Prossimità Guida Utente

Il protocollo RS Introduzione. 1.2 Lo Standard RS-232

Sensore da soffitto con infrarosso passivo

Progetto Scratch: Hippo alla conquista della Luna (remix)

Attuatore 4 canali 10A Easy DIN GW Manuale tecnico

A909 allarme di rottura filo per cordatrici

HARVIA GRIFFIN INFRA. Centralina di controllo

ACCHIAPPA L UOVO TUTORIAL per SCRATCH 2.0

Topward electronics TPS ALTERA Max EPM7128SLC84-15

NMRONDOAS1-NMATX3-NMATX2S

GUIDA ALL USO.

ACNSEM3L. I - Centralina controllo semafori a due o tre luci F - Centrale de contrôle pour les feux GB - Control unit for traffic lights

Programmatore Serie PRO

Generalità. Descrizione del dispositivo. Disposizione dei componenti

Motori Motore passo-passo Stadio di potenza PWM Sincrono Stadio di potenza del motore passopasso. Blocchi funzionali. Set point e generatore PWM

Rilevatore di caduta per anziani. Guida per l utente

TELEVIVAVOCE 7IS /03/2015

Componenti ed accessori regolazione BUS

c) Copyright

ACCENDERE E SPEGNERE UN DIODO LED

FREQUENZIMETRO FQ-16S3-800

Corso di programmazione Arduino DI MALVEZZI DAVIDE

BREADBOARD. saldare tutti i collegamenti, rendendo: estremamente laboriosa la modifica dei cablaggi, spesso non riutilizzabile la basetta.

MPDS-1CV/1CC HV PUSH

Scappa dal gatto Tutorial per Scratch versione 2

ISOLATORE LOGICO DI LINEA PROGRAMMABILE

EFA Automazione S.r.l. SB3Conf Help V1.00 (01 ITA).doc pag. 1 / 10

CORSO ARDUINO. Corso ASEV Giulio Fieramosca Stefano Panichi. Stefano Panichi e Giulio Fieramosca

Quindi dopo aver collegato tutto avremo qualcosa di simile:

Devolo dlan Starter Kit

Corso Base Arduino ed Elettronica

Modulo Tastiera Sfera. Manuale installatore 04/16-01 PC


MPD-1CV BLE L322 MANUALE UTENTE V. 1.2

Progetto per il corso di Microcontrollori: Gestore Ambientale

Windows. La prima realizzazione di un ambiente grafico si deve alla Apple (1984) per il suo Macintosh. La gestione dei file conserva la logica del DOS

Manuale di Prodotto. Mylos KNX Ricevitore IR 2CSYK1218C/S

(c) Copyright Alcedo Italia Tutti i diritti riservati

KEYSTONE. OM2 - EPI 2 Attuatore elettrico a quarto di giro: batteria di emergenza al litio (9V) Manuale di istruzione.

POLMONE PER AVVOLGITORE O SVOLGITORE A GRANDE ACCUMULO MANUALE ISTRUZIONI

PD51B POLMONE PER BOBINATORE DOPPIO MANUALE ISTRUZIONI

Collaudo statico di un ADC

I SISTEMI AUTOMATICI

Interaction Design? Parole chiavi!!! Arduino?

5^ parte : Controllare un LED RGB con 3 potenziometri. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

MISURATORE DIGITALE MODELLO 45.UT23 MANUALE D USO. Non misurate tensioni superiori al massimo consentito dalla scala del tester.

DOCUMENTAZIONE TECNICA 9/06/2005 STRUMENTO. MyChron 3 XG LOG. Introduzione

Week Programmer v2.1 Week Programmer Rev2.1

Arduino Tutorial #7 - Nunchuk materiale utilizzato Arduino, cavi elettrici, breadboard, nunchuk, 3 led.

Fagor Automation S. Coop. MANV-I/O. Manuale di installazione e funzionamento. Manual code: Manual version: 0404

Sch ed e Ser ie RD7 7

TESTER PER CAVI Modello: KT-200 MANUALE D USO

Procedura aggiornamento firmware

Manuale di Riferimento

N.2 INGRESSI DI TEMPERATURA

GATE SR Centrale di automazione per Serrande Manuale di installazione

AUXIND. Descrizione Jog potenziometro V 1.1 (il sw. è lo stesso della versione 1.0) Descrizione del ciclo (jog).

Procedura aggiornamento firmware

MULTIPLEXER 4 CANALI CON FUNZIONAMENTO DUPLEX E VIDEO A COLORI AXECD4X

Week Programmer (COD: LCQVP8OUT12)

MANUALE D USO LRGB-LED 40

SERVICE MANUAL LAVAGGIO. Electrolux Italia S.p.A. Numero di pubblicazione Corso Lino Zanussi, 30 I Porcia PN


+ - Alimentazione Da 8VDC/ MAX 12VDC

CORSO ARDUINO. Corso ASEV Giulio Fieramosca Stefano Panichi. Lezione 3 PWM e motori. Stefano Panichi e Giulio Fieramosca

Ricevitore Supervisionato RX-24

IL PROGETTO «TELECOMANDO» (sensore ad infrarossi)

Programmazione dei PLC in linguaggio Ladder

INNOVATIVO DISPOSITIVO DI CHIAMATA Dispositivo wireless per effettuare chiamate di servizio al tavolo

Per controllare un motore DC (funzionante in corrente continua) con Arduino, devi utilizzare il circuito integrato Ponte H (nel mio caso un L293NE

G S M C O M M A N D E R Basic

CONVERTITORE SERIALE ASINCRONO RS232/USB, TTL/USB e RS485/USB S117P1

KB Centralina bicanale multistandard Luglio 2005

Corso Arduino Maggio Riccardo Binetti Lezione 1 - Blinking LEDs with style

07/12-01 PC Lettore di Prossimità Sfera. Manuale installatore

HelpIviewer Manuale utente

IGB2 MANUALE DI SERVIZIO

Transcript:

La programmazione di Arduino con S4A è un software libero sviluppato dallo Smalltalk Programming Group del Citilab di Barcellona che amplia l ambiente di sviluppo di Scratch con nuovi blocchi che permettono di programmare un oggetto virtuale Arduino al fine di gestire i sensori e gli attuatori connessi alla scheda reale. Un firmware apposito installato sulla scheda Arduino permette a S4A, attraverso il protocollo Picoboard, di inviare ogni 75 ms comandi agli attuatori, di ricevere lo stato dei sensori e di far girare fino a 4 servomotori. I passi per installare correttamente S4A sono i seguenti: 1. Scaricare dall indirizzo http://seaside.citilab.eu/scratch/downloads il software s4a e il firmware necessario per la comunicazione con la scheda Arduino 2. Installare S4A 3. Dopo aver collegato la scheda alla porta USB, aprire l ambiente di sviluppo di Arduino e impostare il modello della scheda (es. Arduino Uno dal menu Tools Board) e la seriale corrispondente alla porta USB alla quale è collegato Arduino (menu Tools Serial Port) 4. Aprire il file che contiene il firmware e eseguire l upload su Arduino. Il file che contiene il firmware deve essere contenuto in una cartella con lo stesso nome (es. S4AFirmware12.pde deve essere contenuto nella cartella S4AFirmware12); chiudere l IDE di Arduino. 5. Aprire S4A; se il firmware è stato caricato correttamente, accanto allo sprite Arduino 1 compare lo Scratch Board Watcher che visualizza i valori che vengono letti sugli ingressi analogici e digitali A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 1 -

Blocchi per l interazione con Arduino S4A ripropone esattamente l ambiente di Scratch; la differenza è nella categoria di blocchi Movimento, all interno della quale sono stati inseriti i seguenti blocchi che permettono l interazione con Arduino: testa il valore numerico dei sensori collegati ai 6 ingressi analogici (Analog1 pin A0 Analog6 pin A5) testa lo stato (true/false) di un pulsante collegato a uno dei due ingressi digitali corrispondenti ai pin 2 (Digital1) e 3 (Digital2) imposta a 1 le uscite digitali corrispondenti ai pin 10, 11 o 13 imposta a 0 le uscite digitali corrispondenti ai pin 10, 11 o 13 imposta un valore numerico compreso tra 0 e 255 sulle uscite corrispondenti ai pin 5, 6 o 9 aziona i servomotori collegati alle uscite 4, 7, 8 o 12 in senso orario o antiorario spegne i servomotori collegati alle uscite 4, 7, 8 o 12 gestione dei servomotore collegati alle uscite digitali 8 e 12 accende / spegne tutti i servomotori collegati mostra / nasconde lo sprite Arduino 1 sullo stage muove lo sprite Arduino 1 nel punto indicato dalle coordinate Per inviare comandi alla scheda, occorre scrivere uno o più script associati allo sprite Arduino che si trova in S4A; lo Scratch Board Watcher (che può essere nascosto) visualizza lo stato dei 6 ingressi analogici e degli ingressi digitali corrispondenti ai pin 2 e 3 (Digital1 e Digital2). Nel caso in cui non ci sia un sensore collegato a un ingresso, il valore rilevato sarà fluttuante nel caso degli ingressi analogici e FALSE nel caso degli ingressi digitali. A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 2 -

Tinker Kit Arduino Sensor Shield Il Sensor Shield v.2 permette di connettere i SENSORI e ATTUATORI TinkerKit direttamente alla scheda Arduino, senza ricorrere all'uso della breadboard. Ha 12 connettori TinkerKit a 3 pin su due file. Quelli marcati da I0 a I5 sono Ingressi Analogici. Sul lato superiore quelli marcati da O0 a O5 sono Uscite Analogiche connesse alle uscite PWM della scheda (é possibile però utilizzare queste uscite come uscite digitali, sulle quali è possibile impostare un valore HIGH o LOW) secondo il seguente schema: Pin Arduino Uscita sul Sensor Shield 11 O0 10 O1 9 O2 6 O3 5 O4 3 O5 Descrizione del Modulo: un led verde segnala che lo shield é correttamente alimentato, ed un bottone da 6mm permette di resettare la scheda. La presa TWI 4 pin permette alla scheda di comunicare con qualunque tipo di dispositivo che supporti il protocollo I2C attraverso la libreria Wire di Arduino. 5V e GND sono presenti sulla presa, insieme a SDA (I4) e SCL (I5). Su ogni scheda Arduino il bus I2C utilizza gli ingressi analogici 4 e 5; usare la connessione TWI preclude l'utilizzo dei connettori I4 e I5 presenti sullo shield. La presa SERIAL da 4 pin permette alla scheda di comunicare con altri dispositivi che supportino la comunicazione serial. 5V e GND sono presenti sulla presa, insieme a TX ed RX. Nota Bene: se si stanno mandando o ricevendo dati da o verso un computer la connessione seriale non funzionerà nei confronti di altri dispositivi. Sensori I sensori hanno il connettore in output che deve essere connesso ai connettori in input del TinkerKit Shield. TinkerKit PushButton Il Pushbutton Module è il sensore più semplice che ci sia. Percepisce la pressione effettuata sul suo cappuccio circolare. Output: questo modulo restituisce 5 V quando il bottone è premuto e 0 V quando non lo è. Tenendo premuto il bottone si chiude il circuito. Se connesso ad un A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 3 -

input di Arduino che usa il TinkerKit Shield, a bottone premuto il valore dovrebbe essere 1023, rilasciandolo verrà restituito 0. Descrizione del Modulo: questo modulo dispone di: un bottone di 12mm, un connettore TinkerKit a 3 pin, un LED verde che segnala che il modulo è correttamente alimentato e un LED giallo che si accende solo quando si preme il bottone. TinkerKit LDR Sensor LDR (Fotoresistenza) è un resistore variabile; la resistenza varia a seconda della luce percepita dal sensore. Output: questo modulo restituisce 5V quando il sensore non riceve luce (il circuito è aperto) e 0V quando viene esposto alla luce (il circuito è chiuso). Se connesso ad un input di Arduino che usa il TinkerKit Shield, i valori dovrebbero essere tra 0 e 1023. Descrizione del Modulo: questo modulo dispone di: un Light Dependent Resistor, un amplificatore di segnale, un connettore TinkerKit a 3 pin, un LED verde che segnala che il modulo è correttamente alimentato ed un LED giallo la cui luminosità varia a seconda della quantità di luce a cui è esposto il sensore. TinkerKit Tilt Sensor Il Tilt Sensor riesce a percepire una rotazione di 180 sull'asse orizzontale. Output: questo modulo dispone di due contatti ed una piccola sfera di metallo. Quando il sensore si trova nella posizione corretta la sfera collega i due contatti, chiudendo il circuito. Quando il sensore è inclinato, la sfera si muove ed il circuito si apre. Nella posizione corretta il modulo restituisce 5V mentre ne restituisce 0V significa che é stato capovolto. Se connesso ad un input di Arduino che usa il TinkerKit Shield, il valore corrispondente alla posizione corretta sarà 1023 mentre dovrebbe essere 0 quando è inclinato. Descrizione del Modulo: questo modulo dispone di: un Tilt Sensor, un amplificatore di segnale, un connettore TinkerKit a 3 pin, un LED verde che segnala che il modulo è correttamente alimentato ed un LED giallo che si illumina quando si stabilisce la connessione (il sensore è dritto). TinkerKit Thermistor Module Il Termistore è un resistore la cui resistenza varia significativamente, più che per i resistori standard, a seconda della temperatura. Output: il segnale restituito da questo modulo raggiunge i 5V quando la temperatura aumenta. Se la temperatura diminuisce si avvicina a 0V. Se connesso ad un input di Arduino che usa il TinkerKit Shield, i valori dovrebbero variare tra 0 e 1023 (NB: qualsiasi cambiamento dei valori sarà molto lento) Descrizione del Modulo: Questo modulo consta di: un termistore, un amplificatore di segnale, un connettore TinkerKit a 3 pin, un LED verde che segnala che il modulo è correttamente alimentato ed un LED giallo la cui luminosità dipende dalla temperatura. TinkerKit 2/3 Axis Accelerometer Un Accelerometro è un dispositivo in grado di misurare l accelerazione. È molto comune nel campo dell elettronica di consumo (dispositivi elettronici portatili e videogames) in quanto permette di rilevare il movimento. Output: questo modulo restituisce da 0 a 5V su ciascuno dei suoi due canali quando varia la forza G (quando cioè è in movimento). A 0G sugli assi X o Y corrisponde approssimativamente un valore di 2.5V. Se connesso ad un input di A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 4 -

Arduino attraverso il TinkerKit Shield il valore restituito dal modulo in movimento potrà variare tra 0 a 1023. Descrizione del Modulo: sul retro del modulo si trovano 2 amplificatori di segnale ed un LED verde che segnala che il modulo è correttamente alimentato. Il modulo è basato sul LIS344AL di ST Microelectronics, ed è un accelerometro a tre assi. È possibile ottenere informazioni riguardanti il terzo asse (Z) saldando un filo sul pin marcato "Z". TinkerKit Hall Sensor Un Sensore di Hall fa si che il voltaggio restituito dipenda dai campi magnetici da lui rilevati. Può essere utilizzato per rilevare la distanza da un magnete vicino. Un Sensore di Hall può inoltre essere utilizzato per rilevare i campi magnetici indotti in un filo o in una bobina. Input: questo modulo restituisce 5V quando un campo magnetico (per esempio un corpo umano) si trova nei pressi del sensore e 0 quando non c è nulla nelle vicinanze. Se connesso ad un input di Arduino che usa il TinkerKit Shield i valori variano tra 0 (nessuna presenza) e 1023. Descrizione del Modulo: un magnete al neodimio è montato su un scheda TinkerKit. Sul retro del modulo si trovano: un amplificatore di segnale, un LED verde che segnala che il modulo è correttamente alimentato ed un LED giallo la cui luminosità dipende dai valori di output del modulo. NB: sulla superficie del sensore vi sono alcuni contatti elettrici esposti: per questo motivo, al fine di evitare un corto circuito, è bene evitare di toccare la scheda con oggetti metallici. TinkerKit Rotary Potentiometer Un Potenziometro è un comune resistore variabile: muovendo la manopola il voltaggio varia da 0 a 5V, valore che viene restituito dal pin centrale del potenziometro. Output: Questo modulo restituisce 0 o 5v a seconda della posizione della manopola/levetta (0 ad un estremo, 5V all estremo opposto). Se connesso ad un input di Arduino che usa il TinkerKit Shield, i valori dovrebbero essere tra 0 e 1023. Descrizione del Modulo: questo modulo consta di: un potenziometro lineare da 4,7 KOhm, un amplificatore di segnale, un connettore standard TinkerKit a 3 pin, un LED verde che segnala che il modulo è correttamente alimentato ed un LED giallo la cui luminosità cambia a seconda della posizione del potenziometro. TinkerKit Linear Potentiometer Un Potenziometro è un comune resistore variabile: muovendo lo slider il voltaggio varia da 0 a 5V, valore che viene restituito dal pin centrale del potenziometro. Output: Questo modulo restituisce da 0 a 5v a seconda della posizione dello slider (0 ad un estremo, 5V all estremo opposto). Se connesso ad un input di Arduino che usa il TinkerKit Shield, i valori dovrebbero essere tra 0 e 1023. Descrizione del Modulo: questo modulo dispone di: un potenziometro lineare da 4,7 KOhm, un amplificatore di segnale, un connettore TinkerKit a 3 pin, un LED verde che segnala che il modulo è correttamente alimentato ed un LED giallo la cui luminosità cambia a seconda della posizione del potenziometro. Il Touch Sensor è sensibile al tocco. TinkerKit Touch Sensor Input: questo modulo normalmente restituisce 0V ma, se toccato, restituisce 5V. Quando è connesso ad un input di Arduino attreaverso il TinkerKit Shield, restituirà "0" se non toccato, "1023" se toccato. A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 5 -

Decsrizione del Modulo: sul retro del modulo si trovano un amplificatore di segnale, un condensatore, un QT 100A single touch, un LED verde che segnala che il modulo è correttamente alimentato ed un LED giallo la cui luminosità dipende dai valori di output del modulo. Questo dispositivo esegue un autocalibrazione quando viene acceso, per questo motivo se qualcuno dovesse toccare la superficie dell interruttore durante l accensione lo stesso non funzionerebbe. Per resettarlo consigliamo di interrompere l'alimentazione assicurandosi che nessuno lo tocchi durante l accensione. TinkerKit Joystick Il Modulo Joystick è simile ai joystick dei videogiochi: consiste in due potenziometri montati a formare un angolo di 90 gradi, collegati ad una barra centrata da due molle. Output: questo modulo restituisce approssimativamente 2.5 volt a entrambi gli output quando si trova nella posizione di riposo. Il movimento della barra permette di variare la restituzione da 0 a 5V a seconda della direzione. Se connesso ad un input di Arduino che usa il TinkerKit Shield il valore corrispondente alla posizione di riposo dovrebbe essere 512 (sono però possibili piccole variazioni dovute alla leggera imprecisione della molla e del meccanismo); muovendo il joystick i valori variano da 0 a 1023 a seconda della posizione. Descrizione del Modulo: questo modulo dispone di: due potenziometri lineari da 4,7 KOhm, due amplificatori di segnale, due connettori TinkerKit a 3 pin, un LED verde che segnala che il modulo è correttamente alimentato e due LED gialli la cui luminosità dipende dai valori di output del modulo. Attuatori Gli attuatori hanno il connettore in input che deve essere connesso ai connettori in output del TinkerKit Shield. TinkerKit Led 5 e 10 mm Il LED non é altro che il più semplice degli attuatori e si accende quando alimentato da un pin di Arduino. Input: Arduino ha un uscita massima di 40mA per pin, abbastanza per accendere un LED attraverso le funzioni digitalwrite() e analogwrite() Descrizione del Modulo: questo modulo consta di: un LED da 5mm o da 10 mm, il connettore TinkerKit da 3 pin, un LED verde che segnala se il modulo é correttamente alimentato ed un piccolo LED giallo che mostra la quantità di elettricità che illumina il LED verde in quel momento. La resistenza a bordo protegge il LED dai 5V di Arduino. TinkerKit Power LED Il Power LED é un attuatore attraverso il quale 5 LED ultra-luminosi sono controllati da un pin di Arduino. Input: Arduino ha un uscita massima di 40mA per pin: abbastanza per accendere un LED attraverso le funzioni digitalwrite() e analogwrite() Descrizione del Modulo: Questo modulo consta di: AWT801-S LEDs della Seoul Semi Conductor, il connettore TinkerKit da 3 pin, un LED verde che segnala se il modulo é correttamente alimentato ed un piccolo LED giallo che mostra la quantità di elettricità che illumina il LED rosso in quel momento. La resistenza a bordo protegge il LED dai 5V di Arduino TinkerKit Modulo Relay Un relé é un interruttore comandato elettronicamente che permette di aprire o chiudere un circuito con voltaggi e correnti più alte di quelle che Arduino può A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 6 -

gestire. Non c'é connessione tra il circuito a basso voltaggio di Arduino e quello del circuito che viene controllato. Warning: sconsigliamo l'utilizzo di questo modulo per il pilotaggio di circuiti superiori ai 24V senza la supervisione di un esperto. Input: il relè è un semplice interruttore meccanico on/off. Si attiva quando l input raggiunge i 5V e si disattiva quando l input è 0V. Può essere controllato attraverso la funzione digitalwrite() di Arduino. Il modulo fornisce tre connessioni denominate COM, NC e NO. NC sta per NORMALMENTE CHIUSO. Ciò significa che quando il relè non riceve segnale (LOW o 0V da Arduino), il circuito connesso è aperto; se invece vengono applicati 5V o definito il pin HIGH, il circuito connesso è chiuso. NO sta per NORMALMENTE APERTO, e funziona al contrario: se si applicano 5V il circuito è aperto mentre viene chiuso con 0V. I relè possono sostituire gli interruttori manuali. Rimuovete i cavi dell'interruttore e inseriteli nei morsetti COM e NO. Quando il relè è attivato il circuito è chiuso e la corrente può raggiungere il dispositivo che si sta controllando. Descrizione del Modulo: questo modulo dispone di: un relé a 250V e 10A montato su una scheda TinkerKit da due unità, del connettore TinkerKit a 3 pin, di un amplificatore di segnale, un LED verde che segnala se il modulo é correttamente alimentato ed un piccolo LED giallo che si accende quando il relé é attivo. TinkerKit Modulo Mosfet Questo modulo permette di controllare quantità di corrente più alte di quelle che Arduino può gestire, usando un transistor di potenza. Diversamente da un relé meccanico, il Mosfet può essere pilotato ad alte velocità, perfetto quindi per essere controllato dal PWM di Arduino. Output: Questo modulo permette di controllare dispositivi operanti ad un massimo di 24V DC con un pin di Arduino. Per connettere il modulo, collegate l'alimentazione del vostro dispositivo (max 24V) ai morsetti marcati con V+ e GND. Connettete il dispositvo che volete controllare ai morsetti M+ ed M-. Fate attenzione alla polarità del vostro circuito: potrebbe danneggiare il dispositivo se invertita. Descrizione del Modulo: questo modulo é composto da: un IRF520 transistor MOSFET di potenza, un diodo di protezione, il connettore TinkerKit a 3 pin, un amplificatore di segnale, un LED verde che segnala se il modulo é correttamente alimentato ed un piccolo LED giallo che mostra la quantità di elettricità che sta passando attraverso il transistor. A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 7 -

Esercitazioni S4A con il TinkerKit 01. Blinking I led vanno collegati alle uscite O0 e O1 del Sensor Shield. Blink di un led collegato a O0 Blink di due led collegati a O0 e O1 Blink a intermittenza di due led collegati a O0 e O1 con visualizzazione su monitor dello stato dei led Blink a frequenza variabile di un led collegato a O0 Invio di SOS luminoso: tre punti, tre linee, tre punti 02. Accensione di un led con un pulsante Il pulsante deve essere collegato a I0, il led a O0. Quando il pulsante viene premuto il led si accende, quando viene rilasciato il led si spegne. A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 8 -

03. Interruttore A differenza dell esercizio precedente, il pulsante si comporta come un interruttore; pertanto, ad ogni pressione del pulsante il led cambia stato. Come nell esercizio 1, può essere aggiunto uno sprite che replica sul monitor il funzionamento del led. 04. Conteggio in binario Due led collegati a O0 e O1 rappresentano rispettivamente il bit meno significativo e il bit più significativo di un numero binario. Il conteggio avanza quando si preme il pulsante collegato a I0; quando arriva a 3, si riparte da 0. A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 9 -

05. Lampione Simula il funzionamento di un lampione. Il sensore di luce collegato a I0 determina in modo inversamente proporzionale la luminosità del led collegato a O2, che corrisponde al pin 9 (uscita PWM che simula un uscita analogica). 06. Movimento di una pallina con un joystick La pallina viene fatta muovere dai movimenti del joystick collegato a I0 e I1. La direzione (alto-basso-destrasinistra) viene recepita dallo sprite che corrisponde alla pallina dal valore della variabile condivisa dir. A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 10 -

07. Pacman semplice Videogioco Pacman semplificato: con il joystick si muove lo sprite Pacman che deve toccare lo sprite Bersaglio, nel qual caso viene totalizzato un punto. Lo sprite Bersaglio cambia posizione ogni 4 secondi oppure quando viene toccato dallo sprite Pacman; il gioco finisce quando vengono raggiunti i 10 punti. All interno dello sfondo finale vengono visualizzati i secondi impiegati per raggiungere i 10 punti. Scirpt dello Stage Sfondo Sfondo dello stage Sfondo fine dello stage Script dello sprite Pacman Script dello sprite Bersaglio A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 11 -

08. Space invaders Videogioco che consiste nel muovere un astronave sul lato inferiore dello schermo cercando di colpire con dei razzi un bersaglio che si muove dall alto verso il basso. Il gioco termina quando si colpiscono 10 bersagli. L astronave viene mossa da uno slider collegato a I1 e il razzo viene sparato con il pulsante collegato a I0. Script dello sprite Arduino Stage Script dello sprite Astronave Script dello sprite Razzo Script dello sprite che fa comparire la scritta Hai vinto Script dello sprite Bersaglio A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 12 -

Esempi di esercitazioni con la breadboard 01. Lampeggio di un led Il circuito comprende un led con l anodo collegato al pin digitale 13 attraverso una resistenza da 220 Ω e il catodo collegato a massa: il led potrebbe essere collegato direttamente a Arduino perché il pin 13 è protetto internamente da una resistenza. Il lampeggio del led si ottiene con uno script associato allo sprite Arduino1, che consiste in un ciclo che termina quando si preme la barra spaziatrice; all interno del ciclo si imposta a 1 l uscita digitale 13, si attende mezzo secondo, si imposta a 0 l uscita digitale 13 e si attende nuovamente per mezzo secondo. 02-03. Accensione di un led con un pulsante Il circuito comprende un led collegato al pin 13 e un pulsante. Un pin del pulsante viene collegato a massa tramite una resistenza da 10 KΩ, il pin opposto al pin 2 di Arduino e il pin adiacente a 5V; la pressione del tasto viene testata con il blocco Sensor Digital 1 pressed?. Nella prima versione del programma, quando il pulsante è premuto il led si accende e quando viene rilasciato il led si spegne; in sostanza lo stato del pulsante determina l impostazione del valore del pin 13 a 1 o a 0. L attesa di 100 millisecondi realizza la funzione antirimbalzo del pulsante. Nella seconda versione, ogni volta che si preme il pulsante si determina il cambiamento dello stato del led. Per ottenere questo comportamento, si utilizzano 3 variabili: pushstate, che memorizza lo stato del pulsante (premuto o rilasciato), ledstate, che memorizza lo stato del led (acceso o spento) e oldstate, che viene inizializzata all inizio di ogni ciclo e che memorizza lo stato del pulsante al ciclo precedente. Viene testato lo stato del pulsante e viene effettuato un test per capire se lo stato del pulsante è variato rispetto al ciclo precedente; se è variato e nel caso in cui sia stato premuto il pulsante (e non rilasciato), allora se il led era acceso viene spento e, viceversa, se era spento allora viene acceso. A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 13 -

04. Accensione di un led RGB con un pulsante Il circuito comprende un led RGB a catodo comune: il catodo viene collegato a massa e gli anodi che corrispondono ai colori blu, verde e rosso sono collegati rispettivamente, attraverso una resistenza di pull-up da 220 Ω, alle uscite digitali 13, 11 e 10. Un pin del pulsante viene collegato a massa tramite una resistenza da 10 KΩ, il pin opposto al pin 2 di Arduino e il pin adiacente a 5V; la pressione del tasto viene testata con il blocco Sensor Digital 1 pressed?. Il codice associato allo sprite Arduino1 viene eseguito quando si fa clic sulla bandiera verde. Inizialmente si impostano a 0 le uscite digitali 13, 11 e 10 in modo da spegnere il led RGB. Si entra in un ciclo che termina quando si preme la barra spaziatrice all interno del quale ad ogni pressione del tasto si imposta a 0 un uscita digitale collegata al led e si imposta a 1 un altra uscita: in questo modo, ad ogni pressione del tasto il led cambia colore. I due blocchi attendi fino a quando consecutivi hanno lo scopo di gestire correttamente la pressione del tasto: non si esce dalla seconda attesa finchè il tasto non viene rilasciato. Circuito con 3 led Le tre esercitazioni seguenti utilizzano il circuito riportato in figura: le uscite digitali 13, 11 e 10 sono collegate rispettivamente all anodo dei led verde, giallo e rosso attraverso una resistenza di pull up da 220 Ω; il catodo dei tre led è collegato all ingresso Gnd di Arduino. 05. Semaforo Il circuito riproduce il ciclo di funzionamento di un semaforo contemporaneamente sullo stage e sui led del circuito. Quando si fa clic sullo sprite Go, i tre sprite colorati sullo stage e i tre led sul circuito lampeggiano contemporaneamente per tre volte; dopo questa fase iniziale, il semaforo ripete all infinito il ciclo di funzionamento rosso verde giallo e verde. Gli sprite utilizzati e il codice collegato sono i seguenti: Sprite Avvio : quando si fa clic sullo sprite Avvio, viene inviato per tre volte un messaggio accendi a tutti gli sprite; dopo due secondi entra nel ciclo infinito di funzionamento del semaforo che consiste nell invio in sequenza a tutti gli sprite dei messaggi rosso, verde e A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 14 -

giallo. Il blocco invia a tutti e attendi invia un messaggio e attende che tutti gli script degli altri sprite collegati alla ricezione del messaggio siano terminati prima di eseguire il blocco successivo Sprite Rosso : quando riceve il messaggio spegni nasconde lo sprite e attende mezzo secondo, mentre quando riceve il messaggio accendi mostra lo sprite e attende mezzo secondo. Quando riceve il messaggio rosso mostra lo sprite per 4 secondi e poi lo nasconde. Sprite Verde : quando riceve il messaggio spegni nasconde lo sprite e attende mezzo secondo, mentre quando riceve il messaggio accendi mostra lo sprite e attende mezzo secondo. Quando riceve il messaggio verde mostra lo sprite per 4 secondi e poi lo nasconde; il messaggio spegniverde serve a nascondere lo sprite contemporaneamente allo sprite Giallo. Sprite Giallo : quando riceve il messaggio spegni nasconde lo sprite e attende mezzo secondo, mentre quando riceve il messaggio accendi mostra lo sprite e attende mezzo secondo. Quando riceve il messaggio giallo mostra lo sprite per 2 secondi e in seguito nasconde lo sprite, dopo aver inviato il messaggio spegniverde per nascondere contemporaneamente lo sprite Verde. Sprite Arduino1 : gli script associati ai messaggi che lo sprite riceve eseguono le seguenti azioni: spegni : imposta al valore logico 0 le uscite digitali 13, 11 e 10 collegate rispettivamente ai led verde, giallo e rosso. rosso : imposta a 1 l uscita 10 (led rosso), attende 4 secondi e poi imposta a 0 l uscita 10. verde : imposta a 1 l uscita 13 (led verde) e attende 4 secondi senza poi impostare a 0 l uscita 13 (il verde deve rimanere accesso contemporaneamente al giallo). giallo : imposta a 1 l uscita 11 (led giallo), attende 2 secondi, invia il messaggio spegniverde e poi imposta a 0 l uscita 11. A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 15 -

06. Accensione in sequenza di tre led L esecuzione inizia facendo clic sulla bandiera verde: sullo stage compaiono i tre sprite Rosso, Giallo e Verde. La sequenza di accensione dei led viene determinata facendo clic sugli sprite corrispondenti; quando si vuole riprodurre sul circuito costruito sulla breadboard e contemporaneamente sullo stage la sequenza data in input, è sufficiente fare clic sullo sprite Vai. La sequenza di accensione dei led viene memorizzata in una variabile di tipo lista. Gli sprite utilizzati e il codice collegato sono i seguenti: Sprite Gatto : quando si fa clic sulla bandiera verde, cancella i dati eventualmente memorizzati nella variabile di tipo lista led e visualizza un testo che invita a procedere all input della sequenza. Quando riceve il messaggio fine visualizza sullo stage un messaggio che indica che la sequenza è stata riprodotta sui led e ferma l esecuzione. Sprite Arduino1 : quando si fa clic sulla bandiera verde, nasconde lo sprite Arduino1 e imposta a 0 le uscite digitali collegate ai led. Gli script associati ai messaggi che lo sprite può ricevere verdeled, gialloled e rossoled - impostano al valore logico 1 le uscite digitali collegate rispettivamente ai led verde, giallo e rosso, attendono 1 secondo e poi impostano le uscite a 0. Sprite Giallo, Rosso e Verde : quando si fa clic su uno dei tre sprite, viene inserito all ultimo posto della variabile di tipo lista led il nome dello sprite. Gli script associati ai messaggi che lo sprite può ricevere eseguono le seguenti azioni: spegni : nasconde lo sprite accendi : mostra lo sprite <nome sprite> : mostra lo sprite <nome sprite> per 1 secondo, lo nasconde e invia un messaggio allo sprite Arduino1 per accendere il led corrispondente. Sprite Vai : quando si fa clic sulla bandiera verde nasconde lo sprite e, quando riceve il messaggio accendi, lo sprite viene mostrato. Quando si fa clic sullo sprite, esamina tutti i valori caricati nella variabile led e per ogni valore trovato invia a tutti gli sprite il messaggio corrispondente ( rosso, giallo o verde ). A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 16 -

07. Conversione in binario di un numero compreso tra 0 e 7 Il programma esegue la conversione in binario di un numero compreso tra 0 a 7. Il numero binario viene visualizzato con le 3 cifre binarie presenti sullo stage e contemporaneamente con l impostazione dei 3 led corrispondenti ognuno a un bit. Anche in questo caso viene utilizzata una variabile di tipo lista di tre elementi che conterrà i tre bit del numero in binario. Sprite Gatto : quando si fa clic sulla bandiera verde, richiede in input un numero compreso tra 0 e 7. Nel caso in cui il valore in input risulti errato, visualizza una segnalazione di errore e richiede nuovamente il numero. Quando il numero è corretto, cancella l eventuale contenuto della variabile di tipo lista e entra nel ciclo che implementa l algoritmo della conversione di un numero da base 10 a base 2: partendo dall elemento di indice 3 della variabile di tipo lista bit, vengono memorizzati successivamente i resti delle divisioni successive per 2 fino a quando il risultato della divisione non è uguale a 0. Un ulteriore ciclo imposta a 0 gli eventuali bit rimanenti; a questo punto viene inviato un messaggio accendi a tutti gli sprite. Sprite Arduino1 : quando si fa clic sulla bandiera verde, nasconde lo sprite e imposta al livello logico 0 le uscite digitali 13, 11 e 10 provocando lo spegnimento dei tre led. Alla ricezione del messaggio accendi, esamina ogni elemento della variabile di tipo lista bit e, se trova un elemento uguale a 1, imposta a 1 l uscita collegata al led di peso corrispondente provocandone l accensione. Sprite Bit2, Bit1 e Bit0 : quando si fa clic sulla bandiera verde, nasconde lo sprite. Alla ricezione del messaggio accendi, ognuno di questi sprite esamina l elemento corrispondente della variabile di tipo lista bit: se trova l elemento uguale a 0 imposta il costume dello sprite a 0, in caso contrario lo imposta a 1. A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 17 -

Analog1 che corrisponde all ingresso A0. 08. Space invaders Il circuito comprende anche un pulsante, un pin del quale viene collegato a massa tramite una resistenza da 10 KΩ, il pin opposto al pin 2 di Arduino e il pin adiacente a 5V; la pressione del tasto viene testata con il blocco Sensor Digital 1 pressed?. Questa esercitazione realizza un semplice gioco ispirato al celeberrimo Space invaders: da una navicella che si muove in senso orizzontale vengono sparati dei razzi che devono colpire oggetti che cadono dall alto dello stage. Quando vengono colpiti 10 oggetti il gioco termina e viene visualizzato il tempo impiegato. Il circuito connesso a Arduino comprende uno slider (o in alternativa un potenziometro), che serve per muovere la navicella sullo stage, con i piedini collegati rispettivamente a 5V, all ingresso analogico A0 e a massa; il movimento del cursore fa variare la tensione che viene convertita in un valore numerico compreso tra 0 e 255 e letta da S4A attraverso il sensore N.B.: quando il razzo viene sparato, il pulsante deve essere mantenuto premuto fino al raggiungimento del bersaglio; non appena il pulsante viene rilasciato, il razzo sparisce. Gli sprite utilizzati e il codice collegato sono i seguenti: Sprite Arduino1 : quando si fa clic sulla bandiera verde, lo sprite viene nascosto. Il ciclo che costituisce il codice collegato allo sprite testa alternativamente l ingresso analogico collegato allo slider (Analog1) e quello digitale collegato al pulsante (Digital1); quando viene raggiunto un punteggio pari a 10, si esce dal ciclo. il valore (compreso tra 0 e 1023) letto dall ingresso collegato allo slider viene caricato nella variabile pz visibile da tutti gli sprite e, se è stato premuto il pulsante (test sull ingresso Digital1), viene inviato a tutti gli sprite il messaggio spara. Sprite Astronave : le variabili time e punti devono essere impostate nella modalità di visualizzazione grande. Quando si fa clic sulla bandiera verde, viene fatto partire il cronometro il cui valore viene assegnato alla variabile time, viene azzerata la variabile punti e entrambe vengono visualizzate. Nel ciclo seguente, che termina quando i punti sono pari a 10, si gestisce lo spostamento dello sprite adattando il valore letto attraverso l ingresso analogico collegato al potenziometro (compreso tra 0 e 1023) all intervallo - 255..+255 che rappresenta i valori sull asse x dello stage; ad ogni ciclo la variabile time viene riassegnata al cronometro. Quando viene raggiunto un punteggio uguale a 10, viene nascosto lo sprite e inviato un messaggio fine a tutti gli altri sprite. A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 18 -

Sprite Razzo : quando si fa clic sulla bandiera verde lo sprite viene nascosto con l effetto fantasma. Alla ricezione del messaggio spara lo sprite viene posizionato immediatamente sopra la navicella, viene fatto ricomparire e viene fatto scivolare in verticale finchè esce dallo stage; alla fine dello spostamento, lo sprite viene nuovamente nascosto. Alla ricezione del messaggio fine, lo sprite viene nascosto. Sprite Bersaglio : quando si fa clic sulla bandiera verde, viene impostata un attesa di 3 secondi. Nel ciclo che termina quando il punteggio raggiunge 10, lo sprite viene nascosto con l effetto fantasma e viene posizionato in modo casuale sulla parte superiore dello stage. La posizione verticale dello sprite viene decrementata di 1 fino a quando non si raggiunge la parte inferiore o non si tocca lo sprite Razzo. Lo sprite viene nascosto e, se la posizione verticale del bersaglio è superiore al valore -120 definito come bordo inferiore dello stage, il punteggio viene incrementato. Sprite Fine : quando si fa clic sulla bandiera verde, lo sprite viene nascosto. Quando viene ricevuto il messaggio fine, lo sprite ricompare e viene mostrata la scritta Hai vinto!. A cura del prof. Vaschetto Francesco - IIS Vallauri Fossano (CN) francesco.vaschetto@vallauri.edu - 19 -