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>
33 lines
1.1 KiB
Markdown
33 lines
1.1 KiB
Markdown
# Hexapod
|
|
|
|
A six-legged walking robot (Teensy 4.0) and its handheld remote
|
|
(Teensy 4.1 + Nextion touchscreen), linked over nRF24L01.
|
|
|
|
```
|
|
robot/ robot firmware: IK, gait, body pose, IMU stabilization, state machine
|
|
remote/ remote firmware: 2 x 3-axis sticks, MPU6050 tilt, Nextion UI, RF24 TX
|
|
shared/ HexapodProtocol: the CmdPacket wire format + radio settings used by both
|
|
scripts/ PlatformIO helper (per-environment sketch folder)
|
|
```
|
|
|
|
## Build (PlatformIO)
|
|
|
|
```
|
|
pio run # build both
|
|
pio run -e robot -t upload
|
|
pio run -e remote -t upload
|
|
pio device monitor -e robot
|
|
```
|
|
|
|
## Where to go next
|
|
|
|
- **[robot/README.md](robot/README.md)**: placeholder geometry to measure,
|
|
the bench-check checklist, and the serial test harness for driving the
|
|
robot without a remote.
|
|
- **[remote/README.md](remote/README.md)**: wiring, control scheme, stick
|
|
calibration, and the remote's serial console.
|
|
- **[remote/NEXTION.md](remote/NEXTION.md)**: how to build the touchscreen
|
|
HMI.
|
|
- **[shared/HexapodProtocol/HexapodProtocol.h](shared/HexapodProtocol/HexapodProtocol.h)**:
|
|
the protocol. Change it only by reflashing both boards.
|