• Non ci sono risultati.

L'ultimo livello della struttura è composto dalle interfacce di comunicazione. Ne sono state realizzate due, per diverse esigenze, una USB e una Bluetooth. BLUETOOTH

La scheda Bluetooth è composta da:

• RN42: modulo di trasmissione Bluetooth di classe 2 con EDR (Enhan- ced Data Rate) che permette di migliorare la velocità di trasmissione dati no a 3 Mbit/s.

• MCP1802: regolatore di tensione che permette di operare con input da 2V a 10V e generare output da 0,9V a 6V, con 300 mA di corrente massima in uscita. Questo regolatore alimenta sia il modulo Bluetooth sia le schede sottostanti.

È presente inoltre un led connesso al modulo bluetooth in maniera da accendersi in caso di connessione stabilita. Tramite questa board è possibile connettere una batteria per avere l'intero sistema di misura completamen- te portable. Tramite la batteria e la scheda bluethooth si provvede alla distribuzione dell'alimentazione a tutte le altre schede connesse.

USB-FTDI

La scheda USB-FTDI è composta da:

• USB-OTG: spinotto di connessione usb

• FT230XS: bridge UART per gestire la comunicazione via usb col pc. Caratterizzato da bassi consumi (8mA) e banda di 3MBaud. Presenta anche un'uscita da 3,3V che non può essere usata per alimentare le schede sottostanti a causa della sua scarsa capacità di driving.

Per alimentare l'intera struttura questo modulo sfrutta la 5V del cavo USB. Questa viene opportunamente ltrata e inviata alle schede sottostanti. Ognuna di queste presenta internamente dei regolatori che la porteranno ai 3,3V richiesti.

Figura 4.5: scheda di comunicazione USB

Capitolo 5

Sviluppo software per

automatizzazione misure

Ora che la realizzazione delle strutture microuidiche è stata velocizzata grazie alla stampa 3D, può essere interessante anche accelerare i tempi di misura e test automatizzando il processo di lettura per i diversi angoli di rotazione del sensore. Attualmente infatti il goniometro su cui è inserito il sensore necessita di essere ruotato manualmente per i circa 40 punti necessari per avere una lettura sucientemente tta. In ognuno di questi punti, dopo qualche secondo di attesa per far stabilizzare i valori, il microcontrollore esegue cinque letture e ne fa la media.

Queste operazioni possono essere automatizzate attraverso l'installazione di un servomotore che controlli la rotazione del goniometro mentre la scheda eseguirà letture e medie sincronizzandosi di conseguenza. Per fare questo è stato deciso di iniziare a sviluppare degli applicativi per la famiglia di microcontrollori della STMicroelectronics, la Nucleo STM32.

In questo lavoro di tesi ci siamo limitati alla scrittura di un sistema opera- tivo elementare che permette al microcontrollore di ricevere dei comandi via usb da un terminale di un pc e di leggere e scrivere i registri del sensore attra- verso il bus I2C. Nei prossimi lavori sarà possibile ampliarne le funzionalità

collegandolo ai servomotori sul goniometro.

La Nucleo STM32 è una famiglia di schede di sviluppo prodotte dalla STMicroelectronics per orire ai progettisti in fase di prototipazione una scheda di sviluppo basata su processori con architettura ARM-Cortex-M.

Si trovano in commercio diversi modelli che dieriscono per potenza di calcolo, consumi ed elettronica di contorno, in modo da orire al progettista un'ampia scelta in funzione delle esigenze di design.

Le schede inoltre possiedono due slot di espansione, uno Arduino-Uno-V3, compatibile con i comuni shield per Arduino, e uno ST-morpho per le schede

di espansione realizzate dalla casa madre (g. 5.1). In questo modo si pos- sono facilmente espandere le funzionalità della scheda aggiungendo sensori, servomotori, display LCD, antenne wireless, GPS, o una piccola breadboard. Tutte le schede sono già munite dell'elettronica necessaria per la loro pro- grammazione e debug e non necessitano di ulteriori componenti per svolgere queste funzioni.

Per questo progetto di tesi abbiamo deciso di realizzare un sistema opera- tivo di base per una Nucleo STM32, la quale deve essere in grado di ricevere da pc, attraverso un terminale, una stringa alfanumerica. Questa è composta sempre da una parola iniziale (ovvero il comando che la scheda deve ricono- scere ed eseguire) e da un numero variabile di argomenti numerici (massimo tre) che fungono da opzioni per il comando. Le varie parole della stringa verranno riconosciute come tali se sono separate da uno o più spazi. Le fun- zioni che dovrà eseguire la Nucleo STM32 saranno la lettura e scrittura di registri del sensore di pressione via I2C. In questa fase di sviluppo abbiamo

eettuato i test di lettura e scrittura su una board di debug.

5.1 Hardware

Tutte le schede della famiglia Nucleo STM32 sono dotate del seguente hard- ware:

• Microcontrollore STM32 della famiglia ARM-Cortex-M con case LQ- PF64.

• Due LED, uno di comunicazione, uno di accensione (quasi tutte le schede ne hanno anche un terzo congurabile dall'utente).

• Due pulsanti "User" e "Reset"

• Due connettori di espansione per PCB: Arduino-Uno-V3 e ST-morpho • Due vie di alimentazione: USB VBUS o attraverso sorgente esterna 3,3

V - 5 V - 7-12 V.

• Programmer/debugger ST-Link V2-1: posizionato sulla parte superiore della scheda, può essere separata dal resto per nalizzare il progetto e ridurre le dimensioni della scheda. Questa non potrà più essere alimen- tata via USB ma potrà ancora essere programmata. Entrambe le opera- zioni avverranno attraverso appositi pin sui connettori Arduino-Uno-V3 o ST-morpho.

Figura 5.1: Rappresentazione schematica di una STM32 Nucleo. In questa vista è evidenziata la parte superiore removibile e i connettori di espansione

• USB con 3 interfacce dierenti: porta COM virtuale, dispositivo di archiviazione di massa, porta di debug.

• Oscillatore al quarzo con frequenza di 32.768 kHz

I componenti sono posizionati sulla scheda come mostrato in gura 5.2. Tra tutte le schede disponibili sul mercato, per questo lavoro di tesi è stato deciso di utilizzare la STM32 L053R8, una di quelle maggiormente orientate ai bassi consumi. Prima di tutto osserviamo il codice identicativo e utilizziamo le tabelle dei manuali per interpretarlo e capire le caratteristiche: STM32 È il nome della famiglia di circuiti integrati con microcontrollori a

32 bit lanciata dalla STMicroelectronics nel 2007.

L0 è la serie, e indica il tipo di processore presente sulla scheda e la sua potenza di calcolo. In questo caso è l'ARM Cortex-M0+, un processore a 32 MHz, con 192 Kbyte di memoria FLASH e 20 Kbyte di SRAM. In generale tutte le schede della serie Lx sono orientate ad applicazioni ultra-low-power.

Figura 5.2: Vista schematica di una STM32 Nucleo

53 è il sottotipo e dierenzia le varie schede per periferiche o altro hardware di contorno come timer, sensori termici, DAC-ADC, generatore di nu- meri casuali, o lettore di SDcard. Le schede dieriscono anche per il numero di bus I2S e I2C o per il numero di dispositivi USART e UART

disponibili.

R numero di pin del package: consultando la relativa tabella si ottiene che la lettera R indica 64 pin.

8 dimensione della memoria FLASH: consultando la relativa tabella si ottie- ne che 8 indica una RAM di 64 Kbytes.

Inoltre, essendo la scheda orientata al low-power ha diverse modalità di sospensione attivabili via software attraverso le HAL di sistema. In tabella 5.3 una divisione schematica. In realtà ognuno di questi livelli ha diverse opzioni che permettono di abilitare o disabilitare ulteriori componenti. Come spiegato più avanti abbiamo potuto testare la scheda nei primi tre stati,

Figura 5.3: Tabella riassuntiva di alcune delle modalità di funzionamento low-power della L053R8

mentre sia lo stop-mode sia lo standby-mode prevedono uno spegnimento completo dei clock, incluso quello della USART, disabilitando così anche il suo interrupt. L'unico modo per uscire dallo stop-mode o dallo standby-mode è con un interrupt hardware su determinati pin, un sistema poco adatto alla nostra modalità di invio dei comandi.

In g. 5.4 è riportata una foto scattata durante le procedure di pro- grammazione e debug. Oltre ai collegamenti di I2C_SCL e I2C_SDA sono

visibili anche le due connessioni necessarie per la tensione di alimentazione e ground, entrambi forniti direttamente dalla Nucleo su due pin del connettore ST-morpho.

Figura 5.4: Congurazione di test con nucleo e scheda di debug

Documenti correlati