Project tutorial

Otto DIY+ Arduino Bluetooth Robot Easy to 3D Print © CC BY-SA

"Otto DIY with steroids" + Bluetooth + APP + switch + touch sensors + strength + sound detection...

  • 38,845 views
  • 111 comments
  • 123 respects

Components and supplies

Ard nano
Arduino Nano R3
×1
Gus 1719
C.H.I.P. Approved 3.7 V LiPo Battery
500 mAh battery (optional)
×1
HC-05 Bluetooth module
×1
HC-06 Bluetooth module
×1
HC-SR04 Ultrasonic module
Buy one that also works on 3.3V if you plan to use Lipo battery without step up converter.
×1
RGB Led
This is optional, if you want nose that changes colour.
×1
Touch sensor
×1
Arduino NANO Shield I/O
×1
Adafruit industries ada260 image 90px
USB-A to Mini-USB Cable
×1
Micro servo MG90
×4
Adafruit industries ada1536 image
Buzzer
×1
266 04
Female/Female Jumper Wires
×10
8x8mm Micro Switch Self lock On/Off
×1
 dsc1102 900x600
DFRobot Romeo BLE - Arduino Robot Control Board with Bluetooth 4.0
as an option to replace the arduino and the shield
×1
Otto DIY Otto maker kit
as an alternative kit
×1
12758 02
SparkFun Electret Microphone Breakout
×1

Necessary tools and machines

3drag
3D Printer (generic)
09507 01
Soldering iron (generic)
if you buy from ottodiy.com NO need
Phillips Cross screwdriver
Hy gluegun
Hot glue gun (generic)

Apps and online services

About this project

If you don't have or is difficult to get the part you can just buy our full kits!

Visit www.ottodiy.com

Otto DIY + would be 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 + optional rechargeable + changing modes by touch sensors + sound sensor + RGB light + other outputs +...?

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.

some main moves

Is important to read and do first the Otto DIY previous tutorial

https://www.hackster.io/18673/otto-build-your-own-robot-in-two-hours-5f2a1c

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:

Possibilities:

  • Infrared control
  • raspberry PI
  • customizable face and parts
  • paper craft and accessories

and the list continue...

ready to start to configure the Bluetooth!

Bluetooth (BT) setup:

Baud-rate for programming module is 9600 or 19200 or 38400, depends on a module.

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

For HC-05: (38400?) 115200

Here you can find sketch and wiring diagram for programming your BT module with Arduino Nano:

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.

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

For HC-06: (9600?) 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 instructables:

http://www.martyncurrey.com/arduino-and-hc-06-zs-040/

http://www.martyncurrey.com/bluetooth-modules/

Main Code:

After setup the bluetooth, disconnect again the module and upload this code:

OTTO_BT.ino

After successful upload connect the module again and will be ready for pairing

Android APP:

You can make your own APP!

download the latest .APK here

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

Otto DIY using Juan Felix Mateos APP

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.

Otto controlled by Zowi APP

Programming

The easiest to code your own Otto is by using MBlock 3 software; graphical programming interface in Arduino mode.

watch these simple tutorial to learn how to install the Otto extension blocks

programming Otto with scratch language

So to this point you should have an Otto 3d printed and completely assembled

Now some basic programming with Arduino:

Post your remix and modifications in the community or Thingiverse

Code

Function that reads voltage of batteryArduino
//Function that reads voltage of battery

#define BAT_MAX  600 //max battery voltage in mV/10
#define BAT_MIN 400 // min battery voltage in mV/10
#define SLOPE 100/(BAT_MAX - BAT_MIN)
#define OFFSET  (100*BAT_MIN)/(BAT_MAX - BAT_MIN)

this you add in shetch where zowi reads batt voltage:

    batt = ((readVcc() / 10) * SLOPE) - OFFSET;
    if(batt>100){batt = 100;}
    
long readVcc() {
  // Read 1.1V reference against AVcc
  // set the reference to Vcc and the measurement to the internal 1.1V reference
  ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  delay(2); // Wait for Vref to settle
  ADCSRA |= _BV(ADSC); // Start conversion
  while (bit_is_set(ADCSRA, ADSC)); // measuring

  uint8_t low  = ADCL; // must read ADCL first - it then locks ADCH
  uint8_t high = ADCH; // unlocks both

  long result = (high << 8) | low;

  result = 1125300L / result; // Calculate Vcc (in mV); 1125300 = 1.1*1023*1000
  return result; // Vcc in millivolts
}
Avoid obstacles
Basic code to avoid obstacles, also include all libraries and is easy to modify for custom moves

Custom parts and enclosures

Thingiverse files
Now we have space for switch and buzzer, new legs https://www.thingiverse.com/thing:2398231

Schematics

Basic parts shematic
Please note that was made in Autodesk Circuit the ultrasound lack of one cable, https://circuits.io/circuits/1749080-otto-circuit/
Wt6iqi53jxztnybmnx4b

Comments

Similar projects you might like

High Precision Scale with Arduino

Project showcase by mPelectronic

  • 3,847 views
  • 11 comments
  • 20 respects

WIZnet S2E Deadbolts

Project tutorial by S2E Lock

  • 1,231 views
  • 2 comments
  • 8 respects

Super-Go: An Industrial IoT bot

Project tutorial by KS

  • 702 views
  • 2 comments
  • 5 respects

Kravox! Wireless, Motion and Touch-Sensing Instrument

Project tutorial by Tim Krahmer

  • 109 views
  • 0 comments
  • 4 respects

GPS Tracking System for Vehicles

Project showcase by Sustainable Living Lab

  • 4,313 views
  • 1 comment
  • 22 respects

Automatic Watering System

Project tutorial by Manson Hau

  • 5,755 views
  • 11 comments
  • 29 respects
Add projectSign up / Login