In this article I present a simple method for communicating between an Arduino board and a PC using USB serial. USB serial is available on nearly all Arduino based boards. Further, there are Java libraries available that make communication relatively simple. In this case we use the Neuron Robotics serial library that is available via maven and hosted on git hub. Consider this project as a starting point that builds out the basics needed to get communication working between the two devices.
Using sockets for client / server development Following on from Using sockets for a character based stream we now introduce the idea of messaging. When we need to send commands between two systems (often referred to as client and server) we normally use message based communication, this was briefly discussed in the data communications introduction. For this example we will use Java, it’s freely available and there are many good IDEs.
Following on from the article Introduction to data communications we will now go into more depth, by looking at an example of stream based communication. We will use sockets for the example; mainly because sockets are available out of the box on any computer connected to the internet. A socket is a stream based connection between a server and a client. Recall from the prior page this means that data is received in the order it was sent.
In this section I discuss communication protocols; we start with a grounding on the basics and move through to some worked examples. To start with let’s look at some of the simplest cases and understand how communications between computer systems work in practise. There are many methods of communicating between two computers, be they embedded, mobile, desktop or server. Protocols range from the low level SPI and I2C right through to stream based approaches such as sockets over a network.