P.I.A.N.O.
Peripheral Interpreter
consisting of Analyzers 'N
Operators
P.I.A.N.O.
Project Team
Team Members
Curtis Hayes
Matthew Huie
Eric Lauber
Wesley Vollmar
Course Instructor
Dr. Serpen
Faculty Advisor
Dr. Molyet
Background (Problem)
•
•
•
•
Player pianos are expensive
Obtrusive internal modifications of piano
Musicians are expensive
Musicians may not know and be ready to
perform all genres of songs
Background (Solution)
• Play the piano autonomously via computer
software
• Do not modify or damage the piano
• Be contained and unobtrusive
• Use modular design to be scalable
• Be cost effective and easy to use
Background (cont.)
• Uses existing technologies
o PWM (Pulse Width Modulation)
o MIDI (Musical Instrument Digital
Interface)
• Use knowledge gained through University
education
o Computer Programming
o Electrical Hardware Design
Driving Circuitry
• Actuators
o Dual Ledex Solenoids
o Together pull up to1.3A @ 28V
• Switched Electronic Control
o PWM to create Dynamic
Variation and Human-Like Playback (Honors)
o Use different PWM duty cycles to reduce heating
losses
• Power Supply (28V)
Pulse Width Modulation
Pulse Width Modulation
Master/Slave Architecture
• Serial Bus
• One Master, Multiple Slaves
Arduino Overview
• ATMEGA328
• On-board
o Microprocessor
o 328K Memory
o I/O
o PWM
o Analog Inputs
• Programmed in C
o void setup()
o void loop()
Hardware Block Diagram
• Serial Communication
• DIP Addressing
• PWM to solenoid drivers
Hardware Slave Schematic
Software - Input Parsing
• Reads in a single track MIDI file
• Pulls out relevant information
o Notes
o Delays
o End of Song
• Throws away meta-data, except tempo changes
• Stores into database
• Must be done very carefully to prevent corruption
of the data.
Software - Output Control Signals
•
•
•
•
•
Read in command signals from database in array
Calculate "tick" time
Run timing delays
Output command signal on serial port
Repeat
• Fast enough to simulate chords
Software - Serial Communication
• Using a Universal Serial Bus (USB) to RS232R (TTL logic
levl) converter
• Software uses the built in .NET Serial Port object
• Can be written to like any file object
Software - Graphical User Interface
• Simple, clean style
• Similar to most other media players
• Custom buttons to customize
our system
• Functions separated on
different windows
• Custom icon to identify the
program
Software - Database
• System.Data.SQLite ADO.NET provider
o http://www.sqlite.org/
o "Most widely deployed SQL database engine in the
world"
o Used in systems such as Mozilla Firefox
• All data stored in one single file
• Simple Transaction SQL commands
• Requires only file path to access
Software - Database Repair
• Two Redundant backups stored
o Created at system close
• Can repair corrupted database at error
• Protects against data loss
Software - Import / Export
•
•
•
•
Wes Vollmar's Honors portion of the project
Ability to export and share database contents
Replace or append to current playlist
Gives system mobility
-
-
-
-
Future
• Scale up to full sized piano
o Invest into more key modules
o Mass produce using printed circuit
boards (PCBs)
• Communicate with other MIDI devices
• Add other music file functionality
Conclusion
•
•
•
•
•
One octave self playing piano
Software controlled
Solenoid key striking modules
Easy maintenance and repair
Self contained
QUESTIONS?
References
• Atmel - ATMega328P
o http://www.atmel.com/dyn/products/product_card.asp?P
N=ATmega328P#dataSheets
• Ledex 191172-001
o http://www.jameco.com/webapp/wcs/stores/servlet/Produ
ctDisplay?langId=1&storeId=10001&catalogId=10001&productId=1919203
• Texas Instruments - DRV102
o http://focus.ti.com/docs/prod/folders/print/drv102.html