/OttoPlus

Otto Plus robot build / program work notes

Primary LanguageHTML

Otto One Robot
GMH Notes

Otto Plus builder construction, programming and expansion notes. This is not a How To guide it is a set of notes to help when this project is referenced in the future.

To view a PDF version of this document click this Link

The GitHub Repository is located at this Link

The GeekMustHave Blog Post (where all the Videos and files are available) is located at this Link

Note
When viewing this from GitHub there will be No embedded videos.
Note
When viewing this from GitHub some of the local files and videos may not be available because they are too large.
Alt Tag

1. Introduction

This is the first project for 2022. Happy New Year, hopefully, soon, we will be out of the Human Malware (Covid-19).

The how to build videos and examples were a bit difficult to understand. There didn’t appear to be any reference to the Microphone and Bluetooth modules.

A Otto repository was created to capture everything about Otto in one place. This will include PDF rendered documents, YouTube Videos and software libraries.

I need one place I can go to in order to get files and videos related to the project.

2. Construction

This is not a 2 hour build, it is more like a 3-4 day build.

The screwdriver provided with the kit is nice but you might need the following

  • A better screwdriver

  • Diagonal cutter, flush cut

  • Rotary Tool

  • Extra screws (They seem to vanish into another dimension)

  • Hot glue

  • UV Glue

  • Hobby knife

  • Hammer (Utter frustration)

Some observations on the construction

  • Test fit ALL parts like buzzer, on/off switch. There will be sanding or dremel required

  • Trim and clean up all the 3d printed parts, it will go much easier later

  • Build the bottom first, align the servos

  • Enlarge the holes for the power jack and USB jack, they do not align easily

  • Get a better screwdriver or end up with a lot of useless phillips head screw difficult to get out

  • Test fit the motor control board into the case with NO jumpers attached

  • Touch sensor needs to be installed, taped in place, before fitting motor controller board

  • Testing the alignment may cause a leg to get stuck and in turn strip the servo arms.

Some of the modifications done

  • Made the jumpers between the bottom abd top longer to make wiring simpler and more reliable

  • Glue (UV Glue for me) the jumpers to the Piezo speaker

  • Place the Bluetooth module on top of the Motor controller board

  • Glue(UV Glue saves the day) the power switch, Test it first before glueing, I destroyed the switch that came with the kit

  • Test the Motor control board with just the servos attached, do alignment, then wire the rest of the modules

The following videos from Robot Creation are very useful in the build process.

Robot Creations Part 2 of 4

The video above can be viewed offline from this Link:/videos/OttoDIY%20build%20Pt-2.mp4[Otto servo positioning]

Robot Creations Part 3 of 4

The following are segments of videos that help in some critical tasks

Board and boot loader settings
Right/Lift orientation

3. Wiring

The Otto Plus has two extra modules

  1. Bluetooth communication

  2. Microphone

One of the frustrating things was the locating the wiring diagram for these two modules.

The diagram was located in the V10 construction Guide, which is at this offline link

The actual wiring diagram is on page 18.

Alt Tag
Figure 1. Otto Plus Wiring

4. Programming

Otto can be programmed using Arduino or Blockly (GUI), started with Arduino because I’m a masochist.

Blockly is a great alternative if you are not comfortable with Arduino, just be prepared for some of the example sketches to not work properly.

Blockly sketches can be viewed and the generated Arduino C++ code can be viewed, and used directly in the Arduino IDE.

Note
Use the Blockly generated Arduino C++ code as templates to help build a powerful Arduino script

4.1. Arduino

The most current version of the Arduino IDE as of this document date is 1.8.19 and can be downloaded from this Link There is a new Version 2.o of ths Arduino IDE but at this date it is still in beta.

To download the most current version of the Arduino IDE use this web Link

In order to use Arduino to upload code to Otto the Arduino libraries need to be installed.

There is a video on How to Calibrate Otto DIY outlines the Arduino libraries process.

The How to Calibrate Otto DIY video can be viewed or downloaded from this Video Link

Calibrate Otto

Download the latest version of the Otto library from GIT at this Link

There is a local copy of the Arduino library in these notes at this Link

  1. Download the .zip Otto libraries here Download

  2. Open Arduino IDE and navigate to Sketch → Include Library → Add .ZIP Library. At the top of the drop down list, select the option to Add .ZIP Library

  3. Select the library. Navigate to the .zip file’s location, that you just downloaded and open it.

  4. In the main window you will see in the bottom back area a message that it has been installed.

  5. To verify they are properly installed, go to Sketch → Include Library menu. The library should be listed at the bottom of the drop-down menu That means is ready to use Otto example codes! They are at File → Examples → OttoDIYLib for more details or other way to install libraries visit this link

Tip
Set the device to Arduino Nano for Otto.
Tip
The Boot loader is the AtMega 328 (Old Boot loader) because the mini in Otto is a clone.

4.1.1. Determine and set Comm port

The Arduino IDE when used with the USB Port is assigned to a Comm port.

Open the Device Manager and then click on the Ports (Comm & LPT) there may be some ports already assigned to other serial devices.

Plug in Blockly to a USB port, listen for the Window beep acknowledging Blockly, and watch the Ports (Comm & LPT) for a new comm port to be assigned.

Tip

The Comm port number may change over time as the number of Serial devices are used on desktop

Alt Tag
Figure 2. Ports

4.1.2. Sample Arduino Script

There is a very small script that will cycle the Servos, this is like a confidence script that the Nano is working and the code is getting loaded.

Sample servo test
link:files/Otto_ServoTest.ino[role=include]

A offline copy of the servo test can be downloaded from this link

This test will move the servos to the Left, then to the right, then back to center.

Caution
This script could cause the legs to rotate to far to the left or right causing the servo arm to get stripped. PITA.

4.2. Servo Alignment

Alignment is Critical!!, this step can not be skipped.

The legs are aligned separately from the feet.

There are two arduino scripts to help with the alignment process,

Alignment Serial - Align the legs and feet and write the settings into Otto memory. These settings are used to set Otto to default home position when a new BLOC is started.

Alignment Walk - Test Otto walking, check Otto walks straight as possible.

Tip
Use some graph paper to help verify legs are parallel to the body.

After the alignment of the legs/Feet are complete the setting must be written into memory, so when the Otto is restarted it has the proper Home position.

4.3. Blockly

There are two BLOC example scripts to help test the assembled Otto.

These two scripts are in the Examples of Blockly

xxyyzz place image here

There are other BLOC’s to test the Piezo speaker, touch sensor and the ultrasonic sensor

The Dance BLOC is a very good script to show Otto dancing, great way to check Otto working

By combing the Dance, touch sensor and Piezo BLOCs together the BLOC below was designed.

BLOC Diagram

xxyyzz place image here

This OTTO BLOC can be downloaded from this Link

When the BLOC is converted to C++ to Otto it looks like

C++ (Ardunio) Generated from BLOC
Insert code here

5. Bluetooth

A special Arduino script is required for using the OTTO app on the cellphone.

Bluetooth Script
Insert code here

The OTTO app must be downloaded into the phone. This app has functions to do movements, play sounds, and if an LED matrix is attached show emoticons. The code examples can be used to integrate Bluetooth into new scripts.

There is an Arduino script to upload to OTTO, which will enable the Bluetooth function.

It is located in the Arduino examples under OttoDIYLib / Bluetooth / Otto_PLUS_APP_V9.ino.

There is also a Blockly BLOC for testing the bluetooth functions.

Bluetooth Setup
Dance script C++
include:files/xxyyzzdummy.txt

6. References

How to customize the physical Otto 4 easy ways to design your own robot

7. Files

Note
Not all of the file in the table below will be available from the GitHub site as there is a 50MB limit.
Table 1. Files referenced in document
Description Type Download

Calibration Video

Video MP4

Download

OTTO Arduino library

Zip

Download

OTTO BLockly program

EXE

Download

Arduino V1.0 IDE

EXE

Download

OTTO Blockly requires current Java runtime

EXE

Download

OTTO Servo test

Arduino Code

Download

3D Printing STL file for extra body for OTTO

3D STL

Download

Robot Creations Video Part 2 of 4

Video MP4

Download

Robot Creations Video Part 3 of 4

Video MP4

Download

Robot Creations Video Part 4 of 4 Best!

Video MP4

Download

8. ASC Doctor Markdown

This document was created using ASCIIDoctor Markdown. More information on ASCIIDoctor can be found at https://asciidoctor.org/

If you are interested in the ASC Doctor (ADOC) markdown behind this document, it can be downloaded at this Link

9. Document History

Table 2. Document History
Date Version Author Description

01/31/2022

V2.1e

JHRS

Updated all file references, used largefiles directory to avoid GitHub issues

01/30/2022

V2.1d

JHRS

Updates after the rework of the construction and valid testing

01/25/2022

V2.1c

JHRS

Updates after initial construction and testing

01/13/2022

V2.1b

JHRS

Initial version