Design Specifications
_________________________________
Model-Based IoT
Florida Institute of Technology Senior Project
Sponsor & Client:
Dr. Siddhartha Bhattacharyya
Associate Professor of Computer Engineering & Sciences
Prepared by:
Sung-Jun Baek,
Caelan Shoop,
Cameron Wright
Last Modified:
Sep 30, 2021
Version:
1.0.0
Table of Contents
1.0 Introduction
1.1 Purpose of the project
The primary purpose of the Model-Based IoT project is to provide a system that facilitates the translation of valid timed automaton models into real-world smart devices. An additional objective is to demonstrate this ability by creating an application that will utilize a translated model to divide the workload between multiple connected Roomba smart vacuums efficiently. Users should be able to add specially modified Roombas through this application and utilize its divide and conquer functionality to more efficiently clean their homes.
1.2 Definitions
1.3 Background
Timed automation models are an intuitive and streamlined way of designing valid systems visually. Furthermore, an environment like UPPAAL enables the utilization of functional code pieces within the diagram. Designing a valid real-time system is as simple as creating a graph. Our sponsor/client has had firsthand experience with the utility of UPPAAL in this application. He has previously used it to implement a system to guide an autonomous submersible vehicle; however, despite its promising application in developing valid real-time systems, there exists no openly available tool to take the output of the UPPAL model (XML) and create corresponding functional code. That is what this project aims to do.
Moreover, the IoT and smart devices are becoming ever more popular, making devices such as Roombas a good medium to display the capabilities of our project. As of yet, no application will allow the coordination of multiple Roombas to clean a space more efficiently. Thus that is the problem we are trying to solve.
1.4 Scope
This project consists of two parts: the translation tool and the Roomba-Raspberry Pi application. The translation tool should allow UPPAAL users to quickly and automatically translate their model from XML to functional Python code. There will be no GUI for this tool. The Roomba application will allow those with Roombas to modify them by attaching a pre-configured Raspberry Pi. After connecting to a network, the user can then add each using the GUI into a single web application. From within that same GUI, the user will also be able to remove any previously added Roombas and view their information. Lastly, the user will be able to tell all of the Roombas to start cleaning via a button on the GUI; This is where the application will communicate with the Roombas to clean as efficiently as possible.
1.5 Audience
Each section of this project has a different target audience. The translation tool is aimed at developers who are experienced with UPPAAL and no longer wish to code or parse the output for each model manually. UPPAAL users are a relatively niche audience; however, this is not the end product of our project and instead is an intermediate step. The Roomba application's end product is targeted towards technically-minded individuals who wish to clean a large space efficiently and passively. This applies to anyone interested in the ability for Roombas to work in parallel with minimal redundant cleaning and is willing to modify them.
2.0 Design Diagrams
2.1 System Structure
2.2 UPPAAL Translation
2.3 Raspberry Pi Integration
RPi-Roomba integration scheme.We researched needed parts for both power and logic connections. A DC to DC Voltage Regulator Buck Converter is necessary for stepping the Roomba’s battery voltage (approx. 14.4V) down to the Raspberry Pi’s power input voltage (5V), as well as a Logic Level Converter to convert the Roomba’s 5V serial connection to the 3.3V of the RPi’s serial connection.
2.4 End-User Interface
Model Based IoT | Design Specifications