Je suis en train de coder mon drone, et contrôler les moteurs brushless avec des ESC.
J'utilise donc la bibliothèque Servo pour envoyer la valeur voulue en PWM aux ESC qui est ensuite transmise aux moteurs sous forme de courant.
Du coup, j'avais une petite question :
Pour l'instant, j'utilise, pour faire tourner un moteur
ESC.write(i)
Avec 0<=i<=180
Mais il y a aussi la commande
ESC.writemicroseconds(i)
Avec 1000<=i<=2000
Donc + de précision j'imagine ? Mais peut être qu'il y a des inconvénients ?
Néanmoins, j'ai surtout vu la deuxième version dans les projets des voisins ! Qu'en pensez-vous ?
Aussi, j'ai remarqué que dans mon cas (pour le i entre 0 et 180), le moteur commençait à tourner à partir de 11 ou 12. Ça serait préférable de mettre cette valeur au minimum (ou 10 pour des moteurs a l'arrêt) ? (Après les avoir armé bien sûr)
À la fin du projet, je pense mettre tous les codes a disposition avec des tutos, mais vous me conseillez de le publier ou ? Sur Youtube ? Arduino hub ?
Oui vous avez une précision plus importante et certains servo vont varier entre 1000 et 2000 alors que pour d’autres ce sera entre 700 et jusqu’à 2300
Évitez de faire forcer les servos au delà de leurs bornes Max ==> tester et affiner
En préalable je conseille la lecture du tuto d'Eskimon qui explique le fonctionnement d'un servo.
Par rapport à son explication qui est uniquement analogique il y a eu des avancées avec de la numérisation mais le principe reste le même :
une consigne
une info de position donnée sous forme analogique avec un potentiomètre en bout d'arbre
un système électronique d'asservissement de la valeur de retour sur la consigne.
Les évolutions probables par rapport à l'explication d'Eskimon
tension de consigne : elle n'est probablement plus obtenue avec une charge de condensateur mais de manière numérique -> quel est le pas de numérisation ?
asservissement de position :
Il est probablement numérique mais de toute façon il y aura des notions de PID. Plus la PID sera efficace plus il faudra soigner la stabilité de l'ensemble. Stabilité pris dans le sens que l'électronique ne se transforme pas en oscillateur. Pour tirer les prix sur un servo bas de gamme Il faut s'attendre à ce que l'asservissement le soit aussi
Est-ce utile de commander au 1/10 de degré près si déjà le servo n'arrive pas à faire mieux que 1 degré.
Quelle différence d'angle le potentiomètre est-il capable de détecter ?
Tout va dépendre de l'homogénéité de la piste résistive et de la finesse du point de captage du curseur.
Peut-être ne faut-il pas trop rêver avec les servo à 2 ou 3 €.
Il y a aussi le jeu mécanique dans le réducteur . Aller chercher par programmation une précision d'un 1/10 de degrés avec un jeu mécanique de ± 1 degré n'est peut être pas utile. Toujours pareil le jeu ne sera pas le même avec un servo à 2€ avec des engrenages moulés et un servo à 20€ avec des engrenages usinés.
Je suis moins inquiet sur la qualité des circuits intégrés : une fois les coût de développement amortis et la fabrication stabilisée le prix de la puce est inférieur à celui du boîtier même CMS. Le seul point où le fabricant peut gagner c'est sur la surface de la puce : un circuit rudimentaire occupera moins de surface. S'il occupe moins de surface il y aura plus de candidat sur chaque disque de silicium (Wafer). Comme le prix d'une "fournée de Wafer" est une constante au final s'il y a plus de candidat le prix unitaire baisse.
J'aurai tendance à dire que si le matériel est de qualité l'usage de bibliothèques performantes peut se justifier mais avec du matériel d'entrée de gamme bof.