Otto - Build You Own Robot in Two Hours!

92,322

253

93

Introduction: Otto - Build You Own Robot in Two Hours!

About: Nestworks is a social enterprise based in Shanghai. We are a platform to facilitate the development of new technologies, such as smart hardware, software, or wearable tech, that improve the lives of the elde...

Who is Otto?

An interactive robot that anyone can make!

What can Otto do?

Otto walks, dances, makes sounds and avoids obstacles.

Why Is Otto special?

Otto is completely open source, Arduino compatible, 3D printable, and with a social impact mission to create an inclusive environment for all kids.

Otto was inspired by another robot instructable BoB the BiPed and programmed using code from another open source biped robot called Zowi.

CC-BY-SA

Otto's differences are in the assembled size (11cm x 7cm x12cm), cleaner integration of components and expressions. Using off the shelf and 3D printed parts, simple electronics connections (almost no welding required), and basic coding skills, you will be able to build your own cute Otto friend in as little as two hours!

Otto is design using Autodesk 123D Design software you can modify it for customization or further improvements!

This instructable focuses on how to build the Otto DIY version - yes, there are more Ottos and you can stay tuned for updates by subscribing here

Step 1: First Gather All Parts and Tools

Gather all the off the shelf parts that you'll need for this assembly. Here's the list:

1. Arduino or Genuino Nano V3.0 ATmega328

2. Arduino NANO Shield I/O Extension Board Expansion XD-212

3. Mini usb cable. (most Arduino dealers provide the cable)

4. HC-SR04 Ultrasound sensor.

5. Mini servo SG90 9g x4 (each one should come with 2 pointed screws and one small screw).

6. 5V Buzzer.

7. Female to Female breadboard connectors cable 10cmx6.

8. 4 AA Battery case

9. 1.5V AA batteries x4.

10. Mini cross screwdriver. important magnetized

And then you only need to 3D print 6 parts in total:

11. 3D printed head.

12. 3D printed body.

13. 3D printed leg x2.

14. 3D printed right foot.

15. 3D printed left foot.

Optional: cutter for post cleaning the 3d parts (if the 3d print quality is good enough no need) and a soldering iron (if you want it battery power otherwise can still connect it through usb to energize)

That's all simple!; Download all .stl files here in Thingiverse, If you do not have a 3d printer you can always use services like 3dhubs.com or local maker spaces.

If you think is difficult to find the parts, you can buy the full kit here!

Step 2: 3D Print Settings

Otto is very well designed for 3D printing, the files that you had downloaded are property oriented and centered, so wont give you trouble if you follow this common parameters:

  • Recommended to use a FDM 3D printer with PLA material.
  • No need supports or rafts at all.
  • Resolution: 0.15mm
  • Fill density 20%

You can print individually piece by piece to match the colors of the original design or optionally print all at the same time in an area of 14cm x 14cm.

For slicing and generating the g code for the machine free slicer software like Cura or in our case FlashPrint that comes with the FlashForge Finder 3D printer that we are using (If you are outsourcing the printing no need to worry about it)

After printing you will need to clean a little bit the legs and feet areas that fix the motors.

Step 3: Reorganize & Check Your Parts From Bottom to Top.

As mention in step 2, Micro servo motors come with 3 screws in the picture are now included and rearranged the parts number for easy reading.

Remember to have ready your magnetized mini screwdriver.

Print the attached .pdf instructions manual for convenience.

Step 4: Foot Servos Assembly

Put the micro servo inside feet and then push it inside, if is to hard maybe need to clean more the area with a cutter.

Is very important to check that the servo is able to rotate at least 90 degrees to each side.

After checking the movement use only the small screw to fix it.

Same process for the other foot.

Step 5: Fix Servos to Body

Take the other 2 micro servos put them in the defined locations in the 3D printed body and fix them only with the pointed screws.

Step 6: Fix Legs to Body

Connect the legs to the hub of the micro servo, important like the foot servos you must check the legs are able to rotate 90 degrees each side respect to the body.

After verifying the alignment fix them using the small screws to the hole inside the leg.

Step 7: Fix Foot to Legs

Taking care of the cables as showed in the illustration you should put the cables inside the slots of the body passing thought the hole of the legs.

Once they are in right position use the pointed screws to fix them from the back.

Step 8: Head Assembly

Start from the ultrasound sensor is important to pull out the eyes to the limit.

After putting the Arduino nano in the shield, optionally you can weld the battery holder positive cable to Vin in the board and negative to any GND.

Insert diagonally the both boards together facing the USB conector to the hole in the 3D printed head, then use the last 2 pointed screws to fix it.

Step 9: Electric Connection

Prepare the breadboard cables and buzzer.

Then follow the diagram pins numbers and make sure to put them in the right position.

Step 10: Snap the Head and Upload the Code

The Head have snap feature, take care of the cables and close it.

For the coding part you will need to:

1. Download & install Arduino software IDE: https://www.arduino.cc/en/Main/Software

2. Copy Oscillator libraries that is inside OTTO_smooth_criminal.zip to C:\Users\user\Documents\Arduino\libraries (or wherever your library folder is installed):

3. Connect your Otto through USB (your computer should install the drivers)

4. Finally open & upload OTTO_smooth_criminal.ino code to your Arduino Nano and Otto ready to dance!

You can always try different codes from the same Github repository to use the ultrasound to avoid obstacles or detect objects and the buzzer to make sounds. Include all main moves very easy to adjust speed, number of times and direction.`

Stay tuned for the coming Otto DIY kit and Otto PLUS version that will enhance education with more possibilities using Bluetooth, more sensors and interactions. ottodiy.com

Share photos and videos on facebook or twitter!

13 People Made This Project!

Recommendations

  • Metalworking Contest

    Metalworking Contest
  • Tiny Home Contest

    Tiny Home Contest
  • Furniture Contest 2018

    Furniture Contest 2018

93 Discussions

Hi Camilo, You have deleted LedMatrix.zip from latest Github Build but still calling it in Otto.h, which is causing 'Avoid' and other ino files to fail. Pasting lines from otto.h - https://github.com/OttoDIY/DIY/blob/master/librari...

private: LedMatrix ledmatrix; BatReader battery; Oscillator servo[4]; US us;

Could you please suggest how best to proceed. 2nd email asking for help

3 replies

Hi Suman

sorry i don't check this instructable very often since now all Otto builders are in interacting in the Facebook group, there little issues like this are answer in a matter of seconds.

That Otto.h library was undated, you can check now is fixed

See you in the Otto builder group!

https://www.facebook.com/groups/ottodiy/

Did you ever receive a response to this? I'm having the same issue :(

Hi Camilo,

I had to replace the arduino nano shield(damaged it by accident). Is there something different from the one I got in the kit from ottodiy site(eg. formatting that I am unaware of)? I have been thus unable to get the code to upload properly and unable to get otto to move. Any help would be great.

1 more answer

Hi Jung

oh that is really sad, but dont worry just get the files from ottodiy.com and you can use in any other Arduino board, next time email me i don't receive notifications from this instructable since was made with other company

HI Camilo,

I get this error while uploading few uno files -

C:\Users\user\Documents\Arduino\libraries\Otto/Otto.h:9:23: fatal error: LedMatrix.h: No such file or directory

#include <LedMatrix.h>

^

compilation terminated.

exit status 1

Error compiling for board Arduino Nano.

This report would have more information with

"Show verbose output during compilation"

option enabled in File -> Preferences.

1 reply

Hi Camilo,

After ~ 3 weeks of waiting and follow-ups, the tracking # today says that the package is untraceable ??. I had sent you email before placing order(11th Nov) and you were confident that you will ship the Otto package correctly. Since it is for my kids science project this turned out to a very bad experience.

1 reply

Hi SumanM39

For very unknown reasons the kit took longer than expected, but today 11 th Dec i see in the tracking system that Otto is in SAN JOSE CA DISTRIBUTION CENTER, apologies for this bad experience for you and specially for your kids. Hope we can fix this somehow, we learned from this experience to change the logistic path again.

Best Regards

Camilo

The hole in the foot is too big for the servo motor small screw. Is there a different foot model?

2 replies

@ekilada and @sum1234 now the latest STL use the white keys for assemble

Hi, is there an on/off switch for battery?

Hi all! we just made Otto DIY+ Instructable for more advancemakers https://www.instructables.com/id/Otto-DIY-Arduino-Bluetooth-Robot-Easy-to-3Dprint/

Arduino: 1.8.2 (Windows 10), Board: "Atmel atmega328p Xplained mini"

Sketch uses 10160 bytes (31%) of program storage space. Maximum is 32256 bytes.

Global variables use 632 bytes (30%) of dynamic memory, leaving 1416 bytes for local variables. Maximum is 2048 bytes.

An error occurred while uploading the sketch

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\Blink: C:\Users\Michael Closson\Documents\Arduino\libraries\Blink

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\HC05_BT_config: C:\Users\Michael Closson\Documents\Arduino\libraries\HC05_BT_config

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\HC06_BT_config: C:\Users\Michael Closson\Documents\Arduino\libraries\HC06_BT_config

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\libraries: C:\Users\Michael Closson\Documents\Arduino\libraries\libraries

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_avoid: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_avoid

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_DIY_all: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_DIY_all

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_smooth_criminal: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_smooth_criminal

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_todo: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_todo

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_V02_BOM_STP_STL: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_V02_BOM_STP_STL

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\Blink: C:\Users\Michael Closson\Documents\Arduino\libraries\Blink

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\HC05_BT_config: C:\Users\Michael Closson\Documents\Arduino\libraries\HC05_BT_config

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\HC06_BT_config: C:\Users\Michael Closson\Documents\Arduino\libraries\HC06_BT_config

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\libraries: C:\Users\Michael Closson\Documents\Arduino\libraries\libraries

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_avoid: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_avoid

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_DIY_all: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_DIY_all

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_smooth_criminal: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_smooth_criminal

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_todo: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_todo

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_V02_BOM_STP_STL: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_V02_BOM_STP_STL

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xe1

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xe1

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xe1

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xe1

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xe1

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xe1

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xe1

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xe1

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xe1

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xe1

Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\Blink: C:\Users\Michael Closson\Documents\Arduino\libraries\Blink

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\HC05_BT_config: C:\Users\Michael Closson\Documents\Arduino\libraries\HC05_BT_config

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\HC06_BT_config: C:\Users\Michael Closson\Documents\Arduino\libraries\HC06_BT_config

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\libraries: C:\Users\Michael Closson\Documents\Arduino\libraries\libraries

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_avoid: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_avoid

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_DIY_all: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_DIY_all

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_smooth_criminal: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_smooth_criminal

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_todo: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_todo

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_V02_BOM_STP_STL: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_V02_BOM_STP_STL

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\Blink: C:\Users\Michael Closson\Documents\Arduino\libraries\Blink

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\HC05_BT_config: C:\Users\Michael Closson\Documents\Arduino\libraries\HC05_BT_config

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\HC06_BT_config: C:\Users\Michael Closson\Documents\Arduino\libraries\HC06_BT_config

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\libraries: C:\Users\Michael Closson\Documents\Arduino\libraries\libraries

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_avoid: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_avoid

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_DIY_all: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_DIY_all

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_smooth_criminal: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_smooth_criminal

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_todo: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_todo

Invalid library found in C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_V02_BOM_STP_STL: C:\Users\Michael Closson\Documents\Arduino\libraries\OTTO_V02_BOM_STP_STL

This report would have more information with

"Show verbose output during compilation"

option enabled in File -> Preferences.

1 reply

hi cparrapa,

I just came back home with the 3D print of the Otto parts I ordered. Then I decided to check if all the parts are ok. There seems to be something wrong, as the openings (on the right and the left feet as well as on the top of both legs) to adjust the micro servo are bigger than the connector (the white plastic part of the micro servo). They are supposed to be tight, not loose, right?

Thanks in advance for the reply.

IMG_3515.JPGIMG_3516.JPGIMG_3517.JPGIMG_3518.JPGIMG_3519.JPGIMG_3520.JPGIMG_3521.JPG
2 replies

Hi This is the latest version of the feet and legs they use the white "keys" that come with servos

My son and I tried with the servo 'horns' (the one armed one). It keeps falling out of the slot in the foot/leg. I did print a foot that I scaled 95% of the latest version and that seemed to work but there wasn't any room for the servo wires to be routed as the pictures shows. Is there a trick? or do I have to keep playing with the print (maybe 97% will work?)? The pictures are using the latest version of the feet (at 100%).

20170422_200613.jpg20170422_200548.jpg