Here are some more detailed steps to help you build MobBob V2.
Get the non-3D-printed parts.
- 4 x 9g servos
- 1 x Bluno Beetle (see note below)
- 1 x Eneloop Phone Battery Extender (see note below)
- 1 x Nexus 5 (see note below)
Acquire the 9g servos, Bluno Beetle, Mobile Battery Booster, and find a phone you want to use. The phone needs to support Bluetooth LE (Bluetooth V4, I believe).The servos can be found cheaply on eBay, or places like DX.com.
I got the Bluno Beetle directly from DFRobot’s website.
I got the Eneloop Battery Booster discounted for about $7! 😀 If you want the same one, try searching “Eneloop Mobile Booster” on ebay. This model should come up. However, if you have a different battery booster, that will mostly likely work fine too!
Make sure the app will work with your phone.
Download the app from Google Play and test it on your phone to make sure your phone supports the voice recognition and computer vision features.
You can use the “Skip Connection” option in the app if you don’t have your Bluno setup yet.
If the voice features from the voice search in Google Now works, you should be good. And, if you have a working front facing camera, you should also be good!
- Prepare the STL files to print.
Download the MobBob V2 STL files from Thingiverse and prepare to print them.
If you are using a different phone to the Nexus 5, or are using a different Mobile Battery Booster, you may need to adjust the STL files for the phone holder and for the battery rack.
If you are adjusting them, keep the mounting holes the same so that the adjusted parts will still fit on MobBob V2.
- Print the 3D printed parts.
The parts should be pretty straight forward to print. The phone holder is probably the trickiest part. You will probably need to use supports to print that part.
- Assemble MobBob.
- Center the servos. (This is important!!)
- Attach the servo horns to the leg parts.
- Fit the hip servos to the “Base” part and strap them down the using the “Servo Brace” part. Use M3 nuts and bolts to hold them together.
- Stick the feet servos to the feet pieces. I used thin double-sided foam tape to do this.
- Use the leg pieces (with servo horns fitted) to connect the hips to the feet.
- Attach the battery rack and the phone holder using the outer mounting holes. Again, use M3 nuts and bolts to do this.
- Wire up MobBob.
- Configure the Bluno Beetle’s Bluetooth.
The default Bluno Beetle’s Bluetooth settings are fine for MobBob.
However, I’ve experienced a case where a new Bluno Beetle’s bluetooth settings were either not initialized or were corrupted. As a result, I had trouble connecting to the board, and when I was able to connect, the connection would be lost shortly after.
I found that resetting the Bluno Beetle’s bluetooth settings to their default values fixed this problem. So, to be safe, I suggest always doing this step on a new Bluno Beetle board to reset the Bluno Beetle’s settings before loading the MobBob Arduino program on.
To do this, you need to execute the AT command “AT+SETTING=DEFAULT”
There are detailed instructions on how to do this at the DFRobot website: Link
(NOTE: To use AT commands, the serial port can’t be in use. Because MobBob’s Arduino program uses the serial port, if you want to do this after you’ve loaded MobBob Arduino program on:
– Load onto the Arduino a basic program like the Arduino “Blink” example. (This will replace the MobBob Arduino program on the Arduino.)
– Follow the steps in the link above to use the AT command.
– Go to step 8 to load the MobBob Arduino program back on.)
- Install the Arduino Code onto the Bluno Beetle.
Download the Arduino code from GitHub:
You may need to adjust the Arduino pin constants if you wired MobBob differently.
You may also want to tweak the servo centering values and and the servo range values.
Transfer the code to the Bluno Beetle.
- Fire up the app.
Depending on your phone, you may need to play with some of the options on the front screen.
If connections are not working reliably, try the “Scan Directly for Bluno” option.
If the camera view is coming out upside down, try the “Flip Camera” option.
If you find MobBob stops responding after one or two commands, try unchecking the “Wait for Responses” checkbox. When that checkbox is selected, the app will wait for response codes from the Arduino to determine when animations have finished playing (i.e. when MobBob is ready to receive a new command). Without that checkbox, the app will stop relying on these codes and will just use an estimated “timer” to determine when it is ready to send another command. Using Response Messages is more accurate and better, however, some MobBob builders have told me that they have issues receiving the responses on their phone. (This was reported on some Samsung phones). So, if you find that MobBob stops responding after a few commands, try unchecking the “Wait for Responses” checkbox.
(Note, there is a bug where you may need to close and re-open the app for some of the values like the camera flip value to stick.)
- Have fun with MobBob.