Introduction: Musical Melodyian MIDI Robot

Picture of Musical Melodyian MIDI Robot

Hello! This Instructable will show you how to build your very own Melodyian - an Arduino-based, 3D-printable robot that can move around, light up, and make music! It's basically a robot that's wirelessly controlled via MIDI over Bluetooth.

This robot is part of a larger multimedia production called The Musical Melodyians. The Melodyians are musical aliens who eat music and travel through space to save the universe's musics. Visit the website to watch videos featuring these Melodyian robots, listen to Melodyian music, read comics, and more!

NOTE: This project is suited for makers with at least an intermediate amount of experience with Arduinos, soldering, general electronics, and a basic familiarity with MIDI. There are a lot of steps and materials involved, so be prepared to commit at least a few extended work sessions to completely assemble a fully working Melodyian robot. Even if you're not planning on going all the way, there's still a lot of useful information and resources within this Instructable for anyone interested in making a wirelessly controllable Arduino robot.

Step 1: Project Background and Applications

The Musical Melodyian project is an artistic collaboration between myself, Scott Tooby, and artist J Sayuri. I originally created these robots for Melodyian video productions as seen here. Immensely helpful coding contributions were made by programmer Jim Fingal.

You might be asking, "Why do you use MIDI to control robots? That's weird." Yes, it is weird! However, being a composer and electronic musician without a formal computer science or engineering education, I found MIDI to be a very intuitive means of controlling a robot. MIDI is a highly flexible and abstract digital instrument communication protocol that allowed me to piggy-back off of pre-existing software tools (like Lemur) to quickly create a wireless control system for these robots. Additionally, by programming these robots to respond to MIDI, I can automate the control of multiple robots with DAW software like Logic Pro, Ableton Live, Pro Tools, etc. I've used Logic Pro (in conjunction with Max MSP) to sequence the choreography of multiple robots during video production, making it easy to recreate robotic performances - saving me huge amounts of time when filming.

Since MIDI is so flexible and pervasive in modern software and hardware, creating MIDI-controlled robots opens up a lot of creative opportunities. Technically, these robots can be controlled and sequenced with any type of MIDI hardware or software, making them accessible to electronic musicians without extensive programming backgrounds. Finally, integrating this MIDI robot technology with programming environments such as Max could unlock an entire realm of rich artistic and performative avenues encompassing automated robotic art installations, interactive musical performances, and environmentally responsive networked swarms of performing robots!

I hope you find the information in this Instructable useful, and are inspired to build off of this creation for your own future projects, preferably for the making of swarms of performing musical robots :) Please let me know if you do!

Now, it's time to make a robot...

Step 2: Parts for the Melodyian Robot Circuit

To make your circuit, you will need the following parts. (NOTE: This listing contains ICs attached to breakout boards, which we found to be a convenient method of prototyping and testing the original circuit. Advanced makers may opt to use the SMD versions of these components and devise their own more compact PCB solution. Please let us know and share if you do!):

Primary Components:

• 1 x Arduino Pro Mini 328 (3.3V/8MHz)

• 1 x Bluetooth Mate Silver

• 1 x Motor Driver 1A Dual TB6612FNG

• 2 x Pololu 120:1 Mini Plastic Gearmotor D-Shaft Output

• 1 x Pololu Wheels 32x7mm (wheels are sold in a pair)

• 1 x Diffused RGB LED (common cathode)

• 1 x 16mm Speaker (16 Ohm / .5W)

• 1 x Mono Audio Amp Breakout TPA2005D1

• 1 x Schottky Diode

• 1 x Lipo Battery (3.7V / 1.2A)

• 1 x JST 2-Wire Jumper (used to connect the lipo battery to the power switch and PCB ground terminal)

• 1 x SPDT Mini Power Switch (this exact switch model will fit perfectly into the 3D-printed robot shell)

Resistors:

- 2 x 100Ω

- 1 x 180Ω

- 1 x 12kΩ

- 1 x 33kΩ

- (Optional: You can solder 2 resistors to the mono audio amp breakout to increase its volume output. We've used a variety of values in our Melodyians ranging from 15kΩ to 47kΩ with good results. Please refer to this handy guide to learn how to calculate the resistor values you'd like to use with this component.)

Supplementary Parts:

• 1 x FTDI Cable 5V VCC-3.3V I/O (cable used to upload code to the Arduino Pro Mini 328. A helpful guide on how to install the FTDI driver on your computer system can be found here.)

• 1 x Adafruit Micro Lipo - USB LiIon/LiPoly charger – v1 (convenient USB charger for the specific Lipo battery listed above)

• 1 x Female Header (minimum of 18 pin holes needed for this project, but a minimum purchase quantity of 1 row includes 40 holes. Can be cut w/ wire cutters. Expect to lose 1 hole w/ each cut.)

• 2 x Male Break-away Header (minimum of 55 pins recommended for this project, order at least 2 rows of 40 to ensure you have enough.)

• 22 awg solid and stranded copper wire (at least one small spool of each is needed for this project. We recommend getting multiple colors for easy wire management. You can find this at any Radioshack or general electronics shop.)

Optional Supplies:

• 2 x Small modular breadboard (a convenient breadboard for testing the circuit prior to final assembly. You'll need at least two of these small types or one larger solderless breadboard if you choose to test the Melodyian Robot circuit w/ a solderless breadboard before committing to a finished soldered PCB.)

M/M Jumper Cables 3” (used for breadboard prototyping before final assembly. more flexible 6” versions are also available. Order at least one bag of 40 if you choose to test the Melodyian Robot circuit w/ a solderless breadboard before committing to a finished soldered PCB.)

Heat shrink (used to cover solder joints in the assembly of the speaker, LED, and power switch components in this project. We recommend using this to ensure clean and problem-free assembly of certain components! In general it's a useful item to have for wire management and circuit building.)

Step 3: Circuit Assembly - Overview

Picture of Circuit Assembly - Overview

Once you've collected all the necessary parts, it's time to assemble your Melodyian circuit. To help you wrap your head around how the circuit is wired, we're including a handy Fritzing schematic illustrating a solderless breadboard version of the circuit here.

NOTES:

• For the remainder of the Instructable we'll only be detailing how to create the PCB version of the circuit, but we highly recommend testing out the circuit w/ a solderless breadboard first.

• If you don't want to test the circuit with a solderless breadboard and want to assemble the final PCB version, simply proceed to the next step.

If you would like to test the circuit with a solderless breadboard before committing to the PCB:

- You'll need at least one large solderless breadboard or a couple of the smaller versions outlined in the materials listing in the previous step.

- Make sure you have a lot of jumper cables (23+)!

- Be sure to read through the remaining steps so you can see how we soldered the various male and female header pins to the IC components so you can easily transplant them to the final soldered PCB version of the circuit after you're done testing with the breadboard. Also read how to prep the LED, speaker, motors, and power switch in a manner that's compatible for both a breadboard and the finished PCB of our project.

- Once you're done assembling the breadboard version of the circuit, jump to step 11 to see how to upload the necessary code to the Arduino for testing.

Step 4: Circuit Assembly - Fabricate the PCB

Picture of Circuit Assembly - Fabricate the PCB

The easiest (and most compact) way to create the Melodyian Robot circuit is with our handy Melodyian Robot PCB. You can download a .zip file containing Etchable PDFs, Gerber files, and the original Fritzing file of the PCB here. We utilized the Fritzing Fab service to create our PCB, but you may wish to use your own preferred fabricator, or make it yourself. However you choose to fabricate the PCB, you should be able to do it with the files we've provided.

Step 5: Circuit Assembly - Solder the Components to the PCB

Picture of Circuit Assembly - Solder the Components to the PCB

Once you've fabricated the Melodyian Robot PCB...

1. Solder the resistors and schottky diode to the PCB first. (A general rule of thumb for PCB soldering is to solder the smallest components to the board first and work your way up to the larger ones. It'll make your life easier and help you avoid damaging sensitive components amidst the soldering process).

- The placement of the resistor values and diode are screen-printed onto the PCB. You can also use the pictures and schematic as a reference.

2. Solder the female header to the LED, motor connection, and power switch input pins on the PCB.

- Doing this makes it easy to connect and disconnect the LED and associated wiring to the PCB.

3. Using the picture as a reference, prep the Audio Amplifier breakout:

- Solder male header to its power and signal input pins.

- Solder female header to its signal output pins. (Using female header pins here will allow you to plug the speaker into the amp w/out a permanent solder connection - making it easy to replace the speaker in the unlikely event that it gets damaged...)

- OPTIONAL: Solder female header to the volume pins if you'd like to install a rotary pot to control the volume.

- OPTIONAL: Solder resistors to the amp breakout if you'd like to increase its total volume output. Use this guide as a reference to calculate the resistor values you'd like to use. (In this instance we used two 15kΩ resistors, which gave a decent boost to the overall volume output.)

4. Prep the Arduino by soldering male header into all of its pin holes. Be sure to invert the male header connected to the six-pin programming header so that the longer length rises up above the main body of the Arduino (see picture for reference). This will ensure the Bluetooth transceiver is properly oriented once connected.

- If needed, here's a handy reference guide about how to use and assemble the Arduino Pro mini.

5. Prep the motor driver by soldering male header into all of its pin holes.

6. Solder the audio amp, motor driver, and Arduino to the PCB.

Step 6: Circuit Assembly - Prep the Speaker

Picture of Circuit Assembly - Prep the Speaker

This speaker component ships with tinned stranded wire, which aren't very breadboard friendly and will be difficult to plug into our PCB terminals. By soldering male header pins to its wire leads, we'll be able to easily plug it into our PCB (or a breadboard for testing).

1. Trim the speaker's wires down so that they're each a little over 1" in length w/ exposed leads.

2. Break off a couple pins from a strip of male header. Using pliers, remove the black plastic encircling the pins so the metal is fully exposed.

3. Solder each header pin to the end of each speaker wire.

4. Cover the solder joints with heat shrink (optional, but recommended).

Step 7: Circuit Assembly - Prep the LED

Picture of Circuit Assembly - Prep the LED

While it is possible to simply plug the leads of an RGB LED into the female header on the PCB, soldering solid copper wire to the leads will allow us to increase the height of the LED and precisely adjust its angle of orientation within the fully assembled Melodyian robot to maximize its light diffusion. (Keep in mind there's 12 eyes on the robot in total and only one light source, so we need every bit of light we can get!)

1. Cut 4 strips of solid copper wire to approx. 1.25" in length.

2. With wire cutters, trim the metal LED leads by about 1/4" and gently space them apart from each other to make it easier to solder the copper wire to the leads.

3. Solder the copper wires to the leads. (We found starting with the inside leads and working outwards was easier).

4. File down any rough edges on the solder joints and cover them with heat shrink.

Step 8: Circuit Assembly - Prep the Motors

Picture of Circuit Assembly - Prep the Motors

• Cut 4 lengths of solid copper wire to approx. 5.5" each and solder them to the terminal pins on the motors. (This will give you more than enough wire length to work with - you will need to trim them down later).

• After you've printed all the parts of the robot shell and assembled the full robot, you can trim down the wire lengths so that they fit nicely inside the robot enclosure. (There's not a lot of free space inside the enclosure once all the components are inside, so you will need to trim these wires down. The final lengths that we trimmed the wires to were 5.25" for the motor positioned farthest away from the motor driver connection terminal and 3.5" for the other.)

Step 9: Circuit Assembly - Prep the Power Switch Connector

Picture of Circuit Assembly - Prep the Power Switch Connector

This component forms the connection between the lipo battery, power switch, and power terminals on the PCB. It's made of the 2-wire JST jumper cable, and since this is made of stranded copper wire, we'll need to solder a solid metal lead from a male header pin to it so we can easily plug it into the female header on our PCB (just like we did with the speaker component in the previous step).

1. Take your 2-wire JST jumper cable and trim its black (ground) wire to approx. 1.25" and its red wire to 3".

2. Solder a bare male header pin to the exposed end of the JST cable's black wire and cover the solder joint with heat shrink.

3. Cut a 1/2"-long piece of heat shrink and slide it down the red wire of the JST cable.

4. Solder the red wire of the JST cable to one of the outside leads of the power switch.

5. Trim a separate length of stranded copper wire to approx. 3 1/8" in length.

6. Solder one end of the copper wire to the center lead of the power switch.

7. Solder a bare male header pin to the other end of the copper wire.

8. Slide two 1/2" pieces of heat shrink over this center wire to cover both of its solder joints.

9. Slide the heat shrink on the red wire of the JST cable down over its solder joint with the switch.

10. Apply heat to all of the heat shrinks to bond them in place.

Step 10: Circuit Assembly - Prep the Bluetooth Transceiver

Picture of Circuit Assembly - Prep the Bluetooth Transceiver

Solder a 6-pin row of female header to the pin holes on the component side of the Bluetooth Mate Silver.

Step 11: Circuit Assembly - Assemble the Full PCB Circuit for Testing

Picture of Circuit Assembly - Assemble the Full PCB Circuit for Testing

Now that you've soldered and prepped all the components of the circuit, it's time to assemble the full PCB so you can test it to ensure everything's wired correctly before embedding it within the fully assembled robot.

Using the picture and circuit diagrams as a reference, connect the power switch, battery, motors, speaker, LED, and Bluetooth Mate Silver transceiver to the PCB.

Note about motor wiring:

The proper connection between the motors and the motor driver can be in either of two arrangements:

• {+, –, +, –} OR {–, +, –, +} (e.g. red wire, black wire, red wire, black wire, OR black, red, black, red)

Step 12: Program the Robot - Download the Code & Supporting Applications

Picture of Program the Robot - Download the Code & Supporting Applications

After you've assembled your circuit for testing, there's a few steps you'll need to follow in order to upload the Melodyian Robot code to your Arduino and setup the robot's connectivity for wireless control. It's a somewhat involved process to get everything setup, but once completed you will be able to wirelessly control your robot with MIDI messages.

1. First, head over to our GitHub repo to download the Melodyian Robot code. This includes the full Arduino code needed to run your robot as well as a custom robot controller interface we designed using the Lemur app.

(Lemur is a MIDI controller app available for iOS and Android. It allows you to transmit MIDI data wirelessly from your mobile device to your computer over a WiFi connection. We've tested our Lemur template file on an iPad with Mac computers.)

2. If you want to make use of our pre-made Lemur control interface to easily control the robot w/out using your own MIDI controller, download and install Lemur on your computer and iOS / Android device. (Our Lemur interface is designed for an iPad).

- If you don't want to use our Lemur interface, you can reference the Arduino code file "midicc.h" to see which MIDI CCs the robot's programmed to respond to and then configure your own MIDI controller to transmit the corresponding MIDI data.

3. Next, make sure you've downloaded and installed the latest FTDI driver onto your computer so you can upload code to the Arduino Pro Mini with your FTDI cable. Here's a helpful guide on how to do this.

4. Download the Hairless Serial / MIDI Bridge application. This is used to establish a serial connection between your MIDI controller (Lemur in our case) and the Arduino.

- Make sure you configure Hairless Serial's preferences to the following:

• Baud rate: 57600

• Data Bits: 8

• Parity: None

• Stop Bits: 1

• Flow Control: None

Step 13: Program the Robot - Upload the Code to the Arduino

Picture of Program the Robot - Upload the Code to the Arduino

1. If you haven't already, configure your Bluetooth transceiver so you can establish a wireless connection with your Arduino. Here's an awesomely thorough guide on how to do this. (Make sure you configure your Bluetooth transceiver's baud rate setting to 57600! This is the default rate our Arduino code is set to.)

2. Open the Melodyian Robot code in your IDE and upload it to your Arduino. (Since this Instructable requires at least an intermediate experience level w/ Arduinos and electronics, we're assuming you're familiar with all the ins-and-outs of how to program and upload code to your Arduino. If not, here's a good reference for that.)

IMPORTANT NOTE: When uploading code to the Arduino embedded within the complete Melodyian Robot circuit, be sure the battery is not connected and actively powering the circuit. With the battery disconnected, connect the FTDI cable to the Arduino's serial pins. (Make sure the FTDI's black cable header pin connects with the edge programming header pin on the Arduino next to the screen-printed letters "BLK" (see pictures). Likewise, the green cable header pin of the FTDI will align with pin on the Arduino next to the screen-printed letters "GRN".)

TIP: If you're having difficulty uploading the code to your Arduino, be sure your IDE's upload settings are configured to a baud rate of 57600 and you've selected the same serial port your Arduino's connected to.

Step 14: Activate the Robot - Establish a Wireless Connection

Picture of Activate the Robot - Establish a Wireless Connection

1. After the code is uploaded, unplug the FTDI cable from your computer and Arduino, connect the Bluetooth transceiver to your Arduino, reconnect the battery to your circuit, and power on the Arduino. (Once powered, you should see a flashing red LED on the Bluetooth Mate Silver as well as illuminated power indicator LEDs on all the other ICs in the circuit.)

2. • If using Lemur w/ our custom controller interface:

- Activate the Lemur Daemon on your computer. (Lemur recommends establishing a direct Wi-Fi connection between your computer and iPad or Android tablet rather than connection via network router to reduce performance latency. We find this works well!)

If you're using your own MIDI controller: make sure it's powered on and connected to your computer at this time.

3. Launch the Hairless MIDI / Serial Bridge application, configure the connection preferences between Lemur (or your own MIDI controller) and your Arduino, and establish the connection:

- Set Lemur Daemon (or your own MIDI controller) In/Out channels as the MIDI In/Out ports

- Select your Bluetooth transceiver's serial port address as the 'Serial port.'

- Click the checkbox to establish a connection with the Arduino.

- If successful, you should see the Bluetooth Mate's connection indicator LED change from flashing red to a solid green and integer values sent from your Arduino as MIDI CC 30 begin to appear every few seconds in Hairless's debug console (these MIDI CC values from the Arduino are scaled readings of the circuit's battery voltage level, 127 = fully charged level of 4.2V+)

- If you're not successful, try unchecking and re-checking the check box or quitting and relaunching the Hairless application. It can sometimes take a few tries to establish a solid connection.

Once the LED indicator on the Bluetooth transceiver is a solid green and you've confirmed the Arduino is connected to Hairless, you have successfully made a wireless connection. Now it's time to actuate the robot with our MIDI controller.

Step 15: Activate the Robot - Test the Connection

Picture of Activate the Robot - Test the Connection

If you're using Lemur as a MIDI controller in conjunction with our custom controller interface:

- Launch the Lemur app on your iPad and load the Melodyian Robot controller template. Connect to your local Lemur Daemon.

- Test the connection by fiddling around with the controllers on the Lemur interface. You should see corresponding MIDI CC messages display in the Hairless debug console and the components of your robot circuit react accordingly:

• A simple initial test would be to press the "Set Color" button and adjust the vertical R (red) color slider to get the LED light to illuminate. If all is well, the LED should turn red. Fiddle around with the other color faders and LED functions.

• Next you can test the motors with the motor controller interface. Within the "Move" tab, simply move the circle within the square interface to actuate the motors. You should see the wheels rotate in response to your input.

(...Additional Info about the robot movement control:

- You can use this 'Move' interface to meaningfully control your robot's movement after it's fully assembled:

• Moving along the Y-axis rotates the wheels to move the robot forwards and backwards (Up = forwards, Down = reverse)

• Deviating left or right along the X-axis controls steering direction.

...)

• Finally, you can test the musical output. Press the "Melody 1" button to hear a melody play from the speaker.

If you're using your own MIDI controller to control the robot:

- Start fiddling with your controller and monitor the Hairless Serial debug console to confirm that MIDI CCs are being transmitted. Consult our code (file "midicc.h") to configure your MIDI controller to transmit the appropriate CC messages to actuate the robot.

(e.g. MIDI CC 52 w/ a value of 127 will activate the LED color control. Subsequent messages on CCs 20, 21, and 22 will change the LEDs Red, Green, and Blue color values - illuminating the LED)

If all is well and you're able to get corresponding reactions from the robot circuit based off your MIDI controller output, you've successfully built the Melodyian Robot circuit. Congratulations, the fun is just beginning!

Step 16: Activate the Robot - Troubleshooting

Picture of Activate the Robot - Troubleshooting

If the circuit doesn't seem to be working properly.... :(

#1 Ensure you have a working connection between your MIDI controller (e.g. Lemur) and Arduino by monitoring the debug console of the Hairless MIDI/Serial Bridge. This sometimes freezes or crashes, and can cause connectivity issues. These are often resolved by simply restarting the application and initiating a fresh connection between devices. You could also double-check the configuration of your Bluetooth Mate Silver transceiver. (This guide details how to configure the Bluetooth Mate Silver.)

#2 Double check your circuit's wired connections against our schematics.

- If the LED isn't illuminating, perhaps you plugged it into the PCB header the wrong way. Simply flip its orientation in the LED terminal of the PCB and try again.

- If the speaker isn't sounding, make sure it's plugged into the audio amp breakout the correct way (black wire to -, red to + in the OUT terminal).

- Go back and review the previous steps to make sure you've wired everything correctly. Double check your work against our schematics. We've put thousands of hours into this and tested everything thoroughly. If you follow our instructions it should work just fine. Double check our pictures too to make sure you've oriented the components correctly on the PCB.

#3 If all else fails, please leave us a comment detailing your issue, and we'll do our best to help you troubleshoot it!

Step 17: Print the Melodyian

Picture of Print the Melodyian

Congratulations for making it this far! You've built the circuit, connected it to your MIDI controller, and tested it to ensure your robot circuit is behaving properly and responding to your MIDI commands. Now it's time to print and assemble the robot's outer shell!

Download all the 3D-printer files of the Melodyian Robot from our Thingiverse page. (Even if you don't own your own 3D-printer, there are many online printing services that will print and ship your Melodyian to you.)

Step 18: Paint and Decorate Your Melodyian

Picture of Paint and Decorate Your Melodyian

Once you've printed all the pieces, paint and decorate the eye balls and faces! Make it your own Objet d'art and impart a unique character to your Melodyian. Use acrylic paint and be sure everything's dry before attempting a final assembly of the robot!

TIPS:

• We applied a base coat of black spray-on enamel acrylic paint to all the face pieces (except the eye balls) before applying additional acrylic paint colors by hand brush. It'll make your Melodyian look sooo goood.

• For the eyeballs, we sprayed a base coat of white enamel acrylic paint before applying hand brushed acrylic colors to the irises.

• Use masking tape to cover the irises of the eyes, eye holes, and all of the peg hole receptacles on the back sides of the faces and eyes before spraying on the base coat. Don't get any paint inside the peg hole receptacles, otherwise you might not be able to fit the connector pegs when assembling!

• Get creative, add jewels, beads, and what ever other flair you'd like (see pictures). We used white Elmer's glue to attach decorative objects b/c it's very durable, slow drying, dries clear, and easy to remove if need be.

Step 19: Final Assembly - Base Chassis

Picture of Final Assembly - Base Chassis

Now it's time to assemble the whole enchilada! Follow the step-by-step picture guides to see how it all comes together. We'll be breaking the full assembly instructions into a few sections with tips along the way, since it's a somewhat lengthy process.

The first phase is to assemble the base chassis of the robot, which includes the wheels and motors.

TIPS:

• All the connector pegs have been designed to form a friction fit with their corresponding receptacle holes. It can be a tight squeeze (especially with freshly-printed pieces), so you may want to use pliers to help you insert the pegs throughout this final assembly process.

• You'll notice there're small triangles etched into the side faces of the vertical support pieces (the pieces w/ the file name "InnerMount-Risers"). Make sure these are all oriented with the tip of the triangle pointing upwards (see pictures for reference).

• When assembled, the bottoms of the wheels should protrude slightly out from openings in the base piece by about 1/8" when placed on the ground. This will cause the bottom face of the base piece to always be at a slight angle and not completely flush with the ground. This is what we want to ensure the wheels get traction and move the robot.

• Optional tip: You may not need to do this, but we added a few layers of thick double-sided tape to the upper sides of the DC motors (see pictures...it's the white & green squares resting on the motors). This acts as a spacer and helps the motors rest firmly flush against the plastic platform installed above them - locking them into place and ensuring that when the bot's resting on the ground the wheels won't be pushed upwards into the enclosure, which can cause the wheels to lose traction and prevent the robot from moving normally.

• When assembling the inner-platform, be sure to press all the pieces firmly into place so that everything's flush and level. In general, always be sure that all the connector pegs and pieces have been pushed completely into place.

• When fully assembled and operational, this robot will roll best on smooth flat surfaces like hardwood floors. It has a harder time navigating thick carpets due to its very low clearance.

Step 20: Final Assembly - Install and Wire the Circuit

Picture of Final Assembly - Install and Wire the Circuit

Once the base chassis has been assembled, install and connect the circuit as shown in the pictures.

TIPS:

• You may want to apply double sided tape to one side of the lipo battery so it rests firmly in place on the plastic platform without slipping (see picture). Alternatively, you could use masking tape to hold it in place.

• Once you've positioned the PCB on top of the platform, this is the ideal time to measure out and trim the motor wires down to the minimum necessary lengths to reach the motor driver header pins. If you have too much excess cable, it could prevent the robot's face pieces from easily fitting together.

- The final lengths that we trimmed the motor wires to were 5.25" for the motor positioned farthest away from the motor driver connection terminal and 3.5" for the other.

Step 21: Final Assembly - Assemble the Faces

Picture of Final Assembly - Assemble the Faces

1. Insert 2 straight connecter pegs into the two holes in the back of each eye. (12 eyes in total).

2. Insert the assembled eyes into each eye socket on all the faces (4 faces total).

3. Insert the different connector pegs into the holes on the back side of the faces as shown in the pictures.

IMPORTANT NOTE:

• If you followed the printing instructions on our Thingiverse page, you should have two different types of face pieces and two different sets of connector pieces (two "Face-A" pieces, two "Face-B" pieces, straight "Peg" connectors, and the square-like "Loop" connectors).

• Only insert the "Connector-Loop" pieces into the "Face-A" pieces and the "Connector-Peg" pieces into the "Face-B" pieces.

Step 22: Final Assembly - Attach the Faces

Picture of Final Assembly - Attach the Faces

1. As shown in the pictures, attach both "Face-A" pieces to opposite sides of the base by fitting their bottom hole receptacles over the connector pegs protruding from the base piece. (These are the faces with the "Connector-Loop" pieces installed in their back side).

2. Attach the last two "Face-B" pieces:

- Firmly push the bottom hole receptacles of these faces over the connector pegs protruding from the base piece.

- Next, fit the protruding connector pegs located on the back side of these faces through the "Connector-Loop" pieces protruding from the back sides of the "Face-A" pieces (see annotated pictures for visual aid)

And that's it! Now that you've built and tested the circuit, and fully assembled the 3D-printed shell, it's time to turn it on and take over the world with your new Melodyian robot friend. You'll be the coolest kid on the block in no time! Watch out for dogs though - they'll snap up your Melodyian the first chance they get :0

Step 23: Congrats! Concluding Notes, Tips and Tricks

Picture of Congrats! Concluding Notes, Tips and Tricks

Congratulations for putting it all together. You did it! You're one in a million ;-)

Seriously though, great job, you may actually be the only other person on the planet to have built a complete Melodyian Robot beside ourselves. Great job! Please do contact us so you can share your work. We'd love to hear about it and share it with our online community of Melodyian enthusiasts. You'd be an instant internet celebrity in our book.

And even if you don't make a full Melodyian robot, but utilize some aspect of our circuit or code for your own project, we'd love to hear about it too!

Meanwhile, please let us know if you have any questions or comments. Thanks for tuning in!

Check out our other projects and connect with us at musicalmelodyians.com

ADDITIONAL NOTES (for the curious creatures):

• In case you were wondering about the magnets, silver paint, and mirrors visible in the pictures of the interior sides of the faces...

- These are features we later added to our robots and aren't necessary for the initial construction. Because we originally created these robots for video productions, we added reflective paint and mirrors on the interior faces to help maximize the light diffusion from the LED - making the light more visible on camera. Regarding the magnets, over the course of many many months of intensive use, the connectors experienced a lot of wear and some of the friction fits became loose. To resolve this issue we glued neodynium magnets near the connection points to help hold all the faces together and prevent further wear on the connectors. For the average user who's not intensively opening & closing their robot, the plastic connector pegs should retain a friction fit for a long time.

• Regarding our Lemur control interface:

- Currently there's no formal documentation about our custom Lemur interface included on the Melodyian Robot GitHub repo. It's a fairly straightforward control interface and we figured only those who already own the Lemur app would be interested in using it for this project. Since Lemur is a fairly specialized MIDI controller app tool, we figured anyone using this in conjunction with our control interface would already be knowledgeable about MIDI and control interface design in general, and would have a relatively easy time playing around with it to familiarize themselves with its operation. We'd consider uploading more formal documentation if there's enough interest, but in the meanwhile if you have any questions about it, feel free to post them in the comment section and we'll be happy to answer!

Comments

RobertC2 (author)2015-10-06

Humm... Moves like a DALEK.

Maybe with the proper model kit on top of it, and a voice chip that repeats Exterminate! EXTERMINATE!! ;-)

jmuncher (author)2015-09-08

Fantastic use of MIDI for non-music applications! Mind if I link you from my Instructable on Raspberry Pi Midi?

scott_tooby (author)jmuncher2015-09-08

Thanks, go for it! Indeed a non-musical use of MIDI, but I'd like to add these robots are capable of synthesizing simple tones with the built-in speaker in conjunction with one of the Arduino's digital pin outputs. I designed the code to interpret MIDI note information, so you can "play" these robots as a simple digital mono-synth using an external MIDI controller.

jmuncher (author)scott_tooby2015-09-08

Ok I added it to my PiMiDi Instructable. If you like it, vote for me in the Raspberry Pi challenge. Cheers!

scott_tooby (author)jmuncher2015-09-08

Awesome! I'll check it out!

Linkin_J_Knex (author)2015-09-07

woah these look so cool! :D

Thanks!

About This Instructable

4,205views

59favorites

License:

Bio: I am a sound artist and musician who makes electronic instruments, sound installations, and digital art.
More by scott_tooby:Musical Melodyian MIDI Robot
Add instructable to: