Communication

Bread-board with 2 Arduinos

During the last months you didn’t hear much about the Walker. Well, during New Year vacation I was much occupied with family and 31C3. But development did proceed. After sorting out servos and basic Inverse Kinematic I am now focusing on setting up the full framework of components communication between them.

I wanted to have the framework in place before getting deeper into motion control and sensor reading because:

  • I want to avoid heavy porting from a test environment.
  • I want to make sure the design fits to an environment with multiple modules.
  • I want to experience any issues because of delayed communication as early as possible.
  • I want to develop a framework that allows tracking of joint and sensor values in real time. I’ll have to develop some test functions at all, so make sure to keep them for testing in later stages.

communication_sketch

The walker has a core module connecting to sensors and controlling body and  movement. Each pair of legs is controlled by it’s own segment module. It controls the leg servos, the tilt servo and reads the contact sensors in the leg tips. Core and segments communicate through serial lines, with the core as master.

On the Mac runs a control application written in Java. It provides a graphical interface for debugging and controlling the Walker. The link between the Mac and the Walker uses Bluetooth. That was the easiest one, the Mac already provides Bluetooth, for the Walker I use a HC-05 Bluetooth module. It provides a standard serial profile and is rather  simple to use. It is connected to the core module over a serial line.

I had much fun with Java on Unix talking asynchronously with device files, or rather not. I also did test HC-04 BT Slave modules, but they don’t talk with Macs, which I found out after many futile tries.

This draft document describes the protocols, control lines and message formats.

The frame-work is working, next steps will be a little bit of fine tuning, adding the touch down sensor electronics. The modules are still Arduino based, but the Eagle drawings are already under progress.

Leave a Reply

Your email address will not be published. Required fields are marked *