Controlling a computer (internet browser) with Arduino

Hey there everyone, I am starting my second project that is going to be a speech recognition "robot". For those of you familiar with the Ironman movies, Jarvis inspired this project. Anyway, I am wondering if it is possible to write code that, based on a specific input, can access the internet, my Arduino will be plugged in via USB, and I would like to have it open my web browser, does anyone know how to go about this? I would like to do it without an ethernet shield, but maybe i'll have to. I remember specifically seeing an Instructable that had an IR and a guy programmed his Arduino to receive the input from a remote and it opened up Youtube, but sadly I cannot find that 'ible.

Something like Gobetwino would be an easy way to accomplish this, I think:

Other than that, you would have to write some software that would run on the PC and listen for the arduino to talk to it over serial.

You might let the Arduino behave like a keyboard (google +USB +HID +Arduino +Keyboard) as almost all functions can be keyboard controlled.

Gobetwino +1

Bitlash Commander could do what you want, with Bitlash on the Arduino:

Commander is a little web server app that runs on your pc and talks to Arduino over the USB serial port. You make web pages with control panels that talk to the Arduino using Bitlash to control it. There's a little graphical editor or, if you know html and javascript, it's easy to use the control library to design your own pages.

The Arduino can send update messages targetted to a specific control. You could make the control open another web page when a certain value arrives, with a little javascript.

-br

Edit: fixed image url.

Those are some great ideas, i'm pretty sure that they both are capable of doing what I am asking. After much search last night, i found http://www.instructables.com/id/Teensy-IR-PC-Remote-Keyboard-Mouse-Youtube-pla/?ALLSTEPS (the Instructable that had this feature) it was with a Teensy, but still, it's impressive.

Are these ideas posted just for internet access? or could I access programs, files, ect?

Your PC will do voice recognition far better than any Arduino. Why not just do all this directly on the PC?

I think the main reason is because I want to control outlets, lights, ect. And i'm not sure how to do that with a PC, but I do know how I would with an Arduino. I'm sure you are very right about the PC doing a better job than the Arduino, but I am using a PC program to do the speech recognition (BitVoicer) and then it returns a serial value. It is made for microcontrollers. If there is a better way of doing this i'd love to know.

If you do the voice recognition on the PC and the voice recognition software can send data over serial to Arduino then that's fine, but you still have the problem with controlling the browser. If your voice recognition software can't do that you have a problem.

The serial port can only be used by one program at a time, so if the voice recognition software is using the port GoBetwino or anythig else can't use it.

So baiscally you need ONE piece of software on the PC side that can do all the things you need that involves serial communication with Arduino.

Oh that makes sense. Well how about the mouse and keyboard libraries? Would there be any way to access a browser through them, let's say after the serial data was sent from the voice recognition software to the Arduino?

I would like to have it open my web browser

What function is the web browser to play? You probably can open your default browser just with a batch file. Copy the below, paste in notepad, and save as test.bat on your desk top. Then double click the test.bat to see if your browser opens.

start http://Golden-Triangle.com

wow, that was really easy/awesome. I'm not familiar with batch files or how to implement them into an Arduino project.

I'm not familiar with batch files or how to implement them into an Arduino project.

Because you can't. The idea is that YOU write an app on the PC that monitors the serial port, and executes various existing applications on the PC (using system() or some variation of that) to perform the tasks you want.

The "existing applications" may not be easy for system() to start, but batch files are, and generally a batch file can be developed to start any application with any arguments.

You could also, depending on the language you develop your application is, embed a browser in your app.

3tuxedo:
I think the main reason is because I want to control outlets, lights, ect. And i'm not sure how to do that with a PC, but I do know how I would with an Arduino. I'm sure you are very right about the PC doing a better job than the Arduino, but I am using a PC program to do the speech recognition (BitVoicer) and then it returns a serial value. It is made for microcontrollers. If there is a better way of doing this i'd love to know.

It seems that you're already planning to do the voice recognition on the PC, and that seems by far the most sensible option. I don't know what form of output your voice recognition software provides, but I'm sure you could find freeware to output in pretty much any way you want.

For the actions that involve interacting with hardware, it would be sensible to implement those on an Arduino and have them triggered and controlled by an application on the PC. For actions that involve interacting with things on the PC (such as opening browsers) there would be no need to involve the Arduino at all.

Basically, it seems to me that you will need an application on the PC that receives commands from your voice recognition software and either executes a command on the PC or sends a command over the Arduino's serial port to switch hardware on and off.

There is a huge variety of options for ways to implement the PC side. You could do it in Processing, or write an application in 'C', C++, C#, Java, VB or whatever other language takes your fancy. It's possible you could even find voice recognition software which includes the capability to launch local utilities and write to a serial port, in which case you may not need to write anything at all on the PC.