875 resultados para Arduino (Programmable controller)
Resumo:
Il lavoro svolto in questa tesi è stato quello di introdurre alcuni concetti importanti dei sistemi embedded, in particolare ci si è soffermati su quelli open source. È stato trattato nello specifico Arduino come esempio di sistema embedded open source a basso costo.
Resumo:
Two of the main features of today complex software systems like pervasive computing systems and Internet-based applications are distribution and openness. Distribution revolves around three orthogonal dimensions: (i) distribution of control|systems are characterised by several independent computational entities and devices, each representing an autonomous and proactive locus of control; (ii) spatial distribution|entities and devices are physically distributed and connected in a global (such as the Internet) or local network; and (iii) temporal distribution|interacting system components come and go over time, and are not required to be available for interaction at the same time. Openness deals with the heterogeneity and dynamism of system components: complex computational systems are open to the integration of diverse components, heterogeneous in terms of architecture and technology, and are dynamic since they allow components to be updated, added, or removed while the system is running. The engineering of open and distributed computational systems mandates for the adoption of a software infrastructure whose underlying model and technology could provide the required level of uncoupling among system components. This is the main motivation behind current research trends in the area of coordination middleware to exploit tuple-based coordination models in the engineering of complex software systems, since they intrinsically provide coordinated components with communication uncoupling and further details in the references therein. An additional daunting challenge for tuple-based models comes from knowledge-intensive application scenarios, namely, scenarios where most of the activities are based on knowledge in some form|and where knowledge becomes the prominent means by which systems get coordinated. Handling knowledge in tuple-based systems induces problems in terms of syntax - e.g., two tuples containing the same data may not match due to differences in the tuple structure - and (mostly) of semantics|e.g., two tuples representing the same information may not match based on a dierent syntax adopted. Till now, the problem has been faced by exploiting tuple-based coordination within a middleware for knowledge intensive environments: e.g., experiments with tuple-based coordination within a Semantic Web middleware (surveys analogous approaches). However, they appear to be designed to tackle the design of coordination for specic application contexts like Semantic Web and Semantic Web Services, and they result in a rather involved extension of the tuple space model. The main goal of this thesis was to conceive a more general approach to semantic coordination. In particular, it was developed the model and technology of semantic tuple centres. It is adopted the tuple centre model as main coordination abstraction to manage system interactions. A tuple centre can be seen as a programmable tuple space, i.e. an extension of a Linda tuple space, where the behaviour of the tuple space can be programmed so as to react to interaction events. By encapsulating coordination laws within coordination media, tuple centres promote coordination uncoupling among coordinated components. Then, the tuple centre model was semantically enriched: a main design choice in this work was to try not to completely redesign the existing syntactic tuple space model, but rather provide a smooth extension that { although supporting semantic reasoning { keep the simplicity of tuple and tuple matching as easier as possible. By encapsulating the semantic representation of the domain of discourse within coordination media, semantic tuple centres promote semantic uncoupling among coordinated components. The main contributions of the thesis are: (i) the design of the semantic tuple centre model; (ii) the implementation and evaluation of the model based on an existent coordination infrastructure; (iii) a view of the application scenarios in which semantic tuple centres seem to be suitable as coordination media.
Towards model driven software development for Arduino platforms: a DSL and automatic code generation
Resumo:
La tesi ha lo scopo di esplorare la produzione di sistemi software per Embedded Systems mediante l'utilizzo di tecniche relative al mondo del Model Driven Software Development. La fase più importante dello sviluppo sarà la definizione di un Meta-Modello che caratterizza i concetti fondamentali relativi agli embedded systems. Tale modello cercherà di astrarre dalla particolare piattaforma utilizzata ed individuare quali astrazioni caratterizzano il mondo degli embedded systems in generale. Tale meta-modello sarà quindi di tipo platform-independent. Per la generazione automatica di codice è stata adottata una piattaforma di riferimento, cioè Arduino. Arduino è un sistema embedded che si sta sempre più affermando perché coniuga un buon livello di performance ed un prezzo relativamente basso. Tale piattaforma permette lo sviluppo di sistemi special purpose che utilizzano sensori ed attuatori di vario genere, facilmente connessi ai pin messi a disposizione. Il meta-modello definito è un'istanza del meta-metamodello MOF, definito formalmente dall'organizzazione OMG. Questo permette allo sviluppatore di pensare ad un sistema sotto forma di modello, istanza del meta-modello definito. Un meta-modello può essere considerato anche come la sintassi astratta di un linguaggio, quindi può essere definito da un insieme di regole EBNF. La tecnologia utilizzata per la definizione del meta-modello è stata Xtext: un framework che permette la scrittura di regole EBNF e che genera automaticamente il modello Ecore associato al meta-modello definito. Ecore è l'implementazione di EMOF in ambiente Eclipse. Xtext genera inoltre dei plugin che permettono di avere un editor guidato dalla sintassi, definita nel meta-modello. La generazione automatica di codice è stata realizzata usando il linguaggio Xtend2. Tale linguaggio permette di esplorare l'Abstract Syntax Tree generato dalla traduzione del modello in Ecore e di generare tutti i file di codice necessari. Il codice generato fornisce praticamente tutta la schematic part dell'applicazione, mentre lascia all'application designer lo sviluppo della business logic. Dopo la definizione del meta-modello di un sistema embedded, il livello di astrazione è stato spostato più in alto, andando verso la definizione della parte di meta-modello relativa all'interazione di un sistema embedded con altri sistemi. Ci si è quindi spostati verso un ottica di Sistema, inteso come insieme di sistemi concentrati che interagiscono. Tale difinizione viene fatta dal punto di vista del sistema concentrato di cui si sta definendo il modello. Nella tesi viene inoltre introdotto un caso di studio che, anche se abbastanza semplice, fornisce un esempio ed un tutorial allo sviluppo di applicazioni mediante l'uso del meta-modello. Ci permette inoltre di notare come il compito dell'application designer diventi piuttosto semplice ed immediato, sempre se basato su una buona analisi del problema. I risultati ottenuti sono stati di buona qualità ed il meta-modello viene tradotto in codice che funziona correttamente.
Resumo:
Questa tesi tratta dello sviluppo di un progetto chiamato Faxa e di una sua concreta applicazione nell’ambito della domotica (CasaDomotica). Faxa è un framework per la comunicazione via wireless tra dispositivi che supportano il sistema operativo Android e dispositivi Arduino Ethernet, comunicazione che avviene localmente attraverso il wi-fi. Il progetto si inserisce nel panorama più ampio chiamato “Internet of Things”, ovvero internet delle cose, dove ogni oggetto di uso domestico è collegato ad Internet e può essere quindi manipolato attraverso la rete in modo da realizzare una vera e propria “smart house”; perchè ciò si attui occorre sviluppare applicazioni semplici e alla portata di tutti. Il mio contributo comincia con la realizzazione del framework Faxa, così da fornire un supporto semplice e veloce per comporre programmi per Arduino e Android, sfruttando metodi ad alto livello. Il framework è sviluppato su due fronti: sul lato Android è composto sia da funzioni di alto livello, necessarie ad inviare ordini e messaggi all'Arduino, sia da un demone per Android; sul lato Arduino è composto dalla libreria, per inviare e ricevere messaggi. Per Arduino: sfruttando le librerie Faxa ho redatto un programma chiamato “BroadcastPin”. Questo programma invia costantemente sulla rete i dati dei sensori e controlla se ci sono ordini in ricezione. Il demone chiamato “GetItNow” è una applicazione che lavora costantemente in background. Il suo compito è memorizzare tutti i dati contenuti nei file xml inviati da Arduino. Tali dati corrispondono ai valori dei sensori connessi al dispositivo. I dati sono salvati in un database pubblico, potenzialmente accessibili a tutte le applicazioni presenti sul dispositivo mobile. Sul framework Faxa e grazie al demone “GetItNow” ho implementato “CasaDomotica”, un programma dimostrativo pensato per Android in grado di interoperare con apparecchi elettrici collegati ad un Arduino Ethernet, impiegando un’interfaccia video semplice e veloce. L’utente gestisce l’interfaccia per mezzo di parole chiave, a scelta comandi vocali o digitali, e con essa può accendere e spegnere luci, regolare ventilatori, attuare la rilevazione di temperatura e luminosità degli ambienti o quanto altro sia necessario. Il tutto semplicemente connettendo gli apparecchi all’Arduino e adattando il dispositivo mobile con pochi passi a comunicare con gli elettrodomestici.
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:
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:
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:
Nowadays the rise of non-recurring engineering (NRE) costs associated with complexity is becoming a major factor in SoC design, limiting both scaling opportunities and the flexibility advantages offered by the integration of complex computational units. The introduction of embedded programmable elements can represent an appealing solution, able both to guarantee the desired flexibility and upgradabilty and to widen the SoC market. In particular embedded FPGA (eFPGA) cores can provide bit-level optimization for those applications which benefits from synthesis, paying on the other side in terms of performance penalties and area overhead with respect to standard cell ASIC implementations. In this scenario this thesis proposes a design methodology for a synthesizable programmable device designed to be embedded in a SoC. A soft-core embedded FPGA (eFPGA) is hence presented and analyzed in terms of the opportunities given by a fully synthesizable approach, following an implementation flow based on Standard-Cell methodology. A key point of the proposed eFPGA template is that it adopts a Multi-Stage Switching Network (MSSN) as the foundation of the programmable interconnects, since it can be efficiently synthesized and optimized through a standard cell based implementation flow, ensuring at the same time an intrinsic congestion-free network topology. The evaluation of the flexibility potentialities of the eFPGA has been performed using different technology libraries (STMicroelectronics CMOS 65nm and BCD9s 0.11μm) through a design space exploration in terms of area-speed-leakage tradeoffs, enabled by the full synthesizability of the template. Since the most relevant disadvantage of the adopted soft approach, compared to a hardcore, is represented by a performance overhead increase, the eFPGA analysis has been made targeting small area budgets. The generation of the configuration bitstream has been obtained thanks to the implementation of a custom CAD flow environment, and has allowed functional verification and performance evaluation through an application-aware analysis.
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:
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.