Hi complete noob here looking information.

Hi there and before I start I'm sorry if this is posted in the wrong section but I've had a browse through the forum and didn't find anywhere that it may be suited bar here. I'm completely clueless about building robots etc lol but I have an idea. Basically I want to build a platform that will be controlled by wifi from anywhere in the world via the net. I'd like it to be controlled by software rather than a website and I'd like it to be controlled by an Xbox 360 controller. Basically what I'd like to know is this possible? If so does it require lots of knowledge or is there any help online to build this type of thing? Any help is appreciated. Thank you.

Paddy_c:
I'm completely clueless about building robots etc lol but I have an idea.

Then you should educate yourself on the subject a bit, first. Google is your friend here, but I would also highly recommend that you pick up a copy of this book:

Robot Builders Bonanza, 4th Edition

Paddy_c:
Basically I want to build a platform that will be controlled by wifi from anywhere in the world via the net.

While you could certainly go "scratch built" with this - you might be better served by using a platform kit (one that contains the motors and the base) - then add on other modules like the h-bridges (to drive the motors), the Arduino, sensors, etc.

Alternatively, you could also convert an old R/C car to work with the Arduino. Another option is to use a building kit (like Lego or K'nex or Meccano/Erector) - though that can be an expensive option, depending on how you source the parts.

Paddy_c:
I'd like it to be controlled by software rather than a website and I'd like it to be controlled by an Xbox 360 controller. Basically what I'd like to know is this possible?

I'm not sure what you mean by this, but I am guessing that you mean you want to control the robot via a standalone desktop (or mobile) application, which you send commands to via the controller, and it relays those commands (how fast to move, what direction, etc) to the robot, and the robot sends back video and any other sensor information back to the application - which then displays this information - correct?

If so - then yes, this is possible - but it will take more than just an Arduino to do it.

Paddy_c:
If so does it require lots of knowledge

Even something seemingly basic like this will take more than a bit of effort and time to implement; you'll need to:

  1. Build the platform
  2. Interface the Arduino (with the motor drivers and such)
  3. Add a wifi interface (which one?)
  4. Code the software for the robot side
  5. Code the software for the app side
  6. Get everything working together

...and that's a very high-level look; there are ton of smaller steps in there that haven't been mentioned (you could probably easily expand each of those steps into 10-20 additional steps for each - and there are likely a few more "high level" steps that are missing as well).

For instance - the wifi interface will need to be determined; also, you will likely be sending video back - so you will need a wifi-capable camera (aka - an IP camera). For the wifi, you could use the latest "darling" of the IOT world - the ESP8266 module - but it may be beyond your skill level (then again, this whole project may be beyond your current skill level). You could use any one of a number of different wifi shields as well. You could also hack an old WRT54G Linksys router if you wanted to, and connect the Arduino to that.

There's also the question of what you mean by controlling the robot from "anywhere in the world"? If you think that wifi alone will work - it won't. You'll need something nearby (like a PC) that will have a connection to the internet to relay the signal - unless you include a better computer (a raspberry pi or such) on the robot, and have it (in some manner) auto-connect to the nearest (best signal) free wifi-node (and auto-login, etc) - which could be done, but it isn't easy (and you'd have to pre-map these hotspots, as most, while free, won't generally be "wide open").

Better would be to hook the Arduino up to an Android smart phone with an OTG connection (or use the Arduino ADK system) - then code an app on the phone that can control the Arduino - then the phone could be automatically connected to as an IP node on the cell network, and data streamed via that method. This could actually be a nice interface - as the phone would have lots of processing power, plus it already has a camera, too, which you can stream data from. Of course, there would be charges for the cell plan and such.

See how all of this is just exploding - and I haven't even gotten to other parts? Yeah - there's complexity and knowledge required for something like this...

Paddy_c:
or is there any help online to build this type of thing?

You can probably find all the bits and pieces (maybe even a few completed projects) if you google some, but unless you can exactly re-create an already existing project, those bits and pieces (or even complete code, etc) likely won't match your platform or layout, or anything else. Unless you already have experience in doing these kinds of projects (and/or robotics) - cobbling together different parts from various source code and such on the internet is going to be a nightmare. You really need to know and understand what you are doing both with the code at hand, as well as your hardware, to integrate something like that together.

Rather than trying to do that - I would again recommend that you take the time to educate yourself, and to start small. Get a small robot platform (desktop rover size), get some motor drivers, get an Arduino - and just work on getting the Arduino to move the platform around. Make it do circles, make it roam around in a pattern. Then add a sensor or two - have it avoid obstacles (ultrasonic sensor) or follow a line on the ground (line sensor). Once you are at that point - try to set up something to allow you to send commands via the serial port (across the USB cord) to the robot and have them execute them (keep the wheels off the ground for this) - once you have things working in a "wired manner" - cut the cord; get some wireless RF transceiver modules, and send those same commands across the link (and maybe sensor data back, too).

At that point - you'll be well on your way to understanding how to take it to the next step - how to implement wifi on the robot (or another wireless system), what to do for the other side (application to control it using the xbox controller), and how to integrate the camera, etc.

In other words - start small, take your time to learn everything, and break up your tasks into smaller sub-tasks and learning opportunities. Don't try to "do everything at once" - that's a path that will lead to frustration and failure. One thing at a time - get each done, then move on. It helps, also, if you plan and write down what you think you need to do. Set up this plan, to the best of your ability - realize that the plan might (likely will) change as you go - do let this discourage you - just keep your plan updated, and keep a journal of your progress and failures (this can be valuable in the future for testing and debugging). One step at a time - and you'll find you have gone really far before you know it.

Good luck. :slight_smile:

Excellent response, obviously thought out and some time taken to help.

I only hope the OP is not one of the regular "one post wonders" we so often get. There are few things more frustrating than spending considerable time and effort on a response only to get no feedback from the OP.

Weedpharma

Paddy_c:
I'd like it to be controlled by software rather than a website

If you want it to be controllable "from anywhere in the world" there will have to be a webserver somewhere in the chain.

HTML is a very practical way to create a Graphical User Interface. I find it much easier to create HTML pages than using something like TKinter (Python) or Swing (Java).

You might want to think of using an Arduino Yun. It comes with WiFi as standard and you can easily write a Python webserver on the Linux side using the Bottle web framework.

...R

weedpharma:
I only hope the OP is not one of the regular "one post wonders" we so often get. There are few things more frustrating than spending considerable time and effort on a response only to get no feedback from the OP.

If they don't respond back, or don't see it - or whatever - maybe someone else will. I don't consider it a waste if at least one person out there is helped or inspired by my books.

:smiley:

Robin2:
If you want it to be controllable "from anywhere in the world" there will have to be a webserver somewhere in the chain.

A "web server" isn't needed - provided that you have an application on each end that can interpret commands and stream info between them using an established protocol - you could use (for instance) an Android smartphone running the app, and communicating to the Arduino to control the robot.

The app on the smartphone would be able to respond to commands and stream data back - over GSM/CDMA or whatnot (to another cell phone or something else that can communicate over GSM/CDMA using TCP/IP).

While that app would be (in effect) a "server" in nature - it wouldn't need to be a "web server" (that is, a piece of code, acting as a server, which understands the basic HTTP protocol - though one could base their app on such a server design, as it is a fairly simple one to implement).

cr0sh:
While that app would be (in effect) a "server" in nature - it wouldn't need to be a "web server" (that is, a piece of code, acting as a server, which understands the basic HTTP protocol - though one could base their app on such a server design, as it is a fairly simple one to implement).

Sorta thing I had in mind.

I suspect doing it without a web server will be harder.

...R