Google+ Facebook Twitter Pin It Reddit

Making The J-Bot Robot Talk

By Omar Arriaga

Description: Adding an rMP3 Playback Module to J-Bot
Assembly Time: 2.5 hours
Skill Level: Intermediate

J-Bot 2.0 This is a bigger and better J-Bot. Well, ok maybe not bigger, but definitely better! This one can talk! I first built J-Bot from the Jameco J-BOT Kit. It turned out great, but, as usual, Marketing asked for more. I thought it would be awesome if J-Bot could talk. I found a shield that could make it possible.

Click here to learn how to build J-Bot.

Parts Required:

Description Product No.
rMP3 Playback Module AP-RMP-H
Hex 3/16" Standoffs 4501-440-AL-7
Hex Nut 4-40 36012
Phillips Pan Head 4-40 x 1/4" 28631
SDHC memory card

Tools Required:

Description Product No.
Soldering iron 200GX-25W
Shear cutters 170M
Jumper wire 509-100
Utility knife G1C491
SD card reader

The shield I found is the rMP3 Playback Module by Rogue Robotics. You can use files like voice prompts, sound effects, or music. The MP3 files are stored on memory cards in a format readable by your computer, so you can store or create data files too. The playback module has a 3.5mm stereo headphone jack for headsets or for line-in connections and a multi-function 10-pin connector for direct operation.

Let's get started!

Step 1 - Assemble rMP3 shield

First you will need to solder on the headers provided to the rMP3 shield. The photo shows the completed shield. For more information about the shield go this link.

Headers in place Headers in place on rMP3 shield
Cut jumper pads next to pins 7 and 11 Cut jumper pads next to pins 7 and 11.

Step 2 - Modify J-Bot Adafruit shield

Since the Adafruit shield on the J-Bot uses one of the same pins used in the rMP3 shield, we will need to modify it.

Cut the jumper pad next to pin 7 and pin 11 with a utility knife. Cut the little line in between the jumper pads. To make sure the jumper pads are not connected, you will need to use a multimeter to check continuity on the jumper pads.

Strip the end of a jumper wire and solder the wire in the second row, third pin, as shown in the picture below.

Placing jumper wire Placement of jumper wire: 2nd row, 3rd pin.
Jumper wire connected to header of pin 11Jumper wire connected to header of pin 11.

Connect other side of the jumper wire in the header of pin 11.

Step 3 - Modify J-Bot motor shield

Locate pin 11 on the motor shield. Remove the single row header underneath the motor shield with a screwdriver as shown in picture.

Pry off header on motor shield Pry off header on motor shield pin 11.
Cut motor shield pin 11 off of shield. Cut motor shield pin 11 off of shield.

Cut pin 11 off the base of the shield with shear cutters. You can also unsolder pin 11 if you prefer.

Trim the header and place header back on to the remaining pins on the shield.

Trimmed header on shield Trimmed header on shield.
Motor shield on top of rMP3 shield Motor shield on top of rMP3 shield

Place the motor shield on top of the rmp3 shield.

Step 4 - Adding the J-Bot Arduino

Remove the Arduino shield from the robot by unscrewing the standoff screws. Remove these larger standoffs and replace them with the smaller hex 3/16" standoffs, (save the larger ones you just removed, you'll use them in next step)

Shields in place on J-Bot Shields stacked and support standoffs in place on J-Bot.

Add the standoffs you just removed to the larger standoffs that support the robot's top cover.

Add the shields back onto the Arduino and reattach shields to the J-Bot base.

Step 5 - Wiring

Motor 1 (M1) uses pin 11 so I wired the left side to Motor 3 (M3) and the right side to Motor 2 (M2). This also allows for access to the SD card on the shield.

Wiring for left side, motor 3 (M3) Wiring for left side, motor 3 (M3)
Wiring for right side, motor 2 (M2) Wiring for right side, motor 2 (M2)

Next connect the ping sensor to the motor shield. The signal cable will go back to (A0), the ground cable will go GND, the power cable will go to +5v. The servo is connected to SER1.

(A0), GND and power wiring - top view (A0), GND and power wiring - top view
(A0), GND and power wiring - side view (A0), GND and power wiring - side view

Now put the top part of the robot back on.

Fully assembled talking J-Bot Fully assembled talking J-Bot.

Programming time!

Step 6 - Programming

Download two new libraries: NewSoftSerial and RogueMp3 to the Arduino folder. These libraries communicate with the rMP3 shield. For instructions on how to install the libraries, refer to this link.

You will need to purchase a regular SDHC card. The storage size of the card is up to you. It all depends on how many MP3s you want to put on it.

Plug in your SDHC card to your computer, inside of the SDHC card you will need to create a folder called "JBOT". Inside of this folder you will need to put all of the MP3 files you want your J-Bot to say.

Connect the Arduino to the computer and upload the code to it.

I have written some code for you to start with here. Where you take it from there is all up to you!

Don't forget you have to build J-Bot first. Click here to see how to build the J-Bot Kit.
Omar Arriaga is currently attending Canada College, in Redwood City, California and is pursuing a degree in Electrical Engineering. His interests include building robots, learning about new electronic gadgets, dirt biking and long walks on the beach.