Salve a tutti,
Ho costruito da poco un ragno robot quadrupede con 12 servomotori, ho utilizzato un Arduino uno ed una scheda PCA9685 per controllare i 12 servomotori, 3 per gamba. Il codice l'ho scopiazzato da altri progetti trovati ricercando in rete e l'ho adattato ai parametri del mio robot. Questo è il codice da cui ho preso ispirazione.
Il controllo dei servomotori viene effettuato attraverso la libreria FlexiTimer2 che, da quel che ho capito, sfrutta il timer2 per richiamare la funzione indicata, in questo caso la funzione servo_service(), che va a verificare se è desiderata una nuova posizione per ciascuna gamba, calcola gli angoli e successivamente comanda i servomotori.
Tutto sembra funzionare alla perfezione se non fosse che i movimenti sono troppo bruschi ed i motori si muovono al massimo della loro velocità. Dunque pensavo di migliorare il codice rendendo il movimento dei motori più lento e fluido e cercando in rete mi sono imbattuto nella libreria ServoEasing.h, che dovrebbe permettere di scegliere il tempo impiegato dai servomotori per eseguire il passaggio da una posizione all'altra.
Ho provato ad utilizzare la libreria per l'Easing dei servo ma non ho avuto successo, i motori iniziano a vibrare senza prendere nessuna posizione ed ho pensato che probabilmente il problema sia una questione di Timer ma non riesco a capirne il motivo.
Vorrei farvi alcune domande:
La libreria ServoEasing può essere utilizzata all'interno di una chiamata da FlexiTimer2?
Conoscete librerie differenti per l'Easing dei servomotori che potrebbero fare al caso mio?
Dove posso imparare come programmare Robot simili?
Vi ringrazio in anticipo per le vostre eventuali risposte, se ho dimenticato di fornivi qualche informazione necessaria fatemi sapere.