37 resultados para Arduino (Programmable controller) - programming
Resumo:
Lo scopo del lavoro svolto e quello di realizzare un sistema di controllo Proporzionale-Integrativo-Derivativo (PID) della temperatura all'interno di un fornetto in una camera a vuoto. Il sistema deve essere in grado di eseguire rampe di temperatura con differenti rapidita di variazione, in vista di un suo futuro impiego nello studio del Desorbimento Termico di diversi materiali. Nella prima parte della tesi, si esaminano le premesse teoriche ai controlli Proporzionali-Integrativi-Derivativi, e sono esposti i metodi di Ziegler-Nichols e di Tyreus-Luyben per ricavare le costanti del PID. Nella seconda parte si descrivono il sistema fisico in esame e l'hardware messo a punto per il sistema di controllo, gestito interfacciandolo con una scheda Arduino. Nella terza parte viene invece trattato il software realizzato con LabVIEW per gestire e controllare l'apparato. Nella quarta parte sono infine mostrati i risultati sperimentali ottenuti, e le conclusioni tratte al termine del lavoro.
Resumo:
La programmazione aggregata è un paradigma che supporta la programmazione di sistemi di dispositivi, adattativi ed eventualmente a larga scala, nel loro insieme -- come aggregati. L'approccio prevalente in questo contesto è basato sul field calculus, un calcolo formale che consente di definire programmi aggregati attraverso la composizione funzionale di campi computazionali, creando i presupposti per la specifica di pattern di auto-organizzazione robusti. La programmazione aggregata è attualmente supportata, in modo più o meno parziale e principalmente per la simulazione, da DSL dedicati (cf., Protelis), ma non esistono framework per linguaggi mainstream finalizzati allo sviluppo di applicazioni. Eppure, un simile supporto sarebbe auspicabile per ridurre tempi e sforzi d'adozione e per semplificare l'accesso al paradigma nella costruzione di sistemi reali, nonché per favorire la ricerca stessa nel campo. Il presente lavoro consiste nello sviluppo, a partire da un prototipo della semantica operazionale del field calculus, di un framework per la programmazione aggregata in Scala. La scelta di Scala come linguaggio host nasce da motivi tecnici e pratici. Scala è un linguaggio moderno, interoperabile con Java, che ben integra i paradigmi ad oggetti e funzionale, ha un sistema di tipi espressivo, e fornisce funzionalità avanzate per lo sviluppo di librerie e DSL. Inoltre, la possibilità di appoggiarsi, su Scala, ad un framework ad attori solido come Akka, costituisce un altro fattore trainante, data la necessità di colmare l'abstraction gap inerente allo sviluppo di un middleware distribuito. Nell'elaborato di tesi si presenta un framework che raggiunge il triplice obiettivo: la costruzione di una libreria Scala che realizza la semantica del field calculus in modo corretto e completo, la realizzazione di una piattaforma distribuita Akka-based su cui sviluppare applicazioni, e l'esposizione di un'API generale e flessibile in grado di supportare diversi scenari.
Resumo:
The 5th generation of mobile networking introduces the concept of “Network slicing”, the network will be “sliced” horizontally, each slice will be compliant with different requirements in terms of network parameters such as bandwidth, latency. This technology is built on logical instead of physical resources, relies on virtual network as main concept to retrieve a logical resource. The Network Function Virtualisation provides the concept of logical resources for a virtual network function, enabling the concept virtual network; it relies on the Software Defined Networking as main technology to realize the virtual network as resource, it also define the concept of virtual network infrastructure with all components needed to enable the network slicing requirements. SDN itself uses cloud computing technology to realize the virtual network infrastructure, NFV uses also the virtual computing resources to enable the deployment of virtual network function instead of having custom hardware and software for each network function. The key of network slicing is the differentiation of slice in terms of Quality of Services parameters, which relies on the possibility to enable QoS management in cloud computing environment. The QoS in cloud computing denotes level of performances, reliability and availability offered. QoS is fundamental for cloud users, who expect providers to deliver the advertised quality characteristics, and for cloud providers, who need to find the right tradeoff between QoS levels that has possible to offer and operational costs. While QoS properties has received constant attention before the advent of cloud computing, performance heterogeneity and resource isolation mechanisms of cloud platforms have significantly complicated QoS analysis and deploying, prediction, and assurance. This is prompting several researchers to investigate automated QoS management methods that can leverage the high programmability of hardware and software resources in the cloud.
Resumo:
Nell'ottica di trovare modalità sempre più intuitive per movimentare manipolatori industriali l’obiettivo della tesi è quello di realizzare una mobile app su piattaforma Android in grado appunto di movimentare un generico manipolatore industriale. L'applicazione sviluppata fornisce all'utente un’interfaccia semplice e intuitiva che permette, dopo un’opportuna configurazione iniziale, di controllare il moto di un manipolatore industriale attraverso l’uso del touch screen e degli elementi grafici dell’interfaccia. Oltre a istruire un manipolatore l’applicazione offre anche delle funzionalità per il salvataggio e la gestione di determinate configurazioni che il manipolatore può assumere nello spazio. Il grande vantaggio dell’applicazione è quello di fornire un’interfaccia universale per la movimentazione di qualsiasi manipolatore. Si può affermare quindi che essa fornisce un livello di astrazione superiore. In questo progetto di tesi è stato effettuato il testing dell'applicazione sviluppata sia con il manipolatore industriale Comau Smart Six, robot antropomorfo a 6 gradi di libertà, sia con un manipolatore simulato in Unity 3D. Sono stati raccolti dei dati, in particolare dei grafici, che mettono in relazione i comandi impartiti al manipolatore e i dati ricevuti da questo, in modo da ricavarne dei parametri che misurano l'efficienza e la correttezza dell'applicazione.
Resumo:
L'obiettivo di questa tesi è analizzare e testare la programmazione reattiva, paradigma di programmazione particolarmente adatto per lo sviluppo di applicazioni altamente interattive. La progettazione di sistemi reattivi implica necessariamente l'utilizzo di codice asincrono e la programmazione reattiva (RP) offre al programmatore semplici meccanismi per gestirlo. In questa tesi, la programmazione reattiva è stata utilizzata e valutata mediante la realizzazione di un progetto real-world chiamato AvvocaTimer. Verrà affrontata la progettazione, implementazione e collaudo di una parte del sistema attraverso l'approccio reattivo e, successivamente, confrontata con la prima versione, realizzata con i metodi attualmente usati per gestire codice asincrono, per analizzare vantaggi e/o svantaggi derivanti dall'utilizzo del nuovo paradigma.
Resumo:
La tesi è calata nell'ambito dell'Aggregate Programming e costituita da una prima parte introduttiva su questo ambito, per poi concentrarsi sulla descrizione degli elaborati prodotti e infine qualche nota conclusiva unitamente a qualche possibile sviluppo futuro. La parte progettuale consiste nell'integrazione del framework Scafi con il simulatore Alchemist e con una piattaforma di creazione e di esecuzione di sistemi in ambito Spatial Computin, con lo scopo di potenziare la toolchain esistente per Aggregate Programming. Inoltre si riporta anche un breve capitolo per l'esecuzione del framework scafi sviluppato in scala sulla piattaforma Android.
Resumo:
Questa tesi ha come obiettivo la sperimentazione del nuovo sistema operativo Windows 10 IoT Core su tecnologia Raspberry Pi 2, verificandone la compatibilita con alcuni sensori in commercio. Tale studio viene poi applicato in un contesto di Home Intelligence al fine di creare un agente per la gestione di luci LED, in prospettiva della sua integrazione nel sistema prototipale Home Manager.