Pour toute question relative à ces sujets, s'adresser à Thomas Gillet ou Yuxin Fu
Un schéma électrique a été réalisé à l’aide du logiciel Fritzing (payant maintenant. Dernière version gratuite ici. On peut trouver aussi la version la plus récente piratée sur Internet, c’est ce que j’avais fait). Le schéma est disponible sur 3DExperience en fichier source .fzz et en PDF
Ce qu’il faut retenir :
Le choix des moteurs s’est porté sur des moteurs synchrones à aimants permanents de drone. La référence est Multistar V-Spec 1808.
Ils se commandent à l’aide d’ESC 20A (un par moteur). Comme tous moteurs synchrones ou asynchrones, il suffit d’inverser deux fils sur les trois pour changer le sens de rotation du moteur.
La fixation du moteur se fait avec des vis M2. Dans la boite ne sont inclus ni plaque de montage ni vis. Pour les tests effectués pendant confinement, une plaque de montage a été usinée avec les moyens du bord, et les vis d’un PC ont été utilisées. Les photos du bricolage sont sur 3DExperience.
Il est important de vérifier si le labo d’elec a des vis M2, et si ce n’est pas le cas, de les commander rapidement. Pour la plaque de montage, une petite pièce en alu ou en PLA fabriquée dans l’atelier sera parfaite.
Le choix s’est porté sur une Arduino Nano 33 BLE. Le choix de la Nano s’est fait pour son faible encombrement. La BLE a été choisie pour sa puissance et ses appareils de mesures (accéléromètre, gyroscope) intégrés.
Les trois gros font 10kg.cm pour 5V, ce sont pour les gouvernes à l’arrière. Le petit fait 2kg.cm, il est pour faire tourner l’arbre sur lesquels sont montés les moteurs.
Les ESC se contrôlent en PWM par l’Arduino, à l’aide de la librairie Servo.
Ci-contre (et sur 3DExperience) un exemple de code pour commander un moteur en utilisant un potentiomètre comme « accélérateur ».
La sortie de tension variable du potentiomètre est branchée sur le pin 0 (A0). L’Arduino lit une valeur de tension entre 0 et 1024. A l’aide de la commande map on fait une petite règle de 3 pour la ramener à une valeur entre 0 et 180 (pour un servo c’est entre 0° et 180°, pour un ESC il faut comprendre 0 = 0% de la vitesse max, 180 = 100% vitesse max). L’ESC est attaché sur le pin 9.
Pour les tests en confinement, nous n’avions pas de potentiomètre, il nous a fallu en simuler un. Les deux fichiers nécessaires (code Arduino Commande_moteur_Python.ino et script Python Commande_moteur_Python.pyw) sont sur 3DExperience.
Le code Arduino utilise la fonction writeMicroseconds() de la librairie Servo, qui prend la largeur d’impulsion (entre 0 et 2000) pour la PWM. Il est à l’écoute de valeur entrante par Serial (connexion USB avec l’ordinateur), et envoie ensuite la valeur à l’ESC.
Il est possible d’utiliser le code Arduino sans Python en utilisant le Serial Monitor intégré à l’IDE Arduino. Le code Python intègre un slider qui sert de potentiomètre virtuel (valeur entre 700 et 2000), et qui envoie ensuite cette information quand elle est modifiée au port Serial (donc à l’Arduino).
Quelques notes d’usages sur l’ESC et le programme Python :
La batterie est un tampon nécessaire, y compris en présence de la pile pour deux raisons :
La batterie choisie est une Turnigy NanoTech 2200 mAh 3S 25C.
Le dimensionnement a été établi selon les 3 critères suivants :
La batterie ne peut pas être directement connecté à la pile car il faut qu’elle soit équilibrée et pour les questions de tension déjà évoquées. Il est donc nécessaire d’avoir un chargeur qui puisse alimenter la pile.
Le chargeur doit être un chargeur DC d’une capacité minimale de 200W.
Nous avons choisi le Turnigy M8, mais nous ne l’avons pas acheté à cause du confinement, parce que nous n’avons pas pu avoir la pile. Il n’est a priori pas disponible sur HobbyKing, mais on trouve une version générique, appelée ToolkitRC M8, sur de nombreux sites (ici par exemple, sinon chercher M8 charger sur Google). Attention, comme il vient probablement de Chine, il faut le commander très rapidement.
Un petit chargeur AC de 15W a été acheté également pour charger la batterie pendant le confinement sans pile à combustible.
D’après le site HobbyKing, pour ces moteurs il faut des hélices entre 4 et 6 pouces.
La dénomination des hélices c'est en général DxP ou DdPp (D pour Diamètre, P pour pas). Une 5050 aura donc un diamètre de 5 pouces et un pas de 5 pouces également.
Nous avons commandé pour tester sur HobbyKing des hélices : 5050 bipale, 6050 bipale, 5040 6 pales, 6040 tripale.
Les résultats de traction des différentes hélices en fonction de la vitesse de rotation du moteur sont disponibles sur le 3Dexperience. L’abscisse des courbes est le nombre de microsecondes pour la commande PWM (voir section ESC)
Un test plus complet avec plus d’hélices a été réalisée par quelqu’un qui a mis ses résultats sur Internet : http://dozer260.blogspot.com/2016/03/multistar-v-spec-1808-2400kv-thrust-test.html. Mais je pense que cela a été fait avec une ancienne version du moteur.
D’après mes recherches, la marque HQProp est particulièrement reconnue, et peut être acheter en France sur drone-fpv-racer.com
Un code a été réalisé par Valère et Alice afin d'assurer la transmission de la télécommande à la carte Arduino. Il est disponible sur 3Dexpérience : Ce code permettent d'abord recevoir les signaux fournis par la radiocommande. Ensuite, ces signaux sont transformés en une valeur comme la vitesse, l'angle ou bien mode "0 ou 1" selon les différents chaînes. Enfin, ces valeurs sont envoyées aux escs et aux servomoteurs. Alice a aussi fait un code permettant de créer une entrée qui peut changer au hasard chaque seconde à la fois être contrôler par le clavier, puis tracer une courbe en temps réel