Relazione sul progetto di realizzazione di un algoritmo di localizzazione (mediante trilaterazione) attraverso l'utilizzo del controllore cRIO e del software LabVIEW.
Relazione sul progetto di realizzazione di un algoritmo di localizzazione (mediante trilaterazione) attraverso l'utilizzo del controllore cRIO e del software LabVIEW.
Il web service e i sistemi embedded - Tesi - cap2pma77
Nel capitolo secondo capitolo della tesi " SVILUPPO E IMPLEMENTAZIONE SU MICROCONTROLLORE DI UN’APPLICAZIONE WEB SERVER PER IL CONTROLLO DI UN SISTEMA EMBEDDED"sono presentati diversi prodotti commerciali impieganti Web Service , in modo particolare dispositivi di tipo embedded. Viene discusso, inoltre, su come le tecnologie Web entrino nel mondo industriale e della domotica e si pone l’attenzione sui fattori che impediscono il pieno sviluppo in questi ambiti. Infine vengono proposti diversi articoli che affrontano tematiche simili a quelle della tesi.
Corso di 20 ore sulla piattaforma Arduino. Corso tenuto nelle scuole superiori di San Secondo e Fornovo come corso di aggiornamento per il personale docente. Il corso si suddivide in 5 lezioni dove vengono spiegate più o meno tutte le funzionalità della piattaforma. I file li potete trovare al seguente indirizzo https://github.com/loweherz/ArduinoLessons
Innovazione infrastrutturale per l'erogazione di servizi applicativi su x86. ...festival ICT 2016
Intervento al festival ICT 2013 dal titolo "Innovazione infrastrutturale per l'erogazione di servizi applicativi su x86" di Daniele Ferrario, Data Center Solutions di Cisco.
Abstract
La piattaforma x86 cresce di importanza e si afferma anche per l’erogazione di servizi applicativi critici, rispondendo ad un mercato che necessita di potenza elaborativa affidabile e scalabile ad un costo sempre inferiore. Il suo modello di scalabilità orizzontale richiede che l’incremento di prestazioni dei nodi di calcolo sia sostenuto da un’interconnessione altrettanto efficiente, ad altre prestazioni e facilmente riconfigurabile. Cisco Unified Computing System ridefinisce il paradigma di configurazione e integrazione fra elementi di calcolo e fabric, semplificando le attività di manutenzione per garantire prestazioni ed affidabilità anche ai carichi di lavoro più critici.
Sessione costituita da presentazione e demo del sistema di gestione di Cisco UCS.
Le altre informazioni su http://www.fdtict.it
Definizioni di base
La Virtualizzazione
Il Cloud
Lo stack del cloud
High Availability
La gestione del datacenter
Come si lavora con VM
Il progetto ICARO
soluzioni e strumenti smart per avere
maggiore flessibilità sul Cloud
adattare soluzioni software alle nuove esigenze cloud-based
produrre e gestire servizi a consumo: Business Process as a Service
Tramite modelli, strumenti e algoritmi per
la gestione della configurazione e del deploy dei servizi e processi cloud
Il middleware e l’astrazione dei servizi sul cloud
l’ottimizzazione dei costi per le PMI e per la gestione del cloud
Dofware organizza un webinar introduttivo sulle tecnologie Dymola, Modelica, sulla Generazione di Codice e sulla libreria Smart Electric Drives. – Martedì 18 Maggio 2010 - ore 10:00 - Martedì 18 Maggio 2010 - ore 15:00 Registrati subito: http://www.dofware.com/eventi/webinar-dymola-generazione-codice-smart-electric-drives/
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLPar-Tec S.p.A.
Il TechAdvisor Michelangelo Uberti fornisce una panoramica generale inerente le soluzioni di alta disponibilità con MySQL.
I punti trattati durante la presentazione sono:
- Presentazione dell’offerta Par-Tec dedicata a MySQL Enterprise
- Cause, effetti e reali esigenze di HA
- Funzionamento, benefici e limiti dei principali approcci:
- Replica di database
- Cluster attivo/passivo
- Cluster attivo/attivo: shared-nothing
Per saperne di più, scaricate le slide e guardate il video della presentazione del nostro TechAdvisor su http://www.par-tec.it/soluzioni-di-alta-disponibilita-con-mysql
Relazione sul progetto di realizzazione di un algoritmo di localizzazione (mediante trilaterazione) attraverso l'utilizzo del controllore cRIO e del software LabVIEW.
Relazione sul progetto di realizzazione di un algoritmo di localizzazione (mediante trilaterazione) attraverso l'utilizzo del controllore cRIO e del software LabVIEW.
Il web service e i sistemi embedded - Tesi - cap2pma77
Nel capitolo secondo capitolo della tesi " SVILUPPO E IMPLEMENTAZIONE SU MICROCONTROLLORE DI UN’APPLICAZIONE WEB SERVER PER IL CONTROLLO DI UN SISTEMA EMBEDDED"sono presentati diversi prodotti commerciali impieganti Web Service , in modo particolare dispositivi di tipo embedded. Viene discusso, inoltre, su come le tecnologie Web entrino nel mondo industriale e della domotica e si pone l’attenzione sui fattori che impediscono il pieno sviluppo in questi ambiti. Infine vengono proposti diversi articoli che affrontano tematiche simili a quelle della tesi.
Corso di 20 ore sulla piattaforma Arduino. Corso tenuto nelle scuole superiori di San Secondo e Fornovo come corso di aggiornamento per il personale docente. Il corso si suddivide in 5 lezioni dove vengono spiegate più o meno tutte le funzionalità della piattaforma. I file li potete trovare al seguente indirizzo https://github.com/loweherz/ArduinoLessons
Innovazione infrastrutturale per l'erogazione di servizi applicativi su x86. ...festival ICT 2016
Intervento al festival ICT 2013 dal titolo "Innovazione infrastrutturale per l'erogazione di servizi applicativi su x86" di Daniele Ferrario, Data Center Solutions di Cisco.
Abstract
La piattaforma x86 cresce di importanza e si afferma anche per l’erogazione di servizi applicativi critici, rispondendo ad un mercato che necessita di potenza elaborativa affidabile e scalabile ad un costo sempre inferiore. Il suo modello di scalabilità orizzontale richiede che l’incremento di prestazioni dei nodi di calcolo sia sostenuto da un’interconnessione altrettanto efficiente, ad altre prestazioni e facilmente riconfigurabile. Cisco Unified Computing System ridefinisce il paradigma di configurazione e integrazione fra elementi di calcolo e fabric, semplificando le attività di manutenzione per garantire prestazioni ed affidabilità anche ai carichi di lavoro più critici.
Sessione costituita da presentazione e demo del sistema di gestione di Cisco UCS.
Le altre informazioni su http://www.fdtict.it
Definizioni di base
La Virtualizzazione
Il Cloud
Lo stack del cloud
High Availability
La gestione del datacenter
Come si lavora con VM
Il progetto ICARO
soluzioni e strumenti smart per avere
maggiore flessibilità sul Cloud
adattare soluzioni software alle nuove esigenze cloud-based
produrre e gestire servizi a consumo: Business Process as a Service
Tramite modelli, strumenti e algoritmi per
la gestione della configurazione e del deploy dei servizi e processi cloud
Il middleware e l’astrazione dei servizi sul cloud
l’ottimizzazione dei costi per le PMI e per la gestione del cloud
Dofware organizza un webinar introduttivo sulle tecnologie Dymola, Modelica, sulla Generazione di Codice e sulla libreria Smart Electric Drives. – Martedì 18 Maggio 2010 - ore 10:00 - Martedì 18 Maggio 2010 - ore 15:00 Registrati subito: http://www.dofware.com/eventi/webinar-dymola-generazione-codice-smart-electric-drives/
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLPar-Tec S.p.A.
Il TechAdvisor Michelangelo Uberti fornisce una panoramica generale inerente le soluzioni di alta disponibilità con MySQL.
I punti trattati durante la presentazione sono:
- Presentazione dell’offerta Par-Tec dedicata a MySQL Enterprise
- Cause, effetti e reali esigenze di HA
- Funzionamento, benefici e limiti dei principali approcci:
- Replica di database
- Cluster attivo/passivo
- Cluster attivo/attivo: shared-nothing
Per saperne di più, scaricate le slide e guardate il video della presentazione del nostro TechAdvisor su http://www.par-tec.it/soluzioni-di-alta-disponibilita-con-mysql
Riassunto e traduzione della reference ufficiale del W3C del linguaggio per il tagging semantico di documenti WSDL (linguaggio per la descrizione di servizi)
1. Misure Elettriche ed Elettroniche
Prof. Bruno Andò
Progetto cRIO
Mazza Dario 616/002007
Merlino Sebastiano 616/002008
Messina Marco 616/002000
2. Obiettivi
Acquisire conoscenze di base sull’apparato hardware.
Comprendere il funzionamento del sistema software di
base.
Accumulare esperienze a proposito di interfacciamento
dell’oggetto con hardware esterno.
Utilizzare l’oggetto come controllore “stand alone” di
sistemi automatici.
Reimplementare l’algoritmo di trilaterazione utilizzato nel
sistema CAN‐Bus attualmente realizzato mediante motore
MatLab.
Ottimizzare l’algoritmo di cui al punto precedente per un
funzionamento “stand alone” sul cRIO.
2
Progetto Crio ‐ Mazza, Merlino, Messina
3. Generalità
Il cRIO (Compact Reconfigurable I/O) è un
microcontrollore real‐time programmabile per sistemi
embedded che offre ottime potenzialità come sistema stand
alone per l’esecuzione di applicazioni real‐time in
LabVIEW. Importante caratteristica del sistema è la sua
modularità. Il sistema cRIO consta di un’unità centrale
e di uno chassis ove è possibile ospitare fino a 8 moduli che
estendono le funzionalità dell’oggetto.
Il modello di cRIO a nostra disposizione è il cRIO‐9004.
L’utilizzo di un processore che lavora alla frequenza di 195
MHz permette il bilanciamento di bassi consumi in potenza
e buone capacità di calcolo. Il NI cRIO si interfaccia con
sistemi informatici tramite porta Ethernet BaseT 10/100, ed
inoltre vi è una porta seriale RS232 per collegarvi device
esterni.
3
Progetto Crio ‐ Mazza, Merlino, Messina
4. I moduli
NI 9215 BNC: consta di 4 canali
analogici con un range di input ± 10 V.
Il convertitore A/D ha una frequenza
di campionamento di 800 kS/s in
modalità multiplexer e 100 kS/s in
campionamento simultaneo.
NI 9263: presenta 4 canali analogici per
una risoluzione di 16 bit e presenta un
range di input pari a ± 10 V. Ha una
velocità di aggiornamento simultaneo di
100 kS/s.
4
Progetto Crio ‐ Mazza, Merlino, Messina
5. I moduli
NI 9265: è dotato di 4 canali analogici;
vanta una risoluzione di 16 bit e un
range di output che spazia tra 0 e 20
mA. Può sostenere un carico massimo di
600Ω.
NI 9401: è costituito da 8 canali digitali
di input/output di tipo TTL a ± 5V. Il NI
9401 ha un delay time di I/O inferiore a
100 ns. Il massimo segnale di input
processabile dipende dal numero di
canali utilizzati.
5
Progetto Crio ‐ Mazza, Merlino, Messina
6. Componenti Software del cRIO
Il cRIO viene fornito con un sistema operativo
proprietario chiamato LabVIEW Real‐Time (ETS):
questo si occupa della gestione dei processi e organizza
le operazioni di IO. Altri importanti componenti software
sono:
il modulo Real‐Time per l’organizzazione dei cicli ad
alta priorità;
il modulo NI Rio 2.3.1 e il modulo FPGA che si occupa
dell’interfacciamento con i moduli del Chassis;
Server FTP e Web.
6
Progetto Crio ‐ Mazza, Merlino, Messina
7. Che cos'è l'FPGA?
Un dispositivo FPGA (Field‐Programmable Gate Array) è
un dispositivo che può essere configurato, dall'utente o
dal progettista, in modo da compiere uno specifico
lavoro.
Generalmente i dispositivi FPGA vengono però
programmati direttamente dai progettisti utilizzando
linguaggi come il VHDL (VHSIC Hardware Description
Language dove VHSIC sta per Very High Speed
Integrated Circuits).
7
Progetto Crio ‐ Mazza, Merlino, Messina
8. Come programmare FPGA con
LabVIEW ?
Lo sviluppo di una applicazione FPGA si svolge su un computer
host collegato al dispositivo FPGA; utilizzando il modulo FPGA e il
linguaggio G del LabVIEW si ottiene un Virtual Instrument (VI)
che poi verrà compilato (usando il compilatore Xilinx ISE).
Il risultato della compilazione è un file bit stream che, al momento
dell'esecuzione, verrà caricato nei chip FPGA ed eseguito con un
clock di default a 40 MHz ( 25 ns per ogni tick).
8
Progetto Crio ‐ Mazza, Merlino, Messina
9. Come funzionano le applicazioni
sul cRIO ?
Un applicazione Real‐Time realizzata per essere eseguita sul
cRIO è composta essenzialmente da due parti: la prima è
quella che rimane sul computer Host mentre la seconda è
quella caricata nel cRIO. Le due parti comunicano tramite
una connessione ETHERNET e utilizzando un protocollo TCP
o UDP.
9
Progetto Crio ‐ Mazza, Merlino, Messina
10. Come funzionano le applicazioni
sul cRIO ?
La parte residente sul cRIO è caratterizzata da tre componenti:
Un'applicazione FPGA per l'input, l'output, la comunicazione ed
il controllo;
Un Time‐Critical Loop per le operazioni in virgola mobile, il
processamento e l'analisi dei segnali;
Un Loop a priorità
normale per data logging
locale, l'interfacciamento
Web con pannelli remoti
e la comunicazione
ETHERNET o seriale.
10
Progetto Crio ‐ Mazza, Merlino, Messina
11. Come funzionano le applicazioni
sul cRIO ?
I due loop vengono mappati sul sistema operativo come thread
separati garantendone l'indipendenza durante l'esecuzione. Solo il
Time‐Critical Loop è in grado di interagire con l'applicazione FPGA
contenuta nei chip.
11
Progetto Crio ‐ Mazza, Merlino, Messina
12. L'esperimento “Doppia Soglia”
L'esperimento “Doppia Soglia” è una semplice applicazione
sviluppata per testare le capacità del cRIO e la possibilità di
integrare nei VI codice scritto in C. L'esperimento consiste nella
lettura di due segnali per controllare se superano due soglie
(diverse per i due segnali), i risultati ottenuti dai controlli delle
soglie devono essere dati in ingresso ad un codice C che inverte i
valori booleani ed, infine, l'uscita del codice C deve essere
utilizzata per accendere quattro led. Inoltre, si manda come output
analogico la somma dei due segnali in ingresso. Il risultato visibile
è che se un segnale è sopra una determinata soglia il led si spegne
altrimenti rimane acceso.
Per questo esperimento ci siamo avvalsi di tre moduli: NI 9215 BNC
per l'input analogico (acquisizione dei due segnali), NI 9263 per
l'output analogico (output delle somma dei segnali acquisiti) e NI
9401 per l'output digitale (illuminazione dei led).
12
Progetto Crio ‐ Mazza, Merlino, Messina
14. L'esperimento “Doppia Soglia”
Apre l’applicazione Esegue
FPGA l’applicazione
Esegue
Attende una
l’applicazione
IRQ
Imposta le Imposta i led
Legge i
Soglie da illuminare
booleani
14
Progetto Crio ‐ Mazza, Merlino, Messina
16. La Trilaterazione: tecnica utilizzata
Nel software sviluppato durante il progetto utilizzeremo una tecnica per
l’individuazione dei soggetti nello spazio detta MTA (Multiple
Trilateration Algorithm). Nell’algoritmo MTA la trilaterazione è applicata
a singole terne di sensori a meno che questi non siano allineati. Si calcola
per ciascuna terna:
Nelle precedenti matrici, le variabili x e y rappresentano le coordinate
cartesiane del sensore sulla mappa e la variabile r, invece, va ad indicare la
distanza rilevata dal sensore. A questo punto utilizzando la formula:
otterremo le coordinate, rappresentate dal vettore U, della posizione dell’utente
per la singola terna di sensori.
La media delle coordinate calcolate dalle singole terne fornirà la posizione finale
dell’utente.
16
Progetto Crio ‐ Mazza, Merlino, Messina
17. Generalità sul progetto di
trilaterazione
In questa parte del progetto si è voluto
realizzare un VI che calcolasse la posizione
dell’utente una volta fornita la mappa dei
sensori ed il vettore delle distanze rilevate
da questi.
Si è dovuto realizzare un sistema di
scambio informazioni su rete (basata su
tecnologia Ethernet) tra il cRIO ed un PC
che provvederà a ricevere i dati sulle
distanze inviati dai sensori e a rimandarli
al cRIO che diverrà, quindi, l’unità logica
di calcolo dell’intero sistema e fornirà i
risultati ottenuti nuovamente al PC che
implementa l’interfaccia utente.
17
Progetto Crio ‐ Mazza, Merlino, Messina
19. Il VI di Trilaterazione (cRIO)
Attesa per l’arrivo della
mappa dalla rete
Salvataggio della
mappa su file (per
successivo caricamento)
19
Progetto Crio ‐ Mazza, Merlino, Messina
20. Il VI di Trilaterazione (cRIO)
Loop deterministico
Loop non deterministico
(passaggio variabili)
20
Progetto Crio ‐ Mazza, Merlino, Messina
21. Il VI di Trilaterazione (HOST)
Molto più semplice è il Sub‐VI destinato ad essere eseguito sul PC.
Tale Sub‐VI va ad integrarsi con il sistema di trilaterazione
esistente, fornendo un’interfaccia per la comunicazione con il
cRIO.
Il Sub‐VI consiste in una semplice Flat‐Sequence con imposta una
temporizzazione di 10 msec per mantenere la sincronia con il cRIO.
Le azioni svolte VI sono due. In un primo momento esso invia
l’array di distanze (ricevute dai sensori) ed il numero totale dei
sensori al VI di calcolo sul cRIO; successivamente, riceve la
posizione dell’utente finale (calcolata sul cRIO) e l’eventuale codice
d’errore.
È stato, inoltre, realizzato un VI di configurazione mappa, che si
occupa, semplicemente, dell’invio della mappa dei sensori, come
vettore, sulla rete.
21
Progetto Crio ‐ Mazza, Merlino, Messina
22. Il codice C
Sono state realizzate due differenti soluzioni in C per il calcolo
della trilaterazione che abbiamo chiamato, rispettivamente, “a
taglio per valori” ed “a taglio per occorrenze”; spieghiamole in
dettaglio.
Entrambe le soluzioni accettano in ingresso la matrice delle
posizioni dei sensori ed il vettore delle distanze rilevate da questi.
Il codice andrà a scartare i sensori che inviano un dato non valido
di distanza (maggiore di 10 metri) e, dati questi, calcolerà le terne
di sensori valide (quelle per cui i tre sensori non siano allineati o
coincidenti).
Per ogni terna verrà calcolata la coordinata stimata sull’asse x e
quella sull’asse y.
A questo punto si troverà la posizione dell’utente calcolando la
media dei risultati ottenuti
22
Progetto Crio ‐ Mazza, Merlino, Messina
23. Il Codice C “a taglio per Valori”
Il codice “a taglio per valori” si basa
sulla supposizione che i valori
ottenuti per ciascuna coordinata
siano distribuiti, per numero di
occorrenze, su una gaussiana.
Per poter scegliere i risultati da
scartare, il codice ordinerà (usando
l’algoritmo di QuickSort) i risultati dal più piccolo al più grande e
scarterà i più piccoli N/5 ed i più grandi N/5, ove N rappresenta il
numero totale di valori.
Si calcola la media sui rimanenti e si ottiene il valore della
coordinata.
23
Progetto Crio ‐ Mazza, Merlino, Messina
24. Il Codice C “a taglio per Valori” –
Calcolo della Complessità
Nel caso “peggiore” dal punto di vista della complessità,
avremo 64 sensori (maggior numero possibile di sensori
sostenuto dalla rete CAN‐Bus) tutti a distanza valida e fra i
quali non vi siano mai tre sensori allineati o coincidenti.
Considerando che ogni variabile in ciascuno dei due vettori è
rappresentata mediante l’utilizzo di 64 byte e che nel caso
descritto ritroviamo un numero di elementi per ciascun
vettore pari a 41664 avremo quindi una quantità di bytes
occupati pari a (41664 x 64 x 2)/8 = 666.62 kbyte.
Dal punto di vista della complessità di calcolo l’operazione
più faticosa rimane il QuickSort che risulta comunque un
algortimo a complessità sottolineare.
Si nota un andamento crescente dei tempi di calcolo in
maniera direttamente proporzionale al numero di sensori
24
Progetto Crio ‐ Mazza, Merlino, Messina
25. Il Codice C “a taglio per
Occorrenze”
Il codice “a taglio per occorrenze” non potendo più avvalersi della
supposizione sulla gaussianità, dovrà considerare, per ogni supposto
valore, il suo numero di occorrenze. Per questo motivo, prendiamo in
ingresso un intero rappresentante il numero di cifre dopo la virgola che
considereremo per noi significative. Per ciascuna coordinata troveremo il
minimo ed il massimo valore fra quelli forniti dal calcolo sulle terne di
sensori ed allochiamo un vettore, definito vettore delle occorrenze, con
un numero N di elementi pari a:
Gli indici di tale vettore rappresentano il range di valori misurati, percui,
ad ogni indice dell’array possiamo associare un valore del range.
A questo punto viene riempito il vettore delle occorrenze e si determinano
quelli che hanno numero massimo di occorenze; fra questi si sceglie
quello nel cui intorno ricadono il maggior numero di occorrenze. Il raggio
dell’intorno di valutazione è dato da .
Il valore scelto corrisponderà alla coordinata finale dell’utente.
25
Progetto Crio ‐ Mazza, Merlino, Messina
26. Il Codice C “a taglio per Occorrenze” –
Calcolo della Complessità
L’occupazione di memoria Errore causato da
dell’algoritmo sembra essere il suo un sensore guasto
punto debole si è per questo
preferito utilizzare elementi del
vettore delle occorrenze a 2 byte.
Nel caso peggiore si avrà uno spreco
di memoria pari ai 666,624 Kbyte
dell’algoritmo precedente più una
quantità variabile di memoria di difficile calcolo (si sono, tuttavia,
potute osservare variazioni nell’occupazione di memoria fra i 700
Kbyte e 1‐2 Mbyte). Per ovviare ad eventuali problemi dovuti
all’eccessiva occupazione di memoria si è inserito un controllo che
riduce l’accuratezza se il range dei valori supera una certa soglia.
26
Progetto Crio ‐ Mazza, Merlino, Messina