SlideShare a Scribd company logo
1 of 30
ARDUINO + AZURE
Dal circuito allo sketch e controllo remoto con una app web su Azure
Cramarossa Giuseppe
Microsoft Student Partner
I.I.S.S «G. Marconi» Bari
6 Novembre 2015
COS’È ARDUINO?
• Scheda elettronica programmabile
• Estensibile
• Esistono vari moduli (shield) acquistabili anche a basso prezzo
• Versioni differenti che dipendono dalla complessità del progetto:
• Numero di pin
• Memoria flash
• Memoria SRAM
• Qui verrà utilizzato Arduino Uno
• Progetti semplici
USI
• Hobbistica
• Circuiti DIY
• Uso a scopo didattico
• Unisce informatica ed elettronica
• Hardware e software sono logicamente equivalenti (Andrew Stuart Tanenbaum)
• Internet of Things
• Esempi
• Stampanti 3D
• Radio IoT
• Mixer di alcolici
PIN
• Permettono di interagire con il circuito
• Sono di vari tipi
• Digitali
• Possono assumere due valori (1 o 0)
• Sono identificati tramite un numero
• Analogici
• Possono assumere valori da 0 a 1023
• Sono identificati da una A seguita da un numero
• PWM
• Possono assumere valori da 0 a 255
• Studierete la modulazione PWM in telecomunicazioni
• Altri pin
• Alimentazione esterna, massa, …
• Possono assumere due direzioni differenti
• Input: dal circuito ad Arduino
• Output: da Arduino al circuito
• La direzione di alcuni pin può essere controllata via software
COMUNICAZIONE CON L’ESTERNO
• Modi differenti di comunicazione con l’esterno
• Pin
• Seriale
• SPI
• Shield esterne
• Bluetooth
• Ethernet
• …
• Qui si vedranno
• Seriale
• Pin
• Ethernet
CHE COSA FAREMO
• Pratica
• Ideazione di un semplice circuito
• Fritzing
• Creazione di un semplice circuito di pilotaggio led
• Bottone
• Seriale
• Remoto
• Programmazione di Arduino
• Funzioni di base
• Caricamento sulla scheda
• Invio/ricezione dati tramite Seriale e Ethernet
LED
• Giunzione PN
• Vari tipi
• Monocolore
• Bicolore
• RGB
• Tre colori
• Rosso
• Verde
• Blu
• Catodo comune
• Anodo comune
• Infrarosso
• Si può vedere l’infrarosso?
Tensioni dei led - Da Wikipedia
LA RISPOSTA
PROGETTAZIONE DEL CIRCUITO - FRITZING
• Led rossi
• Pulsante
• Resistenze
• 320 Ohm
• Non esistono resistenze da 320 Ohm, ma esistono da 100 e 220 Ohm. Quindi se si posizionassero in
un certo modo queste resistenze, si avrebbe una resistenza da 320 Ohm. Ma come?
• In questo esempio si userà una resistenza da 330 Ohm per semplicità
• 10 kOhm
• Jumper
• Arduino Uno
• Ethernet Shield
• Controllo remoto
• Microsoft Azure
REALIZZIAMO IL CIRCUITO
• IDE
• Arduino IDE
• Open Source
• No completamento automatico
• No Azure SDK
• Eclipse
• Completamento automatico
• Plugin Azure SDK
• Plugin ADT (da non confondere con Android Development Toolkit)
• Gratuito
• Macchinoso da configurare
• Visual Studio
• Completamento automatico
• Plugin Azure SDK
• Plugin Visual Micro
• Proprietario
• Versione free e a pagamento
PROGRAMMIAMO (1/2)
• Programma
• Viene chiamato sketch
• Linguaggio di programmazione C++
• Funzioni
• Classi
• Programmazione d base
• Classi che si vedranno
• Serial
• Ethernet
• Costanti che si vedranno
• LOW
• HIGH
PROGRAMMIAMO (2/2)
• Non c’è nessun main() da dichiarare
• Dov’è?
• setup()
• Istruzioni eseguite una sola volta
• Utile per l’inizializzazione di classi e variabili
• Non richiede nessun parametro
• loop()
• Istruzioni eseguite all’infinito
• Non richiede nessun parametro
• digitalRead()
• Legge il valore di un pin digitale
• Unico parametro: il pin digitale
• Restituisce lo stato del pin: LOW o HIGH
FUNZIONI DI BASE (1/2)
• digitalWrite()
• Abilita/disabilita un pin digitale
• 2 parametri
• Il numero del pin digitale
• Lo stato del pin: LOW o HIGH
• analogWrite()
• Scrive un valore che va da 1 a 255 su un pin PWM e da 1 a 1023 su un pin analogico
• 2 parametri
• Il numero del pin
• Il valore da attribuire al pin
• Utile ad esempio per i led RGB
• delay()
• Blocca l’esecuzione delle istruzioni successive
• Unico parametro: il tempo da aspettare in milisecondi
• 1000 ms = 1 s
FUNZIONI DI BASE (2/2)
COMBINIAMO LE FUNZIONI DI BASE…
…E IL CIRCUITO PRENDE VITA!
• Procurarsi un cavo USB tipo A/B per connettere Arduino al computer
• Cavo USB fornito generalmente con le stampanti
• Caricare lo sketch sulla scheda
• È necessario installare prima i driver di Arduino sul proprio computer
• Ogni IDE fornisce due bottoni per verificare/caricare il codice
• Verifica: Compila il programma senza caricarlo sulla scheda
• Carica: carica lo sketch sulla scheda
• Con Arduino il caricamento sulla scheda è molto semplice
• Esperienza Erasmus+ con ATMEGA1281
• E il circuito prende vita
AGGIUNGIAMO UN BOTTONE
• Quadripolo
• Collegamento con Arduino
• 5V: Tensione
• Segnale: collegamento con Arduino
• GND
• La resistenza dipende dal bottone
• Si userà una resistenza di 10 kOhm
• Collegamento con il pin GND di Arduino
• Creiamo un nuovo sketch che permette di accendere un led alla volta e lo deve fare ogni
volta che premiamo un tasto
• Il corpo della funzione setup() non cambia
• Funzioni di base viste nell’esempio precedente
• Funzione digitalRead()
UNA POSSIBILE SOLUZIONE
SERIALE
• Permette di inviare/ricevere dati da e verso l’esterno
• Numeri
• Stringhe
• Caratteri
• Ogni Arduino ha 2 o più pin riservati al seriale
• Pin di Arduino Uno
• 0 (Ricevitore)
• 1 (Trasmettitore)
• Se si utilizzano i pin 0 e 1, non si potrà usare più la seriale USB
• Non caricare più gli sketch via USB
• Esistono varie librerie che simulano il funzionamento della seriale
• SoftSerial
• AltSoftSerial
• Non verranno trattati in questo contesto
USARE LA SERIALE
• Ogni IDE ha un pannello seriale dove poter inviare e ricevere dati
• In programmazione esiste la classe Serial
• Serial.begin()
• Va dichiarata nella funzione setup()
• Deve essere dichiarato prima di ogni altro metodo della classe
• Richiede un unico parametro: il baudrate
• Baudrate = velocità di trasferimento
• Serial.read()
• Legge un carattere da seriale
• Restituisce il carattere letto
• Serial.write()
• Uno tra i tanti metodi di scrittura su serale
• Accetta come parametro la stringa da scrivere
• Serial.isAvailable()
• Verifica se è presente qualcosa nella seriale
• Restituisce true se è presente qualcosa altrimenti false
• Creiamo un programma che, dato dei numeri in input, accendano il led corrispettivo al numero
METTIAMO IN PRATICA
CONNETTERE ARDUINO A INTERNET
• Esistono diverse schede per connettere Arduino ad Internet
• Scheda Ethernet
• Scheda wireless
• Le vecchie schede Ethernet non avevano indirizzo MAC associato
• Esso veniva definito in programmazione
• Le nuove schede hanno un’etichetta con l’indirizzo MAC sul retro Ogni scheda
necessita di 3 parametri per potersi connettere in Internet
• Avrete visto quali sono nella certificazione Cisco R&S
• Permette di usare Arduino sia come server e sia come client
• In questo caso verrà utilizzato come client
CLASSI PER IL CONTROLLO REMOTO
• Ethernet
• Prima classe da utilizzare per configurare la scheda ethernet
• Ethernet.begin
• Primo metodo da usare per configurare la scheda Ethernet
• Un solo parametro: l’indirizzo MAC
• E gli altri?
• EthernetClient
• Arduino come client
• connect
• Metodo per connettersi a un server web
• 2 parametri
• L’url
• La porta a cui connettersi
• connected
• Verifica se arduino si è connesso al sito
• Restituisce true se si è connesso, altrimenti false
• stop
• Chiude la connessione con il server
CREIAMO LA WEBAPP
• Si creerà una webapp che permette di gestire il circuito da remoto
• Per creare la WebApp, sono necessari i linguaggi di programmazione web e un
server
• Uso di un linguaggio di programmazione lato server
• PHP
• Non si vedrà come creare la web app
• Non è il fine di questa lezione
• La webapp è liberamente scaricabile
• Il link vi verrà fornito in seguito
• La web app verrà caricata su Azure
COS’È AZURE
• Piattaforma di cloud computing
• Aperta
• Flessibile
• Scalabile
• Gratuito per gli studenti
• Viene fornito attraverso dreamspark.com
• Alcuni software Microsoft possono essere scaricati gratuitamente ad uso esclusivamente didattico
• È necessario un codice di verifica che dimostra il vostro status di studente
• Alcuni software e servizi offerti oltre ad Azure
• Visual Studio
• Varie licenze per sviluppatori (Xamarin e per Windows Store)
• E molto altro
• Servizi offerti su Azure per gli studenti
• App Web
• Database MySQL
• Visual Studio Online
• Application Insights
CREIAMO UN’ APP WEB SU AZURE
• Scaricare i sorgenti da http://1drv.ms/1LH7q2E
• Registrarsi su dreamspark.com
• È necessario un account Microsoft per potersi registrare
• Link diretto: aka.ms/joinds
• Registrarsi su Azure
• Link diretto: aka.ms/a4d
• È necessario il numero di telefono per verifica
• Attendere fino a quando non è pronta la sottoscrizione
• Creare un App Web su Azure
• Sarà il contenitore della nostra webapp
• Cliccare su Nuovo (+)  Web e Dispositivi Mobili  App Web
• Scegliere un nome per l’app web
• Se necessario, creare un gruppo di risorse
• Fare clic su Crea
• Attendere la creazione della web app
USARE LA WEBAPP
• Vari metodi per caricare la webapp su azure
• FTP
• Collegare una cartella presente su uno spazio di archiviazione online (es. OneDrive)
• Andare sulla webapp appena creata e cliccare su impostazioni
• Andare su distribuzione continua e scegliere lo spazio di archiviazione online
• Fornire le autorizzazioni necessarie
• Creare la cartella con lo stesso nome della webapp e inserire i file
• Cliccare su OK e sincronizzare il contenuto
• Esploriamo le API della webapp
• Sono presenti nella cartella api
• accendiLed.php: permette di accndere il led
• ottieniLed.php: permette di ottenere il led
• Uso esclusivo per arduino
LO SKETCH DI ARDUINO
PROPOSTE DI ESERCIZI
• Simulare il funzionamento di un semaforo
• Sequenza dei colori
• Colori diversi, cadute di tensione diverse, resistenze diverse
• Timing
• Permettere a un pedone di attraversare la strada attraverso la pressione di un
pulsante
• Il passaggio al rosso non deve essere fatto all’istante
• Cosa succede se il semaforo è rosso per le macchine?
• Cosa succede se il semaforo è arancione?
• Attraverso la seriale, decidere se attivare o disattivare il semaforo
• Il semaforo non è attivo se il colore arancione lampeggia o è spento
CONCLUSIONE
• Domande e risposte
• GRAZIE PER L’ATTENZIONE

More Related Content

Similar to Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web su azure

Costruisci il tuo device
Costruisci il tuo deviceCostruisci il tuo device
Costruisci il tuo device
DotNetCampus
 
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embedded
Daniele Costarella
 
Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015
Codemotion
 

Similar to Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web su azure (20)

Costruisci il tuo device
Costruisci il tuo deviceCostruisci il tuo device
Costruisci il tuo device
 
COSTRUISCI IL TUO DEVICE
COSTRUISCI IL TUO DEVICECOSTRUISCI IL TUO DEVICE
COSTRUISCI IL TUO DEVICE
 
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embedded
 
Microsoft Azure per l'IT Pro
Microsoft Azure per l'IT ProMicrosoft Azure per l'IT Pro
Microsoft Azure per l'IT Pro
 
IoT Saturday 2019 - Custom Vision on Edge device
IoT Saturday 2019 - Custom Vision on Edge deviceIoT Saturday 2019 - Custom Vision on Edge device
IoT Saturday 2019 - Custom Vision on Edge device
 
Custom vision on edge device
Custom vision on edge deviceCustom vision on edge device
Custom vision on edge device
 
Arduino & Smartphone
Arduino & SmartphoneArduino & Smartphone
Arduino & Smartphone
 
Agileday2013 pratiche agili applicate all'infrastruttura
Agileday2013 pratiche agili applicate all'infrastrutturaAgileday2013 pratiche agili applicate all'infrastruttura
Agileday2013 pratiche agili applicate all'infrastruttura
 
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
Esplorando il Cloud con Azure - Un viaggio tra IaaS, PaaS e SaaS e un compila...
 
Sviluppare applicazioni Domino Web per dispositivi Mobili
Sviluppare applicazioni Domino Web per dispositivi MobiliSviluppare applicazioni Domino Web per dispositivi Mobili
Sviluppare applicazioni Domino Web per dispositivi Mobili
 
Arduino ICT2016 [IT]
Arduino ICT2016 [IT]Arduino ICT2016 [IT]
Arduino ICT2016 [IT]
 
Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2Csp@scuola uav corso1_lez2
Csp@scuola uav corso1_lez2
 
Android - Programmazione Avanzata
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione Avanzata
 
Xamarin Robotics
Xamarin RoboticsXamarin Robotics
Xamarin Robotics
 
Software Engineering Introduction in Italian
Software Engineering Introduction in ItalianSoftware Engineering Introduction in Italian
Software Engineering Introduction in Italian
 
Iced tea, la macchina virtuale Java libera
Iced tea, la macchina virtuale Java liberaIced tea, la macchina virtuale Java libera
Iced tea, la macchina virtuale Java libera
 
Da DotNet a DotNetCore
Da DotNet a DotNetCoreDa DotNet a DotNetCore
Da DotNet a DotNetCore
 
Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015
 
Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018
 
Windows 10 IoT
Windows 10 IoTWindows 10 IoT
Windows 10 IoT
 

More from Giuseppe Cramarossa

More from Giuseppe Cramarossa (19)

Corso c# - Dalle basi del linguaggio alla creazione di un'applicazione uwp
Corso c# - Dalle basi del linguaggio alla creazione di un'applicazione uwpCorso c# - Dalle basi del linguaggio alla creazione di un'applicazione uwp
Corso c# - Dalle basi del linguaggio alla creazione di un'applicazione uwp
 
Lezione 11 - Javascript
Lezione 11 - JavascriptLezione 11 - Javascript
Lezione 11 - Javascript
 
Lezione 10 - Programmazione ad oggetti
Lezione 10 - Programmazione ad oggettiLezione 10 - Programmazione ad oggetti
Lezione 10 - Programmazione ad oggetti
 
Lezione 9 - Il linguaggio SQL
Lezione 9 - Il linguaggio SQLLezione 9 - Il linguaggio SQL
Lezione 9 - Il linguaggio SQL
 
Lezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-RLezione 8 - Pratica - Il diagramma E-R
Lezione 8 - Pratica - Il diagramma E-R
 
Lezione 8 - Teoria - Progettare una base di dati
Lezione 8 - Teoria - Progettare una base di datiLezione 8 - Teoria - Progettare una base di dati
Lezione 8 - Teoria - Progettare una base di dati
 
Lezione 7 - CSS
Lezione 7 - CSSLezione 7 - CSS
Lezione 7 - CSS
 
Lezione 6 - Accenni sull’ingegneria del software
Lezione 6 - Accenni sull’ingegneria del softwareLezione 6 - Accenni sull’ingegneria del software
Lezione 6 - Accenni sull’ingegneria del software
 
Lezione 5 - L'HTML
Lezione 5 - L'HTMLLezione 5 - L'HTML
Lezione 5 - L'HTML
 
Lezione 4 - Pratica - Lavorare in azienda: il teamwork
Lezione 4 - Pratica - Lavorare in azienda: il teamworkLezione 4 - Pratica - Lavorare in azienda: il teamwork
Lezione 4 - Pratica - Lavorare in azienda: il teamwork
 
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumenti
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumentiLezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumenti
Lezione 4 - Teoria - Lavorare in azienda: organizzazione aziendale e strumenti
 
Lezione 3 - Il CMS Joomla
Lezione 3 - Il CMS JoomlaLezione 3 - Il CMS Joomla
Lezione 3 - Il CMS Joomla
 
Lezione 2 - Il World Wide Web
Lezione 2  - Il World Wide WebLezione 2  - Il World Wide Web
Lezione 2 - Il World Wide Web
 
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internet
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internetLezione 1 - Teoria - Accenni sulle reti e sui servizi internet
Lezione 1 - Teoria - Accenni sulle reti e sui servizi internet
 
Cortana, non solo un' assistente vocale
Cortana, non solo un' assistente vocaleCortana, non solo un' assistente vocale
Cortana, non solo un' assistente vocale
 
Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...
Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...
Programmazione di applicazioni UWP - Dalle basi del C# alla creazione di un’a...
 
Internet services, protocols, applications, packets and frames
Internet services, protocols, applications, packets and framesInternet services, protocols, applications, packets and frames
Internet services, protocols, applications, packets and frames
 
UWP e Mobile App Mobile Services
UWP e Mobile App Mobile ServicesUWP e Mobile App Mobile Services
UWP e Mobile App Mobile Services
 
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagramIl linguaggio UML - Teoria ed esempi pratici sugli use case diagram
Il linguaggio UML - Teoria ed esempi pratici sugli use case diagram
 

Recently uploaded

Questa è una presentazione di Scienze riguardo le varietà allotropiche del ca...
Questa è una presentazione di Scienze riguardo le varietà allotropiche del ca...Questa è una presentazione di Scienze riguardo le varietà allotropiche del ca...
Questa è una presentazione di Scienze riguardo le varietà allotropiche del ca...
nicolofusco13
 
Questo è una presentazione di storia riguardo la scienza e la magia
Questo è una presentazione di storia riguardo la scienza e la magiaQuesto è una presentazione di storia riguardo la scienza e la magia
Questo è una presentazione di storia riguardo la scienza e la magia
nicolofusco13
 
Questa è una presentazione di Arte riguardo Cimabue
Questa è una presentazione di Arte riguardo CimabueQuesta è una presentazione di Arte riguardo Cimabue
Questa è una presentazione di Arte riguardo Cimabue
nicolofusco13
 
Questa è una presentazione di Educazione Civica riguardo la libertà di inizia...
Questa è una presentazione di Educazione Civica riguardo la libertà di inizia...Questa è una presentazione di Educazione Civica riguardo la libertà di inizia...
Questa è una presentazione di Educazione Civica riguardo la libertà di inizia...
nicolofusco13
 
presentazione di michela di SteveJobs.pdf
presentazione di michela di SteveJobs.pdfpresentazione di michela di SteveJobs.pdf
presentazione di michela di SteveJobs.pdf
michelacaporale12345
 
PLATONEpresentazionecaricatasu teams-pdf.pdf
PLATONEpresentazionecaricatasu teams-pdf.pdfPLATONEpresentazionecaricatasu teams-pdf.pdf
PLATONEpresentazionecaricatasu teams-pdf.pdf
palestiniaurora
 
ed civica ambiente presentazione (1).pptx
ed civica ambiente presentazione (1).pptxed civica ambiente presentazione (1).pptx
ed civica ambiente presentazione (1).pptx
michelacaporale12345
 
presentazione di Storia di michela .pptx
presentazione di Storia di michela .pptxpresentazione di Storia di michela .pptx
presentazione di Storia di michela .pptx
michelacaporale12345
 
allotropie del carbonio michela caporale .pptx
allotropie del carbonio michela caporale .pptxallotropie del carbonio michela caporale .pptx
allotropie del carbonio michela caporale .pptx
michelacaporale12345
 

Recently uploaded (20)

magia, stregoneria, inquisizione e medicina.pptx
magia, stregoneria, inquisizione e medicina.pptxmagia, stregoneria, inquisizione e medicina.pptx
magia, stregoneria, inquisizione e medicina.pptx
 
Le forme allotropiche del C-Palestini e Pancia.docx
Le forme allotropiche del C-Palestini e Pancia.docxLe forme allotropiche del C-Palestini e Pancia.docx
Le forme allotropiche del C-Palestini e Pancia.docx
 
TeccarelliLorenzo-Leformeallotropichedelcarbonio.pptx
TeccarelliLorenzo-Leformeallotropichedelcarbonio.pptxTeccarelliLorenzo-Leformeallotropichedelcarbonio.pptx
TeccarelliLorenzo-Leformeallotropichedelcarbonio.pptx
 
Gli isotopi scienze naturale seconda pres
Gli isotopi scienze naturale seconda presGli isotopi scienze naturale seconda pres
Gli isotopi scienze naturale seconda pres
 
Le forme allotropiche del C-Palestini e Pancia.docx
Le forme allotropiche del C-Palestini e Pancia.docxLe forme allotropiche del C-Palestini e Pancia.docx
Le forme allotropiche del C-Palestini e Pancia.docx
 
Questa è una presentazione di Scienze riguardo le varietà allotropiche del ca...
Questa è una presentazione di Scienze riguardo le varietà allotropiche del ca...Questa è una presentazione di Scienze riguardo le varietà allotropiche del ca...
Questa è una presentazione di Scienze riguardo le varietà allotropiche del ca...
 
Questo è una presentazione di storia riguardo la scienza e la magia
Questo è una presentazione di storia riguardo la scienza e la magiaQuesto è una presentazione di storia riguardo la scienza e la magia
Questo è una presentazione di storia riguardo la scienza e la magia
 
Pancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptx
Pancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptxPancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptx
Pancia Asia-Pelusi Sara-La pittura romana - Copia (1).pptx
 
Questa è una presentazione di Arte riguardo Cimabue
Questa è una presentazione di Arte riguardo CimabueQuesta è una presentazione di Arte riguardo Cimabue
Questa è una presentazione di Arte riguardo Cimabue
 
Cap16_Sandro_Botticellipresentazione.pptx
Cap16_Sandro_Botticellipresentazione.pptxCap16_Sandro_Botticellipresentazione.pptx
Cap16_Sandro_Botticellipresentazione.pptx
 
Questa è una presentazione di Educazione Civica riguardo la libertà di inizia...
Questa è una presentazione di Educazione Civica riguardo la libertà di inizia...Questa è una presentazione di Educazione Civica riguardo la libertà di inizia...
Questa è una presentazione di Educazione Civica riguardo la libertà di inizia...
 
presentazione di michela di SteveJobs.pdf
presentazione di michela di SteveJobs.pdfpresentazione di michela di SteveJobs.pdf
presentazione di michela di SteveJobs.pdf
 
Pancia Asia-La vita di Steve Jobs-Adriano Olivetti-Bill Gates.pptx
Pancia Asia-La vita di Steve Jobs-Adriano Olivetti-Bill Gates.pptxPancia Asia-La vita di Steve Jobs-Adriano Olivetti-Bill Gates.pptx
Pancia Asia-La vita di Steve Jobs-Adriano Olivetti-Bill Gates.pptx
 
PLATONEpresentazionecaricatasu teams-pdf.pdf
PLATONEpresentazionecaricatasu teams-pdf.pdfPLATONEpresentazionecaricatasu teams-pdf.pdf
PLATONEpresentazionecaricatasu teams-pdf.pdf
 
ed civica ambiente presentazione (1).pptx
ed civica ambiente presentazione (1).pptxed civica ambiente presentazione (1).pptx
ed civica ambiente presentazione (1).pptx
 
presentazione di Storia di michela .pptx
presentazione di Storia di michela .pptxpresentazione di Storia di michela .pptx
presentazione di Storia di michela .pptx
 
CONCEZIONE DELL'ARTEasiapanciapresentazione.pdf
CONCEZIONE DELL'ARTEasiapanciapresentazione.pdfCONCEZIONE DELL'ARTEasiapanciapresentazione.pdf
CONCEZIONE DELL'ARTEasiapanciapresentazione.pdf
 
allotropie del carbonio michela caporale .pptx
allotropie del carbonio michela caporale .pptxallotropie del carbonio michela caporale .pptx
allotropie del carbonio michela caporale .pptx
 
Educazione civica-Asia Pancia powerpoint
Educazione civica-Asia Pancia powerpointEducazione civica-Asia Pancia powerpoint
Educazione civica-Asia Pancia powerpoint
 
Amburgo la città più smart della Germania
Amburgo la città più smart della GermaniaAmburgo la città più smart della Germania
Amburgo la città più smart della Germania
 

Arduino + Azure: Dal circuito allo sketch e controllo remoto con una app web su azure

  • 1. ARDUINO + AZURE Dal circuito allo sketch e controllo remoto con una app web su Azure Cramarossa Giuseppe Microsoft Student Partner I.I.S.S «G. Marconi» Bari 6 Novembre 2015
  • 2. COS’È ARDUINO? • Scheda elettronica programmabile • Estensibile • Esistono vari moduli (shield) acquistabili anche a basso prezzo • Versioni differenti che dipendono dalla complessità del progetto: • Numero di pin • Memoria flash • Memoria SRAM • Qui verrà utilizzato Arduino Uno • Progetti semplici
  • 3. USI • Hobbistica • Circuiti DIY • Uso a scopo didattico • Unisce informatica ed elettronica • Hardware e software sono logicamente equivalenti (Andrew Stuart Tanenbaum) • Internet of Things • Esempi • Stampanti 3D • Radio IoT • Mixer di alcolici
  • 4. PIN • Permettono di interagire con il circuito • Sono di vari tipi • Digitali • Possono assumere due valori (1 o 0) • Sono identificati tramite un numero • Analogici • Possono assumere valori da 0 a 1023 • Sono identificati da una A seguita da un numero • PWM • Possono assumere valori da 0 a 255 • Studierete la modulazione PWM in telecomunicazioni • Altri pin • Alimentazione esterna, massa, … • Possono assumere due direzioni differenti • Input: dal circuito ad Arduino • Output: da Arduino al circuito • La direzione di alcuni pin può essere controllata via software
  • 5. COMUNICAZIONE CON L’ESTERNO • Modi differenti di comunicazione con l’esterno • Pin • Seriale • SPI • Shield esterne • Bluetooth • Ethernet • … • Qui si vedranno • Seriale • Pin • Ethernet
  • 6. CHE COSA FAREMO • Pratica • Ideazione di un semplice circuito • Fritzing • Creazione di un semplice circuito di pilotaggio led • Bottone • Seriale • Remoto • Programmazione di Arduino • Funzioni di base • Caricamento sulla scheda • Invio/ricezione dati tramite Seriale e Ethernet
  • 7. LED • Giunzione PN • Vari tipi • Monocolore • Bicolore • RGB • Tre colori • Rosso • Verde • Blu • Catodo comune • Anodo comune • Infrarosso • Si può vedere l’infrarosso? Tensioni dei led - Da Wikipedia
  • 10. • Led rossi • Pulsante • Resistenze • 320 Ohm • Non esistono resistenze da 320 Ohm, ma esistono da 100 e 220 Ohm. Quindi se si posizionassero in un certo modo queste resistenze, si avrebbe una resistenza da 320 Ohm. Ma come? • In questo esempio si userà una resistenza da 330 Ohm per semplicità • 10 kOhm • Jumper • Arduino Uno • Ethernet Shield • Controllo remoto • Microsoft Azure REALIZZIAMO IL CIRCUITO
  • 11. • IDE • Arduino IDE • Open Source • No completamento automatico • No Azure SDK • Eclipse • Completamento automatico • Plugin Azure SDK • Plugin ADT (da non confondere con Android Development Toolkit) • Gratuito • Macchinoso da configurare • Visual Studio • Completamento automatico • Plugin Azure SDK • Plugin Visual Micro • Proprietario • Versione free e a pagamento PROGRAMMIAMO (1/2)
  • 12. • Programma • Viene chiamato sketch • Linguaggio di programmazione C++ • Funzioni • Classi • Programmazione d base • Classi che si vedranno • Serial • Ethernet • Costanti che si vedranno • LOW • HIGH PROGRAMMIAMO (2/2)
  • 13. • Non c’è nessun main() da dichiarare • Dov’è? • setup() • Istruzioni eseguite una sola volta • Utile per l’inizializzazione di classi e variabili • Non richiede nessun parametro • loop() • Istruzioni eseguite all’infinito • Non richiede nessun parametro • digitalRead() • Legge il valore di un pin digitale • Unico parametro: il pin digitale • Restituisce lo stato del pin: LOW o HIGH FUNZIONI DI BASE (1/2)
  • 14. • digitalWrite() • Abilita/disabilita un pin digitale • 2 parametri • Il numero del pin digitale • Lo stato del pin: LOW o HIGH • analogWrite() • Scrive un valore che va da 1 a 255 su un pin PWM e da 1 a 1023 su un pin analogico • 2 parametri • Il numero del pin • Il valore da attribuire al pin • Utile ad esempio per i led RGB • delay() • Blocca l’esecuzione delle istruzioni successive • Unico parametro: il tempo da aspettare in milisecondi • 1000 ms = 1 s FUNZIONI DI BASE (2/2)
  • 16. …E IL CIRCUITO PRENDE VITA! • Procurarsi un cavo USB tipo A/B per connettere Arduino al computer • Cavo USB fornito generalmente con le stampanti • Caricare lo sketch sulla scheda • È necessario installare prima i driver di Arduino sul proprio computer • Ogni IDE fornisce due bottoni per verificare/caricare il codice • Verifica: Compila il programma senza caricarlo sulla scheda • Carica: carica lo sketch sulla scheda • Con Arduino il caricamento sulla scheda è molto semplice • Esperienza Erasmus+ con ATMEGA1281 • E il circuito prende vita
  • 17. AGGIUNGIAMO UN BOTTONE • Quadripolo • Collegamento con Arduino • 5V: Tensione • Segnale: collegamento con Arduino • GND • La resistenza dipende dal bottone • Si userà una resistenza di 10 kOhm • Collegamento con il pin GND di Arduino • Creiamo un nuovo sketch che permette di accendere un led alla volta e lo deve fare ogni volta che premiamo un tasto • Il corpo della funzione setup() non cambia • Funzioni di base viste nell’esempio precedente • Funzione digitalRead()
  • 19. SERIALE • Permette di inviare/ricevere dati da e verso l’esterno • Numeri • Stringhe • Caratteri • Ogni Arduino ha 2 o più pin riservati al seriale • Pin di Arduino Uno • 0 (Ricevitore) • 1 (Trasmettitore) • Se si utilizzano i pin 0 e 1, non si potrà usare più la seriale USB • Non caricare più gli sketch via USB • Esistono varie librerie che simulano il funzionamento della seriale • SoftSerial • AltSoftSerial • Non verranno trattati in questo contesto
  • 20. USARE LA SERIALE • Ogni IDE ha un pannello seriale dove poter inviare e ricevere dati • In programmazione esiste la classe Serial • Serial.begin() • Va dichiarata nella funzione setup() • Deve essere dichiarato prima di ogni altro metodo della classe • Richiede un unico parametro: il baudrate • Baudrate = velocità di trasferimento • Serial.read() • Legge un carattere da seriale • Restituisce il carattere letto • Serial.write() • Uno tra i tanti metodi di scrittura su serale • Accetta come parametro la stringa da scrivere • Serial.isAvailable() • Verifica se è presente qualcosa nella seriale • Restituisce true se è presente qualcosa altrimenti false • Creiamo un programma che, dato dei numeri in input, accendano il led corrispettivo al numero
  • 22. CONNETTERE ARDUINO A INTERNET • Esistono diverse schede per connettere Arduino ad Internet • Scheda Ethernet • Scheda wireless • Le vecchie schede Ethernet non avevano indirizzo MAC associato • Esso veniva definito in programmazione • Le nuove schede hanno un’etichetta con l’indirizzo MAC sul retro Ogni scheda necessita di 3 parametri per potersi connettere in Internet • Avrete visto quali sono nella certificazione Cisco R&S • Permette di usare Arduino sia come server e sia come client • In questo caso verrà utilizzato come client
  • 23. CLASSI PER IL CONTROLLO REMOTO • Ethernet • Prima classe da utilizzare per configurare la scheda ethernet • Ethernet.begin • Primo metodo da usare per configurare la scheda Ethernet • Un solo parametro: l’indirizzo MAC • E gli altri? • EthernetClient • Arduino come client • connect • Metodo per connettersi a un server web • 2 parametri • L’url • La porta a cui connettersi • connected • Verifica se arduino si è connesso al sito • Restituisce true se si è connesso, altrimenti false • stop • Chiude la connessione con il server
  • 24. CREIAMO LA WEBAPP • Si creerà una webapp che permette di gestire il circuito da remoto • Per creare la WebApp, sono necessari i linguaggi di programmazione web e un server • Uso di un linguaggio di programmazione lato server • PHP • Non si vedrà come creare la web app • Non è il fine di questa lezione • La webapp è liberamente scaricabile • Il link vi verrà fornito in seguito • La web app verrà caricata su Azure
  • 25. COS’È AZURE • Piattaforma di cloud computing • Aperta • Flessibile • Scalabile • Gratuito per gli studenti • Viene fornito attraverso dreamspark.com • Alcuni software Microsoft possono essere scaricati gratuitamente ad uso esclusivamente didattico • È necessario un codice di verifica che dimostra il vostro status di studente • Alcuni software e servizi offerti oltre ad Azure • Visual Studio • Varie licenze per sviluppatori (Xamarin e per Windows Store) • E molto altro • Servizi offerti su Azure per gli studenti • App Web • Database MySQL • Visual Studio Online • Application Insights
  • 26. CREIAMO UN’ APP WEB SU AZURE • Scaricare i sorgenti da http://1drv.ms/1LH7q2E • Registrarsi su dreamspark.com • È necessario un account Microsoft per potersi registrare • Link diretto: aka.ms/joinds • Registrarsi su Azure • Link diretto: aka.ms/a4d • È necessario il numero di telefono per verifica • Attendere fino a quando non è pronta la sottoscrizione • Creare un App Web su Azure • Sarà il contenitore della nostra webapp • Cliccare su Nuovo (+)  Web e Dispositivi Mobili  App Web • Scegliere un nome per l’app web • Se necessario, creare un gruppo di risorse • Fare clic su Crea • Attendere la creazione della web app
  • 27. USARE LA WEBAPP • Vari metodi per caricare la webapp su azure • FTP • Collegare una cartella presente su uno spazio di archiviazione online (es. OneDrive) • Andare sulla webapp appena creata e cliccare su impostazioni • Andare su distribuzione continua e scegliere lo spazio di archiviazione online • Fornire le autorizzazioni necessarie • Creare la cartella con lo stesso nome della webapp e inserire i file • Cliccare su OK e sincronizzare il contenuto • Esploriamo le API della webapp • Sono presenti nella cartella api • accendiLed.php: permette di accndere il led • ottieniLed.php: permette di ottenere il led • Uso esclusivo per arduino
  • 28. LO SKETCH DI ARDUINO
  • 29. PROPOSTE DI ESERCIZI • Simulare il funzionamento di un semaforo • Sequenza dei colori • Colori diversi, cadute di tensione diverse, resistenze diverse • Timing • Permettere a un pedone di attraversare la strada attraverso la pressione di un pulsante • Il passaggio al rosso non deve essere fatto all’istante • Cosa succede se il semaforo è rosso per le macchine? • Cosa succede se il semaforo è arancione? • Attraverso la seriale, decidere se attivare o disattivare il semaforo • Il semaforo non è attivo se il colore arancione lampeggia o è spento
  • 30. CONCLUSIONE • Domande e risposte • GRAZIE PER L’ATTENZIONE