![]() |
QPIDfirmware
v0.1
Object oriented firmware for autonomous motor drivers with encoder based PID controller and flexible interface
|
▼CQPID_Object | Base class for all QPID classes. Establishes interface for message processing and provides error reporting and logging functions |
▼CQPID_Encoder | Mostly abstract class for any kind of rotary encoder with optional filtering for jittery or error prone inputs |
CQPID_Encoder_ESP32 | Implements a quadrature encoder using ESP32's super cool hardware counters (yeah!). Based on the ESP32Encoder library by Kevin Harrington (madhephaestus) |
CQPID_Encoder_QuadratureStateMachine | Implements a state machine quadrature encoder based on Matthias Hertel's rotary library |
▼CQPID_Endstop | Abstract class for any kind of endstop switch |
CQPID_Endstop_Digital | Implements the simplest form of endstop using a digital input pin |
CQPID_Endstop_PinSharedAnalog | Implements an endstop connected to an analog pin with a resistor network, thus sharing the pin with other switches |
▼CQPID_MotorDriver | Mostly abstract class that defines access methods and features for generic motors, to be used in a QPID unit |
CQPID_MotorDriver_AdafruitMotorShieldV2 | (derived from QPID_MotorDriver) Implement a QPID_MotorDriver for DC motors hooked up to Adafruit's MotorShield V2. Control of this shield is via I2C, so it might be less responsive than other motor drivers using direct pin control |
CQPID_MotorDriver_DRV8833 | Implement a QPID_MotorDriver for TI's DRV8833 chip based modules. (Watch out for fake modules with the HR8833 chip, they didn't work well for me.) |
CQPID_Unit | A QPID_Unit objects bundles access to three hardware components, a motor driver, an position encoder, and end stop switches. Softwarewise it represents an advanced motor contoller that can autonomously perform various control tasks |