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
SSDTAFtipologiafrequenzamoduli
ING-INF/05CaratterizzanteLiberaLiberaNo
CFUCFU LEZCFU LABCFU ESEOREORE LEZORE LABORE ESE
64024824024
Legenda
CFU: 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

Elenco delle unità didattiche costituenti l'insegnamento

Docente: FRANCESCO LONGO

Orario di Ricevimento - FRANCESCO LONGO

GiornoOra inizioOra fineLuogo
Martedì 15:00 16:007° piano blocco B del Dipartimento di Ingegneria
Giovedì 15:00 16:007° piano blocco B del Dipartimento di Ingegneria
Note:
  • Segui Unime su:
  • istagram32x32.jpg
  • facebook
  • youtube
  • twitter
  • UnimeMobile
  • tutti