Embedded Computer Communication


 

From ARVP

Jump to: navigation, search

Contents

[edit] People

Lewis Gunsch

[edit] Overview

The goal of this sub-project is to build the micro-controller modules to handle the micro-controller/embedded-computer communication. Sending and receiving data and commands to the embedded computer is the primary job of the micro-controller. Some command examples are start, stop, kill, Go_horizontal, Go_vertical etc. Some data examples are C (heading), x (x acceleration), y (y acceleration), z (z acceleration), etc. Check out the IMU pdf for data string format and arvp_roboteq.h for roboteq functionality. The basic idea is to have each command or data item and it's parameters or data on one line. EX:

C 198.17

x 0.5147

This would mean a heading of 198.17 degrees and an x acceleration of 0.5147 m/s.

[edit] Communication Details

  • Each set of data is on it's on line (i.e. it's followed by a \n or \r), with the first character being the unique identifier of the data (eg. C for heading), and then followed by a space and the data items or parameters (for a command instead of data)
  • The micro-controller begins sending data when the [START] token is seen, and ignores it when it is sent more than once before the [STOP] token is seen.
  • The micro-controller then stops sending data when the [STOP] token is seen, and ignores it when it is sent more than once before the [START] token is seen.
  • Data is only sent when it has changed since the last transmission
  • Once the communication routine has begun it should block continuously except to carry out commands sent from the embedded computer

E.G.
Recv: [START]
Send: C 398.86
Send: x 1.05
Send: y 0.98
Recv: h 50
Recv: v 52
Send: z 0.01
Recv: [STOP]

[edit] Progress

  • Commands are seen and interpreted, command functionality is still being implemented.

[edit] Communication Commands

Command Structure Meaning
[START] Start transmitting new IMU information
[STOP] Stop transmitting new IMU information
H <base> <effort> go_horizontal thruster function call
V <base> <effort> go_vertical thruster function call
Personal tools
Personal tools