Nous recherchions un processeur suffisamment puissant pour nous permettre de ne pas limiter notre démarche de création d’algorithmes complets et suffisamment poussés.
La manette nous permet de contrôler chaque élément de notre système. C’est une manette PS3 sans-fil, que nous connecterons (pour l’instant) via son câble USB à l’Arduino USB Host.
Le rôle de l’électronique du drone est de maintenir l’équilibre du drone et de permettre le son pilotage de manière cohérente.
C’est la carte principale du drone, le “cerveau”. Le microcontrôleur de la carte est un ARM 32bits, qui communique avec le gyroscope, l’accéléromètre et le magnétomètre présents sur la carte. La puissance du microcontrôleur permet de traiter les données des capteurs de manière plus précise et plus rapide qu’un Arduino (puce ATmega 8 bits) par exemple. Il possède de nombreuses librairies et exemples de codes.
Connecté à la carte STM32F3Discovery. Mesures de distances jusqu’à 4.5m. Situé en dessous du drone, il sert principalement à la séquence d’atterrissage. Il permet aussi le maintien du drone à une altitude stabilisé, quand le drone ne reçoit pas de commande du pilote.
Connecté à la carte STM32F3Discovery, l’Arduino Pro Mini embarque un microcontrôleur ATmega328p. Sa taille réduite au maximum permet d’optimiser le poids l’encombrement de l’électronique sur le drone. L’Arduino Pro Mini se charge de décoder les informations (les commandes du pilote) transmises au module 2,4 Ghz. Un flag signale au STM32F3 qu’aucune commande n’a été reçue, ce qui entraine l’immobilisation et la stabilisation du drone. L’Arduino Pro Mini mesure également la tension de la batterie (via un simple pont diviseur de tension à base de résistances, branché sur une entrée analogique) et transmet cette valeur à la station de pilotage, au sol.
Connecté à l’Arduino Pro Mini. Transmission sans-fil (2,4GHz) des commandes du pilote depuis la station au sol vers le drone. Ce module est très répandu et peu cher, ce qui nous a orienté vers lui rapidement.
Connecté à la carte STM32F3Discovery en PWM (Pulse Width Modulation). Nous avons sélectionné un modèle Afro 20Amp avec firmware SimonK programmé d’origine. Celui-ci optimise la réactivité des controleurs et offre une excellente linéarité entre commande et tours moteurs obtenus. Moteurs :
Nous avons sélectionné le moteur brushless Turnigy D2822/14, proposé à 7,64€ chez HobbyKing. Celui-ci offre une puissance tout à fait intéressante (1450kv).
Nous avons retenu la batterie ZIPPY Flightmax 3000mAh 3S1P 20C. Celle-ci permet d’avoir une autonomie satisfaisante. On a ici une batterie 3 cellules (11,1 V).
L’électronique au sol permet de transmettre les commande du pilote jusqu’au drone. Il comporte une partie émission RF vers le drone, une partie acquisition et traitement des données de la manette et la manette en elle-même.
Les commandes du pilote sont transmises au sol par USB vers un Arduino via un USB host shield. Nous utilisons une manette PS3.
Il reçoit les commandes depuis l’USB Host et les transmet au drone via un module 2.4GHz.
C’est un shield, connecté à l’Arduino Uno. Il reçoit les informations de la manette PS3. De nombreuses librairies sont disponibles. Nous avons utilisé celle disponible pour la manette PS3, en open-source. Nous utilisons donc les informations données par la manette sur les commandes du pilote, pour les encoder sous forme de commandes en yaw, pitch et roll, ce calcul étant réalisé par l'Arduino. Via le module sans-fil, on envoie donc au drone une trame d'entrée, une trame d'information sur la variation de yaw, une trame pour le pitch, une trame pour le roll et une trame de sortie.
Connecté à l’Arduino Uno. Ce module comporte une antenne qui présente un gain plus important que la version « compacte ». Transmission sans-fil (2,4GHz) des commandes du pilote vers le drone. Ce module intègre une antenne de taille plutôt importante, avec un gain très convenable (pas de contrainte d’encombrement au niveau du module au sol).