QuadCopter From Scratch
Contexte / Objectifs
Ce projet ce situe dans le contexte d'un projet de création d'entreprise autour des drones professionnels. N'ayant que peu d'expérience dans la conception et la fabrication d'engin volant, j'ai décider comprendre leur fonctionnement et de pratiquer le plus d'aspects possible pour, à terme, pouvoir maîtriser et créer un produit utile et original. Donc, avant de developer un prototype avec un (ou plusieurs) avantage(s) compétitifs, j'ai décidé de passer par des sous-projets qui forment les briques techniques élémentaires. Ces sous-projets, n'étant pas particulièrement originaux, ils sont publics. Je suis donc disposé et heureux de partager ce que je vais apprendre durant ce projet.
L'objectif de ce 1er sous-projet est de concevoir et de fabriquer un drone quadricoptère. Cependant, au lieu d'utiliser des cartes électroniques préprogrammées, des chassis et des hélices du commerce, je vais moi même programmer et designer le plus d'éléments possible. Ce drone sera donc fabriqué avec un maximum de pièces imprimés en 3D. Le contrôleur principal de ce drone sera une carte Raspberry PI Zéro WH (sous Raspbian). Le contrôle direct du drone sera effectué à l'aide d'un Joystick T16000 de la marque Thrustmaster branché à un PC. La télémétrie est transmise en live à un PC par Wifi. Tout les programmes sont et seront écrit en Python 3.
Pour avoir les codes sources et les modèles 3D du projets vous pouvez me contacter par email : theovialis@gmail.com
Sommaire Technique
Cahier des charges et Etats d'avancement
Résumé
L’objectif de ce premier projet est de se faire la main sur les techniques de base pour faire un drone à partir de zéro. Se rendre compte de quelles sont les difficultés de base. Qu’est-ce qui est faisable avec mes connaissances et avec quel matériel. On veut quand même que ce soit autre chose qu’un simple montage et réglage. On va donc concevoir et imprimer en 3D le plus de pièces mécaniques possible. On va programmer à la main le contrôleur avec un asservissement de base. Le contrôle à distance pourrait se faire via une télécommande ou avec le Joystick T16K et en utilisant des modules de communication de type Xbee.
Caractéristiques techniques minimales
Caractéristiques globales
Masse : < 1.5 kg
Taille : < 500 mm diagonale
Aspect : quadricoptère en X ou en + standard et les composants électroniques apparents. Le plus simple possible.
Endurance : > 5 min
Pas de contraintes sur la portée si sur les performances de l’engin
On ne veut pas un drone de course (pas de contraintes de réactivité ou de vitesse)
Le drone doit être modulaire le plus possible et flexible toujours parce qu'il s'agit d'un drone “banc à sable” on veut pouvoir rester libre de changer des parties ou d'ajouter des features
Eléments faits « à la main » / DIY
Le châssis : à modéliser sous Solidworks et à imprimer en 3D
Les hélices si c’est possible. Il faudra les tester et caractériser dans quelles mesure on peut ou non fabriquer les utiliser
Le soft : l’asservissement PID et le réglage du PID
Elements à acheter
Moteurs / ESC
Hélices si on ne les impriment pas
Cartes de contrôle programmable
Batterie LiPo
Pales (si l’impression est impossible)
Distributeur de puissance (si on le fait pas en soudant tout)
Capteurs : Centrale Inertielle pour la version de base du drone. Celui-ci pourra être amélioré et accueillir d'autres capteurs si nécessaire (Sonar / caméra / autres…)
Module de communication (pour les commandes et la télémétrie)
Etat d'avancement au 15/04/2020
Tâches accomplies
Contrôle des moteurs par PWM (En utilisant le servo shield)
Lecture des accéléromètres et des Gyroscopes par Raspi (en I2C)
Ecriture d’un asservissement PID fonctionnel
Design et fabrication d’une balance de test 1-axe
Fusion des capteurs Accéléromètres et Gyroscope pour avoir les bonnes valeurs d’angles
Protocole de calibration de l’IMU
Calibration automatique des ESC
Envoi des données depuis le Rapsi par Télémétrie en Wifi
Réception des données de Télémétrie sur un PC par Wifi +Visualisation par graph temps réel
Multi-threader tous les processes sur le Raspi pour faire du temps réel
Envoi des commandes depuis le PC (actuellement c’est par Raspi)
Commandes manuelles par Joystick envoyé par Wifi
Design et fabrication du châssis complet
Ecriture du contrôle du lacet
Design et fabrication des éléments pour la balance 2 Axes
Tâches restantes
Réglage de l’asservissement PID pour un comportement adapté au vol
Commandes manuelles par Joystick envoyé via Xbee
Travail et réglages sur balance 2-axes
Vol en conditions réelles
Améliorations et tâches optionnelles
Décollages et Atterrissages automatiques
Mesure live de la puissance utilisée (pont diviseur de tension et mesure de courant)
Utilisation de Magnétomètres, Sonar (et GPS ?)
Caméra sur tourelle embarquée (+ stream des images en Wifi)
Intégration des calculs d’angle sur une centrale inertielle positionnée hors du Centre de Gravité
Filtre de Kalman
Relais pour connecter et déconnecter la batterie à distance
Commandes manuelles via Télécommande classique (utilisation d’entrées analogiques ?)
Journal de Bord