Software

Tags: [|Agilent U2001A power sensor], [|Antenna characteristics test], [|Antenna Controller], [|Arduino Uno R3 microcontroller], [|Free-space VSWR test], [|Lab computer], [|Mini-Circuits Generator], [|Mini-Circuits SSG-4000HP signal generator], [|Power Panel 3.7], [|Roomba movement program], [|Roomba robot], [|Stepper motor], [|Transmit antenna]

Home >> Equipment and Software >> Software =SOFTWARE=

This page describes in further detail all of the software utilized at the Marquette University Antenna Range. After viewing this page, you will be informed about the roles that certain types of software have at the antenna range, have a basic understanding of how they work, and be informed about the specifications associated with each one.

= =
 * ==== Contents ====
 * Free-Space VSWR Test Movement Program
 * Antenna Controller
 * Phase 1: Automatic Initial Startup
 * Alternate Phase 1: Manual Initial Startup
 * Phase 2: Post-Completion
 * Phase 3: Output Data File
 * Power Panel 3.7
 * Mini-Circuits Generator
 * Accounts ||

Free-Space VSWR Test Movement Program

 * This program was coded using the open-source editor made for the Arduino Uno R3 microcontroller. The programming language is C/C++, and this program was pre-programmed onto the board so it does not need to be edited or accessed unless the movement pattern needs updating. The Arduino only needs to be connected properly to the Roomba robot by plugging in each of the colored wires correctly. Details about the procedure for the free-space VSWR test can be found on the Tests page.
 * The program is a start/stop test for the Roomba to automate movement. The Roomba moves forward in a straight line in 100 millimeter steps, stopping for a few seconds at each step, over a total of 700 millimeters. At this point, the Roomba then repeats this process going in reverse, returning to the original starting point.
 * Sample code is provided below:

System.out.println("VSWR Test Start and Stop"); roombacomm.goForward(200);

roombacomm.pause(1000);

System.out.println("Data Reading 1");

roombacomm.goForward(200);

roombacomm.pause(1000);

System.out.println("Data Reading 2");

roombacomm.goBackward(200);

roombacomm.pause(1000);

System.out.println("Data Reading 3");

roombacomm.goBackward(200);

roombacomm.pause(1000);

System.out.println("Data Reading 4");

roombacomm.playNote( 72, 10 );

roombacomm.stop;

System.out.println("Disconnecting");

roombacomm.disconnect;

System.out.println("Done");

Antenna Controller

 * This program is the fully automated computer program designed by the 2013-2014 E55 senior design team to automate the antenna characteristics test process.
 * The proposed concept was to create a simple and effective C/C# based program that would automate the antenna characteristics testing process and allow for easy user interaction. A C/C# based program was chosen so the program would be less likely to encounter issues in the event of a large software update. There are three main ways that this program fulfilled all necessary criteria.
 * Single page user interface with displayed data and graphs
 * Simple page that exports data to excel
 * Having key terms that would cause the automation to stop, start, restart, and record
 * Each option gives the user a unique way to interact with the system that can be quickly and easily understood. This is important because the goal is to have the facility be used by many people (primarily faculty and staff) that are unfamiliar with the hardware communication and data recording process.
 * To run the application, open the Antenna Controller program from the shortcut on the desktop of the lab computer.
 * Press the "Connect to Motor" button to ensure that the program is now communicating with the stepper motor.
 * Set the degree interval in which the program will tell the stepper motor to rotate, using the drop-down menu next to "Set Step".
 * Set the delay in seconds that the program will tell the stepper motor to wait before rotating each time, using the drop-down menu next to "Set Delay". It is recommended that the delay be at least 1 second at the minimum step size of 1.8 degrees. For increasing step sizes, the delay should be increased accordingly as well to maintain accuracy.
 * If the user wishes to conduct a test manually, the "Rotate" button can be pressed to rotate the stepper motor one "step", which rotates the motor the amount of degrees specified in the "Set Step" drop-down menu.
 * The automatic mode is the recommended mode of choice for ease of use. Instead of following the above step, the user can press "Start" and the program will automatically rotate the stepper motor one step at a time, until the stepper motor has made a full rotation of 360 degrees.


 * Below is the pseudo code that was written up during the design process.




 * The basic specifications are as follows:
 * **Programming Language:** C# and C Library
 * **Programming Platform:** MS Visual Studio 2013
 * **Program Compiler:** .NET platform, gcc
 * Below is a list of the specific functions of each of the buttons featured on the UI.
 * **"Connect to Motor":** This function establishes the connection with the motor and allows for the user to change the parameters of the test.
 * **"Rotate":** Moves the stepper motor one step and records one data point from the power sensor.
 * **"Start":** Using the parameters of step size and step delay, the test will begin to run automatically, displaying and recording results in the process. Once a 360 degree rotation has been made by the stepper motor, or the user presses the "Stop" button, the test will conclude and a gnuplot of the data will appear.
 * **"Stop":** Stops the current test at the degree that was last recorded. Starting the program again after it is stopped will resume recording results from the last recorded step angle.
 * **"Reset":** Moves the motor back to the original position it was in at 0 degrees. It is recommended that this button be pressed at the conclusion of testing. This button does not respond unless the test has been stopped using the "Stop" button or has concluded from an automatic test. This function also clears the on-screen data.


 * Below is the flow chart that shows the basic functionality of the program.




 * C/C# programming language was used to develop the software. The recorded data is exported into a tab-delimited text file. With the new user interface, there is no further action required after setting the initial parameters and clicking "Start" from the graphical interface. The program handles the motor in a thread, and in a separate thread records the power measured by the sensor. The functions are concurrent and robust.
 * In addition to the tab-delimited text file, the program also generates a gnuplot. However, the plot is overwritten if multiple tests are run in succession; the user must move it or change the file name.
 * To best explain the functionality of the program, there are three phases:
 * **Phase 1: Automatic Initial Startup:** When the application is started, the following screen appears as can be seen below. The user is asked to set the desired angle for the receive antenna to complete the rotation of a 360 degree sweep. The user also has to provide a delay for each step of the antenna rotation. Once these two parameters are set, then the user can start the test by clicking on “Start” on the right side, within the automated mode.
 * **Alternate Phase 1: Manual Initial Startup:** The user can control the test manually by clicking the "Rotate" button. This button will rotate the stepper motor one step based on the "Set Angle" and record one corresponding data point from the power sensor.




 * Setting the parameters of the program allow for the user to make specific test runs with various amounts of data collected at varying duration. The table below shows a basic test time estimate for most combinations of step size and delay time.
 * Use this table for reference when testing, especially if there are time constraints.




 * The user can stop and start the program at any point within the 360 degree cycle. This immediately stops the rotation of the receive antenna. This feature is useful in case of a hardware malfunction or because the collected data does not need to be stored and analyzed. When you stop the program, you should see the pop-up as shown below.




 * **Phase 2: Post-Completion:** After the test has been completed, a dialog box stating “Completed” is displayed, unless the user has stopped in the middle of a test. In that case the dialog box stating “Stopped!” is shown. The results appear as shown below.




 * **Phase 3: Output Data File:** The location of the tab-delimited text file is in the same directory as the application. After each automated test, an output data file gets created automatically, regardless if the program was completed or interrupted by the user. The data file carries the name and extension formatted as: Month_Day_Year-Hour_Min_Angle.txt. The format of the recorded data file is as below:
 * The first column is the angle of rotation (in degrees).
 * The second column is the measured power from the sensor (converted to dBm).
 * There is a tab between the values.
 * After clicking "OK" on the dialog box, a gnuplot is automatically created using a script written by Dr. Richie, using the recorded values in the text file.
 * To save the gnuplot, click on the "Save As..." icon in the toolbar in the window that appears with the gnuplot. This window is shown below. **Note:** Pressing "OK" or "Cancel" will remove the gnuplot, so it is important to save it first before closing that window.



Power Panel 3.7

 * This program was provided with the Agilent U2001A power sensor and is used to read values at-a-glance and also record data in a strip chart. The strip chart can then be exported to a CSV file, which can be opened and edited in Microsoft Excel. There, it can be further processed into a graph of measured power in dB versus time in seconds since the beginning of the recording. The main interface is shown below.




 * To begin reading data, click on the green arrow at the top of the window.
 * In order to record and later save data, click on the "Create Strip Chart" symbol at the top of the window labelled below. The strip chart will begin recording immediately.




 * To stop the recording, press the red "stop" button as shown below. Then, right-click anywhere on the strip chart and select "Save as...". This will export the data points into a CSV file.




 * While there is no recommended Measurement Acquisition Rate, it can be adjusted by clicking "Tools", then "Options & Settings". The window that appears is shown below.




 * **Note:** This program cannot be open at the same time as the Antenna Controller program, or it will cause an error. This error is the result of both of these programs trying to communicate with the power sensor at the same time.

Mini-Circuits Generator

 * This program was provided with the Mini-Circuits SSG-4000HP signal generator.
 * It allows for total control over the output of the signal generator with the following three parameters:
 * "RF ON" or "RF OFF", which determines when the signal generator is outputting a signal or not
 * Power out in dBm, mW, or uW
 * Frequency in MHz or GHz
 * The basic operating procedures are as follows:
 * Turn on the signal generator by flipping the switch labelled "POWER" on the front panel.
 * Open the Mini-Circuits Generator program.
 * From this window, select the large button labelled "USB Control", as seen below.




 * If the signal generator was turned on not long before starting the program, the message, "Warming Up!" will appear as shown below.




 * Wait until the "Warming Up!" message disappears before turning on the RF so the signal generator will be ready to produce an output.
 * The current default parameters for performing an antenna characteristics test is a power output of +13 dB and a frequency output of 2.4 GHz.
 * Click on each parameter and type in the desired values for Frequency and Power Out. **Note:** If a frequency value other than 2.4 GHz is desired for a test, be sure to remove the 2.4 GHz bandpass filter from the power sensor before conducting the test.
 * Click "Apply".
 * The suggested values are shown below.




 * When you are ready to begin a test, make sure there is nobody standing inside the anechoic chamber, and make sure the signal generator has finished warming up. When the anechoic chamber is clear, and there is no indication of the "Warming Up!" message, click the "RF ON" button so the window appears as below. At this point, the transmit antenna will be transmitting the signal.



Accounts

 * **Wikispaces:** The Marquette University Antenna Range has three dedicated accounts, one being the Wikispaces account that manages this Wikispace.
 * **YouTube:** The YouTube channel contains uploads from test videos recorded at the antenna range.
 * **Gmail:** This account was created in order to provide potential online storage for files related to the antenna range along with serving as a password recovery option for the two aforementioned accounts.