Subsystem Build & Test
Team Vision for Subsystem Level Build & Test Phase
During this phase the team was able to:
- Finalize component choices
- Order all needed parts
- Temperature Testing
- Piano Tuning
Bill of Materials
- The team decided that including the pedal actuation and the button feedback would not be within the limits of our budget.
- We had to mitigate the risk of running out of funds by deciding to not implement the feedback and pedal actuation systems.
Imagine RIT Poster First Draft
- This is the general layout for how we imagine how our poster will look.
Imagine RIT Tentative Plan
- Proposal has been submitted to RIT for a location.
- Requested locations include 1st and 2nd floor in Gleason to minimize piano movement.
- Piano will have several pre-loaded songs ready to play at imagine with and without a player (Tim).
- People will be able to play along with piano if they so desire.
Test Results Summary
Solenoid Temperature Testing Results
- The team compared the expected and the actual results of measuring the temperature curve of the thermistor when attached to the solenoid.
- Measured Temperature Curve:
- Theoretical Temperature Curve
- With this data the team now knows that the formula for the temperature cutoff is found with this equation:
- Where R is the other resistor in the voltage divider circuit, and V is the cutoff voltage.
Transistor Temperature Testing
- The transistors being used in the final design were evaluated to establish how long a note could be played continuously before it overheated. With this testing the team knows that the longest note the piano can play is 24 seconds. This means we will be able to play any long note we come across.
Outputs & Destination
- Test Results
- System integration
Final Solenoid Power Schematic
This schematic eliminates the buzz from the PWM signal going into the solenoid. This completely mitigates one of the biggest risks of the design.
Timing Diagram for Solenoid Driving
This is how the timing works for the PWM. The value that controls when the output changes, TACCRx is modified to fit the loudness of the note for a stronger solenoid pull. The duty cycle of the pulses is found by using the formula:
(TACCR0-TACCRx)/(TACCR0)= 100*duty cycle
3D Printed Wire Clip
- This clip is what connects the beading wire to the key stud removing the need to tie the wire directly to the piano, reducing install time.
3D Print Connecting Rod
- Used to prevent the rod from sagging when playing notes.
- Assembled array of 24 solenoids on board and mounted it in the piano
- Finalized secure placement of plunger caps to the plungers using screws
- Updated wheel to be symmetrical and added spacer to limit solenoid movement to correct distance
- Changed the sound dampening style to an O-ring inside the solenoid body to dampen where the plunger contacts the body
Risk and Problem Tracking
- The team created a problem tracker to manage all the problems we encounter.
Functional Demo Materials
Development of Software PortionThe team has made a lot of progress on the software portion of the piano project, namely with the UI and with the development of an effective testing suite.
User Interface and Interaction DesignA modular user-interface was designed for the player piano, mainly focusing on:
- Platform Responsiveness
- Sleek, Flat Design
After a cycle of bench-marking similar controller-centric designs, it was decided that a very minimalist flat design would be used, with big text and as little instruction as possible. This abides by a lot of the design best practices, and allows users to take actions with the path of true least resistance.
One of the major benefits of the application is the fact that the tablet and touch-input friend design allows for both toddlers and elders with deteriorating eyesight to take actions easily. This is accomplished without jeopardizing either the software integrity of the design and while keeping it easily usable and non-constricting for adults.
The UI design colors are still up to be changed easily, but right now these colors are present to be welcoming and friendly to toddlers who may come to the booth at imagine RIT.
On top of the UI design that was worked on, the software developers focused on developing a strong testing suite so that future actions are easily validated. This was completed by developing two main pieces to the tests, the end-point and the test listing itself.
- Software end-point mimicking the piano
- Receives requests in the same fashion the piano will be transmitted information.
- Gives predictable responses depending on the input, given that the input is formatted properly.
- Has a simple test to check if the endpoint itself is functional.
- Validates the structure of an incoming request.
- Validates the specific structure (including notes, pitches, duration) of a sample test song that hits all edge cases
- Testing Suite
- Can be run with a standalone command away from the rest of the web app.
- Execution on a test-by-test basis, validating passes in logical order.
- Takes the same actions the piano system would take, in a repeatable manner.
- Uses the same software pieces as the piano itself, to validate the inner workings of the piano system.
- Displays failures and the resultant failure messages to the test executor.
- Can be executed on production builds, and can create logs
All the facets of the suite are not done yet, but the structure and basics to the system are already in place. The tests themselves have not been run (with real data) yet, due to the fact the communication protocol has not been set. It does not make sense to write tests that will be subject to change soon.
Plans for Week 8 Review
- For the next phase the team plans to:
- Have completed the Raspberry Pi to MSP Communication Code
- Have complete system installed into piano
- Have started full system test and troubleshoot
- Completed Imagine RIT Presentation Plan
- Completed 2nd Draft of Poster
- Complete first draft of Technical Paper
Individual Plans for Week 8 Review
- Continue code development for MSP
- Assist with Controller integration
- Finalized 3D printed structures
- Assist code development
- Finalize power distribution layout
- Assist with system power integration
- Maintain testing procedure standards
- Continue Hardware/ Electrical Testing
- Full system integration into piano structure
- Development of 3D printed hardware
- Song Development
- Poster draft improvement
- Development of 3D printed hardware
- SPI protocol
- Cyber security (SSH, XSS, injection attacks, etc.)
- More generic MIDI splitting
- Development of microcontroller system integration with user interface