Two way wireless connection

Hi all.
We are building 3 robotic vehicles, using the mini atom board. We want to control them with a computer through a wireless connection. We want to control them simultaneously through the same transmitter/ modem.
Does anyone know of a device that can control 3 different robots?
More over, the controlling program is written in C sharp and the atom board has it’s own language. How do we do the conversion and where in the process?

Well a normal wireless ethernet access point would allow you to control a couple of hundred devices. there are several WLAN device servers available, the Lantronix WiPort and MatchPort being two of them that are available through common hobby distributors like Mouser. Sparkfun.com also has some modules they sell although the name escapes me at the moment. You may also be able to use bluetooth if cost is more important then range, and bluetooth enabled device servers are also available at Sparkfun.

Um, you write your C# program on the PC and you write your Basic Atom program for the atom, and ideally the two programs are developed together so that when the PC sends a command to go left the atom can understand the command and tell the robot to go left. :open_mouth:

If you are going to be passing information back and forth between two differing languages you might want to look into SOAP.

Simple Object Access Protocol is basically a formatted XML file that is understood by both languages and makes message passing much easier.

Just a thought.

As I understand it, Using the Atom PRO allows me to write the robots’ program in C. and as iv’e already mentioned, the controlling program (the one on the PC) is written in C sharp. Do these 2 languages “understand each other” or do I have to put some kind of an interpreter in the middle?

And what exactly is SOAP?

I think you are missing a really important detail in your concept. here is some background to allow me to explain:

  • the program on the PC takes control input from a user and turns it into commands which are transmitted to the robot.
  • the program on the robot receives commands from its radio and turns them into control signals to operate motors and servos.
  • if the robot has sensors then the program on the robot will also collect data from the sensors and transmit it back to the PC.
  • if the robot is transmitting data then the program on the PC would then also be responsible for receiving that data and presenting it in some useful manner to the operator.

now realize

  • that the commands being sent to the robot, and the data being returned by the robot have nothing to do with the programming languages you write the programs in.
  • the content and structure of the commands and data are defined by you, the programmer or system designer, based on the amount of information needing to be transfered and how often it needs to be updated.

an example is a servo controller such as an SSC-32. The PC can be running a program such as the SEQ oe RIOS that turns graphical data and database information into commands being sent to the SSC-32 or the PC can be running a dumb terminal program such as LynxTerm or even Hyperterminal and the user types in servo commands manually. the microcontroller on the SSC-32 interprets the commands sent over a serial port by the PC into the hardware signals needed to control r/c servos. Someone defined the command set being sent from the PC and interpreted by the SSC-32.

you need to do the same thing… define a command language to tell the cntroller on the robot what to do, and probably also a second set of commands used to send data back to the PC. the structure of the command set you define will depend more on the type and amount of information you need to transfer than what language you decide to write the programs in. :wink:

In other words:
The programs that you write to command and control the robot(s) are written in a programming language.

The commands that you send are encoded and decoded using a protocol.

They are sent and received over a communications channel.

So long as your data is being sent and received in a format that both ends of the link understand (they’re communicating on the same frequency, using the same encoding method, etc), then it doesn’t matter what programming language is being used to interpret the messages, so long as they’re both speaking the same protocol (tagged ASCII stream, AX.25, smoke signals, etc.).

Example: I have a PC that’s controlling a biped robot. It is running a program written in Visual C (programming language), and generating a stream of messages (protocol), which are being sent via a Bluetooth module (communications channel). The robot receives the commands using a different make and model of Bluetooth module (communications channel), which outputs a data stream containing the messages (protocol), which are them interpreted and acted upon by a microcontroller that’s running a program written in MBasic (programming language). Even though the programming languages are different, and the Bluetooth modules are different makes and models, the messages are constructed and interpreted correctly, because both ends know how to encode and decode the protocol that they have in common.

(Incidentally, the Bluetooth modules can also communicate with each other because they’re speaking a common protocol, but one that’s handled automatically by the driver software.)

sorry, at 2:30 in the morning I was not hitting the $5 names of things too good, but I still think I got my point across. :wink:

thanks guys. relly helpful stuff. Let me explain what i’m trying to do and maybe you can help me with some hardware too.
I’m building 3 four wheeled little robots using the mini ABB PRO hardware. I want to put some routines on their MCUs. Then I want to “activate” their routines using a wireless connection from a PC. for examle, I want the program on the pc to tell robot 1 to “commence routine A” and robot B:“commence routine B”. after the robots execute the routine I want each of them to send a message back to the PC saying “i’m done with routine A” etc’…
Can you guys recommend some hardware/software which will be suitable for that?

o.k. I think I have a general idea of how to do what i want. I’ll buy 4 Spark Fun Modems UM96 and connect 3 to the 3 robots and 1 to the PC.
Now, a few questions:

  1. where on the mini ABB do I connect the modem and how (IO pins,
    DB9…)?
  2. What hardware/Cable do I need in order to connect the modem to the
    PC?
  3. How do I know if the baud rate of the modem (9600 bps) is o.k with
    the PC (probably yes) and the basic atom pro MCU?
  4. What else should I check before I determine the modem fits with the
    rest of the hardware I’m using?

I know it’s a lot of info, but it’s the first time I have to handle the electronics in a project and it’s all new to me.
Thanks for the replies so far. really enlightening stuff. Thx guys… :laughing: