- LEGACY/Hexapod_Teensy/: old robot sketch (reference only). - platformio.ini: robot env targets teensy36 (owner-confirmed board). - Config.h: per-servo SERVOS table (pin, pulse at 0 deg, signed us/deg, pulse limits) built from the old sketch's pins, ranges, trims and the old Unity servo directions. Rear-left/front-left coxa offsets set to 0: the owner re-horns those two servos (the old +-90 left them at the end of travel; the sim showed them clamping). - ServoDriver: 18 servos on hardware PWM (50 Hz, 16-bit); the Teensy 3.6 Servo library stops at 12. - Radio on CE 39 / CSN 15 with SPI SCK on pin 14. - sim: analogWrite/PWM shims, pulses decoded through SERVOS (API v6). - Docs: CLAUDE.md, READMEs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
13 lines
453 B
C++
13 lines
453 B
C++
#pragma once
|
|
#include "Kinematics.h"
|
|
|
|
class ServoDriver {
|
|
public:
|
|
void begin(); // set up the PWM pins (no pulses yet)
|
|
void relaxAll(); // stop all pulses - call when disarming
|
|
void writeLeg(int leg_index, const JointAngles& angles);
|
|
|
|
// Joint angle -> pulse through that servo's calibration (Config.h SERVOS).
|
|
static int degToMicros(int leg, int joint, float deg);
|
|
};
|