Team Vision for Detailed Design PhaseOur goal for this phase was to clear up any uncertainty with any design choices going forward and to finalize any design ideas we have before moving on to MSD II. This required documenting each component of the system that would stay the same as well as each component that would be modified or reworked entirely. These modified or reworked design elements then needed to be further elaborated on such that work on those elements can begin in 2020.
During this phase, we accomplished most of everything that we set out to do. We were able to finally decide which components of the previous design would remain intact going forward to integration and implementation next semester. We were also able to come up with a detailed design of some new elements to the design, but some new elements have not yet been elaborated on, including the RF switch to perform calibration of RF data at startup.
Detailed Design Elements
Sun Tracker Software Design Details
General Software Design
- Sun Tracker software will be written in C# targeting Windows 7.
- UI will be designed with Windows Forms for easy drag-n-drop UI design.
- Application will function offline, use of Remote Desktop will allow for access outside of deployment area.
UI Design Guidelines
- The UI must be easy to navigate. There should not be layers of menus or obscure clicking required to effectively use the program.
- The UI should seem familiar to new users by mimicking a well known UI style (LabView, HMIs, etc).
- The functional code of the program must be separate from the UI code. This is done such that functionality can be extended without breaking UI elements. This also allows for UI overhauls in the future without rewriting any functional code.
- The program must know where the Sun is local to the satellite's position on Earth. This is achieved by use of azimuth and altitude measurements to describe where the sun is relative to the satellite.
- To this end, the program must know the GPS coordinates of the dish.
- Azimuth and altitude measurements are then converted to rotary and actuator pulses, respectively. These pulses are then sent to the Arduino to perform actual dish movement.
- In order to use azimuth and altitude successfully, the dish must begin at a "home position" such that finding the sun can be achieved consistently.
- Additionally, the program must know how far the dish can spin and adjust upwards or downwards in order to prevent damage to the dish.
- The program must support the ability to schedule observations at any time of the day other than during the day, when the sun will be tracked.
- The program must be able to make an observation based on a number of user-configurable settings. These settings include a unique user-specified identifier, a start and end time, set either explicitly or implicitly based on when the object is visible.
- The program must also be able to recognize target names and point the dish to that target, or receive a set of global coordinates to point to.
- The program should be able to group observations in order to disable or remove scheduled observations that have some relation.
- The program must send data to the Zurich FTP server at the end of every day
- Old data should be removed after the total size of all data is past a user-configurable threshold.
- The program must remove the oldest data first.
- The program must be able to keep track of failed file transfer events. This is done in the case of a failed transmission. The program will attempt to retry this until the end of the next day.
System Status Indicator
- The program should show a status indicator on the main screen. The purpose of this is to notify the user of any problems with the software or the hardware.
- The status indicator should notify problems such as, but not limited to, power loss, internet loss, receiver failure, motor failure, motor controller failure, storage failure, and other errors that would hinder data collection.
- The program should show a color to communicate the severity of the error. Green is used for no errors, yellow is used for a recoverable error or a non-critical error, and red is used for a critical failure when the dish or the program cannot recover.
Power Loss Management
- The program must accept serial input from a backup power supply, which powers both the control PC and the dish. This serial input tells the control PC what the status of the battery is.
- In the event of power loss, the program must be able to determine if a measurement can be safely finished or not.
- If a measurement can be safely finished, the program will allow it to finish and safely bring the dish down.
- While the dish is down during a short power loss, the program must be able to resume functionality without completely shutting down
- During long periods of power loss, the program must be able to safely stop all operation and shut down the PC it runs on.
- If the PC is completely shut down, an operator must be available to power the PC back on.
Hardware Design Details
Outdoor Equipment Protection
- The dipole used to record the local RF noise has to be protected from the environment as well to avoid damage. To achieve this, it will be housed in a PVC box with a PVC stub to house the antenna.
- In order to protect the external wires, the proper conduit has to be used. In this case, Liquid Tight Flexible Metal Conduit(LTFMC) could be used as well as the required connectors.
- Any cables going into the enclosure that houses the RF Receivers that can generate noise also have to be shielded. This is help noise from being introduced into out signal lines.
Motor Control, Sensor Calibration and Safety
- The Arduino is responsible for controlling the movement of the motors through the use of the VNH5019 motor shield. There is also the ability to measure the current draw of each motor. If the current spikes past normal operating range the machine will go into an error state. This is to protect both the motors and whatever they just hit.
- In order to calibrate our receivers, dummy loads have to be used. One switch will dummy load 0%, and the other will dummy load 100%. These values will be used to set the minimum and maximum points for our plots of the gathered data.
- In order to increase the safety of the machine, e-stop switches will be installed in two locations. These are used to shutdown the system when the switch is engaged, this normally happens when the machine is not operating correctly and must immediately be shut down from a safe distance.
Bill of Material (BOM)
- 1/2" Liquidtight Flexible Non-Metallic Conduit
- Various Multi-conductor cables
- 2-Gang FS Box with In-Use Cover
- USB Hub
- USB over Ethernet adapter
- Cat 6 Waterdog Cable
Design and Flowcharts
Main UI Window
Menu Bar Options
Graph Viewer Window
Log Viewer Window
Dish Position Viewer Window
Design Review MaterialsPre-Read
Plans for next phase
- Outline a plan for each week of MSD II
- Begin immediate work on Sun Tracker Software
- Ensure that all loose ends for design are tied up within first 2 weeks of MSD II