Experiment 7: Robotics++ V3 Robot BlueToothbot

Similar documents
TA0139 USER MANUAL ARDUINO 2 WHEEL DRIVE WIRELESS BLUETOOTH ROBOT KIT

Homework 13: User Manual

Introduction What is MIT App Inventor?

Arduino 101 AN INTRODUCTION TO ARDUINO BY WOMEN IN ENGINEERING FT T I NA A ND AW E S O ME ME NTO R S

Junying Huang Fangjie Zhou. Smartphone Locker

Parts List. XBEE/Wifi Adapter board 4 standoffs ¼ inch screws Cable XBEE module or Wifi module

IME-100 ECE. Lab 5. Electrical and Computer Engineering Department Kettering University

LEGO BB-8 Release: LEGO BB-8. Learn how to automate a LEGO BB-8for motion, light, and sound using Crazy Circuits. Written By: Joshua

Arduino Smart Robot Car Kit User Guide

EEL 4924: Senior Design. 27 January Project Design Report: Voice Controlled RC Device

SafeTime ios App Wireframes Created by Zach Kuzmic 12/1/13

Lab 8. Communications between Arduino and Android via Bluetooth

Quick Guide WARNING: CHOKING HAZARD - Small parts. Not for children under 3 years old. mbot is an educational robot kit for beginners to get hands-on

Arduino Based Speech Controlled Robot for Human Interactions

DIY Remote Control Robot Kit (Support Android) SKU:COMB0004

Parts List. XBEE/Wifi Adapter board 4 standoffs ¼ inch screws Cable XBEE module or Wifi module

Physics 120/220. Microcontrollers Extras. Prof. Anyes Taffard

User Guide v1.0. v1.0 Oct 1, This guide is only available in English Ce manuel est seulement disponible en Anglais

Autonomous, Surveillance Fire Extinguisher Robotic Vehicle with Obstacle Detection and Bypass using Arduino Microcontroller

AndyMark Arduino Tutorial

EEL 5666C FALL Robot Name: DogBot. Author: Valerie Serluco. Date: December 08, Instructor(s): Dr. Arroyo. Dr. Schwartz. TA(s): Andrew Gray

EXPERIMENT 7 Please visit to learn all features of arduino before you start the experiments

This is the Arduino Uno: This is the Arduino motor shield: Digital pins (0-13) Ground Rail

TA0297 WEMOS D1 R2 WIFI ARDUINO DEVELOPMENT BOARD ESP8266

THE COMPLETE ALL IN ONE ROBOT 360 NANO BOT

Virgin Media Boosters. Installation guide

HUB-ee BMD-S Arduino Proto Shield V1.0

Bitty Rover. Recommended Age: 12 and up Difficulty Level: 3/5 (Soldering Required, programming, connecting wires, small parts choking hazard)

Model: K0073. Smart Robot Car Kit Quick Start Guide

Final Report. Autonomous Robot: Chopper John Michael Mariano December 9, 2014

SPIRIT. Phase 5 Analog Board Computer and Electronics Engineering

1. Introduction Packing list Parts Introduction Uno R3 Board for Arduino Specifications... 6

Robotics Adventure Book Scouter manual STEM 1

OBSTACLE AVOIDANCE ROBOT

GROUP 23 Military Surveillance Robotic Vehicle. Ryan Hromada - EE John Baumgartner - EE Austin King - CpE Kevin Plaza - CpE

BILLING AND CONTROLLING OF INDIVIDUAL LOADS OF A COMPOSITE SYSTEM USING SIMPLE ANDROID APPLICATION

Do not place or mount Ocli 1 in an area where it will be exposed to water. Ocli 1 is designed for indoor use.

User Manual. Helios PTT for Android


Version B Wi-Fi IP CAMERA

EEL 5666C - Intelligent Machine Design Lab Final report

Verizon Wireless Change Number Of Rings Before Voic Picks Up

Mopar Part # The best price I found was at for $216 and free shipping.

International Journal Of Advanced Research In Engineering Technology & Sciences

EBOT SOCCER MANUAL GUIDE

Arduino Smart Bluetooth Robot Car Kit User Guide

Discover Robotics & Programming CURRICULUM SAMPLE

Autonomous Programming FTC Challenge Workshops VCU School of Engineering September 24, 2016 Presented by: Team 8297 Geared UP!

Android Spybot. ECE Capstone Project

Installing the Bear Altimeter Console Android application.

The Bluetooth Controlled Relay Board & Speech Recognition Sets

ACKNOWLEDGEMENT. Sagar Agrawal Parikshit jha Apar Sinha Gaurav Chauhan

TalkToMe: Your first App Inventor app

Rotary Encoder Basics

PiKoder/SSC RX. User s Guide. Version 1.0b dated 11/01/16. Gregor Schlechtriem

RedBoard Hookup Guide

BLUETOOTH. AMPRO 2000 / OPTIMA 7 Using Bluetooth with the MRU4u app

m-block By Wilmer Arellano

Robot Eyes. DAY 3 Let's Make a Robot

How Do I Manually Lock My Iphone 4s A Hotspot Verizon

Floor Cleaning Robot (Autonomus/Manual)

ROBOTLINKING THE POWER SUPPLY LEARNING KIT TUTORIAL

Arduino Programming and Interfacing

Agreement. Objectives. General Guidelines for Labs. Reading Assignment

How-To #3: Make and Use a Motor Controller Shield

7 Android Cabbie s Mate - Trouble shooting and Previously Asked Questions

Mi Home Security Camera Connection Guide. (ios)

mbot v1.1 - Blue (Bluetooth Version)

Wireless Motor Driver Shield Hookup Guide

Let Your Free Google Voice Telephone Number Manage Your Voic and Screen Out Spammers

1 Introduction. 2 Protocol Structure. 1.1 Overview. 2.1 Data Bundles. 2.2 Networking. 2.3 Required Fields and Length. 2.

m-block By Wilmer Arellano

IoE Workshop. Marc Khayat, CCIE #41288, Leonard Janer Technical Managers. June 16

USER MANUAL ARDUINO I/O EXPANSION SHIELD

Multimodal Interfaces. Remotroid

EV3 Programming Workshop for FLL Coaches

Programming with the NXT using the touch and ultrasonic sensors. To be used with the activity of the How do Human Sensors Work?

Programming Techniques Workshop for Mindstorms EV3. Opening doors to the worlds of science and technology for Oregon s youth

SSP ROBOT DESIGN A. DEAN 11/29/05 LAB: ROBOT OBJECTS IN LEJOS

Blackfin Online Learning & Development

Building an Arduino-powered underwater ROV

Experimental Procedure

4056 Coin Vending Controller

AlphaBot2 robot building kit for Arduino

Key Features: Be notified of incoming calls, texts, , calendar and social media events with vibration and LED light

ROBOBUILDER CO., LTD.

Robotics Study Material School Level 1 Semester 2

Monitor your home remotely using the Arduino

App Inventor + IoT: Basic Bluetooth Connection Setup

Setting up a new ipad

INTERMEDIATE PROGRAMMING LESSON

TalkToMe: A beginner App Inventor app

Building a Simple Workflow Application for the Sybase Unwired Server [Part 3]

AWS DeepRacer Getting Started Guide

Polygons and Angles: Student Guide

Arduinodroid Controlled Car

Lecture 7. Processing Development Environment (or PDE)

IME-100 ECE. Lab 3. Electrical and Computer Engineering Department Kettering University. G. Tewolde, IME100-ECE,

Arduino Robotic Car. The result is a low cost and effective project for the Union Pacific Railroad grant.

Guide to creating a PowerPoint presentation with audio (Mac) and uploading to Moodle

Transcription:

Experiment 7: Robotics++ V3 Robot BlueToothbot 1

Two different ways to control your robot via Bluetooth 1. Android phone wire your robot, download apps from the Google Play Store or install an APK (app file) manually into your phone by downloading it and installing or create your own APK using the MIT application builder and Arduino code that receives serial commands from these apps to make your robot do things. 2. Computer using a Bluetooth capable PC create an application using the Processing language and Arduino code to control your robot remotely. You can create buttons on the screen to make motors move or read sensors and turn lights or sound. Important: before downloading the Arduino code to the robot you must unplug the plus or positive cable of the Bluetooth module otherwise you may not be able to upload the code. 2

Parts: (2) continuous rotation servos Let s make sure our robot is wired correctly Servo motors wires connect directly on the sensor shield. Notice which one goes into pin 11 and pin 10. Sumo ramp is not necessary 3

Installing the Sonar Sensor We are going to use the sonar sensor in this experiment to allow the robot to roam about on its own when not being controlled remotely VCC =V, GND=G, TRIG=S(pin 6) and ECHO=S(pin12) 4

Installing the Bluetooth Module HC-5 or HC-06 Note: Pairing Password: 1234 5

Sample 1: PopPet After wiring your robot you just need to do these two steps. Step 1: Install the free app on your Android based device https://play.google.com/store/apps/details?id=com.cevinius.popp et&hl=en This app is completely free for you to download and use. It contains no ads or in-app purchases. The app lets you: - Drive PopPet around using direction buttons - Drive PopPet around using an analog stick - Give PopPet voice commands (you can say go forward, go backwards, what time is it and others) - Have PopPet drive around autonomously using your sonar sensor and explore Step 2: You need to download the modified Arduino code for the V3 robot from http://www.roboticscity.com/ under Experiment 7 Note: before uploading this code to the robot you must disconnect the positive (+) connection to the Bluetooth module otherwise you will get an upload error. Once it uploads you can connect it. 6

Sample 1: PopPet sample app screenshots Once the robot components are connected, the App downloaded on your Android device and Arduino code uploaded to the robot make sure you pair up your robot to your phone. Select the Bluetooth settings in your phone, turn on the V3 robot and scan fro BT devices from your phone. You will see the HC-06 show up and pair it. It may ask you for other prompts. you can open the PopPet App and click on Select Device and pick the HC-06 device then click CONNECT. You can start navigating with the arrow, but you may need to modify the Arduino code to make this work exact. Instead click on NEXT to use the Analog pad to control the robot. See next page. 7

Sample 1: PopPet sample app screenshots The Analog Drive gives you a better feel to control the robot. You can Turn Sensor On and get distance readings from the sonar sensor. Try the NEXT screen for voice control. I am working on figuring out values that work better with the servos used in the V3 kit. The values this Arduino code provides are meant to be used with different motor controllers not the servos motor controllers. 8

Sample 1: PopPet sample app screenshots Click LISTEN and say move forward or move backwards or stop or what time is it and it will respond and answer. Your phone must be connected to the Internet via cell or WiFi because the voice control actually goes out to a Google server, processes your commands and brings it back to the phone that then sends it to the Bluetooth module in your robot. For this reason there are times you will see a delay to reponses. The app code is built upon the work by Jaidyn Edwards for his MobBob and Sphero Companion apps.original Arduino code can downloaded from https://github.com/cevinius/poppet/ PopPet is a robot kit developed by Jaidyn Edwards. http://www.poppettherobot.com/) This app was designed for use with PopPet 2.0, a Kickstarter robot, but it can be adapted to the Robotics++ V3 robot. Explore mode uses the sonar sensor and can speak while exploring 9

A few notes about the Arduino code from : http://www.cevinius.com/2015/10/30/app-powered-poppet/ <DW,#,#> Drive Wheels where the parameters are motor speeds for each wheel <LW,#> Set the speed of the left wheel only <RW,#> Set the speed of the right wheel only Added commands for some of PopPet s Ultrasonic Sensor: <UA,#> Turns the Ultrasonic Sensor on/off <US> Requests an ultrasonic sensor reading. Added a command for the explore mode. <XA,#> Turns explore mode on/off While explore mode is activated, PopPet will send the following response codes to let the app know what s going on: <XO> Encountered an obstacle <XC> Changing direction just for fun (got bored going straight) Initially, I didn t put the explore mode in the Arduino code. I first tried to do it all on the app. The app would receive regular sensor readings, and then adjust PopPet s course. After some testing, I found that doing it that way had too much lag Sometimes PopPet would hit the wall before he received the commands to back up and turn. I m pretty confident the lag can be reduced by tweaking some of my delays between sending/receiving commands. (I m probably overly paranoid about not spamming the serial port with commands I think it can handle much more than what I m throwing at it.) If I play with these settings, an app-side explore mode should work fine. However, I decided to change tactics and put the explore mode into the Arduino-side code. This has a few advantages: PopPet can continue to explore even if you turn off your phone (after you ve started the explore mode) The app is freed from driving and can do other stuff! While in Explore Mode, PopPet sends status codes <XO> and <XC> to the app to let it know what s going on. Since the app isn t busy driving PopPet, it has time to handle these status codes and react. In the current version, I have PopPet occasionally saying something (E.g. Something s in my way, etc) in response to these codes. I found this can be a bit annoying, so I also added an option to turn off the explore mode narration! 10

Sample 2: RC Car This next sample uses an App created in Eclipse with the Android Development Kit. The source code is available on the http://www.roboticscity.com/ under Experiment 7 Sample 2 Instructions for installing the Eclipse environment only if you wish to modify the source code for the app can be found here http://theopentutorials.com/tutorials/android/installing-android-sdk-and-eclipse-adt-plugin/, but I do not recommended unless you are an advanced programmer. In later examples I am going to show you how to make your own App very simply by using the MIT App Inventor and is very easy. Easier than Eclipse. What I like about this example is the simplicity of the App and Arduino source code. The commands that are sent are in the form of ASCII. The arduino on the robot then checks the command received with it s previously defined commands and controls the servo motors depending on the command received to cause it to move forward, backward, left, right or to stop. Thus allowing us to create an android controlled robot. 11

Sample 2: RC Car The commands that are sent are in the form of ASCII. The arduino on the robot then checks the command received with it s previously defined commands and controls the servo motors depending on the command received to cause it to move forward, backward, left, right or to stop. Thus allowing us to create an android controlled robot. Download app from DIYhacking.com and use modified Arduino code on the next slides. 12

#include <Servo.h> Servo left;//define left servo Servo right;//define right servo byte val; void setup() Serial.begin(115200); // comm speed to BT module left.attach(9, 800, 2200); //left servo on digital pin 9 of arduino right.attach(10, 800, 2200); //right servo on digital pin 10 of arduino } void loop() int a=0; if(serial.available()) val=serial.read(); Serial.println(int(val)); if(int(val)==49) //Move front right.write(180); //Rotates servo clockwise left.write(0); //Rotates servo anticlockwise } if(int(val)==50) //Move back right.write(0); left.write(180); } 13

if(int(val)==53) //Stop right.write(90);//stops the servos left.write(90);//stops the servos } //or you can do it this way //if(int(val)==53) //Stop // // left.writemicroseconds(1500); // right.writemicroseconds(1500); // } if(int(val)==51) //left right.write(180); left.write(90); } if(int(val)==52) //right right.write(90); left.write(0); } if(int(val)==55) //Extra button //Enter your code for any extra commands } } } 14