Offerta Didattica
ENGINEERING AND COMPUTER SCIENCE
EMBEDDED SYSTEMS
Classe di corso: LM-32, 18 - Classe delle lauree magistrali in Ingegneria informatica
AA: 2022/2023
Sedi: MESSINA
SSD | TAF | tipologia | frequenza | moduli |
---|---|---|---|---|
ING-INF/05 | Caratterizzante | Libera | Libera | No |
CFU | CFU LEZ | CFU LAB | CFU ESE | ORE | ORE LEZ | ORE LAB | ORE ESE |
---|---|---|---|---|---|---|---|
6 | 4 | 0 | 2 | 48 | 24 | 0 | 24 |
LegendaCFU: n. crediti dell’insegnamento CFU LEZ: n. cfu di lezione in aula CFU LAB: n. cfu di laboratorio CFU ESE: n. cfu di esercitazione FREQUENZA:Libera/Obbligatoria MODULI:SI - L'insegnamento prevede la suddivisione in moduli, NO - non sono previsti moduli ORE: n. ore programmate ORE LEZ: n. ore programmate di lezione in aula ORE LAB: n. ore programmate di laboratorio ORE ESE: n. ore programmate di esercitazione SSD:sigla del settore scientifico disciplinare dell’insegnamento TAF:sigla della tipologia di attività formativa TIPOLOGIA:LEZ - lezioni frontali, ESE - esercitazioni, LAB - laboratorio
Obiettivi Formativi
Fornire le conoscenze di base sugli aspetti teorici e pratici legati alla progettazione e all’analisi dei sistemi embedded con particolare riferimento alle tecniche di programmazione dei microcontrollori, all’acquisizione dati da sensori analogici e digitali e al controllo di sistemi di attuazione. Fornire un quadro generale delle varie categorie di sensori e attuatori disponibili sul mercato e i principi di base del loro utilizzo. Consentire agli studenti di essere in grado di realizzare prototipi di sistemi embedded funzionanti mediante l’applicazione delle metodologie apprese. Favorire l’autonomia dello studente che sarà messo in grado di avere una visione critica sulle principali problematiche riguardanti i sistemi embedded quali la presenza di requisiti real-time, i tradeoff tra costi e prestazioni ed il consumo di potenza e di essere in grado di progettare in autonomia un sistema embedded tenendo conto dell’insieme dei requisiti presenti. Far acquisire la terminologia di base e la capacità di interloquire con linguaggio tecnico appropriato alla disciplina. Lo studente sarà messo in grado di comunicare le motivazioni delle scelte tecniche adottate e di rappresentare adeguatamente i risultati ottenuti. Sviluppare nello studente un metodo di studio individuale adeguato a consentire l’approfondimento delle conoscenze acquisite. Fornire una capacità di aggiornamento autonomo rispetto all’avanzamento delle tecnologie con particolare riferimento ai linguaggi di programmazione di alto livello utilizzati nell’ambito dei sistemi embedded e alle principali componenti hardware.Learning Goals
Metodi didattici
Il corso, al fine di raggiungere gli obiettivi formativi previsti, si svolge prevalentemente attraverso lezioni frontali in laboratorio. Sono inoltre previste esercitazioni in laboratorio guidate dal docente, con lo scopo di stimolare la capacità di applicare la conoscenza acquisita durante le lezioni teoriche. Tutte le attività sono svolte con supporto di slide delle lezioni.Teaching Methods
Prerequisiti
Conoscenze di reti logiche, elettronica di base, architettura dei calcolatori, programmazione assembly, programmazione C.Prerequisites
Verifiche dell'apprendimento
Il corso prevede un’attività di progettazione sotto forma di realizzazione di un prototipo e di un elaborato scritto. L’obiettivo è consentire agli studenti di dimostrare la capacità di realizzare prototipi di sistemi embedded funzionanti mediante l’applicazione delle metodologie apprese. L'argomento dell’attività di progettazione viene concordato con il docente. L’attività viene sottoposta al giudizio del docente che potrà approvare o respingere il progetto. Gli studenti per i quali il progetto viene approvato sono ammessi alla prova orale. L’obiettivo di tale prova è di verificare il livello di conoscenza acquisito dallo studente e la sua capacità di comunicare le motivazioni delle scelte tecniche adottate nonché di rappresentare adeguatamente i risultati ottenuti. Il voto finale è espresso in trentesimi e tiene conto della complessità dell’attività di progettazione e della qualità della prova orale.Assessment
Programma del Corso
- INTRODUZIONE AI SISTEMI EMBEDDED: terminologia, Cyber Physical Systems, Internet of Things, Industria 4.0, campi applicativi, requisiti di un sistema embedded. - DIFFERENZA TRA MICROPROCESSORI E MICROCONTROLLORI: storia del calcolo automatico dal punto di vista dei sistemi embedded, struttura di un sistema embedded, componenti hardware e software. - MICROCONTROLLORE ATMEGA32PU: architettura, componenti, datasheet, funzionamento generale. - SCHEDA ARDUINO UNO: scheda Arduino UNO rev3 e sua architettura, ambiente di sviluppo Arduino. - INPUT/OUTPUT DIGITALE: utilizzo di LED esterni con la scheda Arduino, utilizzo della funzione digitalWrite(), utilizzo della funzione delay(), utilizzo di pulsanti digitali con la scheda Arduino, utilizzo della funzione digitalRead(), resistenze di pull-up e pull-down, problema del rimbalzo con i pulsanti digitali. - INPUT/OUTPUT ANALOGICO: utilizzo di LED RGB con la scheda Arduino, introduzione alla PWM, utilizzo della funzione analogWrite(), utilizzo dei convertitori analogico-digitali a bordo del microcontrollore ATMEGA32PU, utilizzo della funzione analogRead(). - COMUNICAZIONE SERIALE: utilizzo dell'oggetto Serial e utilizzo del serial monitor per la comunicazione dalla scheda Arduino verso un altro dispositivo e viceversa. - SENSORI ANALOGICI: esempio di uso di un potenziometro come input tramite partitore di tensione, esempio di un sensore analogico e lettura del suo datasheet, esempio di un fotoresistore in combinazione con un partitore di tensione, utilizzo delle funzioni map() e constrain(). - UTILIZZO DI SHIFT REGISTER: utilizzo della funzione shiftOut(), utilizzo di display a 7 segmenti tramite shift register, utilizzo di un display a 4 cifre tramite il principio di persistenza della visione. - UTILIZZO DI MOTORI: motore DC brushed, principio di funzionamento e controllo, utilizzo di un transistor, un diodo e un generatore di tensione esterno per controllare il motore, introduzione ai ponti H, motori servo e motori stepper, principio di funzionamento e controllo, utilizzo di un regolatore lineare come convertitore DC-DC, utilizzo delle librerie Servo.h e Stepper.h. - PROTOCOLLI DI COMUNICAZIONE SERIALE: protocollo I2C e suoi principi di funzionamento, utilizzo della libreria Wire.h, esempio di utilizzo di un sensore I2C, protocollo SPI e suoi principi di funzionamento, utilizzo della libreria SPI.h, esempio di utilizzo di un sensore SPI. - UTILIZZO DI REAL TIME CLOCK: configurazione, utilizzo per mantenere l'informazione su data e ora. - HARDWARE INTERRUPT E TIMER: implementazione di una interrupt routine, utilizzo di interrupt in combinazione con un pulsante, utilizzo dei timer. - PROGRAMMAZIONE DI BASSO LIVELLO: utilizzo degli operatori di bitwise AND, OR e NOT, utilizzo degli operatori di shift destro e sinistro, interazione con i registri del microcontrollore.Course Syllabus
Testi di riferimento:
- Make: AVR Programming, Elliot Williams, Maker Media, Inc, 2014
- Exploring Arduino - Tools and Techniques for Engineering Wizardry, Jeremy Blum, John Wiley & Sons, Inc., 2013
Esami: Elenco degli appelli
Elenco delle unità didattiche costituenti l'insegnamento
Docente: FRANCESCO LONGO
Orario di Ricevimento - FRANCESCO LONGO
Giorno | Ora inizio | Ora fine | Luogo |
---|---|---|---|
Martedì | 15:00 | 16:00 | 7° piano blocco B del Dipartimento di Ingegneria |
Giovedì | 15:00 | 16:00 | 7° piano blocco B del Dipartimento di Ingegneria |
Note: