Project
# | Title | Team Members | TA | Documents | Sponsor |
---|---|---|---|---|---|
17 | Arduino-Powered Network Flow Visualization Toolbox |
Bolin Zhang Jiahao Fang Yiyang Huang Ziyuan Chen |
design_document3.pdf final_paper3.pdf proposal2.pdf video |
Pavel Loskot | |
## PROJECT DESCRIPTION Many real-world systems involve flows over networks. Our team aims to build a **modular, reconfigurable hardware emulator** to visualize network flows under capacity constraints on links. Each node can be configured to act as a sink, a source, or a "transfer station" that holds zero flux. This toolset will facilitate the understanding of flow optimization algorithms in a classroom setting. ## SOLUTION OVERVIEW We use a scalable design where components are easily replaceable to account for network expansion. The emulator should have a central Arduino controller that talks to each node and link to display the capacities and actual flow amounts. *Tentative: It may be desirable to have a software GUI to display the network alongside the physical model due to space (# LEDs) and protocol (# pins) constraints in each node/link.* ## SOLUTION COMPONENTS ### Subsystem 1: Physical Network Model - We should build a fully functional physical model where pipes represent network links and the LEDs within show the maximal capacity and real-time flow of "data packets." - Each node should be configurable as sink, source, or neither ("transfer station") with a user-friendly interface such as buttons or switches. ### Subsystem 2: Software Flow Computer - We should build an intuitive software interface that allows the user to easily configure nodes (3 modes) and links (capacity) while controlling the LED flow display. - We should implement a robust and *lightweight* optimization algorithm that efficiently computes network flows on an embedded Arduino board while considering all constraints (node configurations, link capacities). - Alongside the design process, we should write comprehensive documentation detailing the manuals for software setup, operation, troubleshooting, and our development process. ## CRITERION OF SUCCESS - The physical model should be modular, i.e., each node has a certain number of "slots" reserved for installing new links (pipes). - The Arduino software should communicate with all nodes and pipes and update the flows in real-time in response to changes in setup. At the current stage, we aim to serve 4~6 fully connected nodes. - The algorithm should handle (and report) edge cases such as a network with zero or multiple feasible flows. ## DISTRIBUTION OF WORK - Ziyuan Chen (ECE) - software developer: maintain the code for flow optimization and Arduino-hardware communication protocol - Bolin, Jiahao (EE) - hardware developer: handle the physical layout of peripherals (pipes and LEDs), design user interface - Yiyang Huang (ME) - integration and testing specialist: design the protocol for node configuration and conduct stress tests in edge cases |