Subsystem Build & Test
Table of Contents
Team Vision for Subsystem Level Build & Test Phase
For the subsystem-level build and test phase, our team began development of the individual subsystems of the final design, including: the table and circular tabletop, the arm with the color bar, the associated microcontroller code for controlling the DC Servo Motor for the table and the Stepper Motor for the arm, and the code for the autocropping script.
The arm has been cut and assembled, and it is designed to be able to stretch out and pull in through the use of a stepper motor coupled to one end of the arm (not shown).
The arm motor has been wired correctly and operates at a voltage compatible with the encoder motor, eliminating the need for two power supplies.
The microcontroller can accurately control the motor to turn a specific number of servo steps, and it can turn the motor between four predetermined positions (the starting position and the three presets) by counting steps with the use of the movement buttons.
The table materials, including the 2-by-4 wood and plywood, have been successfully cut per the desired measurements.
Using highly advanced scientific technology, the wood has been placed atop the table.
The DC motor has been implemented to turn a specific number of servo steps corresponding to 90 degrees upon a button press. When turning, the motor will accelerate at first and decelerate when approaching the desired position.
The compiled executable used by the Applescript was updated to perform the autocrop of images.
In the updated algorithm, a raycast is performed from the center of each side of the image in the direction normal to the side of the image (so either directly horizontally coming from the left or right and directly verically coming from the top or from the bottom).
Alongside each raycast trace, the color values at each pixel as a single-byte grayscale color is recorded alongside the trace, and a difference filter is applied alongside all four traces with the equation given by:
The resulting value will indicate the difference in color between the current pixel location and that of the pixel location five steps ahead. Due to the images have a black border per the FADGI guidelines, this can be used to detect the border of the image. When n consecutive pixels have been detected to have a difference that exceeds a provided threshold, this pixel is determined to be the edge of the image.
After determining the edges, the bounding box and size of the image is closed in using the provided image. Due to the placement of the color bar, this script will call itself iteratively a provided number of times, with each subsequent time performing the raycast at height/(iter+1) intervals or width/(iter+1) intervals across the image. For example, in the first iteration, the raycast is performed at height/2 and width/2, directly across the center of the image. In the second interation, the raycast is performed at the 1/3 and 2/3rds point across the image, and the average of the values is used as the determined crop edge. Using a maximum iterative of n=5, it was found that the color bar will eventually be cropped out.
// @todo fix links
Test Results Summary
A link to our test plan can be found in the Requirements and Test Plan document.
Early testing results, from running autocrop executable without the applescript:
Risk and Problem Tracking
The full updated risk sheet can be found here.
The full updated problem tracking sheet can be found here.
Functional Demo Materials
Plans for next phaseWe hope to accomplish the following tasks by the next demo:
- Troubleshoot the Teensy problem to ensure it will not happen again
- Continue to test subsystems
- Integrate arm and table electronics once subsystems tests are successful
- Decide on solutions for attaching the shaft to the table and the color bar to the arm
- Design a button box for easy use
- Design attachment for the arm to the table
- Test arm attached motor to determine specifications for how it will work
- Assist David T. in attaching arm to the table
- Figure out what material will hold color bar in place
- Use sample artifacts to figure out pre-set locations
- Work with David L. to integrate pre-set measurements with code
- Continue to assist with material orders should the need arise and help with the electrical layout and circuiting for the panel and control box
- Assist with system testing when it is fully integrated
- Solder Everything into protoboard and check functionality
- Finish Panel Design and integrate most electrical components into the panel
- Finish design for Button Box.
- Continue testing of Arduino/Teensey code in development and integration of individual subsystems.
- Continue testing and improvement of Applescript and Autocrop code.
- Machining Table to Shaft connector.
- Put together drivetrain and motor
- Testing of table top
- Begin Legs