Hands-On Arduino Electronics for designers

Documenti analoghi
Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Corso di programmazione Arduino DI MALVEZZI DAVIDE

Programmazione di Base Variabili Array Funzioni Strutture di controllo. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

ROBOTICA Syllabus Versione 1.0

Cosa è? Come lo si usa? Come iniziare? Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Prime applicazioni hardware. G. De Nunzio - G. Marsella

Prof. Capuzzimati Mario - ITIS Magistri Cumacini - Como MICROCONTROLLORE

LE ALTRE BOARD ARDUINO

Prefazione...IX. Capitolo 1 - La famiglia di Arduino...1

D.A.M. Bros Robotics -

Cos'è Arduino? rilasciata con licenza di tipo open source.

Titolare del corso Prof. Andrea Cusano. Assistenti: Ing. Giuseppe Quero Ing. Antonio Iele Ing. Marco Leone Ing. Benito Carotenuto

Verso Arduino... E oltre!

Workshop Teachers For Teachers settembre 2013

Sistemi a microprocessore

Indice. Introduzione 15. L hardware 24. Il software 43. Introduzione al linguaggio di Arduino 60. Basi del linguaggio di Arduino 65

Tesina di Maturità. Gianfriddo Giuseppe Classe: 5^B I.T.I.S Indirizzo: Elettronica ed elettrotecnica Anno: 2014/15. Autore: Gianfriddo Giuseppe

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

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

Componenti e connessioni. Capitolo 3

FONDAMENTI DI ARDUINO

Shield didattico per Raspberry Pi

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Architetture dei sistemi elettronici 14. Il microcontrollore

All interno di un ATmega16 troviamo moltissimi dispositivi trai quali, timer, gestori delle interupt personalizzabili, convertitori A/D, multiplexer


Componenti principali

PROGRAMMA = ALGORITMO

Caratteristiche di un PC

INTERAZIONE ELETTRONICA

Strutture dati e loro organizzazione. Gabriella Trucco

Settimana n.2. Obiettivi Esecuzione di un programma. Tutorial su CodeBlocks e ambiente di sviluppo.

Arduino. Sezione di Misure e Tecniche Sperimentali

Questo sistema si è poi diffuso in tutto il mondo, soprattutto in ambito didattico e hobbistico. Arduino mette a disposizione:

Giancarlo Rini (rini) FPGA. 29 September 2011

SCHEDA SPERIMENTALE ARDUINO UNO

I dispositivi di input/output

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

ARDUINO. Ing. Francesco Giurlanda

Tecnologie dei Sistemi di Automazione

Relazione Tecnica Sensore di Temperatura con interfacciamento microcontroller Arduino 1.3

Corso Arduino Maggio Riccardo Binetti Lezione 2 - Il calore dell analogico

CORSO DI PROGRAMMAZIONE MICROCONTROLLORI

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Nicola Amoroso. Corso introduttivo sui microcontrollori A. S Microprocessori - Microcontrollori.

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Le basi del linguaggio Java

Informatica/ Ing. Meccanica e Ing. Edile/ Prof. Verdicchio/ 16/07/2013 / Foglio delle domande / VERSIONE 1

Sistemi e Tecnologie per l'automazione LM. HW per elaborazione digitale in automazione: Microcontrollori e DSP

Davide Gennaretti, Matteo Nicolini

Struttura hw del computer

CALCOLATORI ELETTRONICI II

Introduzione ad Arduino Giuseppe Augiero

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi

Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

Introduzione. Caratteristiche generali. Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

CTU Presenta. Contest Automation con Arduino. IK0XBX - Francesco

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

Internetworking V a nno

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

17^ parte : Bluetooth Shield SLD63030P. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Esame di INFORMATICA Lezione 4

Esame di INFORMATICA ARCHITETTURA DI VON NEUMANN. Lezione 4 ARCHITETTURA DI VON NEUMANN

Introduzione alla scheda Arduino/Genuino

MM ARDUINO ) un clock al quarzo a 16MHz, abbastanza veloce per la maggior parte delle applicazioni;

CENTRO PROVINCIALE PER L ISTRUZIONE DEGLI ADULTI GROSSETANO Primo livello / secondo periodo didattico Esercitazione parte generale.

Tipologie dei dati nell SDK di Arduino come in un vero LP ad alto livello :

Arduino & Oltre corso di coding ed elettronica maker

INFORMATICA E PC IL PERSONAL COMPUTER

GESTIONE DELLE INTERRUZIONI (INTERRUPT)

MST_K12. Regolatore di velocita per motori in CC. Realizzazione e Applicazione

Elettronica dei Sistemi Programmabili A.A Microcontrollori. Introduzione allo sviluppo di progetti

6: Macchina di Von Neumann

Andrea Di Dato. e fu così che i maker misero le ali

Fondamenti di Informatica T-1. Selezione

Cenni sull architettura del calcolatore

Week Programmer v2.1 Week Programmer Rev2.1

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo. Classificazione. I microcontrollori

ARCHIDUINO project. Manuale scheda CPU

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Modulo 1: Le I.C.T. UD 1.4b: Anatomia del Computer

INFORMATICA E PC IL PERSONAL COMPUTER

PYNQ: Python for Zynq. La PYNQ-Z1 board è basata su un Zynq System-on-Chip (SOC)

I dispositivi di input/output

TSP 240. Terminale operatore con PLC integrato. inferiore a 500 ma senza carichi. Memoria Programma

KS 407. Terminale operatore con PLC integrato. inferiore a 300 ma senza carichi. Memoria Programma

ICCS Sistemi intelligenti di controllo e comando 5.25

Progetti reali con ARDUINO

Architettura del calcolatore

ALLEGATO 2 SPECIFICHE DCS IMPIANTO UL3

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo

IL NUOVO ORIZZONTE: ARDUINO 1

Computer. Com è fatto un Personal Computer.

Corso Arduino Maggio Nicola Corna Lezione 2 - segnali analogici, audio e video

TERMINALE DI PESATURA VEGA BOX

Architettura dei computer

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

1) Si descriva brevemente il processo di conversione analogico-digitale di un segnale.

Transcript:

AA 2010/2011 Facoltà del Design - Politecnico di Milano 3.o anno Disegno Industriale Hands-On Arduino Electronics for designers P. Perego- Politecnico di Milano

Che cos è ARDUINO? Hardware, Software e prototipo di circuito. 2 Arduino is an open-source physical computing platform based on a simple i/o board and a development environment that implements the Processing / Wiring language. Arduino can be used to develop stand-alone interactive objects or can be connected to software on your computer. ( www.arduino.cc, 2006 )

Perché ARDUINO? Nano, Lilly, Fyo, Mini, Mega 3 1. Arduino è nato per la prototipazione da parte di non elettronici: robusto e immediato; 2. E' orientato all'applicazione, non alla piattaforma in sé; 3. Permette di provare, partendo dal piccolo e crescendo pezzo per pezzo (sviluppo modulare); 4. Lo sviluppo è aiutato da una enorme community online con esempi e consigli. 5. Economico 6. Connessione USB

Com è fatto Arduino 4 Micro controllore: Arduino è basato su un microcontrollore, l ATmega328 Il microcontrollore è il «cervello» di tutto il sistema, gestisce gli input, gli output, la comunicazione USB, la temporizzazione. Necessita quindi di istruzioni deve essere programmato!!!

Microcontrollore: Approfondimento 5 Il microprocessore è il nucleo centrale di un calcolatore; esso è l unità di elaborazione dei dati e di controllo del funzionamento del calcolatore stesso e viene spesso indicato con la sigla CPU (Central Processing Unit). Posto da solo, il up non è utilizzabile, infatti sia i dati che i programmi su cui il processore opera sono immagazzinati in un unità di memoria esterna a causa della grande quantità di memoria richiesta. Per applicazioni particolari, tipiche del controllo industriale si fa invece uso dei così detti Microcontrollori (uc). Un microcontrollore è un sistema a microprocessore completo, integrato in un solo chip, progettato per ottenere la massima autosufficienza funzionale ed ottimizzare il rapporto prezzoprestazioni per una specifica applicazione. I uc comprendono, oltre all unità di calcolo, anche la memoria (RAM e ROM) e ulteriori periferiche di input/output (convertitori analogico/digitali, timer, interfaccia USB) a seconda dell applicazione specifica.

Microcontrollore: Approfondimento 2 6 I vantaggi dell utilizzo dei micro: Sono richiesti meno dispositivi discreti per la realizzazione di un sistema Il sistema ha dimensioni ridotte Diminuiscono i costi Diminuisce il consumo di potenza Diminuisce la sensibilità all ambiente (temperatura, EM, ) Utilizza meno componenti, quindi più affidabile. Riconvertibilità del progetto (riprogrammabile) Protezione contro la copia Interfacciamento semplice con altri dispositivi (PC, LCD, ) Ma dove si usano??? Componenti PC: mouse, tastiere, modem, carica batterie Orologi, calcolatrici Serrature per porte, sistemi d allarme Automotive: in una BMW X5 sono contenuti più di 70 microcontrollori. Arduino è basato su un microcontrollore, l ATmega328 La grande community online e il fatto di essere OpenSource lo rendono molto più semplice ed intuitivo rispetto al normale utilizzo di microcontollori (PIC, ARM )

Com è fatto Arduino 7 Alimentazione da USB Alimentazione da V-in (6-20V) Si consiglia una tensione tra 7 e 12V. Se utilizziamo un alimentatore esterno, sul pin Vin si troverà la tensione di alimentazione vera e propria senza regolazione. Alimentazione da Jack (6-20V) Arduino seleziona automaticamente la sorgente di alimentazione. Solo il vecchio Arduino diecimila necessita di un selettore.

Com è fatto Arduino 8 Nota: Segnale analogico: è un segnale a tempo ed ampiezza continua. 14 Ingressi/Uscite digitali Segnale digitale o numerico: è un segnale a tempo discreto e ad ampiezza quantizzata. 6 Ingressi analogici

Alimentazione a batteria Dimensionamento della batteria 9 Il dimensionamento della batteria è un aspetto fondamentale di un progetto. Arduino One, Mega e 2009, grazie al connettore esterno, permettono di alimentare il sistema per mezzo di batterie ma quali usare? La batteria da utilizzare dipende da: 1. Tempo d uso 2. Corrente richiesta dal sistema 3. Tensione richiesta dal sistema 4. Dimensione massima (in cm) della batteria Se per esempio abbiamo un circuito che necessità 3,3V, consuma 150mA e vogliamo che la batteria duri alemno 8 ore, dovremo scegliere un batteria con tensione maggiore di 3,3V (il circuito avrà un regolatore, come Arduino) e una capacità di almeno 150mA*8*1,2 = 1440mAh 1,2 è un fattore di correzione per assicurarsi la durata voluta.

Pin Digitali: Generici ed specifici 10 Ognuno dei 14 pin Digital I/O dell Arduino può essere utilizzato sia come input che come output. I pin Digital I/O operano ad una tensione di 5V e possono fornire fino a 40mA di corrente Alcuni di questi pin hanno funzioni specifiche: Serial: pin 0 (RX) e pin 1 (TX). Sono rispettivamente il pin di trasmissione e ricezione per la comunicazione seriale. Lavorano a 5V e sono connessi con l USB. Possono essere utilizzati per connettere un modulo bluetooth. In questo caso il modulo deve essere scollegato per permettere la scrittura del firmware attraverso l USB. External Interrupts: pin 2 e 3. Questi pin possono essere configurati per la generazione di interrupt. Possono cioè essere configurati in modo che se il valore del pin cambia, l esecuzione del codice viene interrotta momentaneamente per eseguire un altra operazione, associata al cambiamento del pin

Pin Digitali: Generici ed specifici 11 PWM: 3, 5, 6, 9, 10, e 11. Possono essere utilizzati come PWM a 8 bit. SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Questi pin possono essere utilizzati per la comunicazione SPI con alcuni dispositivi (SDCARD, Ethernet shield, GSM). LED: 13. Il pin 13 è collegato ad un led SMD presente sulla scheda. I 2 C: 4 (SDA) e 5 (SCL). Configurabile come I 2 C (TWI) (simile a SPI).

Pin Digitali: Pulse Width Modultation (PWM) 12 La PWM Pulse Width Modulation è una tecnica utilizzata per la generazione di un segnale analogica utilizzano un uscita digitale. Variando la lunghezza dell impulso posso generare dei valori analogici da 0 a Vcc (5V per Arduino). Il duty-cycle è il rapporto tra il periodo dell impulso al valore logico alto sul periodo in percentuale. La frequenza di lavoro del PWM di Arduino è circa 470Hz. Pilotando un led con questa tecnica posso far assumere diverse gradazioni di luminosità, l occhio non percepisce il continuo on/off ma un livello differente di luminosità.

Pin Analogici: Convertitore Analogico-Digitale (ADC) 13 Arduino ha inoltre 6 ingressi analogici (A0 A5) ognuno dei quali ha una risoluzione a 10bit (cioè riconosce 2^10 = 1024 intervalli di tensione differenti). Il convertittore analogico-digitale (ADC) interno di Aduino è settato di default per acquisire valori tra 0 e 5V. Questo vuol dire che l intervallo di 5V sarà diviso in 1024 intervalli. E se volessimo acquisire un segnale tra 0 e 3,3V? Parte dei livelli di quantizzazione sarebbero Inutili. 0V 3,3V 5V

Pin Analogici: Convertitore Analogico-Digitale (ADC) 2 14 Per tale motivo è presente il pin AREF con il quale, per mezzo di una apposita funzione che vedremo in seguito, si può fissare il valore di riferimento (il valore massimo) per l ADC Un altro pin molto utile è il RESET. Questo pin, se posto a 0, permette di resettare lo stato dell arduino. È possible resettare Arduino sia per mezzo del pulsante presente sulla board, sia attraverso questo pin. Durante la programmazione questo pin è posto basso per resettae Arduino e permetterne la programmazione.

15 Programmazione di Base Variabili Array Funzioni Strutture di controllo Nota: Utile per Arduino e Processing

Com è fatto Arduino 16 Programmazione da USB Nota: Firmware: Insieme di istruzioni che controllano il funzionamento di un microcontrollore. E il «programmino» che andremo a caricare sul nostro Arduino. Software: Insieme di istruzioni che controllano parte del nostro computer. Sono i programmi che girano sul nostro calcolatore (Word, Excel ). Incluso il software Arduino che avete installato, chiamato anche «Integrated Development Environment (IDE) Arduino». Procesing è un altro IDE che serve tuttavia a creare software per PC/MAC.

Programmazione di base Le Variabili 17 Dichiarazione delle varibili: int ledpin = 13; int ledpin1 = 10; float interval = 100.5; char carattere= c ; Tipo variabile NOME VARIABILE (= Valore iniziale); Tipi di variabili presenti: - boolean: variabile binaria, può essere TRUE o FALSE; - char: usa un byte di memoria e può contenere un qualsiasi carattere. Ad esso è assegnato un valore tra -127 e 128; - byte: contiene 8 bit, valore tra 0 e 255; - int: numero intero tra -32768 e 32767 (2 byte); - word: contiene 16 bit, valore tra 0 e 65535; - long: numero intero tra -2147483,648 e 2147483,647 (4 byte); - float e double: numero con virgola mobile tra 3,4028235E+38 and as low as -3,4028235E+38 - string: colonna di char; - array: colonna di variabili (int, float )

Programmazione di base Esempi di variabili 18 boolean running = false; char mychar = 'A'; byte b = B00010010; int ledpin = 13; word w = 10000; long speedoflight = 186000L; float sensorcalbrate = 1.117; STRING: char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'}; char* mystrings[]={"this is string 1", "This is string 2", "string 3"}; ARRAY: int myints[6]; int mypins[] = {2, 4, 8, 3, 6}; int mysensvals[6] = {2, 4, -8, 3, 2}; char message[6] = "hello";

Esempi di variabili Gli array 19 Si può immaginare un array come una sorta di casellario, le cui caselle sono dette celle dell'array stesso. Ciascuna delle celle si comporta come una variabile tradizionale; tutte le celle sono variabili di uno stesso tipo preesistente, detto tipo base dell'array. Si parlerà perciò di tipi come "array di interi", "array di stringhe", "array di caratteri" e così via. La dimensione dell'array (ovvero il numero celle di cui esso è composto) viene considerato parte della definizione del tipo array. Ciascuna delle celle dell'array è identificata da un valore di indice. L'indice è generalmente numerico e i valori che gli indici possono assumere sono numeri interi che partono da 0. Si potrà quindi parlare della cella di indice 0, di indice 1, e, in generale, di indice N, dove N è un intero compreso fra 0 e la dimensione dell array. Dichiarazione di un array di 10 interi: int myarray[10]; Uso dell array: myarray[0] = 10; myarray[1] = 5;

Cosa sono le funzioni 20 Le funzioni sono parti di codice a cui viene associato un nome. Le funzioni hanno principalmente tre funzioni: - Permettere una maggiore leggibilità del codice - Evitare di riscrivere lo stesso codice - Possibilità di costruire librerie da poter utilizzare in differenti progetti Una funzione ha solitamente questa struttura: Tipo_dato_uscita NomeFunzione(tipi_ingressi NomeVariabile ) { Corpo della funzione } Arduino permette sia l utilizzo di funzioni da librerie, sia la creazione di nuove funzioni.

Strutture di controllo 21 if else Se la variabile corrisponde alla prima condizione eseguo azione 1, altrimenti eseguo l azione due. if (condizione 1) else azione 1; azione 2; Ciclo for Serve per eseguire N volte le funzioni tra parentesi

Strutture di controllo 22 Switch case Il controllo switch si comporta come più if in cascata. È utilizzato per quei casi in cui la variabile può assumere più valori che devono essere controllati tutti (es. Che tasto ho premuto?) switch (var) { case 1: //do something when var equals 1 break; case 2: //do something when var equals 2 break; default: // if nothing else matches, do the default // default is optional }

Strutture di controllo 23 Ciclo while Esegue continuamente le funzioni tra parentesi fino a che la condizione rimane invariata. while(var < 200) { // do something repetitive 200 times var++; } Ciclo Do while È come il ciclo while, ma in questo caso la condizione è controllata alla fine. do { x = readsensors(); // check the sensors } while (x < 100);