🎋 Updates adafruit pwm lib to own fork until pr merged

This commit is contained in:
Rune Harlyk
2025-03-29 14:07:46 +01:00
committed by Rune Harlyk
parent 8733ecd9b7
commit 9a6c240140
2 changed files with 3 additions and 16 deletions
@@ -8,7 +8,6 @@
#include <template/stateful_endpoint.h> #include <template/stateful_endpoint.h>
#include <utils/math_utils.h> #include <utils/math_utils.h>
#include <settings/servo_settings.h> #include <settings/servo_settings.h>
#include <Wire.h>
/* /*
* Servo Settings * Servo Settings
@@ -53,18 +52,6 @@ class ServoController : public StatefulService<ServoSettings> {
_pca.setPWM(index, 0, value); _pca.setPWM(index, 0, value);
} }
void writeMany(uint8_t count, uint16_t *values) {
Wire.beginTransmission(PCA9685_I2C_ADDRESS);
Wire.write(0x06);
for (int i = 0; i < count; i++) {
Wire.write(0);
Wire.write(0);
Wire.write(values[i] & 0xFF);
Wire.write(values[i] >> 8);
}
Wire.endTransmission();
}
void activate() { void activate() {
if (is_active) return; if (is_active) return;
control_state = SERVO_CONTROL_STATE::ANGLE; control_state = SERVO_CONTROL_STATE::ANGLE;
@@ -113,7 +100,7 @@ class ServoController : public StatefulService<ServoSettings> {
void calculatePWM() { void calculatePWM() {
uint16_t pwms[12]; uint16_t pwms[12];
for (int i = 0; i < 12; i++) { for (int i = 0; i < 12; i++) {
angles[i] = lerp(angles[i], target_angles[i], 0.1); angles[i] = lerp(angles[i], target_angles[i], 0.05);
auto &servo = state().servos[i]; auto &servo = state().servos[i];
float angle = servo.direction * angles[i] + servo.centerAngle; float angle = servo.direction * angles[i] + servo.centerAngle;
uint16_t pwm = angle * servo.conversion + servo.centerPwm; uint16_t pwm = angle * servo.conversion + servo.centerPwm;
@@ -123,7 +110,7 @@ class ServoController : public StatefulService<ServoSettings> {
} }
pwms[i] = pwm; pwms[i] = pwm;
} }
writeMany(12, pwms); _pca.setMultiplePWM(pwms, 12);
} }
void updateServoState() { void updateServoState() {
+1 -1
View File
@@ -109,7 +109,7 @@ lib_deps =
adafruit/Adafruit SSD1306@^2.5.7 adafruit/Adafruit SSD1306@^2.5.7
adafruit/Adafruit GFX Library@^1.11.5 adafruit/Adafruit GFX Library@^1.11.5
adafruit/Adafruit BusIO@^1.9.3 adafruit/Adafruit BusIO@^1.9.3
adafruit/Adafruit PWM Servo Driver Library@^2.4.1 https://github.com/runeharlyk/Adafruit-PWM-Servo-Driver-Library.git
adafruit/Adafruit ST7735 and ST7789 Library@^1.10.4 adafruit/Adafruit ST7735 and ST7789 Library@^1.10.4
adafruit/Adafruit HMC5883 Unified@^1.2.3 adafruit/Adafruit HMC5883 Unified@^1.2.3
adafruit/Adafruit BMP085 Unified@^1.1.3 adafruit/Adafruit BMP085 Unified@^1.1.3