LABORATORIO AVANZATO DI PROGRAMMAZIONE I

INF/01 - 6 CFU - 1° semestre

Docente titolare dell'insegnamento

CORRADO SANTORO


Obiettivi formativi

  1. Conoscenza e capacità di comprensione (knowledge and understanding). Il corso di "Laboratorio Avanzato di Programmazione 1" si prefigge l'obiettivo di fornire agli studenti le conoscenze sui principi, modelli, tecniche e strumenti per la programmazione dei sistemi embedded a microcontrollore.
  2. Capacità di applicare conoscenza e comprensione (applying knowledge and understanding). Attraverso l'analisi di diversi casi di studio e tramite esercitazioni in laboratorio, il corso consente allo studente di ottenere le capacità di applicare le tecniche acquisite durante le lezioni teoriche nei contesti applicativi dove è richiesto l'utilizzo di sistemi embedded; sarà altresì in grado di comprendere come configurare un microcontrollore e le relative periferiche per l'applicazione specifica in cui esso dovrà essere impiegato.
  3. Autonomia di giudizio (making judgements). Le lezioni del corso e soprattutto le attività di laboratorio sono organizzate in modo da includere un'analisi critica di casi di studio, delle soluzioni impiegate, delle possibili varianti e dei pro e contro di queste ultime, al fine di consentire allo studente di acquisire un'adeguata autonomia di valutazione delle scelte tecniche.
  4. Abilità comunicative (communication skills). Le abilità comunicative dello studente saranno considerate soprattutto durante la prova d'esame al calcolatore, in cui lo studente è chiamato ad esporre le scelte implementative adottate e motivandole opportunamente.
  5. Capacità di apprendimento (learning skills). Le capacità di apprendimento degli studenti saranno valutate durante le esercitazioni di laboratorio, le quali hanno l'obiettivo di testare quanto e come gli studenti abbiano compreso il funzionamento dei sistemi a microcontrollore e quanto siano in grado di progettare adeguatamente il software per tali sistemi. La valutazione del livello di apprendimento sarà dunque utilizzato per approndire (qualora sia necessario) gli argomenti e le parti che si sono rivelati particolarmente ostici.

Prerequisiti richiesti



Frequenza lezioni

La frequenza alle lezioni, per quanto non sia obbligatoria, è fortemente consigliata, in quanto le lezioni stesse sono spesso svolte in forma di laboratorio in cui gli studenti stessi, insieme al docente, sono chiamati a implementare applicazioni tipiche dei sistemi a microcontrollore.



Contenuti del corso

I contenuti sono riportati nella pagina del corso reperible a questo link e riassunti di seguito:

  1. Definizione di microcontrollore (MCU). Differenze tra CPU e MCU. Famiglie di MCU. Panoramica sulle periferiche di una MCU. Panoramica sui microcontrollori della famiglia STM32 e Microchip PIC.
  2. Elementi di elettronica. Legge di Ohm. Leggi di Kirchhoff. Esempi di analisi circuitale. Partitore di tensione. Calcolo della resistenza di limitazione di un LED.
  3. La periferica di I/O digitale. Gestione e programmazione delle porte di I/O. Lettura di un ingresso. Scrittura di un'uscita. Esempi di applicazioni.
  4. I Timer di una MCU. Principio di funzionamento di un timer hardware. Base dei tempi e prescaler. Uso dell'auto-reload. Eventi e Interrupt. Uso dei timer per la generazione di segnali PWM (pulse width modulation). Esempi di utilizzo con Timer e I/O digitale.
  5. Pattern di programmazione dei sistemi a microcontrollore. Macchina a stati finiti. Concetto di stato ed evento. Polling bloccante e non bloccante di eventi. Esempi di problemi con macchine a stati finiti.
  6. La periferica UART. Principio di funzionamento di una UART. Programmazione della periferica UART. Interrupt e polling. Trasmissione di un carattere. Ricezione di un carattere.
  7. Il convertitore analogico-digitale (ADC). Principio di funzionamento. Circuito sample-and-hold. Programmazione di un ADC converter. Sensori e conversione di unità fisiche. Esempi di problemi con ADC.


Testi di riferimento


Altro materiale didattico

Spazio web del corso



Programmazione del corso

 *ArgomentiRiferimenti testi
1 Definizione di MicrocontrolloreSlides del corso 
2*Elementi di elettronica e analisi dei circuitiSlides del corso 
3*La periferica di I/O digitaleSlides del corso 
4*I Timer di una MCUSlides del corso 
5*Pattern di programmazione dei sistemi a MCUSlides del corso 
6*La periferica UART di una MCUSlides del corso 
7*Il convertitore analogico-digitaleSlides del corso 
* Conoscenze minime irrinunciabili per il superamento dell'esame.

N.B. La conoscenza degli argomenti contrassegnati con l'asterisco è condizione necessaria ma non sufficiente per il superamento dell'esame. Rispondere in maniera sufficiente o anche più che sufficiente alle domande su tali argomenti non assicura, pertanto, il superamento dell'esame.


Verifica dell'apprendimento


MODALITÀ DI VERIFICA DELL'APPRENDIMENTO

PROVE IN ITINERE

Non sono previste prove in itinere


PROVE DI FINE CORSO

Non sono previste prove di fine corso


ESEMPI DI DOMANDE E/O ESERCIZI FREQUENTI

Le prove d'esame sono reperibili presso la pagina web del corso e in ogni caso reperibili al link.




Apri in formato Pdf English version