martedì 27 settembre 2016

A.S. 2016/17 - Esercitazioni di laboratorio per la materia TECNOLOGIA E PROGETTAZIONE/3

------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 10_1 - Comunicazione seriale Bidirezionale tra schede Launchpad e/o PC
Trasmissione e ricezione di semplici comandi tra scheda e pc


OBIETTIVI DISCIPLINARI
- Utilizzo dell'Uart
- Riorganizzazione del codice precedentemente scritto come libreria

PROCEDIMENTO / SPECIFICHE INIZIALI
- alla pressione del pulsante 1 viene inviato il comando 'r'; alla pressione del pulsante 2 viene inviato il comando 'b'; alla pressione del pulsante 1 e 2 viene inviato il comando 'g'; alla ricezione del comandi: 'r' -> accende il led rosso; 'b' -> accende il led blu; 'g' -> accende il led verde;
- da Pc inviare i comandi 'r', 'g', 'b' per comandare la launchpad

GRIGLIA DI VALUTAZIONE:
[3 punti] - relazione: premesse teoriche/specifiche - descrizione dell'uart, della trasmissione rs232, descrizione del blocco uart presente all'interno del microcontrollore Tiva
[2 punti] - relazione: diagramma di flusso (Main, UartTaskTx, UartTaskRx)
[3 punti] - implementazione del codice in C (Main, UartTaskTx, UartTaskRx)
[1 punto] - convenzioni di scrittura codice (intestazione, commenti, nomi var, ...)
[1 punto] - relazione: collaudo

RIFERIMENTI
- slide del corso
[PDF] Tiva™ C Series TM4C123G LaunchPad Evaluation Board - User Guide
[PDF] Tiva™ C Series TM4C123GH6PM Microcontroller Data Sheet (Rev. E)
http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C11_SerialInterface.htm
- Convenzioni per la scrittura di codice C nei sitemi embedded
- https://github.com/filippo-bilardo

-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 9_1 - SensoreParcheggio
Usare i timer in modalità cattura

-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 8_1 - SensoreParcheggio
In sensore ultrasuoni andrà montato sopra un servo motori che ruoterà d 180°

OBIETTIVI DISCIPLINARI
- utilizzo dei timer in modalità pvm
- i servo motori

PROCEDIMENTO / SPECIFICHE INIZIALI
Fase2: Generazione di un segnale periodico con parte alta 10ns e periodo 20ms
- Utilizzare il timer in modalità pwm

-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 7_1 - SensoreParcheggio
Implementare un sensore di parcheggio che rilevi la distanza di un oggetto tramite sensore ad ultrasuoni

OBIETTIVI DISCIPLINARI
- utilizzo dei timer in modalità oneshot e periodic
- i sensori ad ultrasuoni

PROCEDIMENTO / SPECIFICHE INIZIALI
Fase1: Generazione di un segnale periodico con parte alta 10us e periodo 50us
- Utilizzare il timer1 per abilitare periodicamente (50us) la generazione dell'impulso (10us)
- Utilizzare il timer0 per generare un impulso (timer one shot) di 10us
- Pilotando uno dei led della scheda e impostando come tempi 100ms e 1sec è possibile testare i timer senza oscilloscopio

RIFERIMENTI / LINK
[PDF] Tiva™ C Series TM4C123G LaunchPad Evaluation Board - User Guide
[PDF] Tiva™ C Series TM4C123GH6PM Microcontroller Data Sheet (Rev. E)
- slide corso
- Datasheet del sensore ultrasuoni SFR05
http://coder-tronics.com/stellaris-timer-example/
https://sites.google.com/site/luiselectronicprojects/tutorials/tiva-tutorials/tiva-general-purpose-timers

-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 6_1 - Gestione Pulsanti
Rilevare tramite interrupt e task, gli eventi press, click, dclick, lclick, tclick, lpress

-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 5_1 - Generazione di un onda quadra utilizzando il systick

-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 4_1 - LedPwm
Scrivere un programma che tramite la pressione dei due pulsanti sw1 e sw2 permetta di regolare il periodo del lampeggio del led, aumentandolo o diminuendolo.

-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 3_1 - Interrupt
Scrivere un programma che rilevi la pressione del pulsante tramite interrupt

OBIETTIVI DISCIPLINARI
- gli interrupt nel cortex M4

PROCEDIMENTO / SPECIFICHE INIZIALI
- configurare pin led rosso, led verde e sw1
- abilitare int switch1 su fronte discesa
- nel mainloop fare lampeggiare il ledrosso
- con interrupt programmare lo stato del led verde
- verificare nel datasheet i registri da programmare per l'utilizzo dell'interupt
1. gpiointmask - scrivo 0 nel pin per disabilitare l'interrupt
2. interruppt sense -> fronti o livello
3. gpioint bothedge -> 0 so su un fronte, 1 entrambi i fronti

-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 2_1 - LedBlink
Scrivere un programma che faccia lampeggiare i tre led presenti nella scheda ad intervalli di circa un secondo

-------------------------------------------------------------------------------------------------------------
ESERCITAZIONE 1_1 - LedBlueOn
Scrivere un programma che accenda il led blu della scheda Launchpad

OBIETTIVI DISCIPLINARI
- Installazione dell'ide Keil uVision5
- Familiarizzazione con l'ide Keil uVision5
- Imparare a configurare i pin GPIO del microcontrollore Cortex M4

PROCEDIMENTO / SPECIFICHE INIZIALI
- Scaricare e installare Keil uVision, scaricare e installare TivaC MDK5 Software Packs
- Installare i drivers Stellaris ICDI Drivers per l'In-Circuit Debug Interface
- Creare un nuovo progetto Keil, scegliendo come device TM4C123GH6PM
- copiare il file c:\Keil_v5\ARM\Pack\Keil\TM4C_DFP\1.1.0\Device\Source\ARM\startup_TM4C123.s nella cartella del progetto appena creato e aggiungere il file ai sorgenti del progetto
- modificare le opzioni del target (menu flash--> configure...), impostando nel debug usare Stellaris ICDI, nella scheda target disabilitare il Floating Point Hardware
- Identificazione dei pin collegati ai led (datasheet launchpad)
- Leggere il cap 10 del datasheet del microcontrollore riportando nella relazione le informazioni principali
- rispettare le convenzioni di scrittura del codice
- recuperare dal file tm4c1231h6pm.h le define relativae ai registri della porta F e del registro SYSCTL_RCGCGPIO_R per l'abilitazione del clock (SYSCTL_RCGCGPIO_R5).
- definire il tipo uint32_t (typedef unsigned int uint32_t;) oppure includere la libreria <stdint.h>
- definire una costante per ogni pin da utilizzare (#define LED_BLUE_PIN 0x04)
- configurare i registri associati ai pin da utilizzare, lavorando sui singoli bit. Es.:

RIFERIMENTI / LINK
- ARM® Cortex®-M4F Based MCU TM4C123G LaunchPad™ Evaluation Kit
- [PDF] Tiva™ C Series TM4C123G LaunchPad Evaluation Board - User Guide
- [PDF] Tiva™ C Series TM4C123GH6PM Microcontroller Data Sheet (Rev. E)
- Convenzioni per la scrittura di codice C nei sitemi embedded
- http://users.ece.utexas.edu/~valvano/Volume1/E-Book/C6_MicrocontrollerPorts.htm
- https://github.com/filippo-bilardo
- [PDF] TM4C123G LaunchPad Workshop
- Getting Started with the TI Tiva TM4C123GXL LaunchPad Evaluation Board

-------------------------------------------------------------------------------------------------------------
GRIGLIA DI VALUTAZIONE:
[3 punti] - relazione: premesse teoriche/specifiche - descrizione dell'spi, delle librerie TivaWare relative all'spi, descrizione del blocco spi presente all'interno del microcontrollore Tiva
[2 punti] - relazione: diagramma di flusso (Main, UartTaskTx, UartTaskRx)
[3 punti] - implementazione del codice in C (Main, UartTaskTx, UartTaskRx)
[1 punto] - convenzioni di scrittura codice (intestazione, commenti, nomi var, ...)
[1 punto] - relazione: collaudo

Redazione della relazione tecnica

-------------------------------------------------------------------------------------------------------------
prima versione del 24/09/16

Nessun commento:

Posta un commento