Flywheel Control and Monitoring (FlyCAM)

Flywheel Control and Monitoring (FlyCAM) is a desktop graphical user interface (GUI) application designed for the Flywheel Energy Storage System. It provides users with the ability to precisely control the flywheel as well as monitor its performance.

The interface is being developed for modern Windows operating systems using the Qt framework. It communicates with a microcontroller on the flywheel using an RS-232 serial protocol over a USB cable.

This interface is being completed as part of a 2016 senior design project. It is scheduled for completion in December 2016.

Project Overview
A storage system of any kind is useless without a control interface. Our user-friendly design allows for precise control of Idaho's Flywheel Energy Storage System. Additionally, it provides intuitive monitoring of the Flywheel's performance.

Background
One of the problems a potential lunar mission faces is energy generation and storage. Solar and nuclear power generation are both options, but they have their complications. During the 14 Earth-day lunar night, solar energy is not available. During the equally long lunar day, nuclear power generation would have to decrease due to heat. At lunar dawn and dusk, neither method would be able to produce much power. As a result, an efficient energy storage system is needed. To accomplish this, the University of Idaho has proposed the idea of using a Flywheel Energy Storage System, which has a higher energy density and longer lifespan than other options.

Problem Statement
While the Fly Rollers senior design team works to complete the Flywheel test setup and develop the embedded system to control it, there is currently no way for a user to control or monitor the operations of the flywheel. An intuitive interface is needed for both initial development and practical use of the flywheel.

Goal
The FIGs set out to develop an intuitive interface for the Flywheel Energy Storage System. Our interface will allow precise control of the Flywheel while displaying it status and reporting any errors. Our interface will include functionality needed to test the flywheel as well as operate it as a practical energy storage system.

Implementation
The GUI is written using the QT Framework. This allows for rapid development while being flexible. The interface's primary target operating system is Microsoft Windows, however QT is multi-platform allowing for expanded operating system support in the future. The QT serial library will be used to communicate with the Flywheel's primary microcontroller facilitating control and monitoring of the Flywheel's operating parameters.

Design
Mockups and Prototypes of the interface of FlyCam are shown below, demonstrating the evolution of the design.

The first mockups showed the basic design of the interface. Vertical tabs add intuitive navigation, while always-visible graphs on the right-hand side allow constant monitoring of the flywheel.

The first prototype shows many of the design elements of the mockups, such as buttons functioning as vertical tabs. This protoytpe has both a control page and a performance monitoring page where a single graph is displayed. The control page has sliders and spin-boxes for controlling velocity, acceleration, and jerk.

The second prototype has many of the components requested by the client. The right-hand sidebar has all graphs needed, each clickable to bring up an enlarged view of it in the central view. The control components' maximum values are set on the configuration page. This configuration page also allows the user to set a keyboard shortcut for the emergency stop command.

Installation on Debian based Linux Distros 2016 (Mint,Ubuntu)
Open the terminal

Make sure the system is up to date:

Install git:

Install qtcreator change qt to version 5:

Install qtmultimedia dependencies:

Install serialport libraries:

Move to the location where you want to store the project, I will refer to this as :

Make a directory to build and develop in, I will refer to it as :

Clone the project into the directory:

Move to this development directory:

Open QT Creator

Click Open Project:

Click Configure project

Click Build All

Click the Green Arrow to run

FlyCam Members Group Photo


Group photo of the members of team FlyCam taken after a team meeting.

Documents

 * [[Media:2016-client-interview-flycam.pdf|Client Interview]]
 * [[Media:2016-tech-spec-flycam.pdf|Technical Specifications]]
 * [[Media:2016-uart-temp-flycam-14.pdf|UART Commands Template 1.4]]

Deprecated Documents

 * [[Media:2016-uart-temp-flycam-13.pdf|UART Commands Template 1.3]]
 * [[Media:2016-uart-temp-flycam-12.pdf|UART Commands Template 1.2]]
 * [[Media:2016-uart-temp-flycam-11.pdf|UART Commands Template 1.1]]
 * [[Media:2016-uart-temp-flycam-10.pdf|UART Commands Template 1.0]]
 * [[Media:2016-api-spec-flycam.pdf|Application Program Interface Specifications]]

Meeting Notes

 * [[Media:2016-meeting-01-notes-flycam.pdf|Meeting 01: 01-21-2016]]
 * [[Media:2016-meeting-02-notes-flycam.pdf|Meeting 02: 01-26-2016]]
 * [[Media:2016-meeting-03-notes-flycam.pdf|Meeting 03: 01-28-2016]]
 * [[Media:2016-meeting-04-notes-flycam.pdf|Meeting 04: 02-04-2016]]
 * [[Media:2016-meeting-05-notes-flycam.pdf|Meeting 05: 02-11-2016]]
 * [[Media:2016-meeting-06-notes-flycam.pdf|Meeting 06: 02-18-2016]]
 * [[Media:2016-meeting-07-notes-flycam.pdf|Meeting 07: 02-25-2016]]
 * [[Media:2016-meeting-08-notes-flycam.pdf|Meeting 08: 03-03-2016]]
 * [[Media:2016-meeting-09-notes-flycam.pdf|Meeting 09: 03-10-2016]]
 * [[Media:2016-meeting-10-notes-flycam.pdf|Meeting 10: 03-17-2016]]
 * [[Media:2016-meeting-11-notes-flycam.pdf|Meeting 11: 03-31-2016]]
 * [[Media:2016-meeting-12-notes-flycam.pdf|Meeting 12: 04-07-2016]]
 * [[Media:2016-meeting-21-notes-flycam.pdf|Meeting 21: 09-29-2016]]