Otto DIY+ Arduino Bluetooth Robot Easy to 3Dprint

17,243

56

24

Introduction: Otto DIY+ Arduino Bluetooth Robot Easy to 3Dprint

About: Toy Maker & Industrial designer working and living in China, in my daily work design inflatables and pool accessories, in my spare time make toys, robots, ride bicycle, :p and travel.

Truly open source nature of Otto allows open STEAM education, we collect feedback from different workshops and schools around the world that are already using Otto DIY in their classroom and depending of the openness of this educational places we organize the lesson material and share as well, some people are teaching electronics explaining the connections with fritzing and the physics behind, other code with Arduino then github, other to create open source APPs in app inventor, others how to customize with arts &crafts, other how to design 3d models with accessories for Otto with tinkerCAD or Fusion 360.

CC-BY-SA

Otto DIY + is the improved and advanced version of original #OttoDIY, the idea is to have the same base features DIY robot + Bluetooth control and programming + metal gear servo motors + rechargeable + changing modes by touch sensor + sound sensor + light moves + other outputs +...?

Otto DIY+ is a forever BETA!, develop by a broad community of Otto builders, recommend to first check all documentation for Otto DIY and then you can try to play with more advanced features with Otto DIY+

The exciting part is that we are doing open development with makers and hackers around the world so we are open to ideas, not only from expert,s you can join us with , feedback, social share, testing or any other contribution that you might think of.

Step 1: Electronic Parts and Tools

Is important to read first Otto DIY previous instructable

Get all 3D print STL parts, codes and libraries for Bluetooth by quickly signing up here

1 × Arduino Nano
1 × HC-06 or HC-05 Bluetooth module

1 × Arduino Nano Shield I/O; you could use a mini breadboard but much more cable work

1 × USB-A to Mini-USB Cable

4 × Micro servo MG90s(metal)

1 × Buzzer 10 × Female/Female Jumper Wires

1 × 3.7 V LiPo Battery

3 × Touch sensor

1 × sound sensor

1 × 8x8mm Micro Switch Self lock On/Off

1 × Dot matrix display MAX7219 (optional for the LED mouth)

1 × Phillips Screwdriver

1 x 3d printer (or use 3dhubs)

Step 2: ​3D Print Settings

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

Need to adjust size some changes use the source file made in http://bit.ly/2oNcoUlAutodesk Fusion 360

or use this customizer https://www.thingiverse.com/thing:2457865

Step 3: Build Your Own Otto

in the following pictures you can have a reference of how to build Otto DIY+, due some new versions drawings are not exactly the same for the most updated instruction manual here

Step 4: ​main Code for Bluetooth

Otto needs to be ready to receive command through Bluetooth and for that with need to put the main code inside his brain (VERY IMPORTANT: for programming rduino nano the Bluetooth module must be disconnected otherwise Arduino IDE wont be able to upload de code because the communication ports are busy)

  1. Copy Otto libraries into the Arduino IDE folder
  2. Upload OttoDIYAPP_122.ino sketch to Otto
  3. Install the APP .apk in your android phone
  4. Enable Bluetooth
  5. Touch on find Otto and pair the Bluetooth address /name
  6. You should be able now to use the APP to control Otto
  7. You can also change the mode with the app at any time and play with the new features and if doesn't you might need to reconfigure your BT but do not worry is also easy ;)

Step 5: APP

The APP is still under BETA too but is functional. So for any issue or question please join this group

You can make your own APP! download the latest .APK here

https://github.com/OttoDIY/PLUS/tree/master/APP

using app inventor by MIT use our template to modify and create your own mobile application

Or because Otto is also compatible with Zowi you can use BQ APP

Download the official "Zowi App" from bq

Install and open Zowi app for android, pair the device and ignore the warning message that says the code is modified or something.

Step 6: Code Your Own Otto

So to this point you should have an Otto 3D printed, assembled, now some programming to have libraries and Arduino installed in your PC.

The easiest to code your own Otto is by using MBlock 3 software; graphical programming with scratch language interface in Arduino mode. watch these simple tutorial to learn how to install the Otto extension blocks and follow this easy and simple instruction of how to install and setup for your computer

Step 7: Copy, Expand, Customize,modify, Remix and Share!

Use #OttoDIY #Ottobuilder #OttoDIYPLUS for social media

Possibilities:

  • 3d print accessories
  • Custom labels
  • Noise detector
  • LED nose
  • LED matrix mouth
  • Arms
  • wheels
  • change rduino for ESP 8266
  • change arduino for raspberry PI
  • Voice controlled
  • Laser cut version
  • and the list will continue...

Check this blog post to find ideas of how to customize your own robot

Step 8: ​Adding the Matrix (optional)

Many #ottobuilders like to imitate Zowi as much as possible so Jason Snow, modified the libraries and added new codes to make this possible using a MAX 7219 LED MATRIX and represent emotions and gestures Matrix codes in Github https://github.com/OttoDIY/Matrix_hands

copy all the files in the Library folder to the Arduino IDE Library folder

The code is based on the Zowi code, modified for Otto DIY PLUS

  • you need pull-down resistors on the button pins............10K ohm
  • you will need a link between A7 and +5 volt to fool low battery warnings The modified OTTO main program is inside the OTTO_LEDMATRIX folder, ensure you are using the latest version of the Arduino IDE. The modified ZOWI main program is inside the ZOWI_BASE_v2_MATRIX folder, Also ensure you use all the modified libraries in the ZOWI folder here.

Step 9: Bluetooth (BT) Setup (only If Pairing Not Successful):

This setup is ONLY needed for modules that don't come with the standard baud rate of 9600, how to know? just try first the code and the APP here https://github.com/OttoDIY/PLUS/tree/master/APP if the phone doesn't pair with Otto or respond to commands, then probably means your module is in a different baud rate so need to be configured

The BT code(OTTO_BT_easy.ino and OTTO_BT.ino) has 115200 baud-rate so BTmodule must match that speed to be able to communicate with Arduino Nano via serial interface(UART) .

For HC-05: 38400 or 115200

1. Upload the sketch HC05_BT_config.ino to your Nano first, then disconnect Nano from USB.

2. Now connect BT to Nano as shown in diagram but do not connect VCC.

TX - RX

RX - TX

VCC - 5V

GND - GND

3. Plug in the USB to Nano and then connect VCC so BT enters AT mode. LED on BT should start to blink slower, about once every 2 seconds. (If this doesn't work, try holding the button on BT module while connecting VCC).

Open serial monitor in IDE, set baud-rate to 9600 and line ending to Both NL & CR.

Type AT then press enter; (if everything is right, BT should respond with OK and then enter following commands:

AT+NAME=Zowi "setting the name"

AT+PSWD=1234 "pairing password"

AT+UART=115200,1,0 "baud rate"

AT+POLAR=1,0 "enabling STATE pin to be used as reset for programming arduino over BT"

Now go to the APP step

If any problem check this instructable of how to Modify the HC-05 Bluetooth Module Defaults Using AT Commands

https://www.instructables.com/id/Modify-The-HC-05-...

For HC-06: 9600 or 115200

For HC-06 BT module things are a little simpler because module is always in AT command mode when not connected to anything. But the downside is that HC-06 module cannot be used to upload sketches to Arduino because it doesn't have reset. For configuring the module

1. upload this sketch HC06_BT_config.ino to your Nano

1. disconnect USB

2. connect BT module to Nano like this:

TX - RX

RX - TX

VCC - 5V

GND - GND

3. Power on your Nano and after about 10-15 seconds everything should be finished and your BT should be configured (LED13 should start blinking).

If any problem check this instructable https://www.instructables.com/id/Tutorial-Using-HC...

Share

    Recommendations

    • Fix It! Contest

      Fix It! Contest
    • Water Contest

      Water Contest
    • Tiny Home Contest

      Tiny Home Contest

    24 Discussions

    When compiling a sketch, the following error occurs:

    'There is not enough available memory and reliability may be an issue.'

    What should I do?

    0
    None
    GrimorJ

    Question 4 weeks ago

    Intento flashear mi arduino nano con la version v3 para sensor touch y ledmatrix y me da el error " 'ledR' was not declared in this scope"

    Algun consejo?

    Muy buenas.primero felicitarte por todo lo que le dedicas al proyecto.mi problema es que la mayoria deskech que le cargo no me funcionan,el del apk tambien;me sale un aviso de memoria casi llena en el IDE.como puedo arreglarlo?Otto o no se mueve o lo hace a lo loco pero muy poco.a nadie le pasado esto si estoy usanso todo como en el tutorial.
    Muchas gracias

    0
    None
    indigo51

    Question 5 months ago

    When I try to use Block with the OttoDIY extension, code works fine but there is a continuous 'screech' sound all the time from the buzzer. I noticed that this:
    Vbot.sing(S_connection);
    is in the Arduino code shown in MBLock Arduino mode.

    What is causing this horrible sound?

    How do I remove it?

    2 more answers

    mmm not sure i just have gentle beeps to inform that actually Otto is being programmed and then to know that has been successful upload he will make connection sounds you can just disconnect the buzzer while programming if is annoying for you

    Answering my own query: I had buzzer leads on wrong pins. ;-)

    OTTO_BT.ino doesn't seem to exist on the Github repository anymore. What is the correct sketch to install now?

    1 more answer

    i just updated the instructable just created a new sketh much easier for APP control and even programming

    Need 2 of them in series to have 7.4V or use a step up circuit


    When I connect Otto to the PC, the code works fine. But from the battery, 9 volts squeak and twitch.What do you think is the problem?

    1 reply

    make sure is fully charged or new batteries, 9V are not very efficient the optimal is to reach 6V

    Hi Mauricio

    just connect into the same place the normal AA battery goes

    hello. Thanks for your great project. I am trying to follow your steps. I printed the body (I have your same 3d printer , same green colour) but the holes which house the tow motors are a bit smaller. Before re-printing (it took almost 8hours) I will try to enlarge holes and use some post-processing. But in case I would like to know what settings you use on M3D. Thanks!

    1 reply

    Hi you can use intermediate setting that should be fine!

    You are welcome glad you enjoyed

    Hello! Great project, but I have troubles with printing correct parts. I'm re-designing all parts because using my M3D printer I cannot match parts each other and fit components inside parts because of shrinkage and different final 3D printed parts' dimensions. I mean starting from original STL files.

    One question: how should I fix the self-lock button and buzzer in their space? Should I use glue or something else? Thanks

    1 reply

    weird i use middle quality settings and the motor just fit right, if some are to tight is fine because this is a 3d design for ALL printers in the world so some tolerances differ but can be adjusted by post processing.

    Better to glue the switch yes

    here the button

    20171104_141640.jpg

    Building one with my kids, I have lots of hobby 2 and 3 cell lipo's around, can I power the system with one of these? I dont know how tolerant the power supply on the shield can be..... 7.4v on the Vin pins possible? 12.6v on the barrel connector?