Project tutorial
Voice-Controlled Robot

Voice-Controlled Robot © Apache-2.0

Build a voice-controlled robot! You will use Amazon Echo, Alexa, Heroku, Google Firebase, Android, and of course Arduino. Lots of fun!

  • 15,393 views
  • 2 comments
  • 40 respects

Components and supplies

Apps and online services

About this project

Voice-controlled Robot

Voice-controlled robot is both hardware and cloud solution in one piece. The main components are:

1. Alexa Skill - to interpret voice commands and translate them to Google Cloud Messaging messages - deployed to Heroku cloud

2. Android application - to receive messages from Google Cloud Messaging and send them over Bluetooth to Arduino - deployed to your Android phone

3. Arduino - to read messages over Bluetooth and control the robot

4. The robot kit and robot circuit - any robot kit will do, you need HC-06 or HC-05 for serial Bluetooth communication and 2xDC motors attached to L293D to move it

It's not an entry-level tutorial, but... everything is ready. All key components are open-sourced. It's just a matter of assembling & integrating it all together. So let's start.

The Control Flow

Here is how all the pieces are working together:

1. You speak to Echo device

2. Echo connects to Alexa Service

3. Alexa Service opens Alexa Skill called Robot

4. Robot skill interprets voice commands and translates them to proper digital messages. Messages are sent to Google Cloud Messaging service

5. Android application is setup to listen for messages from Google Cloud Service

6. Android application receives an incoming remote message and relays it over Bluetooth to Arduino

7. Arduino using HC-06 Bluetooth serial module is reading the messages and moving the robot accordingly

Simple.

Google Cloud Services & Running Android Application

This is a first step of my tutorial. We will setup services which are prerequisites for the rest of the solution.

In this step you will learn how to setup & generate the following:

  • Google Cloud Messaging server key - secret key used by Robot skill to authenticate itself.
  • Google Firebase registration token - phone-specific token which Robot skill uses to send remote messages to a phone.

You will need Google account. If you don't have one already, create it. Google Firebase and Google Cloud Messaging are free to start.

Checkout code section of this tutorial and fetch a copy of my BluetoothRobotControl project. Then watch the first part of my tutorial.

Deploying Alexa Skill to Heroku

Now that we have Google Cloud Messaging server key and phone's registration token we can deploy the Robot skill application.

In this step you will learn how to:

  • Create Heroku application
  • Setup Robot skill
  • Deploy it to Heroku

You need a Heroku account. If you don't have it already create one at: https://heroku.com. It's for free. You can run simple apps on Heroku for free. Also, majority of add-ons provides free plans. I love it.

Navigate to code section of this tutorial and fetch a copy of my alexa-robot-control project. Then watch the second part of my tutorial.

Registering Alexa Skill in Alexa Developer Portal

We have everything we need from the cloud part of the solution. It's time to register Robot skill in Alexa and test it.

In this step you will learn how to:

  • Register & setup Alexa Skill
  • Test it using Service Simulator
  • Verify that Google Cloud Messaging messages are coming through to Android application

You need an Alexa Developer account. Just like Google Firebase & Heroku it's for free. Go ahead and create one now if you don't have it already: https://developer.amazon.com/alexa and watch the third part of my tutorial.

Arduino & Robot circuits

So the cloud part is working. Now the hardware. In the last part of my tutorial you will learn how to:

  • Use my project and my libraries
  • Build the circuits

Navigate to code section of this tutorial and fetch a copy of my arduino project. Watch the video explaining the code structure and the circuits.

Show time and summary

By now you should have your own voice-controlled Robot! Congratulations! Here is my robot in action.

I hope you enjoyed it as much as I did.

All my projects are open-sourced. If you would like to contribute to them you are most welcomed to do so. If you want to contribute back by opening a Github pull request that's even better.

Credits

The inspiration for this project came from my sons Tymoteusz & Szymon. They simply asked me to extend their manually operated robot (Christmas present). The first version was IR-controlled robot, second was a Bluetooth-controlled robot and finally the third generation was this voice-controlled robot.

Thanks boys :)

Code

Alexa Skill to control the robot
Alexa Skill to control the robot. Code written in node.js, deployed to Heroku. Uses Google Firebase & Google Cloud Messaging to send messages to Android phone.
Arduino code to move the robot
My Arduino library. It contains the main ino files together with a set of very useful libraries which I used in my project.
Android Bluetooth application to send remote messages to Arduino
Bridge between Alexa Skill and Arduino. Alexa Skill is using Google Cloud Messaging to publish messages, Android phone receives and relays them to Arduino. Communication between Android and Arduino is done over bluetooth.

Schematics

Arduino & Robot circuits
Arduino and Robot wiring. The schematics does not show HC-06 device. For a better schematics please see a twin project which is using IR controls available at circuits.io: https://circuits.io/circuits/3591193-ir-robot-control. Please also watch the video which describes the robot design in a little bit more detail.
Arduino circuit kkiip7eumr

Comments

Similar projects you might like

Voice-Controlled Robot - Google Cloud Services

Project tutorial by Łukasz Budnik

  • 9,952 views
  • 4 comments
  • 29 respects

Voice-Controlled Pick-and-Place Robot

by Sagar pawar

  • 2,126 views
  • 0 comments
  • 8 respects

Autonomous Home Assistant Robot

Project tutorial by Juan Miguel Jimeno

  • 7,943 views
  • 6 comments
  • 67 respects

MeArm Robot Arm - Your Robot - V1.0

Project tutorial by Benjamin Gray

  • 19,302 views
  • 3 comments
  • 34 respects

Line Follower Robot - PID Control - Android Setup

Project tutorial by MJRoBot

  • 28,042 views
  • 7 comments
  • 33 respects

2WD Voice Controlled Robot with Arduino and BitVoicer Server

Project tutorial by Marcio Tamagushi

  • 10,204 views
  • 11 comments
  • 32 respects
Add projectSign up / Login