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