Sistemi embedded

A.A. 2022/2023
6
Crediti massimi
48
Ore totali
SSD
INF/01
Lingua
Italiano
Learning objectives
Fornire al discente le conoscenze per progettare e realizzare un sistema embedded prototipale. Dopo una panoramica delle piattaforme esistenti in commercio verranno fornite alcune basi di elettricità/elettronica per padroneggiare l'interfacciamento col mondo fisico, successivamente verranno affrontati i principali approcci di sviluppo software su piattaforme embedded.
Expected learning outcomes
Saper scegliere la piattaforma embedded adatta ad uno scopo/progetto. Saper progettare e implementare il software da caricare su MCU. Conoscere i limiti e le possibilità di interfacciamento col mondo esterno. Saper scegliere sensori e attuatori corretti per un determinato scopo. Saper leggere uno schema elettrico. Saper scegliere tra protocolli di comunicazione adeguati (sensori e attuatori, rete). Saper gestire una piattaforma embedded con/senza sistema operativo
Corso singolo

Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.

Course syllabus and organization

Edizione unica

Responsabile
Periodo
Secondo semestre

Programma
# Parte teorica

- Classificazione dei sistemi embedded
- Genesi e storia dei microcontrollori
- Problemi da affrontare: limited resources (CPU, RAM, etc.), power consumption, harsh environments, il real-time, costi, dimensioni, tecniche costruttive, I/O (livelli, protezione, tipi di sensori, attuatori, multiplexing)
- Stili di programmazione: no-MMU, cooperative multitasking, interrupts, race conditions, watchdogs, FSA, tasks&events
- Controlli automatici (richiami)
- "Sistemi operativi" nel contesto embedded (es. NodeMCU, OpenWrt, DD-WRT, FreeRTOS)
- Open hardware
- Richiami di elettricità/elettronica: tensioni, correnti, legge di Ohm, componenti passivi, uso degli
strumenti di misura, considerazioni sulla sicurezza personale
- Temporizzazione
- Gestione degli interrupt
- Tipologie di memoria (EEPROM, flash memory, etc.)
- Protocolli di comunicazione "low-level": RS232, I2C, 1-Wire, CAN, etc.
- Protocolli di comunicazione "hig-level": MQTT, OSC, etc.
- Bit banging
- Pulse Width Modulation
- Conversione AD e DA
- Leggere i datasheet
- Piattaforme sul mercato: Arduino, Texas MSP430, ESP8266, RaspberryPI, Beaglebone, Olimex, Alix, ARM, etc.

# Laboratorio

Caso di studio variabile di anno in anno, in funzione delle piattaforme maggiormente usate sul mercato: Arduino

- architettura di Arduino: caratteristiche delle varie versioni dell'hardware (da Arduino UNO fino a Arduino YUN/NUY e ESP8266/32)
- ciclo di sviluppo, fasi della programmazione: scrittura del codice, cross-compilazione, upload, esecuzione del programma
- il meccanismo base di funzionamento di Arduino: i metodi "setup" e "loop"
- variabili, espressioni, tipi di dato, operatori ("+", "-", "*", etc.)
- Input/Output attraverso le porte disponibili sulla scheda: come leggere informazioni da sensori e come attivare azioni sul mondo reale tramite attuatori
- controllo di flusso
- definizione di funzioni
- gli shield: schede già pronte per funzionalità ormai standardizzate (es. motori in corrente continua e passo/passo, relè, rete ethernet, rete cellulare, wifi, bluetooth, etc.)
- inclusione di librerie
- paragoni con altre piattaforme
Prerequisiti
basi di programmazione, conoscenze di fisica
Metodi didattici
lezioni frontali e laboratorio "hands on"

frequenza fortemente consigliata
Materiale di riferimento
Sistemi Embedded: teoria e pratica

Alexjan Carraturo, Andrea Trentini

Seconda Edizione

Anno di pubblicazione: 2019

ISBN: 9788867059430

http://sistemiembedded.cc
Modalità di verifica dell’apprendimento e criteri di valutazione
Esame orale con presentazione di un progetto.
L'esame consiste in una discussione orale obbligatoria che verte sugli argomenti trattati o citati nel corso, inoltre ogni studente dovrà realizzare (e quindi presentare) un progetto hardware+software su un tema concordato preventivamente col docente.
La presentazione/dimostrazione del progetto sarà parte integrante della valutazione.
Per la valutazione saranno considerati i seguenti parametri:
- completezza nella presentazione del progetto
- capacità di ragionamento critico sui temi del corso
- capacità di generalizzazione e applicazione al mondo reale
- uso corretto della terminologia
- qualità nella realizzazione hardware+software
Valutazione: voto in trentesimi
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Professor(s)
Ricevimento:
su appuntamento, chiedere via mail (meglio quella @atrent)
stanza 4007, via Celoria 18, MI