Kart/serial link
From FSI
Revision as of 15:48, 9 June 2015 by Francois.corthay (Talk | contribs)
|
Serial link protocol
This section defines the serial link protocol used to communicate between the Kart and the SmartPhone. All data is spontaneously sent.
Serial port
Communication is done with:
- 115200 baud
- 8 bits
- no parity
- no handshake
Message Format
SoF (1 byte) | Address (1 byte) | Data (2 bytes) | EoF (1 byte) |
---|---|---|---|
0x55 | UINT8 | UINT16/INT16 | 0xAA |
Registers
SmartPhone to Kart
Address | Datatype | Description |
---|---|---|
0 | UINT16 | DC motor PWM period |
1 | INT5 | DC motor speed: -15 to 15 (Negative numbers = backwards) |
2 | UINT16 | Stepper motor period (speed proportional to 1/period) |
3 | UINT16 | Desired steering angle |
4 | UINT5 | End switch address |
5 | UINT5 | Hardware control |
6 | UINT4 | LEDs |
15 | UINT16 | Serial link update interval [ms] |
Hardware control register
Bit | Meaning | Description |
---|---|---|
0 | Kart goes as DC motor | When '0', the kart goes backwards when the motor turns forwards |
1 | Kart turns right (clockwise) | When '1', kart turns to the right as stepper motor phases go from 1 to 4 |
2 | End sensor is on left side | If '1', the angles are measured clockwise |
3 | Stepper end | emulates an end switch contact for the direction motor |
4 | Restart | Puts following slaves back in startup mode: stepper motor |
5 | Bluetooth connected | Indicates that the Bluetooth connection is established |
The end sensor always defines position 0. Angles are always positive.
If bits 1 and 2 are different, the stepper motor phase sequence has to be inverted.
If the Bluetooth connection is lost, the DC motor has to be stopped.
Kart to SmartPhone
Address | Datatype | Description |
---|---|---|
0 | UINT16 | Hall speed count 1 |
1 | UINT16 | Hall speed count 2 |
2 | UINT2 | Steering status: bit 0 stepper end, bit 1 position reached |
3 | UINT16 | Actual Steering Angle |
4 | UINT1 | Stepper End from I/O board, bit 0 |
5 | UINT16 | ADC Value of the Battery Voltage Level |
6 | UINT16 | Distance |
8 | UINT16 | Proximity 1 |
9 | UINT16 | Proximity 2 |
10 | UINT16 | Proximity 3 |
11 | UINT16 | Proximity 4 |
12 | UINT16 | Ambient Light 1 |
13 | UINT16 | Ambient Light 2 |
14 | UINT16 | Ambient Light 3 |
15 | UINT16 | Ambient Light 4 |
Kart I2C bus
The data on the kart's I2C bus reflects the one on the RS232 link. On the I2C, both data and addresses are 8-bit.