Table des matières:

Radio bidirectionnelle NRF24 pour la télémétrie : 9 étapes (avec photos)
Radio bidirectionnelle NRF24 pour la télémétrie : 9 étapes (avec photos)

Vidéo: Radio bidirectionnelle NRF24 pour la télémétrie : 9 étapes (avec photos)

Vidéo: Radio bidirectionnelle NRF24 pour la télémétrie : 9 étapes (avec photos)
Vidéo: [ Arduino ]Comment utiliser les modules nRF24L01 2024, Juillet
Anonim
Radio bidirectionnelle NRF24 pour la télémétrie
Radio bidirectionnelle NRF24 pour la télémétrie

Salut les gars, mon nom est Pedro Castelani et je vous apporte mon premier instructable: construire une radio bidirectionnelle avec arduino pour, eh bien, tout ce dont vous en avez besoin.

Dans ce projet, nous réaliserons deux circuits séparés qui serviront à la fois de récepteur et d'émetteur. Les composants les plus importants sont deux cartes arduino (toutes fonctionnent) et deux modules émetteurs-récepteurs nrf24. Dans mon cas, je contrôle un servo avec un potentiomètre de l'autre arduino et renvoie les tensions d'une batterie lipo à deux cellules au premier.

J'ai l'intention de l'utiliser comme complément pour mon drone, qui ne possède pas de télémétrie ni de contrôle de la nacelle asservie. Vous pouvez cependant l'utiliser pour d'autres choses, telles que la construction de votre propre quadcopter, avion, voiture rc, etc. À partir du code fourni, vous pouvez également apporter les modifications que vous souhaitez en fonction de vos besoins. Je vais aussi essayer d'expliquer comment le modifier correctement (ce qui m'a pris un certain temps à apprendre par moi-même, car j'étais habitué à un autre type d'utilisation de la puce nrf24).

Étape 1: Matériaux

Matériaux
Matériaux
Matériaux
Matériaux
Matériaux
Matériaux

Pour commencer notre projet, nous devons connaître toutes les pièces nécessaires. Vous trouverez ci-dessous une liste des éléments de base nécessaires. J'ai acheté la plupart d'entre eux dans un magasin d'électronique local où j'habite, je ne pourrai donc vous recommander aucun endroit pour les acheter. Vous pouvez essayer Amazon, ou n'importe quel autre endroit. Je ne dis pas que vous devriez les commander là-bas, mais c'est juste une suggestion.

  1. Deux cartes Arduino (tout le monde devrait travailler. J'ai deux arduino pro mini, que j'aime beaucoup car elles ont 13 broches numériques et 8 analogiques, alors que l'Uno n'en a que 6 analogiques).
  2. Deux modules Nrf24. Il y en a avec des antennes externes qui ont une plus grande portée de transmission. Choisissez ceux que vous aimez le plus.
  3. Câbles de pontage Femelle-Femelle et Femelle-Mâle.
  4. Planche de prototypage.
  5. Programmeur Arduino (pour arduino pro mini, si vous en avez un avec une connexion USB, vous n'en aurez pas besoin).
  6. IDE Arduino (logiciel). Téléchargez à partir d'ici.
  7. Dans mon cas, j'ai également utilisé:
  • Servo. N'importe qui que vous pouvez obtenir. J'aime le SG90, un petit conçu pour arduino.
  • Potentiomètre (entre 10k et 20k ohms). Peut être acheté dans un magasin d'électronique local ou vous pouvez utiliser le joystick conçu pour arduino. Il y a quelques images de ceux que j'ai. J'en ai aussi un d'un contrôleur rc de drone cassé, juste pour vous donner quelques idées
  • 4 résistances normales égales. J'en ai utilisé 10 000 que j'ai eu de la maison de mon grand-père. Je les utilise comme diviseurs de tension.
  • Petit panneau perforé en cuivre (que j'ai aussi obtenu de mon grand-père) pour souder les résistances ensemble.
  • Épingles. Utilisé pour connecter facilement les câbles de démarrage de l'arduino aux résistances.
  • Batterie lipo 2s. Je l'utilise pour alimenter un de mes arduinos. Les résistances y sont connectées et lisent ses tensions. J'ai l'intention de connecter mon arduino à la batterie 2s de mon drone, car il n'aura pas besoin d'une source d'alimentation externe et en même temps il me dit combien de batterie il reste.
  • Fer à souder et soudure. Nécessaire pour souder les résistances, le perfboard et les broches ensemble.

Étape 2: Fonction et code

Fonction et code
Fonction et code

Une fois que tous les matériaux ont été mentionnés, commençons à parler de la fonction des modules.

Comment ça marche: Appelons un arduino "A" et l'autre "B". Dans mon cas, après avoir programmé les deux, je les ai connectés à leur puce radio correspondante et j'ai ajouté le potentiomètre à l'arduino A et les résistances et le servo à l'arduino B. Le module A envoie des valeurs à B et déplace le servo. B lit les tensions de la batterie 2s et les renvoie à A. Puis tout le cercle recommence. Puisque A reçoit des valeurs qui ne sont pas exprimées mécaniquement, il est connecté au programmeur, à travers lequel nous pouvons les lire avec un moniteur série (inclus dans l'IDE Arduino)

Code: j'appelle le sketch pour arduino A (connecté avec le programmeur et le potentiomètre) TwoWayRadio_1, et le sketch pour arduino B TwoWayRadio_2WithServo

TwoWayRadio_1 et TwoWayRadio_2WithServo se trouvent juste en dessous de ce paragraphe. Il y a une explication à l'intérieur de chaque code juste pour que tout soit plus facile à comprendre.

Étape 3: Modules de soudure: diviseur de tension et potentiomètre

Modules de soudage: diviseur de tension et potentiomètre
Modules de soudage: diviseur de tension et potentiomètre
Modules de soudage: diviseur de tension et potentiomètre
Modules de soudage: diviseur de tension et potentiomètre
Modules de soudage: diviseur de tension et potentiomètre
Modules de soudage: diviseur de tension et potentiomètre
Modules de soudage: diviseur de tension et potentiomètre
Modules de soudage: diviseur de tension et potentiomètre

Cette étape est facultative, car vous voudrez peut-être simplement utiliser le potentiomètre-joystick conçu spécifiquement pour arduino et utiliser un autre module au lieu du diviseur de tension. J'ai cependant tout prévu (codes inclus) pour ces modules.

Potentiomètre:

Cette partie est à peu près la plus facile de l'étape de soudure. Vous n'aurez plus qu'à souder quelques câbles de démarrage à votre potentiomètre. Si vous le souhaitez, vous pouvez d'abord souder le potentiomètre au panneau perforé, puis souder certaines des broches. Lorsque vous devez l'utiliser, connectez simplement les câbles de démarrage à l'arduino, puis aux broches du panneau perforé. Lorsqu'ils ne sont pas utilisés, vous pouvez retirer les câbles et les utiliser pour un autre projet. Si toutefois vous faites comme moi, vous pouvez laisser le potentiomètre soudé directement sur les câbles

  • Si vous faites comme moi, procurez-vous trois câbles de démarrage femelle-femelle, coupez l'un des embouts et retirez l'isolant là-bas, en laissant un petit morceau de câblage en cuivre sur chaque fil.
  • Faites chauffer votre fer à souder et soudez les cavaliers modifiés aux broches des potentiomètres. Si vous le pouvez, essayez d'obtenir différentes couleurs afin que vous puissiez vous rappeler laquelle est vcc, gnd et celle du "signal" (celle du milieu). Connectez ces câbles aux broches analogiques correspondantes sur l'arduino. Il y a quelques images au début de l'étape sur la façon dont elle s'est terminée. Le potentiomètre n'est pas un potentiomètre régulier, c'est en fait une petite roue qui avait cinq broches. Il m'a fallu du temps pour savoir lequel était lequel. Essayez de le faire plus facilement et utilisez un potentiomètre ordinaire comme indiqué dans l'étape MATÉRIAUX.
  • Si vous le soudez à un panneau perforé, récupérez le potentiomètre et le panneau perforé et soudez-les avec votre fer à souder.
  • Obtenez les broches (trois) et placez-les de la manière la plus pratique. Utilisez de la soudure pour établir une connexion entre chaque broche et les broches du potentiomètre. Ne faites pas de connexion entre plus de deux broches ou cela ne fonctionnera pas (cela agira comme un court-circuit).
  • Procurez-vous des cavaliers femelle-femelle ou femelle-mâle et connectez-les de votre arduino à votre nouveau module de potentiomètre (rappelez-vous lequel est lequel).

2. Diviseur de tension:

  • Cette partie est un peu plus compliquée. Vous aurez besoin des quatre résistances, des cinq broches et du perfboard. J'ai conçu le code pour être utilisé pour une batterie 2s (deux cellules), mais vous pouvez également l'utiliser pour un 1s en changeant un peu le sketch arduino et le matériel. J'ai inclus des photos de deux diviseurs de tension que j'ai fabriqués, l'un avec seulement 2 résistances (pour les batteries 1s) et l'autre avec quatre (vous l'avez deviné: les batteries 2s).
  • Commençons par le 2s. Je n'ai pas d'images du processus de construction depuis que j'ai commencé à utiliser cette instructable un bon moment après avoir fini de la souder. J'inclus des images du résultat final, je vais donc essayer d'être aussi clair que possible.
  • Commencez par obtenir le perfboard et 5 broches. Soudez-les près du côté et ne les laissez pas se toucher.
  • Soudez les résistances comme indiqué sur la dernière image au début de l'étape (le petit schéma de circuit). Les connexions entre chaque résistance et broche sont faites avec de la soudure. Essayez d'occuper le moins d'espace possible.
  • Lorsque vous avez terminé, cela devrait ressembler aux images du diviseur de tension fini que j'ai posté ci-dessus.
  • Le diviseur de tension 1s est fondamentalement le même, à l'exception du fait que vous n'utilisez que trois broches et deux résistances. J'ai inclus des images de son apparence une fois terminé. Il suffit de regarder le schéma du 2s et de l'imaginer sans le fil de signal 1, le fil du milieu, et les résistances r2 et r3 et là, vous l'avez !
  • Donc, si vous voulez un diviseur de tension 1s, cela pourrait être un peu plus compliqué que d'utiliser simplement un diviseur 2s.

Étape 4: Programmation de votre Arduino

Programmation de votre Arduino
Programmation de votre Arduino
  1. Nous avons presque fini !
  2. Après avoir téléchargé le logiciel Arduino IDE à partir du site lié à l'étape MATÉRIAUX, téléchargez les croquis à partir de l'étape FONCTION ET CODE.
  3. Ensuite, ouvrez-les dans l'IDE Arduino.
  4. Ouvrez "Outils" dans l'un des deux onglets et cliquez sur "Tableaux". Choisissez votre planche dans la liste. Cliquez sur "Processor" puis "Programmer", en sélectionnant chacun en fonction de votre carte. Revenez ensuite au croquis. Il est assez pratique de regarder les informations de votre planche sur Internet. Il suffit de rechercher le nom et de voir les spécifications.
  5. Cliquez sur « esquisser » (en haut), puis « inclure la bibliothèque », puis « gérer les bibliothèques ». Une petite fenêtre devrait s'ouvrir au centre de l'écran. Entrez dans l'option de recherche "rf24". Téléchargez la bibliothèque de votre choix. Il faudra pouvoir télécharger le code sur la carte arduino.
  6. Pour vous en assurer, cliquez sur le symbole "Tick" (en haut à gauche) pour vérifier qu'il n'y a pas d'erreurs. Ensuite, procédez à son téléchargement en appuyant sur la flèche pointant vers la droite, à côté du symbole « Tick ».
  7. Si votre carte est une Pro Mini, je vous expliquerai dans quelques instants comment tout brancher. Si ce n'est pas le cas, téléchargez-le et, une fois la programmation des deux arduinos terminée, passez à l'étape suivante, après avoir lu l'avertissement ci-dessous.
  8. Puisque vous avez deux cartes, RAPPELEZ-VOUS avec quel code chacune a été programmée, pour éviter tout problème futur.
  9. Donc, si vous avez un Pro Mini, vous aurez besoin d'un programmeur. Il existe deux types de programmeurs: les 5 broches et les 6 broches. Je vais me concentrer sur les 5 broches car ce sont celles que j'ai. Les connexions sont les suivantes (la première broche provient du programmeur, puis de l'arduino): Gnd--Gnd; 5v-Vcc (sauf si votre Pro Mini est un 3.3v, auquel cas c'est 3.3v-Vcc); Rxd--Txo; Txd--Rxi. J'ai inclus une image de la carte et du programmeur, juste au cas où vous auriez besoin de vérifier.
  10. Connectez votre arduino au programmeur et le programmeur à votre ordinateur. Ouvrez l'IDE et cliquez sur le bouton de téléchargement. Si vous regardez en bas à gauche de l'écran, vous verrez un message qui dit "compilation". Au moment où ce message se transforme en "téléchargement", appuyez sur le bouton de réinitialisation de l'arduino Pro Mini. Au bout d'un moment, l'esquisse se terminera et un message apparaîtra indiquant « Téléchargement terminé ». Une fois que cela se produit, vous avez terminé et prêt à passer à l'étape suivante.

Étape 5: Tout connecter

Tout connecter
Tout connecter
Tout connecter
Tout connecter
Tout connecter
Tout connecter
Tout connecter
Tout connecter
  1. Après avoir programmé les deux arduinos, nous devons tout connecter pour que cela fonctionne. Ici, nous allons avoir besoin de tout ce qui a été mentionné auparavant: les arduinos, les modules nrf24, les câbles, le servo, le programmateur, le diviseur de tension, le potentiomètre, etc.
  2. Nous allons d'abord connecter l'arduino qui fonctionne avec le programmeur. Au début de l'étape se trouvent les images des connexions du nrf24. La broche irq, qui est censée aller à la broche 8 de l'arduino, n'est pas du tout connectée. Le reste est comme dans l'image pour les deux arduinos (vous pouvez lire les notes à l'intérieur des images pour plus d'informations)
  3. Le Vcc pour la radio peut être connecté à 3.3 ou 5v. Parfois, cela ne fonctionne qu'avec l'un d'entre eux. Essayez avec 3.3 puis 5 si cela ne fonctionne pas. Pour 3.3, utilisez la broche 3.3v du programmateur. Je devais le faire, comme vous le verrez sur les images du produit fini.
  4. Connectez le programmeur à l'arduino comme indiqué à l'étape précédente.
  5. Connectez le câble "signal" du potentiomètre à la broche analogique A0.
  6. Connectez le "positif" du potentiomètre à Vcc (seulement 5v, pas 3.3) et "négatif" à Gnd.
  7. Passez à l'autre arduino.
  8. Branchez la radio comme dit précédemment, selon les images.
  9. Connectez le câble de signal du servo (orange-jaune-blanc. Vérifiez les spécifications du servo) à la broche numérique 2, et sa masse à la masse de l'arduino, et son positif au Vcc de l'arduino.
  10. Connectez le câble de signal 1 du diviseur de tension à la broche A0 et le fil de signal 2 à la broche A1.
  11. Connectez, à l'aide de la protoboard, le câble négatif du diviseur de tension, la masse de l'arduino et la masse de la batterie (câble noir sur la prise jst).
  12. Connectez le "câble du milieu" du diviseur de tension à celui du milieu de la batterie, entre les câbles rouge et noir de la prise jst (couleur blanche).
  13. Connectez le câble "positif" du diviseur de tension à la borne positive de la batterie et au Raw de l'arduino. Ne vous connectez pas directement à Vcc, car cette broche est spécifiquement pour 5v. La broche brute utilise toute tension supérieure à 3,3 ou 5v à 12v et la régule Les broches Vcc deviennent alors des sorties en 5v.

Vous avez presque terminé ! Vos produits finis doivent ressembler aux images ci-dessus. Revérifiez chaque connexion pour éviter les courts-circuits.

Étape 6: mettez votre projet sous tension

  • Votre arduino avec le servo a été alimenté à la dernière étape lorsque vous avez connecté la batterie à l'ensemble du circuit. Donc, il vous suffit de connecter l'autre arduino à un port usb et le tour est joué !
  • Déplacez le potentiomètre et vous devriez voir comment le servo se déplace également. Dans mon cas, le servo est attaché à un cardan de caméra 1 axe, ce qui limite l'angle, j'ai donc dû ajuster les paramètres. Vous trouverez cela dans le code, de toute façon.
  • Pour voir les tensions, une fois que vous avez connecté le programmateur à l'ordinateur, ouvrez le logiciel arduino et appuyez sur "Ctrl+Shift+m". Une fenêtre indiquant "Serial Monitor" s'ouvrira. Au bas de cette fenêtre se trouve une option qui lit "(nombre) baud". Cliquez dessus et sélectionnez "9600". Fermez le moniteur et ouvrez-le à nouveau en appuyant sur les mêmes touches et vous devriez commencer à voir beaucoup de valeurs entrer. Vous ne pourrez pas voir quelles sont ces valeurs à cause de la vitesse à laquelle elles arrivent, mais si vous déconnectez le programmeur, ils s'arrêteront et vous pourrez les lire. J'essaie d'obtenir quelque chose avec lequel les représenter automatiquement pour afficher les tensions ou les représenter avec des LED, mais cela est toujours en cours.
  • Même si vous ne voyez peut-être pas clairement les valeurs, car elles passent si vite, sachez simplement que cela fonctionne enfin et que vous pouvez le modifier pour répondre à vos besoins !

Étape 7: Démo

Eh bien, voici la vidéo de moi en train de l'allumer et de l'utiliser un peu pour vous montrer comment cela devrait fonctionner.

Étape 8: Plus d'idées sur la façon d'utiliser ce projet

Plus d'idées sur la façon d'utiliser ce projet
Plus d'idées sur la façon d'utiliser ce projet
Plus d'idées sur la façon d'utiliser ce projet
Plus d'idées sur la façon d'utiliser ce projet
Plus d'idées sur la façon d'utiliser ce projet
Plus d'idées sur la façon d'utiliser ce projet

Voici quelques idées que vous pouvez construire en utilisant ceci comme base. Dites-moi si vous en faites un ou si vous essayez et ne pouvez pas pour que je puisse vous aider !

  • Au lieu de lire les tensions, modifiez le code pour qu'il renvoie la température, la pression, la hauteur, etc. J'ai trouvé la puce BMP180 assez utile pour cela.
  • Mesurez les distances avec le module HC-SR04 et renvoyez-les au premier arduino. Utilisez le servo pour pointer le capteur où vous voulez.
  • Ajoutez un autre canal d'asservissement pour déplacer une caméra vers le haut et latéralement; par exemple, sur une voiture rc.
  • Ajoutez trois autres canaux d'asservissement (ou plus !) et créez votre propre émetteur et récepteur rc pour un quadcopter, un avion, un hélicoptère, une voiture rc, etc.
  • Changez le servo pour un projecteur et ajoutez-le à votre drone ! Vous pourrez également contrôler l'intensité de la lumière (peut nécessiter des transistors et un changement de code)
  • Au lieu de lire les tensions sur un ordinateur, faites preuve de créativité et ajoutez un module LCD, ou vous pouvez créer une carte à 6 LED (deux vertes, deux jaunes et deux rouges) qui les éteindra une par une au fur et à mesure que la batterie baisse et commencera à clignoter lorsque le niveau de la batterie descend en dessous de la tension choisie. J'ai fait ce petit tableau et posté une image au début de l'étape.

Juste pour que tout soit clair, si vous envisagez de réaliser l'un de ces projets, gardez à l'esprit que vous devrez modifier les deux codes et peut-être certaines connexions. S'il vous plaît essayez de vous rappeler de ne pas faire frire votre planche en faisant quelque chose de stupide.

Si vous avez d'autres idées ou avez besoin d'aide pour mener à bien l'un de ces projets, n'hésitez pas à poster dans la section questions !

Étape 9: Dépannage

Dépannage
Dépannage

Pour dire la vérité, la plupart des problèmes que j'ai rencontrés jusqu'à présent étaient liés à la partie croquis, que vous avez déjà résolue. Je vais essayer de vous faire part d'autant de problèmes que possible afin de vous aider le plus possible.

Tout d'abord, si vous essayez de télécharger le croquis et que vous ne pouvez pas, essayez ceci:

Assurez-vous d'avoir téléchargé les bibliothèques nécessaires (et les bonnes !).

Assurez-vous d'avoir choisi la bonne carte, le bon processeur et le bon programmeur.

Assurez-vous que la connexion entre le PC et le programmeur et le programmeur et l'arduino est bonne.

Si vous utilisez un pro mini, essayez d'appuyer sur le bouton de réinitialisation dès que possible après l'apparition du message « téléchargement ».

Toutes ces choses sont évoquées dans l'étape PROGRAMMATION DE VOTRE ARDUINO.

Deuxièmement, vérifiez toutes les connexions entre tout:

Si votre arduino ne s'allume pas, il s'agit clairement d'un problème de tension. Vérifiez si les câbles ne sont pas correctement connectés et s'il y a un court-circuit.

S'il s'allume mais ne fonctionne pas, assurez-vous que toutes les connexions sont là où elles devraient être, que l'arduino programmé pour être connecté au servo et au diviseur de tension est vraiment connecté entre eux (en d'autres termes, assurez-vous de ne pas mélanger vers le haut), essayez d'appuyer sur le bouton de réinitialisation sur les deux et voyez ce qui se passe. Dans des cas extrêmement rares, tout le blâme peut être sur le module NRF24. J'en ai trouvé un qui ne fonctionne qu'en 5 volts et un autre qui ne fonctionne qu'en 3.3v. Vérifiez si cela résout quelque chose. Il m'est également arrivé qu'un seul arduino fonctionnait avec la radio 3.3v et l'autre ne fonctionnait qu'avec la radio 5v. Surprenant, n'est-ce pas ?

Troisièmement, si vous pouvez déplacer le servo mais que les tensions sont fausses, vérifiez que les connexions au diviseur de tension sont comme sur le schéma de l'étape 3 et la connexion à l'arduino. Si par contre vous obtenez les tensions mais que vous ne pouvez pas déplacer le servo correctement, vérifiez le potentiomètre et ses connexions, la connexion du servo à la broche numérique et aux Vcc et Gnd, et si le servo est coincé, cassé ou en panne un court-circuit. Essayez de le changer avec un autre servo. Assurez-vous que la broche numérique est la même que celle spécifiée dans le code

Eh bien, ce sont à peu près toutes les choses qui pourraient me venir à l'esprit concernant les problèmes que vous pourriez rencontrer. J'espère qu'ils n'arriveront jamais et Happy Projects !

Merci d'avoir lu mon Instructable ! S'il vous plaît partagez et votez pour le concours FIRST AUTHOR!

Conseillé: