Construire un avion RC complet alimenté par Arduino depuis zéro
Présentation
Dans ce tutoriel, je vous montre comment j'ai construit un avion RC basé sur Arduino, et aussi comment le contrôler avec l'émetteur Arduino personnalisé que j'ai construit dans une vidéo précédente.
Vous pouvez regarder la vidéo ci-dessous ou lire le tutoriel écrit.
Vue d'ensemble
L'avion est entièrement fait en polystyrène (Styrofoam). Pour faire les formes, j'ai utilisé ma machine de découpe mousse CNC Arduino que j'ai déjà montrée dans une vidéo précédente. Bien que j'utilise une machine CNC pour construire cet avion RC Arduino, je peux dire que c'est 100 % DIY car la machine CNC est aussi un projet DIY.
De plus, le contrôle de l'avion est aussi 100 % DIY, basé sur Arduino et le module radio NRF24L01.

Avec le joystick droit de l'émetteur, on contrôle les ailerons et la profondeur de l'avion, et avec le joystick gauche, la gouverne de direction et les gaz.

En plus, avec le potentiomètre droit, on peut ajuster la réactivité des commandes, ou réduire la course des servos, et avec le joystick gauche, on peut sous-régler (sub-trim) la gouverne ou ajuster la position neutre du bras de servo.

Oh, et j'ai presque oublié de mentionner la caractéristique principale de cet avion RC Arduino : il vole, donc oui, il peut voler.
Conception de l'avion RC – Modèle 3D
J'ai commencé par concevoir l'avion avec un logiciel de modélisation 3D, Fusion 360 dans ce cas. J'ai fait le design en regardant des avions RC commerciaux et en suivant quelques règles de base pour les paramètres d'avions modèles.

Le point de départ est l'envergure, que j'ai choisie à 80 cm. De là, on obtient la longueur du fuselage, généralement 75 % de l'envergure. Pour le profil d'aile (airfoil), j'ai choisi le profil CLARK Y, un choix populaire pour avions RC.

J'ai téléchargé la forme du profil depuis airfoiltools.com en fichier .SVG et l'ai importé dans Fusion 360. J'ai ajusté la taille pour que la corde de l'aile (longueur en direction du flux) soit environ 1/5 de l'envergure.

Les stabilisateurs horizontal et vertical sont aussi dimensionnés selon ces règles de base. Voici quelques paramètres de base de conception d'avion modèle RC :

Le fuselage sera fait de deux côtés de 10 mm et d'un noyau de 50 mm qui sera creux pour loger l'électronique.
Vous pouvez télécharger le modèle 3D depuis les liens ci-dessus. Il y a deux versions de l'avion. La version 1 est celle montrée ici, et la version 2 a un nez un peu plus petit et le moteur peut être placé plus à l'avant pour améliorer le flux d'air.
Génération de G-codes pour ma machine de découpe mousse CNC DIY
Comme la zone de travail de ma machine de découpe mousse CNC Arduino est limitée à 45 cm, et que le fuselage fait 60 cm de long, j'ai dû le faire en deux parties.

J'ai coupé le fuselage à 34 cm du nez, et fait un nouveau croquis où j'ai projeté la forme et ajouté un point près. Ensuite, dans l'onglet Fabrication de Fusion 360, je peux générer le G-code pour découper les formes.

Ici, d'abord je fais une nouvelle configuration où je sélectionne le croquis comme modèle, le point ajouté comme origine, et j'ajuste les axes X et Y.

Puis je choisis l'opération Contour 2D et je sélectionne ou génère un nouvel outil, avec diamètre de 3 mm, car c'est la taille approximative de la coupe que le fil chaud fait en traversant le polystyrène. On peut aussi régler la vitesse d'avance qui dépend du fil chaud et de la dureté du polystyrène. Je l'ai mise à 150 mm/min.
Dans l'onglet Géométrie, on sélectionne le contour ou la forme à couper. Pour les hauteurs, je les mets toutes à 1 mm car il n'y a pas de mouvement d'axe Z sur ma machine de découpe mousse. Enfin, dans l'onglet Liaison, je sélectionne la position d'entrée comme le bord près du point d'origine.

Avec cela, le parcours d'outil est généré et on peut le voir en cliquant sur Simulation. Le parcours doit être une boucle fermée en un seul passage, et si c'est le cas, on peut enfin générer le G-code. Pour cela, on va dans Post-traitement, on sélectionne le firmware GRBL, le dossier de sortie, on nomme le fichier et on clique sur Poster.

Puis on sauvegarde le fichier, et on voit le G-code dans WordPad ou similaire.

Maintenant qu'on a le fichier G-code, on le charge dans Universal G-code Sender et on l'envoie à la machine CNC pour faire la forme.

On peut noter que le processus que je viens de montrer n'est probablement pas le meilleur ou pas professionnel, mais il fait le travail pour obtenir les G-codes qui marchent avec ma machine de découpe mousse CNC DIY. Pour plus de détails sur cette machine, consultez mon tutoriel dédié, lien dans la description de la vidéo.
Vous pouvez télécharger les fichiers G-code ici :
Comme dit, pour les côtés j'ai utilisé du polystyrène de 1 cm d'épaisseur et pour le milieu du 5 cm.

Pour l'aile, j'ai utilisé du polystyrène de 10 cm d'épaisseur que j'ai découpé environ 30 cm de large car c'est l'envergure max que mon fil chaud peut couper. J'ai mis deux profils d'aile dans un seul fichier G-code et j'en ai coupé plusieurs.

Pour obtenir 80 cm d'envergure, je collerai 3 pièces de 27 cm, et pour les avoir droites, j'ai coupé manuellement les bouts pour qu'ils soient perpendiculaires.
Assemblage de l'avion RC
Voici toutes les pièces en polystyrène que j'ai découpées avec la machine CNC. Trois pièces pour l'avant, trois pour l'arrière et trois pour l'aile. Maintenant, je peux commencer à les assembler.

Je commence par la partie avant. J'utilise un pistolet à colle pour coller les pièces. La colle chaude faisait fondre un peu le polystyrène mais j'ai quand même réussi à les coller.

Une autre bonne façon de coller le polystyrène est avec de l'époxy 5 minutes. Avant de coller l'autre côté, je vais faire le support du moteur. Pour cela, j'utilise un profilé aluminium de 30 mm de large, assez léger. Je coupe le profil à environ 18 cm, marque les trous pour fixer le moteur, et les perce avec un foret de 3 mm. Puis je plie le profil à 90 degrés. Je fixe le moteur au support avec des boulons M3.

Avec cet assemblage, je fais un trou à travers la partie avant du polystyrène. Puis avec un cutter, j'agrandis le trou à 30 mm de diamètre, même que le moteur.
Ensuite, de l'autre côté du support moteur, je fais 4 trous pour fixer le support et aussi pour attacher le train d'atterrissage. Je marque l'emplacement de ces trous sur le fuselage et avec un foret de 4 mm je fais les trous manuellement. Je fais une autre pièce en aluminium d'environ 7 cm avec les mêmes trous, et maintenant je peux l'utiliser pour fixer le support moteur.

Avec des boulons M4, on fixe facilement le support moteur sans abîmer le polystyrène. Mais je le ferai plus tard, donc je les retire et continue à coller l'autre côté. Avec la même méthode, j'ai collé les pièces arrière.
L'étape suivante est l'assemblage final : connecter l'avant et l'arrière du fuselage. Pour rendre la connexion plus solide, j'ajoute de simples piques à brochette entre eux.

Je suggérerais même d'utiliser des baguettes plus grosses car à l'atterrissage, ça peut casser facilement ici. J'ai mis pas mal de colle chaude sur la zone de connexion et serré. Voici, le fuselage est prêt et je trouve qu'il a belle allure.

Ensuite, avec un cutter, je découpe deux pièces de polystyrène de 10 mm pour les stabilisateurs horizontal et vertical. Je biseaute les bords pour qu'ils soient plus beaux et un peu plus aérodynamiques. Les stabilisateurs seront collés directement à l'arrière du fuselage, mais avant, je vais faire leurs surfaces de commande.

Pour cela, je coupe environ 1/3 de leur longueur, ce sera leur surface de commande : profondeur pour le stabilisateur horizontal et gouverne pour le vertical. Pour pouvoir articuler les surfaces de commande, il faut biseauter leur surface de contact. Encore avec le cutter, et il faut un cutter bien aiguisé pour des coupes nettes.
J'ai continué à rendre les stabilisateurs plus aérodynamiques. Pour cela, j'ai utilisé du papier de verre pour arrondir les bords d'attaque. J'ai aussi un peu poncé les bords de fuite.

Comme le polystyrène est fragile, je vais envelopper toute la zone des stabilisateurs et leurs surfaces de commande avec du simple ruban d'emballage. Cela rendra les pièces plus solides et améliorera l'aérodynamique, le ruban étant plus lisse que le polystyrène.

Après l'enveloppement, j'ai coupé le bas de la gouverne à 45 degrés pour faire de la place à la profondeur pour bouger librement.

Maintenant, je fais la charnière, encore avec le ruban d'emballage. Je relie les deux parties avec le ruban, ce qui fait une charnière assez solide.

J'ai répété pour le stabilisateur horizontal. Pour renforcer la charnière, on peut aussi mettre du ruban de l'autre côté. Avec le même ruban, j'ai enveloppé les côtés et les deux stabilisateurs sont faits.

J'ai collé le stabilisateur horizontal au fuselage avec de la colle chaude. Pour fixer le stabilisateur vertical, j'ai d'abord inséré et collé 3 piques à brochette à travers le stabilisateur horizontal et le fuselage. Puis mis de la colle chaude dessus et sur la surface de contact, et appuyé fermement le stabilisateur.

Avec cela, les stabilisateurs sont finis et on passe à l'aile.
Comme dit, l'aile sera en 3 pièces à cause de la zone de travail limitée de ma machine de découpe mousse CNC. Encore des piques à brochette pour renforcer le collage. Pour les aligner précisément, j'utilise une baguette en bois droite sur laquelle je fais glisser les pièces.

Une fois fait, l'aile est assez fragile car longue et fine. Je la renforce donc en ajoutant une baguette en bois. Je coupe la baguette à la taille, marque l'aile où faire une poche pour y loger la baguette. Avec le cutter, je fais lentement et soigneusement la poche. Je mets de la colle chaude et fixe la baguette sans trop déformer le profil d'aile.

Maintenant l'aile est bien plus solide avec la baguette. Mais elle casserait encore facilement si elle heurte le sol, donc je l'enveloppe tout avec le ruban d'emballage comme pour les stabilisateurs. Je commence par l'arrière (bord de fuite) vers l'avant (bord d'attaque).

Ainsi, l'air entrant par l'avant ne risque pas de décoller le ruban. Bien que ce processus semble facile, il peut être agaçant sans mains stables et patience. Je trouve l'aile parfaite. Maintenant elle est plus solide, plus aérodynamique et assez belle.
L'étape suivante : faire les surfaces de commande de l'aile (ailerons). Je les fais de 22 cm de large et environ 1/4 de la corde d'aile. Pour qu'ils bougent librement, je coupe environ 0,5 cm.

Et bien sûr, j'enveloppe tous les bords exposés par la coupe. Ensuite, je biseaute le bas de l'aileron à 45 degrés, et comme montré, je l'articule à l'aile. Pour qu'elle s'adapte au fuselage et qu'on puisse l'attacher facilement, j'ai dû faire une autre encoche au milieu de l'aile.

Ensuite, il faut installer les servomoteurs pour les ailerons. J'utilise des microservos 9g. Je marque leur emplacement et avec le cutter, je fais soigneusement une ouverture dans l'aile pour y loger le servo. Entre-temps, j'ai retiré les pattes de fixation des servos pour simplifier leur forme. Je mets de la colle sur le servo et l'insère dans l'ouverture.

Avec le cutter, je fais une petite rainure du servo au centre de l'aile pour y passer le câblage. Finalement, je recouvre tout avec un morceau de ruban. Je répète pour l'autre côté.
Je continue avec les gouvernes de commande (control horns). Je les fais avec le profilé aluminium utilisé pour le support moteur. Je dessine la forme à main levée pour matcher approximativement la hauteur du bras de servo et dépasser le point de charnière. Je découpe avec une scie à métaux.

J'utilise du fil d'acier de 2 mm comme tringle de commande, donc je fais un trou dans la gouverne avec un foret de 2,5 mm. Je fais une petite rainure dans l'aileron et colle la gouverne. Puis je mesure la longueur de la tringle et la fais en fil d'acier 2 mm avec une pince. Il faut noter que lors de la mesure et l'installation, les servos doivent être en position neutre.

On peut le faire en le mettant manuellement au milieu de sa course, ou en le connectant à un testeur de servo ou avec un Arduino. Je répète pour l'autre côté, et l'aile est maintenant finie.
Ensuite, j'installe les servos pour la gouverne et la profondeur. J'utilise les mêmes microservos 9g, et le processus est le même. Je marque l'emplacement, fais l'ouverture au cutter et colle les deux moteurs. Ils sont côte à côte mais avec leurs axes de sortie de côtés opposés.

Encore une rainure dans le fuselage pour passer le câblage des servos vers le compartiment électronique. Je recouvre les servos avec du ruban et fais des ouvertures pour les bras de servo. Comme montré, je fais les gouvernes et les colle au pistolet à colle. Enfin, je fais les tringles de commande appropriées et les installe.

Ok, ensuite je vais installer deux tiges en bois de 8 mm pour fixer l'aile au fuselage. Je fais les trous manuellement avec un foret de 6 mm. Les tiges doivent dépasser d'environ 1 cm des deux côtés. Je les fixe au fuselage avec de la colle chaude et voici comment ça marche.

On utilise des élastiques pour fixer l'aile au fuselage. Ainsi, l'aile peut être facilement retirée et en cas de crash, les élastiques réduisent considérablement l'impact sur l'aile. En même temps, l'assemblage est bien solide.

Ensuite, je fais le train d'atterrissage. Pour cela, encore le profilé aluminium et des roues en polystyrène. Je les ai faits avec la machine CNC comme montré. Je fais de petites rainures sur le profilé pour le plier facilement. Voici à quoi doit ressembler le train d'atterrissage.

Pour fixer les roues au profilé, j'utilise des boulons M5 et un tube aluminium de 6 mm diamètre intérieur. Le tube est fixé au support par le boulon et l'écrou M5, et sur les côtés, je mets des rondelles M5 pour que la roue tourne librement. Même méthode pour la roue arrière.

Ok, tous les composants sont prêts, regardons maintenant l'électronique de ce projet.
Électronique de l'avion RC Arduino – Schéma de câblage
Comme dit, cet avion RC est entièrement basé sur Arduino, l'émetteur et le récepteur sont des constructions personnalisées basées sur Arduino Pro Mini.

J'ai déjà des tutoriels détaillés sur la construction et le fonctionnement de l'émetteur et du récepteur, consultez-les pour plus de détails. Ici, j'expliquerai le schéma de câblage et le principe de fonctionnement de cet avion RC Arduino et comment tout connecter.

Vous pouvez vous procurer les composants nécessaires via les liens ci-dessous :
- NRF24L01 + PA + LNA …………..…..…….
- Arduino Pro Mini………………..……….…..
- Servomoteur ……………………………………
- Moteur Brushless ………………………..……
- ESC 30A ……………………………….…………
- Batterie Li-Po ……………………..……………
La communication radio repose sur les modules NRF24L01. Bien que ça puisse sembler compliqué, cet émetteur Arduino DIY est en fait assez simple. Il a plusieurs commandes : joysticks, potentiomètres et boutons, et envoie constamment leurs données au récepteur. Le récepteur reçoit ces données sans fil via le module NRF24L01 et sort les commandes appropriées vers les servos et le moteur brushless pour contrôler l'avion.
Contrôler servos et moteurs brushless avec Arduino est aussi simple, donc ce concept d'avion RC Arduino n'est pas si dur à comprendre. Le moteur brushless que j'utilise a un Kv de 1000 et nécessite un ESC 30A. L'ESC pilote le moteur et fournit aussi l'alimentation à l'Arduino et aux servos via son circuit BEC (Battery Eliminator Circuit) qui sort 5V. L'alimentation de l'ESC et du moteur vient d'une batterie Li-Po 3S.
J'ai ajouté une fonctionnalité : une LED simple pour indiquer si la batterie est vide. Avec un diviseur de tension simple, on abaisse les 12V de la Li-Po à environ 5V pour les lire sur l'entrée analogique de l'Arduino et savoir quand la batterie descend sous 11V. Le récepteur a encore plusieurs canaux libres, donc on peut ajouter plus de fonctions : lumières stroboscopiques, volets, mécanismes de largage, etc.
Finalisation de l'assemblage
Néanmoins, finissons l'assemblage. J'ai connecté tout comme expliqué dans le schéma. Sur le canal 1 : gouverne, canal 2 : profondeur, canaux 3 et 4 : ailerons, canal 6 : LED. J'ai collé la LED d'un côté et l'interrupteur d'alimentation de l'autre.

On voit comment le train d'atterrissage est attaché à l'avion avec les deux boulons du support moteur. En quelques mots, j'ai inséré le moteur avec le support par l'ouverture du haut, boulonné en place comme montré, et attaché le train d'atterrissage. En insérant le support, j'ai aussi mis des élastiques pour tenir la batterie en place.

Une fois la batterie connectée à l'ESC, j'ai tout coincé dedans. Finalement, avec les rallonges, je connecte facilement les ailerons de l'aile au récepteur et fixe l'aile au fuselage.

Sur l'avant, j'attache l'hélice au moteur et il reste à vérifier le centrage (CG) de l'avion.

Le CG est probablement le facteur le plus important pour savoir si l'avion volera bien ou volera du tout.

L'avion était initialement trop lourd à l'arrière, alors j'ai avancé la batterie et ajouté du poids (boulons/écrous) et il s'est équilibré.

C'est fait, notre avion RC Arduino est prêt et on peut aller dehors l'essayer.
Test de l'avion RC Arduino
Le premier essai (vol inaugural) n'était pas terrible. Surtout après avoir vu le résultat du crash.

Ma conclusion : l'avion était encore trop lourd à l'arrière et le moteur semblait manquer de puissance. N'ayant pas d'autre moteur ou hélice, j'ai modifié le nez pour le rendre plus petit, avancé le moteur pour un meilleur flux d'air et arrondi les bords avant. Pour la structure, je l'ai renforcée avec des baguettes en bois et profilés aluminium collés à l'intérieur du fuselage.

Au fond du compartiment électronique, j'ai fait deux trous : un pour l'air entrant par l'avant, et l'autre pour sortir l'antenne du NRF24L01 pour meilleure portée.
Essai n°2. Presque pareil, mais on sentait un meilleur flux d'air ou puissance.

Le fuselage a cassé encore, ce qui montre que ce polystyrène est trop faible. J'ai refait un fuselage, cette fois avec un peu de ruban adhésif (duct tape) pour le renforcer.
Essai n°3. Prometteur mais le terrain de décollage n'est pas bon. L'avion partait à droite, heurtait le bord de la route et cassait.
Je l'ai réparé et cette fois enveloppé presque tout le fuselage avec du ruban adhésif et ruban d'emballage. J'aurais dû le faire plus tôt car ça a donné la bonne solidité au fuselage et il n'a plus cassé même après plusieurs crashes.

Le problème maintenant : après plusieurs crashes, j'ai cassé mes 4 hélices, donc j'utilise une hélice collée. Elle s'est déchirée au décollage.
J'ai essayé avec une autre hélice collée faite de deux hélices déjà cassées et cette fois j'ai eu de la chance : l'avion a enfin décollé correctement.

La chance n'a pas duré, l'hélice a cassé à nouveau en vol.

Néanmoins, comme c'était ma première expérience de vol RC, je considère ce projet réussi car j'ai prouvé le concept d'un système entièrement Arduino pour contrôler des avions RC.
On peut noter du vol que les commandes de l'émetteur sont trop brutales. C'est parce que les joysticks ne sont pas bons pour ça : petite amplitude et mauvaise réponse.

Pour résoudre, j'ai ajouté une fonction dans le programme pour contrôler la réactivité avec le potentiomètre droit de l'émetteur. Aussi, une fonction pour trimmer la gouverne avec le potentiomètre gauche.
Code de l'avion RC Arduino
Enfin, regardons le code Arduino de cet avion RC et finissons ce projet. Le code est exactement le même qu'expliqué dans le tutoriel précédent, pour contrôler servos et moteurs brushless avec les modules NRF24L01.
Voici le code complet pour ce projet d'avion RC Arduino :
/* Arduino RC Airplane == Receiver Code = by Dejan, www.HowToMechatronics.com Library: TMRh20/RF24, https://github.com/tmrh20/RF24/ */ #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> #include <Servo.h> #define led 9 RF24 radio(3, 2); // nRF24L01 (CE, CSN) const byte address[6] = "00001"; unsigned long lastReceiveTime = 0; unsigned long currentTime = 0; Servo throttle; // create servo object to control the ESC Servo rudderServo; Servo elevatorServo; Servo aileron1Servo; Servo aileron2Servo; int throttleValue, rudderValue, elevatorValue, aileron1Value, aileron2Value, travelAdjust; // Max size of this struct is 32 bytes - NRF24L01 buffer limit struct Data_Package { byte j1PotX; byte j1PotY; byte j1Button; byte j2PotX; byte j2PotY; byte j2Button; byte pot1; byte pot2; byte tSwitch1; byte tSwitch2; byte button1; byte button2; byte button3; byte button4; }; Data_Package data; //Create a variable with the above structure void setup() { Serial.begin(9600); radio.begin(); radio.openReadingPipe(0, address); radio.setAutoAck(false); radio.setDataRate(RF24_250KBPS); radio.setPALevel(RF24_PA_MAX); radio.startListening(); // Set the module as receiver resetData(); throttle.attach(10); rudderServo.attach(4); // CH1 elevatorServo.attach(5); // CH2 aileron1Servo.attach(6); // CH3 aileron2Servo.attach(7); // CH4 pinMode(led, OUTPUT); // CH6 } void loop() { // Check whether we keep receving data, or we have a connection between the two modules currentTime = millis(); if ( currentTime - lastReceiveTime > 1000 ) { // If current time is more then 1 second since we have recived the last data, that means we have lost connection resetData(); // If connection is lost, reset the data. It prevents unwanted behavior, for example if a drone jas a throttle up, if we lose connection it can keep flying away if we dont reset the function } // Check whether there is data to be received if (radio.available()) { radio.read(&data, sizeof(Data_Package)); // Read the whole data and store it into the 'data' structure lastReceiveTime = millis(); // At this moment we have received the data } // Controlling throttle - brushless motor with ESC throttleValue = constrain(data.j1PotY, 80, 255); // Joysticks stays in middle. So we only need values the upper values from 130 to 255 throttleValue = map(throttleValue, 80, 255, 1000, 2000); throttle.writeMicroseconds(throttleValue); // Adjusting the servos responsiveness travelAdjust = map(data.pot2, 0, 255, 0, 25); // Elevator control elevatorValue = map(data.j2PotY, 0, 255, (85 - travelAdjust), (35 + travelAdjust)); elevatorServo.write(elevatorValue); // Ailerons control aileron1Value = map(data.j2PotX, 0, 255, (10 + travelAdjust), (80 - travelAdjust)); aileron1Servo.write(aileron1Value); aileron2Servo.write(aileron1Value); // Rudder trimming function if (data.j1PotX > 127) { rudderValue = data.pot1 + (data.j1PotX - 127); } if (data.j1PotX < 127) { rudderValue = data.pot1 - (127 - data.j1PotX); } // Rudder control rudderValue = map(rudderValue, 0, 255, (10 + travelAdjust), (90 - travelAdjust)); rudderServo.write(rudderValue); // Monitor the battery voltage int sensorValue = analogRead(A3); float voltage = sensorValue * (5.00 / 1023.00) * 3; // Convert the reading values from 5v to suitable 12V i // If voltage is below 11V turn on the LED if (voltage < 11) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } } void resetData() { // Reset the values when there is no radio connection - Set initial default values data.j1PotX = 127; data.j1PotY = 80; // Motors stops // the central point of the joystick is not starting point for the throttle, its at value of 80 instead of 127 data.j2PotX = 127; data.j2PotY = 127; data.j1Button = 1; data.j2Button = 1; data.pot1 = 1; data.pot2 = 1; data.tSwitch1 = 1; data.tSwitch2 = 1; data.button1 = 1; data.button2 = 1; data.button3 = 1; data.button4 = 1; }Langage : Arduino (arduino)
Description : Je vais expliquer rapidement les fonctions principales du code, pour tous les détails consultez le tutoriel précédent. Après avoir reçu les données de l'émetteur, on utilise l'axe Y du Joystick 1 pour contrôler les gaz. On convertit les valeurs 80-255 de l'émetteur en 1000-2000 pour contrôler le moteur brushless.
Pour la profondeur, on utilise l'axe Y du Joystick 2 qu'on convertit en valeurs 85-35. Ces valeurs définissent directement la position du servo en degrés. À côté, on a la variable travelAdjust qui dépend du potentiomètre droit. On l'utilise pour diminuer la position ou le mouvement des servos bien que les joysticks aillent au max.
Même principe pour les ailerons et la gouverne. En plus, on utilise les données du potentiomètre gauche pour ajuster le point neutre de la gouverne.
Enfin, avec analogRead() et un peu de math, on contrôle la LED d'indication de batterie.
Voilà. J'aimerais avoir vos avis sur ce projet dans les commentaires, surtout de ceux qui ont de l'expérience en construction et vol RC. Pour les débutants qui veulent s'y mettre, je suggère la chaîne YouTube FliteTest, une ressource incroyable pour apprendre ce monde RC. Je mettrai le lien dans la description.
J'espère que vous avez apprécié ce projet et appris quelque chose. N'hésitez pas à poser vos questions dans les commentaires et n'oubliez pas de consulter ma collection de projets Arduino.
Processus de fabrication
- Construisez votre propre LUMAZOID : Visualiseur musical DIY Arduino
- Construire sa propre machine à écrire les devoirs à la maison (Traceur à stylo)
- Construire une console de contrôle Photoshop DIY avec Arduino Nano RP2040
- Construire un Voltmètre Intelligent avec Arduino et Smartphone – Projet DIY Facile
- Construisez un skateboard VR DIY avec Arduino, Google Cardboard et Bluetooth
- Oscilloscope DIY Arduino Nano (10 Hz – 50 kHz) avec écran LCD 128×64
- Dispositif de Traitement Radionique EMR DIY avec Arduino Nano
- Simulateur de Course 2 Axes DIY : Arduino Nano & Servos SG90
- Kit Bras Robotique 3 Axes Programmable – Contrôle Local & Bluetooth avec Arduino