Table des matières:

Le guide que j'aurais aimé avoir sur la construction d'un drone Arduino: 9 étapes
Le guide que j'aurais aimé avoir sur la construction d'un drone Arduino: 9 étapes

Vidéo: Le guide que j'aurais aimé avoir sur la construction d'un drone Arduino: 9 étapes

Vidéo: Le guide que j'aurais aimé avoir sur la construction d'un drone Arduino: 9 étapes
Vidéo: Concevoir son châssis de Drone (part 2.1, Solidworks) 2024, Décembre
Anonim
Le guide que j'aurais aimé avoir sur la construction d'un drone Arduino
Le guide que j'aurais aimé avoir sur la construction d'un drone Arduino

Ce document est une sorte de documentation à barre oblique "Comment guider" qui passe par le processus qu'il m'a fallu pour comprendre les concepts pour atteindre mon objectif de construire un simple quadricoptère que je pourrais contrôler à partir de mon téléphone portable.

Pour réaliser ce projet, je voulais avoir une idée de ce qu'est réellement un drone, dans mon cas un quadricoptère, alors j'ai commencé à faire des recherches. J'ai regardé beaucoup de vidéos YouTube, lu un tas d'articles et de pages Insructible et c'est ce que j'ai obtenu.

Essentiellement, vous pouvez diviser un drone en deux parties. Je l'ai appelé le « Physique » et le « Contrôleur ». Le Physique est essentiellement tout ce qui a à voir avec la mécanique qui fait voler le drone. Ce sont des choses comme le moteur, le cadre, la batterie, les hélices et tout ce qui donne physiquement au drone la capacité de voler.

Le contrôleur est essentiellement le contrôleur de vol. De quoi contrôler le physique pour que le drone puisse voler comme un tout sans tomber. Essentiellement le microcontrôleur, le logiciel qu'il contient et les capteurs qui l'aident à trianguler ses roulements. Donc, dans l'ensemble, pour avoir un drone, j'avais besoin d'un contrôleur et d'un tas de pièces physiques pour que le contrôleur puisse « contrôler ».

Fournitures

Budget du projet: 250 $

Délai: 2 semaines

Choses à acheter:

  • Cadre physique 20 $
  • Lames 0 $ (livrées avec cadre)
  • Batterie 25 $
  • ESC (Régulateurs de vitesse électroniques) 0 $ (Livré avec les moteurs)
  • Moteurs 70 $

Contrôleur de vol

  • Arduino nano 20 $
  • Câble USB Arduino $2
  • Module Bluetooth (HC-05) 8 $
  • LED de 3 mm et résistances et fils de 330 ohms 13 $
  • GY-87 (Accéléromètre, Gyroscope) 5 $
  • Planche prototype 10 $
  • En-têtes masculins et féminins 5 $

Autre

  • Kit de soudure 10$
  • Multimètre 20 $

Je voulais profiter de la construction de ce projet en tant qu'ingénieur, alors j'ai acheté d'autres trucs dont je n'avais pas besoin.

Total: 208 $

Étape 1: Mon expérience initiale

Après avoir acheté tous mes composants, j'ai tout assemblé, puis j'ai essayé de lancer le drone, en utilisant Multiwii (le logiciel de référence utilisé par beaucoup de la communauté des drones DIY), mais j'ai rapidement réalisé que je ne comprenais pas complètement ce que je faisait parce qu'il y avait beaucoup d'erreurs et je ne savais pas comment les corriger.

Après cela, j'ai décidé de démonter le drone et de comprendre chaque composant pièce par pièce et de le reconstruire de manière à comprendre complètement tout ce qui se passait.

Dans les sections suivantes, je vais passer en revue le processus de reconstituer le puzzle. Avant cela, obtenons un aperçu rapide.

Physique

Pour le physique, on devrait avoir: le châssis, les hélices, la batterie et les escs. Ceux-ci seraient assez faciles à assembler. Pour comprendre ces pièces et celles que vous devriez obtenir, vous pouvez visiter ce lien. Il explique ce que vous devez savoir sur l'achat de chacune des pièces que j'ai énumérées. Regardez aussi cette vidéo Youtube. Cela vous aidera si vous êtes coincé à assembler les pièces ensemble.

Étape 2: Conseils pour assembler et déboguer les pièces physiques

Conseils sur l'assemblage et le débogage des pièces physiques
Conseils sur l'assemblage et le débogage des pièces physiques

Hélices et moteurs

  • Pour vérifier si vos hélices sont dans la bonne orientation (renversées ou non), lorsque vous les faites tourner dans le sens indiqué par les moteurs (la plupart des moteurs ont des flèches indiquant comment elles doivent tourner), vous devriez sentir une brise sous les hélices et non au-dessus.
  • Les vis sur les hélices opposées doivent être de la même couleur.
  • La couleur des hélices adjacentes doit être la même.
  • Assurez-vous également que vous avez disposé les moteurs de manière à ce qu'ils tournent comme dans l'image ci-dessus.
  • Si vous essayez d'inverser la direction d'un moteur, échangez simplement les fils aux extrémités opposées. Cela inversera le sens du moteur.

Batterie et alimentation

  • Si, pour une raison quelconque, des étincelles se produisent et que vous ne pouvez pas comprendre pourquoi, c'est probablement parce que vous avez échangé des points positifs et négatifs.
  • Si vous ne savez pas quand charger vos batteries, vous pouvez utiliser un voltmètre pour vérifier la tension. S'il est inférieur aux spécifications de la batterie, il doit être chargé. Consultez ce lien sur la recharge de vos batteries.
  • La plupart des batteries LIPO ne sont pas livrées avec des chargeurs de batterie. Vous les achetez séparément.

Étape 3: Le contrôleur Arduino

Le contrôleur Arduino
Le contrôleur Arduino

C'est sans doute la partie la plus difficile de tout ce projet. Il est très facile de faire sauter des composants et le débogage peut être extrêmement frustrant si vous ne savez pas ce que vous faites. Également dans ce projet, j'ai contrôlé mon drone en utilisant Bluetooth et une application que je vais vous montrer comment construire. Cela a rendu le projet particulièrement difficile car 99% des tutoriels utilisent des contrôleurs radio (ce n'est pas un fait lol), mais ne vous inquiétez pas, j'ai vécu la frustration pour vous.

Conseils avant de vous lancer dans ce voyage

  • Utilisez une maquette avant de finaliser votre appareil sur un PCB. Cela vous permet d'effectuer des modifications facilement.
  • Si vous avez testé un composant de manière approfondie et qu'il ne fonctionne pas, il ne fonctionne probablement pas !
  • Regardez les tensions qu'un appareil peut supporter avant de le brancher !

    • Arduino peut gérer 6 à 20 V, mais essayez de le plafonner à 12 V pour ne pas le faire exploser. Vous pouvez en savoir plus sur ses spécifications ici.
    • Le HC-05 peut gérer jusqu'à 5 V, mais certaines broches fonctionnent à 3,3 V, alors faites attention à cela. Nous en parlerons plus tard.
    • L'IMU (GY-521, MPU-6050) fonctionne également à 5V.
  • Nous utiliserons RemoteXY pour créer notre application. Si vous souhaitez le construire sur un appareil iOS, vous devez utiliser un autre module Bluetooth (le HM-10). Vous pouvez en savoir plus à ce sujet sur le site Web de RemoteXY.

J'espère que vous avez lu les conseils. Testons maintenant chaque composant qui fera partie du contrôleur séparément.

Étape 4: Le MPU-6050

Le MPU-6050
Le MPU-6050

Cet appareil a un gyroscope et un accéléromètre, il vous indique donc essentiellement l'accélération dans une direction (X, Y, Z) et l'accélération angulaire le long de ces directions.

Pour tester cela, nous pouvons utiliser le didacticiel à ce sujet, nous pouvons utiliser ce didacticiel sur le site Web d'Arduino. Si cela fonctionne, vous devriez obtenir un flux de valeurs d'accéléromètre et de gyroscope qui changent lorsque vous inclinez, faites pivoter et accélérez la configuration. Essayez également de modifier et de manipuler le code pour savoir ce qui se passe.

Étape 5: Le module Bluetooth HC-05

Le module Bluetooth HC-05
Le module Bluetooth HC-05
Le module Bluetooth HC-05
Le module Bluetooth HC-05
Le module Bluetooth HC-05
Le module Bluetooth HC-05

Vous n'êtes pas obligé de faire cette partie mais il est important de pouvoir passer en mode AT (mode paramètres) car vous devrez très probablement modifier l'un des paramètres du module. C'était l'une des parties les plus frustrantes de ce projet. J'ai fait tellement de recherches pour savoir comment mettre mon module en mode AT, car mon appareil ne répondait pas à mes commandes. Il m'a fallu 2 jours pour conclure que mon module était cassé. J'en ai commandé un autre et cela a fonctionné. Consultez ce tutoriel sur l'accès au mode AT.

Le HC-05 est disponible en différents types, certains avec des boutons et d'autres sans et toutes sortes de variables de conception. Une chose qui est constante, c'est qu'ils ont tous une "Pin 34". Découvrez ce tutoriel.

Choses que vous devez savoir

  • Pour passer en mode AT, maintenez simplement 5V sur la broche 34 du module Bluetooth avant de le brancher.
  • Connectez un diviseur de potentiel à la broche RX du module car il fonctionne sur 3,3V. Vous pouvez toujours l'utiliser à 5V, mais cela pourrait faire griller cette broche si quelque chose ne va pas.
  • Si vous utilisez la broche 34 (au lieu du bouton ou d'un autre moyen que vous avez trouvé en ligne), le module définira le débit en bauds du bluetooth à 38400. C'est pourquoi dans le lien du didacticiel ci-dessus, il y a une ligne dans le code qui dit:

BTSerial.begin(38400); // Vitesse par défaut HC-05 dans la commande AT plus

Si le module ne répond toujours pas avec "OK", essayez de changer les broches tx et rx. Ça devrait être:

Bluetooth => Arduino

RXD =>TX1

TDX =>RX0

Si cela ne fonctionne toujours pas, choisissez de remplacer les broches du code par d'autres broches Arduino. Testez, si cela ne fonctionne pas, échangez les broches tx et rx, puis testez à nouveau

SoftwareSerial BTSerial (10, 11); // Réception | Émission

Modifiez la ligne ci-dessus. Vous pouvez essayer RX = 2, TX = 3 ou toute autre combinaison valide. Vous pouvez regarder les numéros de broche Arduino dans l'image ci-dessus.

Étape 6: connexion des pièces

Connexion des pièces
Connexion des pièces

Maintenant que nous sommes sûrs que tout fonctionne, il est temps de commencer à les assembler. Vous pouvez connecter les pièces comme indiqué dans le circuit. J'ai eu ça d'Electronoobs. Il m'a vraiment aidé dans ce projet. Découvrez sa version du projet ici. Si vous suivez ce tutoriel, vous n'avez pas à vous soucier des connexions du récepteur: input_Yaw, input_Pitch, etc. Tout cela sera géré en bluetooth. Connectez également le bluetooth comme nous l'avons fait dans la section précédente. Mes broches tx et rx me donnaient un peu de mal, j'ai donc utilisé celles d'Arduino:

RX comme 2 et TX comme 3, au lieu des broches normales. Ensuite, nous allons écrire une application simple que nous continuerons à améliorer jusqu'à ce que nous ayons le produit final.

Étape 7: La beauté de RemoteXY

La beauté de RemoteXY
La beauté de RemoteXY

Pendant longtemps, j'ai pensé à un moyen simple de créer une application à distance utilisable qui me permettrait de contrôler le drone. La plupart des gens utilisent MIT App Inventor, mais l'interface utilisateur n'est pas aussi jolie que je le souhaiterais et je ne suis pas non plus fan de la programmation illustrée. J'aurais pu le concevoir avec Android Studio, mais ce serait trop de travail. J'ai été extrêmement ravi lorsque j'ai trouvé un didacticiel utilisant RemoteXY. Voici le lien vers le site. Il est extrêmement facile à utiliser et la documentation est très bonne. Nous allons créer une interface utilisateur simple pour notre drone. Vous pouvez personnaliser le vôtre comme vous le souhaitez. Assurez-vous simplement de savoir ce que vous faites. Suivez les instructions ici.

Une fois que vous avez fait cela, nous modifierons le code afin que nous puissions changer la manette des gaz de notre hélicoptère. Ajoutez les lignes qui ont le /**** Stuff que vous devriez faire et pourquoi ***/ à votre code.

S'il ne compile pas, assurez-vous d'avoir téléchargé la bibliothèque. Ouvrez également un exemple de croquis et comparez ce qu'il contient que le vôtre n'a pas.

//////////////////////////////////////////////RemoteXY inclus une bibliothèque // /////////////////////////////////////////////

// RemoteXY sélectionne le mode de connexion et inclut la bibliothèque

#define REMOTEXY_MODE_HC05_SOFTSERIAL

#include #include #include

// Paramètres de connexion RemoteXY

#define REMOTEXY_SERIAL_RX 2 #define REMOTEXY_SERIAL_TX 3 #define REMOTEXY_SERIAL_SPEED 9600

// Hélices

Servo L_F_prop; Servo L_B_prop; Servo R_F_prop; Servo R_B_prop;

// Configuration de RemoteXY

#pragma pack(push, 1) uint8_t RemoteXY_CONF = { 255, 3, 0, 0, 0, 61, 0, 8, 13, 0, 5, 0, 49, 15, 43, 43, 2, 26, 31, 4, 0, 12, 11, 8, 47, 2, 26, 129, 0, 11, 8, 11, 3, 17, 84, 104, 114, 111, 116, 116, 108, 101, 0, 129, 0, 66, 10, 7, 3, 17, 80, 105, 116, 99, 104, 0, 129, 0, 41, 34, 6, 3, 17, 82, 111, 108, 108, 0 }; // cette structure définit toutes les variables de votre interface de contrôle struct {

// variable d'entrée

int8_t Joystick_x; // -100..100 position du joystick en coordonnées x int8_t Joystick_y; // -100..100 position du joystick en coordonnées y int8_t ThrottleSlider; // 0..100 position du curseur

// autre variable

uint8_t connect_flag; // =1 si fil connecté, sinon =0

} RemoteXY;

#pragma pack (pop)

/////////////////////////////////////////////

// END RemoteXY include // ///////////////////////////////////////// /

/**********Ajoutez cette ligne pour conserver la valeur de l'accélérateur **************/

int input_THROTTLE;

void setup() {

RemoteXY_Init ();

/**********Fixez les moteurs aux broches Modifiez les valeurs pour qu'elles correspondent aux vôtres **************/

L_F_prop.attach(4); //moteur avant gauche

L_B_prop.attach(5); //moteur arrière gauche R_F_prop.attach(7); //moteur avant droit R_B_prop.attach(6); //moteur arrière droit

/******************Empêcher esc d'entrer en mode de programmation********************/

L_F_prop.writeMicroseconds(1000); L_B_prop.writeMicroseconds(1000); R_F_prop.writeMicroseconds(1000); R_B_prop.writeMicroseconds(1000); retard(1000);

}

boucle vide() {

RemoteXY_Handler ();

/****** Mappez la valeur d'accélérateur que vous obtenez de l'application à 1000 et 2000 qui sont les valeurs que la plupart des ESC fonctionnent à *********/

input_THROTTLE = map(RemoteXY. ThrottleSlider, 0, 100, 1000, 2000);

L_F_prop.writeMicroseconds(input_THROTTLE);

L_B_prop.writeMicroseconds(input_THROTTLE); R_F_prop.writeMicroseconds(input_THROTTLE); R_B_prop.writeMicroseconds(input_THROTTLE); }

Étape 8: Tester

Si vous avez tout fait correctement, vous devriez pouvoir tester votre hélicoptère en faisant glisser la manette des gaz de haut en bas. Assurez-vous de le faire à l'extérieur. Ne laissez pas non plus les hélices allumées car cela ferait sauter l'hélicoptère. Nous n'avons pas encore écrit le code pour l'équilibrer, donc ce serait une MAUVAISE IDÉE DE TESTER CELA AVEC LES HÉLICES ACTIVÉS ! Je l'ai seulement fait parce que lmao.

La démonstration est juste pour montrer que nous devrions pouvoir contrôler la manette des gaz depuis l'application. Vous remarquerez que les moteurs bégaient. C'est parce que les ESC n'ont pas été calibrés. Pour ce faire, jetez un œil aux instructions sur cette page Github. Lisez les instructions, ouvrez le fichier ESC-Calibration.ino et suivez ces instructions. Si vous voulez comprendre ce qui se passe, consultez ce tutoriel par Electronoobs.

Pendant que vous exécutez le programme, assurez-vous d'attacher le drone avec des cordes car il fonctionnera à plein régime. Assurez-vous également que les hélices ne sont pas allumées. Je n'ai laissé le mien que parce que je suis à moitié fou. NE LAISSER PAS VOS HÉLICES EN MARCHE !!! Cette démonstration est montrée dans la deuxième vidéo.

Étape 9: Je travaille sur le code. Finira l'Instructable dans quelques jours

Je voulais juste ajouter que si vous utilisez ce tutoriel et que vous m'attendez, j'y travaille toujours. C'est juste que d'autres choses dans ma vie sont arrivées sur lesquelles je travaille aussi, mais ne vous inquiétez pas, je les posterai bientôt. Disons au plus tard le 10 août 2019.

Mise à jour du 10 août: Je ne voulais pas vous laisser en suspens. Malheureusement, je n'ai pas eu le temps de travailler sur le projet la semaine dernière. Ont été très occupés avec d'autres choses. Je ne veux pas t'entraîner. J'espère que je vais terminer l'instructable dans un proche avenir. Si vous avez des questions ou avez besoin d'aide, vous pouvez ajouter un commentaire ci-dessous et je vous répondrai.

Conseillé: