Je passe petit à petit des projets réalisés en ESP32 sur ESP32-S2 et je découvre des trucs...
Par exemple la bibliothèque ESP32Servo et son usage passe à la compil mais fait rebooter quand on veut l'utiliser...
Aucun tuto sur le web , enfin grâce à glouglou je découvre qu'il y a une bibliothèque intégrable dans le gestionnaire de bibliothèques : SP32_New_ISR_Servo
L'auteur a dû vouloir régler leur compte à tous les "variants" ESP32 qui apparaissent et pour moi c'est too much.
Pour me faire un exemple comme aide mémoire j'ai simplifié l'exemple
// janvier 2022 fonctionne
// version détaillée
#define TIMER_INTERRUPT_DEBUG 0
#define ISR_SERVO_DEBUG 1
#define USE_ESP32_TIMER_NO 3
//#define LED_BUILTIN 15
//#define PIN_LED 15
#define PIN_D2 2
#define PIN_D3 3
#define MIN_MICROS 800 //544
#define MAX_MICROS 2450
#define NUM_SERVOS 2
#include "ESP32_New_ISR_Servo.h"
typedef struct {
int servoIndex;
uint8_t servoPin;
} ISR_servo_t;
ISR_servo_t ISR_servo[NUM_SERVOS] = {{ -1, PIN_D2 }, { -1, PIN_D3 }};
void setup() {
Serial.begin(115200);
delay(5000);
Serial.print("\r\n testServoEsp32S2_2 .ino\r\n");
delay(200);
ESP32_ISR_Servos.useTimer(USE_ESP32_TIMER_NO);
for (int index = 0; index < NUM_SERVOS; index++) {
ISR_servo[index].servoIndex = ESP32_ISR_Servos.setupServo(ISR_servo[index].servoPin, MIN_MICROS, MAX_MICROS);
}
}
void loop() {
int position; // position in degrees
for (position = 0; position <= 180; position += 2) {
ESP32_ISR_Servos.setPosition(ISR_servo[0].servoIndex, position );
ESP32_ISR_Servos.setPosition(ISR_servo[1].servoIndex, position );
Serial.println(position);
delay(200);
}
for (position = 180; position <= 0; position -= 2) {
ESP32_ISR_Servos.setPosition(ISR_servo[0].servoIndex, position );
ESP32_ISR_Servos.setPosition(ISR_servo[1].servoIndex, position );
delay(200);
}
delay(5000);
ESP32_ISR_Servos.setPosition(ISR_servo[0].servoIndex, (90));
ESP32_ISR_Servos.setPosition(ISR_servo[1].servoIndex, (90));
delay(5000);
}
En partulier j'ai viré les sorties sur le port com SAUF que la bibliothèques affiche encore des sorties sur la com.
Quelqu'un peut-il me dire où je dois modifier car y a tellement de define que je ne sais pas où c'est le mieux d'intervenir
Debug
Debug is enabled by default on Serial.
You can also change the debugging level from 0 to 2. Be careful and using level 2 only for temporary debug purpose only.
#define TIMER_INTERRUPT_DEBUG 1
#define ISR_SERVO_DEBUG 1
Dans les codes en exemple avec la librairie, on trouve d'ailleurs ces lignes au début du code
Qui pour moi indique que si ISR_SERVO_DEBUG n'est pas défini on le force à 1
Il devrait être à 0 puisqu'il est mis #define ISR_SERVO_DEBUG 0
dans le script