This commit is contained in:
Scott Bezek
2022-01-15 21:21:23 -08:00
parent b380a756c3
commit b92b805e13
2 changed files with 14 additions and 3 deletions

View File

@@ -6,6 +6,13 @@ using namespace ace_button;
#define COUNT_OF(A) (sizeof(A) / sizeof(A[0]))
static KnobConfig configs[] = {
// int32_t num_positions;
// int32_t position;
// float position_width_radians;
// float detent_strength_unit;
// float snap_point;
// char descriptor[50];
{
0,
0,
@@ -99,13 +106,11 @@ void InterfaceTask::run() {
nextConfig();
}
}
// Serial.println(digitalRead(36));
delay(10);
}
}
void InterfaceTask::handleEvent(AceButton* button, uint8_t event_type, uint8_t button_state) {
Serial.println("EVENT!");
switch (event_type) {
case AceButton::kEventPressed:
nextConfig();

View File

@@ -69,7 +69,13 @@ void MotorTask::run() {
tlv.update();
delay(10);
motor.initFOC(-0.6, Direction::CCW);
// Tune zero offset to the specific hardware (motor + mounted magnetic sensor).
// SimpleFOC is supposed to be able to determine this automatically (if you omit params to initFOC), but
// it seems to have a bug (or I've misconfigured it) that gets both the offset and direction very wrong!
// So this value is based on experimentation.
// TODO: dig into SimpleFOC calibration and find/fix the issue
float zero_electric_offset = -0.6;
motor.initFOC(zero_electric_offset, Direction::CCW);
Serial.println(motor.zero_electric_angle);
command.add('M', &doMotor, "foo");