Sei sulla pagina 1di 44

Corso Professionale di Arduino Avanzato

Gennaio – marzo 2019, Spazio Chirale alla Garbatella


Stefano Capezzone

www.chirale.it/download-arduino-avanzato SSID: spazio chirale best


Pass: persico32

https://github.com/spaziochirale/CorsoArduinoAvanzato

This document is licensed under Creative Common Attribution 4.0 International license
Introduzione ai FPGA – Reti Logiche

Un circuito elettronico digitale è


costituito da una rete di circuiti
elementari chiamati porte logiche.
Le porte logiche sono realizzate
con pochi transistori ciascuna

Addizionatore a 4 bit
Circuiti standard programmabili

INTEL 4004
Il primo microprocessore
Soluzioni per circuiti personalizzati

Circuiti Integrati con Layout progettato ad hoc


Custom IC
Costosi in termini di progettazione e produzione

Circuiti Integrati basati su reti di porte logiche o


Asics moduli funzionali standard
Costosi in termini di produzione

Circuiti Integrati Programmabili basati su reti di porte


FPGA logiche o moduli funzionali standard
Soluzione versatile e maggiormente economica
FPGA – Field Programmable Gate Array

Configurable Logic Block

Input Output Block


Arduino MKR Vidor 4000
AI - Dai S.E. alle Reti Neurali
Il Neurone
Connessioni neurali
Modello di neurone artificiale
Preparazione dei dati di input
Tipologia dell’output
Nelle ANN si lavora per cicli di osservazioni
Il ruolo dei pesi (weight) nell’apprendimento
Funzionamento del neurone
Funzionamento del neurone
La Funzione di Attivazione
La Funzione di Attivazione
La Funzione di Attivazione
La Funzione di Attivazione
Come scegliere la funzione di attivazione?

Esempio sulle possibili scelte della funzione di


attivazione:
• Quale funzione è possibile usare nel caso in cui
i dati assumano solo valori binari?
Esempio di scelta...
Un modello tipico di utilizzo
Un esempio di funzionamento

Stima del prezzo di una proprietà


immobiliare in funzione di alcuni parametri
ritenuti significativi

Si supponga la rete neurale già addestrata


Un modello semplicistico
Il valore dello hidden layer
Ogni neurone dello strato rappresenta un elemento
di conoscenza sui dati di training
Addestramento di una rete: il Perceptron
Addestramento con una sola riga di dati
Funzione Costo e backpropagation
Utilizzo di più righe di dati - Epoche
Funzione costo valutata per ogni epoca
Scegliere I pesi con metodo “brute force”
Complessità computazionale
Gradient descend – Esempio Monodimensionale
Gradient Descend - Multidimensionale
Problema se la funzione costo non è convessa
Gradient descend stocastico
Applicazioni in automazione e robotica

ANN

Sensori Output
Training ANN su arduino

http://robotics.hobbizine.com/arduinoann.html
Impiego di ann gia’ addestrate

http://www.moretticb.com/Neurona/

Un esempio di libreria per reti


DNN con topologia a MLP
Esempio: classificazione di colori
Input alla rete
Circuito del Color Recognition MLP

• Scheda Arduino UNO


• 2 push button tattili di qualità, collegati in configurazione PULL-UP (resistori da 4,7
Kohm) ai pin 2 e 3 di Arduino UNO (Int0 e Int1)
• 1 fotoresistore in configurazione a partitore di tensione collegato diretto a Vcc e a GND
tramite resistore da 10 Kohm e segnale collegato al pin A0 di arduino UNO
• 1 LED RGB su PCB a catodo (-) comune collegato ai PIN R=8 G=9 B=10 di arduino
UNO