The Arduino software to run the robotic xylophone is available on Github for free. I make the software free because of the educational value of this project, and to enable others to more easily build one on their own.
The software to run version 2.1 of the robotic xylophone (designed with an SD card) consists of two parts:
- A Slave Arduino Program which is installed on the Arduino Uno with the L293D Motor Driver shield. This program receives serial commands from the Master Arduino and fires solenoids in response. See the Motor Driver Tutorial for details on the Master-Slave Architecture. Instructions for loading this program are found on the Electronics page. Also, see the code comments for more details.
- The Master Arduino Program is the main program for the robotic xylophone. This program shows a list of MIDI files on the LCD and allows the user to select one via the Rotary Encoder. When a song is selected, the program reads the MIDI file and sends serial commands to the Slave Arduino’s to fire solenoids and play the song. Details of this program are found on the Master Program Page.
Instructions for loading MIDI files onto the SD Card are found on the SD Card Config page. The MIDI Transpose page provides details on how notes in the full range of a piano are translated into notes on a 2-octave xylophone.
An explanation of various menu options and other features of the software are on the Operation page.
Prior to standardizing on the SD Card, my version 2.0 robotic xylophone used SPI Flash to store all song data. This version uses 3 different software programs:
- Slave Arduino Program – same as used for version 2.1
- Master Arduino Program – Handles the user interface, reading and writing data to/from the SPI Flash, and controlling the Slave Arduinos.
- Configurator Program – a PC-based application which is used to convert MIDI files into the format that can be played by the xylophone, and then load songs into the memory.
See the SPI Flash Software page for details on this version.
If you haven’t done so yet, please Like Us On Facebook.