Offerta Didattica

 

ENGINEERING AND COMPUTER SCIENCE

EMBEDDED SYSTEMS

Classe di corso: LM-32, 18 - Classe delle lauree magistrali in Ingegneria informatica
AA: 2021/2022
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

Provide basic knowledge on the theoretical and practical aspects related to the design and analysis of embedded systems with particular reference to microcontroller programming techniques, data acquisition from analog and digital sensors, and control of actuation systems. Provide an overview of the various categories of sensors and actuators available on the market and the basic principles of their use. Allow the students to be able to create working prototypes of embedded systems by applying the learned methodologies. Encourage the development of students' autonomy. Students will be able to have a critical view on the main problems concerning embedded systems such as the presence of real-time requirements, the tradeoffs between costs and performances, and the constrains on power consumption and to independently design an embedded system taking into account all the requirements. To acquire basic terminology and the ability to speak with technical language appropriate to the discipline. The student will be able to communicate the reasons for the technical choices made and to adequately represent the results obtained. Develop in the student an individual study method suitable to allow the deepening of the knowledge acquired. Provide an independent capacity of knowledge update with respect to the advancement of technologies with particular reference to the high-level programming languages used in the embedded systems and to the main hardware components.

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

The course, in order to achieve the expected objectives, mainly takes place through lectures in the laboratory. There are also laboratory exercises guided by the teacher, with the aim of stimulating the ability to apply the knowledge acquired during the theoretical lessons. All activities are carried out with the support of lecture slides.

Prerequisiti

Conoscenze di reti logiche, elettronica di base, architettura dei calcolatori, programmazione assembly, programmazione C.

Prerequisites

Knowledge of logic networks, basic electronics, computer architecture, assembly programming, C programming is required.

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

The course includes a design activity in the form of the creation of a prototype and a written paper. The goal is to allow students to demonstrate the ability to prototype functional embedded systems by applying the methodologies learned. The topic of the design activity is agreed with the teacher. The activity is subjected to the judgment of the teacher who can approve or reject the project. Students for whom the project is approved are admitted to the oral exam. The objective of the oral exam is to verify the level of knowledge acquired by the student and his ability to communicate the reasons for the technical choices adopted as well as to adequately represent the results obtained. The final grade is expressed out of thirty and takes into account the complexity of the design activity and the quality of the oral exam.

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

- INTRODUCTION TO EMBEDDED SYSTEMS: terminology, Cyber Physical Systems, Internet of Things, Industry 4.0, application fields, requirements of an embedded system. - DIFFERENCE BETWEEN MICROPROCESSORS AND MICROCONTROLLERS: history of automatic calculation from the point of view of embedded systems, structure of an embedded system, hardware and software components. - ATMEGA32PU MICROCONTROLLER: architecture, components, datasheet, general operation. - ARDUINO UNO BOARD: Arduino UNO rev3 board and its architecture, Arduino development environment. - DIGITAL INPUT/OUTPUT: use of external LEDs with the Arduino board, use of the digitalWrite() function, use of the delay() function, use of digital buttons with the Arduino board, use of the digitalRead() function, pull-up and pull-down resistors, the problem of digital buttons bouncing. - ANALOG INPUT/OUTPUT: use of RGB LEDs with the Arduino board, introduction to PWM, use of the analogWrite() function, use of the analog-digital converters on board the ATMEGA32PU microcontroller, use of the analogRead() function. - SERIAL COMMUNICATION: use of the Serial object and use of the serial monitor for communication from the Arduino board to another device and vice versa. - ANALOG SENSORS: example of use of a potentiometer as input via voltage divider, example of an analog sensor and reading of its datasheet, example of a photoresistor in combination with a voltage divider, use of the map () and constrain () functions. - USE OF SHIFT REGISTERS: use of the shiftOut () function, use of a 7-segment display via shift registers, use of a 4-digit display via the principle of persistence of vision. - USING MOTORS: DC brushed motor, principle of operation and control, use of a transistor, a diode and an external voltage generator to control the motor, introduction to H bridges, servo motors and stepper motors, principle of operation and control, use of a linear regulator as a DC-DC converter, use of the Servo.h and Stepper.h libraries. - SERIAL COMMUNICATION PROTOCOLS: I2C protocol and its operating principles, use of the Wire.h library, example of use of an I2C sensor, SPI protocol and its operating principles, use of the SPI.h library, example of use of an SPI sensor. - USE OF REAL TIME CLOCK: configuration, use to keep information on date and time. - HARDWARE INTERRUPT AND TIMER: implementation of an interrupt routine, use of interrupts in combination with a button, use of timers. - LOW LEVEL PROGRAMMING: use of the bitwise AND, OR and NOT operators, use of the left and right shift operators, interaction with the microcontroller registers.

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