Asked — Edited

Looking For A Remote Microphone For Your Robot? Consider Amazon Echo (Alexa)

In searching for a noise tolerant microphone for my EZ-Robot AdventureBot I checked out the Amazon Echo product which has a great feature in its always-on array microphones. You can even place several low-cost Echo Dots ($50) around your home to enable multi room use. The problem was how to get it to talk to EZB.

The answer is, as pointed out by @Mickey666Maus in a previous post, the free web service called IFTTT (If This This Than That). IFTTT has a built-in interface (Channel) that supports Amazon Echo and includes a user defined Channel called Maker that offers a means to send http commands to devices.

  1. Add an HTTP server control and start it in ARC. In my case I used port 8010.

  2. Add port forwarding in your router to direct this port to your PC that is running ARC

  3. Create scripts in Script Manager to perform tasks; e.g. forward, stop, reverse, battery level

  4. Create Applets in IFTTT to trigger (the IF part) from Amazon Alexa Channel to invoke actions (the THEN part) in the Maker Webhooks Channel to launch the scripts in ARC.

  5. Test the applets by speaking to the Amazon Echo and watch the EZB robot respond

In practice, this gives a neat way to have a walk around remote microphone to control your EZB robot or even just perform a simple verbal battery level check.

If desired, you could even add the $30 Amazon Voice Remote for Amazon Echo and Echo Dot to have a handheld microphone

If there’s enough interest in this, I could write up a tutorial with detailed instructions


ARC Pro

Upgrade to ARC Pro

Don't limit your robot's potential – subscribe to ARC Pro and transform it into a dynamic, intelligent machine.

#1  

faengelm, Thank you for posting this. I already have echo.'s in the two rooms that operate robots, and the echos have excellent microphones that pickup commands with other room noise going on. Are you actually using this now? What are the trigger phrases, Alexa, tell maker to move robot forward? Thank You, Steve S

PRO
USA
#2  

Very interested in this.

#4  

A tutorial on this would be very appreciated, because this is kind of a tedious setup...I did it some time ago, but a reference tutorial always comes in handy when you are fiddling with port forwarding and the likes since this is always driving me nuts!

I remember that I had some issues with keeping a fixed IP adress, it's been a while since I used this setup, but I was planning to tie it back in since I wanted to integrate my Fitbit and maybe the weather channel or some other stuff... :D

#5  

It looks like there is enough interest in a tutorial, so I'll get started on that. In the meantime, here are some answers to your questions.

@Steve S Yep, its actually working now. See attached video

Please note that I changed the Amazon Echo "wake word" from "Alexa" to "Computer". You must say the word "trigger" to get the Echo to look at the IFTTT commands. Also, the Echo confirms the command by saying "sending that to IFTTT"

User-inserted image

@Mickey666Maus Thanks again for the initial tips on how to use IFTTT with EZB. One way to solve the "fixed IP" address problem is to use a free service such as DynDns.org on your router. I will include this tip in the tutorial as well as other troubleshooting info

Regards, Frank

#6  

faengelm, Glad there is enough interest. The Phrase used, was not too intrusive. Thanks for showing video. Steve S

#7  

Tutorial is published. Feel free to suggest improvements

User-inserted image

Regards, Frank

#8  

Edited: I see that you did briefly cover this. I missed it the first time through the tutorial.

Great tutorial. Note, unless you have a static IP address (rare) you will need to modify your IFTTT script every time your router reboots and possibly more often depending on your ISP.

This can be solved by using a dynamic dns service like dyndns or noip which gives you a host name, and client software that you run on your Windows pc and it updates the DNS settings when your ip address changes (support for some of these services may also be built into your router so you don't need a pc running, although of course you do to have ARC listening.)

Alan

PRO
Synthiam
#9  

Awesome first tutorial!

In the tutorial, you create scripts for movements (i.e. Forward, left, stop, etc)

That step can be skipped because the http server can execute ezscript commands directly, rather than controlCommand()

For example: forward() or stop()

#10  

Whooooooooaaaaaaaa that was fast! So good to have this setup as a tutorial, also good that it is pointed out that you should have a fixed IP...most Routers restart at least once a day! :)

Great work! :D

#11  

@DJ Thanks for the tip. That works great!

I'll update the tutorial and only use script manager for complex scripts

Frank

#13  

Nice, Love it! Thanks for sharing!

#14  

Wow! This is fantastic!. Would this work with Google Home units? Thanx:)~

#15  

@RB333 It should work on Google Home because IFTTT supports Google Assistant

User-inserted image

User-inserted image

I don't have a Google Home unit, so I can't test it

Regards, Frank

#16  

Funny, I did not really research the google assistant yet...but it seems to be interesting, it can be installed on any phone I guess...will try later! ;)

#17  

I have just updated the tutorial to show a way to use the Amazon Shopping app on an iPhone to send commands through IFTTT to the EZB.

The neat thing is that you don't need any Amazon Echo hardware to do this, but of course, its not always listening like an Amazon Echo, you must push a button in the app.

here is the video

PRO
Synthiam
#18  

Great demo! So neat to see the amazon shopping app controlling a robot. Brilliant!

#20  

When I have a little time (ha ha. Might be a few weeks, months...), I'll try with Google Assistant. I don't have a Google Home, but I have assistant on my phone and watch, and I have already tied it to IFTTT for controlling my Hue smart bulbs (Assistant has basic control built in, but I can do much more with it using the IFTTT recipes).

Alan

PRO
Canada
#21  

just received an echo dot not sure what I am doing wrong if I post in browser on phone (Outside my network) http://104.158.XXX.XXX:8010/exec?password=admin&script=forward() works fine and JD starts walking.

If I try in IFTTT nothing. Looking at controls in http server, the ifttt bot never logs in.

IFTTT has moved to webhooks now so a little different than turorial but it says sending that to ifttt when I say "Alexa Trigger Forward" and shows Applet ran and triggered in activity log in IFTTT "Ingredients TriggeredAt February 15, 2018 at 10:03PM" but it does not log in? If I stop the HTTP server I get an error so IFFFT sees http server and Firewall ports are open (TCP and UDP on port 8010)

It does not show a connection when IFTTT thinks it connected in http server so I think the instruction exec?password=admin is being parsed or modifed somehow. If I connect from phone shows admin connected but not when EZB logs in.

I am using post and leaving content type blank or using text/plain

As always any help appreciated :)

#22  

Hello Nink, I’ll try my code again and see if IFTTT now using WebHooks makes any difference

Frank

PRO
Canada
#23  

Hey thanks Frank. Appreciate that. I just noticed you built the IFTTT plugin so i will have a play with that on the weekend.

https://synthiam.com/redirect/legacy?table=plugin&id=192

#24  

Hi Nnk, Yep, the tutorial was for sending messages TO the robot and the plugin was for receiving messages FROM the robot

Regards, Frank

#25  

@Nink I just created a new project and followed the tutorial and it worked.

I can see that I need to clean up the tutorial a bit as the IFTTT screens have changed and I add to add a caution about Capitalization in the script.

Quote:

just received an echo dot not sure what I am doing wrong if I post in browser on phone (Outside my network) http://104.158.XXX.XXX:8010/exec?password=admin&script=forward() works fine and JD starts walking.

The "E" in "Exec?" must be capitialized

Thanks for testing this Frank

#26  

@Nink, I just updated the tutorial

Please let me know if you have any issues

Thanks, Frank

PRO
Canada
#27  

Thanks worked like a charm. I had to change ports as well turned out I had another web server on 8080 so I just made up port 8255.

I missed the capital E thanks for pointing that out and updating the tutorial.

PRO
Canada
#28  

Hi Frank do you know if you can pass some form of session variable to IFTTT from alexa Example Alexa Trigger move Variable So instead of having a dozen IFTTT you just have one Alexa trigger move forward Alexa trigger move backward Alexa trigger move wave

#29  

Hi Nink,

You could have IFTTT invoke an EZB script containing these actions

In some of my earlier tests I was invoking scripts in Script Manager Control but didn't include examples in the tutorial

If you run into issues with that, I can include some examples

Thanks, Frank

PRO
Canada
#30  

OK thanks Frank

I was playing with this in prep for my Roomba arriving (found a cheap used one). I figured I need a way to interact with it and sticking the Echo on the iRobot and saying Computer Trigger action seemed like a good way to do it.

#31  

Nink,

I like it.

I think I’ll try that too

What model Roomba did you get?

frank

PRO
Canada
#32  

Frank, It's a 650 (hopefully turns up soon). Will need to work on the "Computer trigger get me a beer" script and robotics.