37 resultados para Arduino (Programmable controller) - programming
Resumo:
L'aumento inesorabile delle morti per cause legate a patologie cardiache, dovuto soprattutto al progressivo invecchiamento della popolazione occidentale, ha portato negli ultimi anni, alla necessità di sviluppare tecniche e sistemi di “Remote Monitoring”. L'obiettivo della tesi è la progettazione e lo sviluppo di un sistema di monitoraggio remoto dell'attività elettrica cardiaca basato sull’utilizzo delle piattaforme Android e Arduino. Il valore aggiunto della soluzione proposta e sviluppata è, quindi, soprattutto da ricercarsi nella tipologia di tecnologie utilizzate per la realizzazione del sistema (Android/Arduino): oltre, alla loro continua espansione, in termini di diffusione e avanzamento tecnologico, facilmente riscontrabile, hanno tutte l’importante caratteristica di essere totalmente Open Source, rendendo, quindi, ogni elemento del sistema eventualmente espandibile da chiunque lo desideri.
Resumo:
La presente tesi è dedicata al riuso nel software. Eccettuata un'introduzione organica al tema, l'analisi è a livello dei meccanismi offerti dai linguaggi di programmazione e delle tecniche di sviluppo, con speciale attenzione rivolta al tema della concorrenza. Il primo capitolo fornisce un quadro generale nel quale il riuso del software è descritto, assieme alle ragioni che ne determinano l'importanza e ai punti cruciali relativi alla sua attuazione. Si individuano diversi livelli di riuso sulla base dell'astrazione e degli artefatti in gioco, e si sottolinea come i linguaggi contribuiscano alla riusabilità e alla realizzazione del riuso. In seguito, viene esplorato, con esempi di codice, il supporto al riuso da parte del paradigma ad oggetti, in termini di incapsulamento, ereditarietà, polimorfismo, composizione. La trattazione prosegue analizzando differenti feature – tipizzazione, interfacce, mixin, generics – offerte da vari linguaggi di programmazione, mostrando come esse intervengano sulla riusabilità dei componenti software. A chiudere il capitolo, qualche parola contestualizzata sull'inversione di controllo, la programmazione orientata agli aspetti, e il meccanismo della delega. Il secondo capitolo abbraccia il tema della concorrenza. Dopo aver introdotto l'argomento, vengono approfonditi alcuni significativi modelli di concorrenza: programmazione multi-threaded, task nel linguaggio Ada, SCOOP, modello ad Attori. Essi vengono descritti negli elementi fondamentali e ne vengono evidenziati gli aspetti cruciali in termini di contributo al riuso, con esempi di codice. Relativamente al modello ad Attori, viene presentata la sua implementazione in Scala/Akka come caso studio. Infine, viene esaminato il problema dell'inheritance anomaly, sulla base di esempi e delle tre classi principali di anomalia, e si analizza la suscettibilità del supporto di concorrenza di Scala/Akka a riscontrare tali problemi. Inoltre, in questo capitolo si nota come alcuni aspetti relativi al binomio riuso/concorrenza, tra cui il significato profondo dello stesso, non siano ancora stati adeguatamente affrontati dalla comunità informatica. Il terzo e ultimo capitolo esordisce con una panoramica dell'agent-oriented programming, prendendo il linguaggio simpAL come riferimento. In seguito, si prova ad estendere al caso degli agenti la nozione di riuso approfondita nei capitoli precedenti.
Resumo:
Sommario Il progetto descritto in questo documento consiste nella realizzazione di una prima applicazione pratica di uno specifico studio di ricerca rivolto al ripristino di reti wireless in scenari post-calamità naturali. In principio è stata descritta un’ampia analisi delle problematiche di rete che si vengono a creare in seguito ad eventi catastrofici. Successivamente, analizzando le varie tecniche e tecnologie oggetto di studio di diversi gruppi di ricerca, si è scelto di collaborare con il progetto STEM-Mesh, essendo ancora in fase sperimentale, il quale affronta il problema di ristabilire la connettività di rete in questi particolari scenari, attraverso l’utilizzo di tecnologie Cognitive Radio (CR), mobilità controllata e principi di reti auto-organizzanti. Di questo primo approccio pratico sono state poi descritte le fasi di progettazione, implementazione e testing. Nella fase di progettazione sono state studiate le componenti hardware e software che rispettassero il più possibile i requisiti e le caratteristiche dei dispositivi “staminali” STEM-Node cuore del progetto STEM-Mesh, ovvero dei dispositivi wireless altamente auto-riconfiguranti ed auto-organizzanti che possono diventare dispositivi sostituivi ai nodi compromessi in una rete, riconfigurandosi appunto in base alle funzionalità interrotte. Nella fase di implementazione si è passati alla stesura del codice, in Python e Wiring, abilitante il dispositivo STEM-Node. Infine nella fase di testing si è verificato che i risultati fossero quelli desiderati e che il sistema realizzato funzionasse come previsto.
Resumo:
Il concetto di situatedness applicato ad un sistema multi-agente distribuito può essere riformulato come problema di coordinazione fra i componenti del sistema e le risorse ambientali. Per poter garantire e governare la coordinazione delle parti, viene esteso il modello di coordinazione TuCSoN arricchendo il linguaggio di coordinazione e l'architettura per la comunicazione verso l'ambiente introducendo il concetto di artefatto d'ambiente. In questo elaborato viene definita l'estensione Situated ReSpecT, la nuova componente Transducer e la sua interazione con le Probe, tramite un analisi teorica che si conclude con una verifica pratica su piattaforma Arduino.
Resumo:
Tesi riguardante la creazione di tutte le risorse grafiche necessarie ad un videogioco tridimensionale in prima persona con Blender e Unity3D. Gli argomenti trattati sono: prgettazione, 3D modeling, texturing e shading.
Resumo:
La tesi riguarda tutto il processo di progettazione di un videogioco e l'implementazione dello stesso. Gli argomenti trattati sono: Unity, Design & Gameplay e l'implementazioni del progetto.
Resumo:
Internet of Energy for Electric Mobility è un progetto di ricerca europeo il cui scopo consiste nello sviluppo di infrastrutture di comunicazione, siano esse sia hardware che software, volte alla facilitazione, supporto e miglioramento di tutte quelle operazioni legate al processo di ricarica di auto elettriche. A tale progetto vi ha aderito anche l’Università di Bologna ed è stato oggetto di studio di Federico Montori e Simone Rondelli. Il primo ha dato il là allo sviluppo del progetto realizzandovi, in una fase embrionale, una piattaforma legata alla gestione di un servizio cittadino (bolognese) per la gestione di ricariche elettriche, un’applicazione mobile in grado di interagire con tale servizio ed un simulatore per la piattaforma. In un lavoro durato oltre un anno, Simone Rondelli ha ripreso il progetto di Federico Montori riscrivendone le componenti in maniera tale da migliorarne le funzionalità ed aggiungerne anche di nuove; in particolare ha realizzato in maniera efficiente un’applicazione mobile la quale si occupa di gestire la prenotazione di colonnine elettriche di ricarica e di monitorare lo stato attuale di un’auto peso, livello batteria, ecc... ). Nel marzo del 2014 è cominciato il mio contributo nel contesto di Internet of Energy di cui ne ho ereditato tutta l’architettura derivante dai due sviluppi precedenti. Il mio compito è stato quello di realizzare (cioè emulare) una colonnina di ricarica auto elettrica, tramite la piattaforma elettronica Arduino, la quale al suo primo avvio informa il database semantico del sistema (SIB) della sua presenza in maniera tale che il simulatore sia in grado di poter far ricaricare un’auto anche a questa nuova colonnina. Di conseguenza ho fatto in modo di instaurare (tramite socket) una comunicazione tra il simulatore e la colonnina così che il simulatore informi la colonnina che è stata raggiunta da un’auto e, viceversa, la colonnina informi il simulatore sullo stato di ricarica dell’auto in modo che quest’ultima possa ripartire al termine della ricarica. Ho anche realizzato un’applicazione mobile in grado di comunicare con la colonnina, il cui scopo è quello di ottenere un codice di ricarica che poi l’utente deve digitare per autenticarsi presso di essa. Realizzando tale tipo di contributo si è data dunque la possibilità di integrare una componente ”reale” con componenti simulate quali le auto del simulatore di Internet of Energy e si sono poste le basi per estensioni future, le quali permettano di integrare anche più componenti che si registrano nel sistema e danno dunque la possibilità di essere utilizzate dalle auto elettriche.
Resumo:
Le persone che soffrono di insufficienza renale terminale hanno due possibili trattamenti da affrontare: la dialisi oppure il trapianto di organo. Nel caso volessero seguire la seconda strada, oltre che essere inseriti nella lista d'attesa dei donatori deceduti, possono trovare una persona, come il coniuge, un parente o un amico, disposta a donare il proprio rene. Tuttavia, non sempre il trapianto è fattibile: donatore e ricevente possono, infatti, presentare delle incompatibilità a livello di gruppo sanguigno o di tessuto organico. Come risposta a questo tipo di problema nasce il KEP (Kidney Exchange Program), un programma, ampiamente avviato in diverse realtà europee e mondiali, che si occupa di raggruppare in un unico insieme le coppie donatore/ricevente in questa stessa situazione al fine di operare e massimizzare scambi incrociati di reni fra coppie compatibili. Questa tesi approffondisce tale questione andando a valutare la possibilità di unire in un unico insieme internazionale coppie donatore/ricevente provenienti da più paesi. Lo scopo, naturalmente, è quello di poter ottenere un numero sempre maggiore di trapianti effettuati. Lo studio affronta dal punto di vista matematico problematiche legate a tale collaborazione: i paesi che eventualmente accettassero di partecipare a un simile programma, infatti, devono avere la garanzia non solo di ricavarne un vantaggio, ma anche che tale vantaggio sia equamente distribuito fra tutti i paesi partecipanti.
Resumo:
Automatic design has become a common approach to evolve complex networks, such as artificial neural networks (ANNs) and random boolean networks (RBNs), and many evolutionary setups have been discussed to increase the efficiency of this process. However networks evolved in this way have few limitations that should not be overlooked. One of these limitations is the black-box problem that refers to the impossibility to analyze internal behaviour of complex networks in an efficient and meaningful way. The aim of this study is to develop a methodology that make it possible to extract finite-state automata (FSAs) descriptions of robot behaviours from the dynamics of automatically designed complex controller networks. These FSAs unlike complex networks from which they're extracted are both readable and editable thus making the resulting designs much more valuable.
Resumo:
After almost 10 years from “The Free Lunch Is Over” article, where the need to parallelize programs started to be a real and mainstream issue, a lot of stuffs did happened: • Processor manufacturers are reaching the physical limits with most of their approaches to boosting CPU performance, and are instead turning to hyperthreading and multicore architectures; • Applications are increasingly need to support concurrency; • Programming languages and systems are increasingly forced to deal well with concurrency. This thesis is an attempt to propose an overview of a paradigm that aims to properly abstract the problem of propagating data changes: Reactive Programming (RP). This paradigm proposes an asynchronous non-blocking approach to concurrency and computations, abstracting from the low-level concurrency mechanisms.
Resumo:
I paradigmi di programmazione più utilizzati nella realizzazione di sistemi embedded presentano delle limitazioni, in quanto non consentono di modellare alcuni aspetti fondamentali. Il paradigma ad agenti presenta delle caratteristiche che consentono di modellare alcuni aspetti fondamenetali di un sistema embedded, oltre a fornire un livello di astrazione più elevato. All'interno di questa tesi verranno mostrati i concetti fondamentali di questo paradigma, mostrando inoltre i costrutti di base di un linguaggio ad agenti come Jason. Nella programmazione ad agenti, l'ambiente riveste un ruolo fondomentale. All'interno di questa trattazione verrà introdotto un paradigma per la programmazione di ambienti, descrivendo inoltre il framework di riferimento: CArtAgo. Dopo aver descritto i concetti e gli strumenti per applicare il paradigma ad agenti, verrà proposto un metodo per la realizzazione di sistemi embedded tramite l'applicazione di Jason sulla scheda di prototipazione Arduino.
Resumo:
Questo documento presenta la relazione di una tesi in azienda svolta presso la ditta RCF spa a Reggio Emilia. La tesi consiste nell’apportare migliorie ad un software preesistente, che opera nel campo di dispositivi audio di diverse tipologie (es casse e mixer), i quali normalmente vengono utilizzati nel sistema d’impianto audio in un concerto. In particolare la nuova funzionalità sviluppata consiste nell’implementazione del protocollo di comunicazione tra controllore e PC mediante l’utilizzo di una connessione Ethernet.
Resumo:
Il controllo di coppia e velocità di un attuatore è una funzione molto importante per molte applicazioni nelle quali è richiesta una regolazione indipendente dal carico. L’elaborato mostra come, mediante l’implementazione di controlli a catena chiusa, è possibile regolare coppia e velocità di un motore in corrente continua a magneti permanenti. In particolare si evidenzia come la presenza di controlli a catena chiusa, fissato un segnale di riferimento, consente al sistema, basato su Arduino Uno, la regolazione autonoma della velocità angolare di rotazione del motore tale che questa rimanga costante anche in condizioni di variazione del carico applicato.