Draft: shared protocol, remote firmware, project docs
Not yet verified on hardware. - shared/HexapodProtocol: CmdPacket (now 20 bytes, adds remote_roll / remote_pitch), FLAG_* bits and radio settings as the single protocol definition; static payload size = sizeof(CmdPacket) on both radios. - robot: use the shared protocol; vx = forward (harness w/x <-> q/e); InputMapper adds remote tilt on top of the right stick when FLAG_REMOTE_GYRO is set, and robot.ino no longer zeroes stick roll/pitch when it's off. - remote (Teensy 4.1): Sticks (calibration, EEPROM), RemoteIMU, RemoteState (interlocks, link-loss disarm, smoothing), PacketBuilder, RadioLink, NextionUI, SerialConsole. - CLAUDE.md, README.md, remote/README.md, remote/NEXTION.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ad77b06c36
commit
91dac16fca
30 files changed
+1706
-57
No files matched your search
@@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
#include <HexapodProtocol.h>
|
||||
#include "Sticks.h"
|
||||
#include "RemoteIMU.h"
|
||||
#include "RemoteState.h"
|
||||
|
||||
// The inverse of the robot's InputMapper: turns physical stick axes, handset
|
||||
// tilt and operator state into a CmdPacket. It only fills fields per the
|
||||
// protocol contract (HexapodProtocol.h); all physical scaling and mode
|
||||
// interpretation stays on the robot.
|
||||
class PacketBuilder {
|
||||
public:
|
||||
CmdPacket build(const StickFrame& s, const RemoteIMU& imu, const RemoteState& st, uint32_t now_ms);
|
||||
|
||||
private:
|
||||
uint8_t seq_ = 0;
|
||||
bool walk_seen_ = false;
|
||||
uint32_t last_walk_input_ms_ = 0;
|
||||
|
||||
static int16_t tiltToWire(float deg, float blend);
|
||||
};
|
||||
Reference in new issue
Block a user