I'm new to the Arduino community and electronics in general. As a mechanical engineer my involvement with electronics has been limited and usually focused more on packaging than design. However I've always had a fascination with electronics and have a few ideas I'd like to play with.
One of these is a robot controlled by a cell phone. Searching the net I cobbled together enough knowledge to be dangerous. The robot will have a small DC motor for movement, a microphone to listen, and a temperature sensor, and maybe a humidity sensor. It will be powered by as small a battery as possible. My basic question? Is this possible?
The modem receives signals from a mobile cell phone and sends signals to the Arduino micro controller. I'd like to use the Nano if possible. The microcontoller then sends power to the DC motor and while also receiving signals from the various sensors and microphone and transmits them back to the cell phone in real time.
- What is the smallest GSM module that will allow me to do this? I was looking at the Sierra Wireless Airprime WS6318.
- Can I also have GPS feedback?
- I have no programming experience other then Fortran many years ago. How hard is it to learn the Arduino system and programming?
- I'll need a SIM card as well right? That essentially makes the system it's own phone and would require a cell phone plan correct? Is there any way around this? What if I limit use to around WIFI networks. Can I control the robot that way instead to avoid cell phone charges?
- Will the feedback sensors/microphone work as I intend and will there be a delay?
- What size battery will I need and how long will it last? I know this is dependant on motor usage etc., but I'd like to get a ballpark.
Thank you very much in advance for your time,
I just thought of some follow up questions:
7. Will I need anything special to program the microcomtroller and write the code. I have a Vista PC.
8. Will the GSM module work for both Android and Apple phones?
9. Will it work with Verizon, AT&T, and other carriers around the world?
I think more information is needed on how you are going to use the system: what is the maximum distance between the robot and the controlling station? Is your choice of using a cell phone as the controlling station a must, or any portable device would do?
In theory, you can make a voice call from the Arduino and send tones to transmit a message (where the message can be a sensor's output). On the receiving end, however, you'll need an application that can convert these tones into something meaningful to you. The controlling station could send tones entered from the keypad to transmit a command, but I don't know whether the GSM module can actually transmit these tones to the Arduino.
Or you can use SMS, which being text does not require encoding and decoding. The problem is that GSM is slow, and you probably want something that can respond to commands as near to real time as possible.
Or there is GPRS, which connects to the Internet. This is probably the only option that may give good enough performance, but it will require some effort to get the system properly configured (you'll need to connect the controlling station to the Internet as well).
There are alternative wireless protocols, or you can just use radio signals, but before talking of them you should consider two things:
- if you want to control the robot from a phone you'll have to engineer a proper user interface. This will require some programming, using a language that depends on your phone and not on the Arduino.
- the maximum distance between robot and controlling station is the most important factor in deciding which protocol to use. Bluetooth, for example, is supported by many cell phones and is relatively easy to program, but its range is very limited. RF signals allow for bigger ranges but require additional hardware+programming on both sides.
3. The Arduino is programmed in C, there are lots of examples to get you started but in order to achieve what you have in mind you'll have to learn a lot more.
4. A SIM card will always be required if you use GSM.
5. Delays are often the result of inefficient programming, but there is a limit on how many inputs you can manage. Streaming inputs (e.g. audio from microphones) are a real challenge. You might even go as far as setting a separate channel to transmit them, if you don't want them to interfere with the processing of other inputs.
7. Vista is Ok. You'll need to install the free Arduino IDE.
8. The GSM module works as a cell phone and can talk to any GSM device. Programming the user interface on a cell phone, however, is a different matter; Android and Apple phones use different programming languages and different development environments.
Ok great this is a good start. Here is some clarification which will hopefully narrow the focus.
I would like the controlling device to be a phone.
I was planning on sending text messages to the robot to control it.
The distance can be literally anything. From across the room to across an ocean.
I don't absolutely need the live streaming audio feedback, but it's a nice to have. Same goes for the temp and humidity sensors actually. But if possible I'd like the ability to sense a few things and transmit the audio, values, or text messages back to the controlling phone.
Does the robot in an environment that has internet access? You could set up a system that takes commands over the internet as opposed to text messages.