Table des matières:

Kit de développement Python RF : 5 étapes
Kit de développement Python RF : 5 étapes

Vidéo: Kit de développement Python RF : 5 étapes

Vidéo: Kit de développement Python RF : 5 étapes
Vidéo: APPRENDRE LE PYTHON #1 ? LES BASES & PREREQUIS 2024, Novembre
Anonim
Kit de développement Python RF
Kit de développement Python RF

Tout d'abord, je voudrais donner une petite introduction sur la façon dont je suis entré dans le domaine RF et pourquoi je travaille sur ce projet.

En tant qu'étudiant en informatique ayant une affinité avec le matériel, j'ai commencé à suivre des cours sur les signaux sans fil et la sécurité dans les communications sans fil en octobre 2018. J'ai rapidement commencé à expérimenter avec les radios définies par logiciel RTL-SDR et HackRF et avec étagère modules RF Arduino.

Le problème est le suivant: les SDR ne sont pas assez portables pour mes besoins (j'ai toujours besoin de transporter un ordinateur portable, des antennes, etc.) et les modules RF Arduino bon marché ne sont pas assez capables en termes de force du signal, de personnalisation, de plages de fréquences et d'automatisation.

Les antennes CC1101 de Texas Instruments sont un excellent choix pour les émetteurs-récepteurs RF petits mais performants qui sont également très bon marché. Les gens ont construit de grandes choses avec eux, comme des SDR DIY et des trucs comme ça.

Une autre chose que je voulais aborder avec ce sujet était CircuitPython. C'est un nouveau langage de programmation de microcontrôleurs dont j'ai entendu beaucoup de bonnes choses, alors j'ai voulu l'essayer. Il s'est avéré que je l'apprécie beaucoup, en particulier avec la carte Feather M4 Express d'Adafruit que j'utilise également dans ce projet. Il est très facile à déboguer car vous n'avez pas besoin de compiler des firmwares personnalisés à chaque fois que vous essayez un petit changement dans votre code, vous obtenez une console REPL et votre code reste également sur le microcontrôleur lui-même, ce qui signifie que vous pouvez le transporter, le brancher dans divers ordinateurs et vous serez toujours en mesure d'effectuer des modifications en déplacement.

Étape 1: Composants matériels

Composants matériels
Composants matériels

Ce dont vous aurez besoin pour reproduire ce projet:

  • Adafruit Plume M4 Express
  • 2x Texas Instruments CC1101 Émetteur-Récepteur + Antenne
  • Adafruit FeatherWing OLED
  • LiPo 3,7 V

Essentiellement, c'est tout ce dont vous avez besoin pour avoir un émetteur-récepteur RF assez compact et performant, mais comme vous pouvez le voir sur l'image, il ne sera pas très fiable et bien rangé avec tous ces câbles de démarrage.

J'ai donc conçu un PCB personnalisé en utilisant https://easyeda.com/ et l'ai commandé sur JLCPCB.com (très bon marché et de grande qualité !) pour tout connecter ensemble. Cela a également permis d'intégrer facilement 3 boutons et LED pour l'entrée utilisateur et les sorties d'état.

Et enfin, j'ai imprimé en 3D une petite couverture pour l'arrière du PCB afin qu'il ne court pas contre quoi que ce soit et qu'il reste à plat sur la table.

Si vous êtes nouveau dans l'électronique et la conception de circuits imprimés, je vous recommande de consulter ces Instructables: électronique de base, classe de conception de circuits imprimés !

Dans les pièces jointes, vous pouvez trouver les fichiers Gerber pour mon PCB. Si vous décidez de le faire fabriquer, vous aurez besoin de quelques composants supplémentaires que j'ai personnellement commandés à LCSC, car ils sont associés à JLCPCB, ils proposent donc de tout expédier ensemble, ce qui permet d'économiser un peu sur les frais d'expédition et les composants sont également juste très bon marché là-bas. Voir la nomenclature pour la liste détaillée. J'ai intentionnellement choisi la grande taille de boîtier de 0805 pour les composants SMD afin que tout le monde puisse les souder à la main sur le PCB !

Étape 2: Construire le tableau

Construire le Conseil
Construire le Conseil
Construire le Conseil
Construire le Conseil
Construire le Conseil
Construire le Conseil

Dans la première image, nous pouvons voir les PCB sans aucune "modification" - ils viennent comme ça de l'usine. Découpes très nettes (pas de rainure en V, complètement fraisée) et beaux vias sur tous les trous THT.

Si vous souhaitez utiliser les LED, vous devrez les souder ainsi que les résistances SMD. Les résistances sont généralement cachées sous le microcontrôleur mais visibles sur la deuxième image qui montre la carte complètement soudée. Si vous n'avez pas beaucoup d'expérience avec la soudure, il peut être un peu difficile de souder des CMS, mais c'est en quelque sorte facultatif et tous les composants de base sont THT. J'aime toujours recommander les vidéos de Dave (EEVblog) et j'ai même regardé celle-ci moi-même: EEVblog #186 - Tutoriel de soudure, partie 3 - Montage en surface. C'est assez long mais ça vaut le coup si vous débutez dans ce domaine !

Il le mentionne également, mais: prenez soin de souder les résistances et les LED en premier, puis les boutons en second et les en-têtes à la fin. De cette façon, vous pouvez toujours utiliser la table pour pousser contre le composant par le bas et souder par le haut (PCB retourné à l'envers).

Après avoir tout soudé, vous pouvez simplement brancher le Feather M4 et une ou deux antennes et le matériel est prêt ! Comme nous ne soudons pas ces composants, nous pouvons toujours les retirer de la carte et les utiliser pour un autre projet, ce qui est génial !

Veuillez noter que sur la troisième photo, j'ai les en-têtes mâles réguliers et courts sur le Feather, donc je ne pouvais pas empiler l'OLED sur le dessus. J'ai dû les dessouder et ajouter des en-têtes d'empilage Feather. Si vous voulez utiliser l'OLED, obtenez les en-têtes d'empilage tout de suite, honnêtement:D Le dessoudage est juste une douleur.

Étape 3: Logiciel

Une fois le matériel terminé, parlons logiciel.

Comme mentionné dans l'introduction, le M4 exécute du code Python, mais évidemment aucune bibliothèque pour CC1101 n'existait dans le langage Python. J'ai donc fait ce que font les bricoleurs et j'ai écrit le mien. Vous pouvez le trouver ici:

Il ne prend pas en charge tout ce dont sont capables les grands émetteurs-récepteurs TI, mais c'est suffisant pour envoyer et recevoir facilement des données codées ASK sur n'importe quelle fréquence. J'ai pu communiquer avec des prises murales contrôlées par RF ainsi qu'avec la voiture de ma famille en utilisant cette bibliothèque.

Je pourrais très probablement continuer à travailler dessus et si vous avez des questions, des demandes de fonctionnalités ou si vous souhaitez contribuer au développement, n'hésitez pas à me contacter !

Étape 4: Capacités et fonctionnalités

Depuis que j'ai conçu cet appareil pour utiliser des antennes doubles et les émetteurs-récepteurs TI CC1101 hautement configurables, vous avez une tonne de possibilités, en particulier sur le terrain où vous ne voulez rien transporter de plus qu'un appareil de la taille d'un smartphone.

Vous pouvez par exemple capter des signaux de communications dans la bande 433MHz et les renvoyer vers votre station d'accueil avec l'antenne secondaire fonctionnant sur 868MHz.

Ou si vous voulez étudier et expérimenter le brouillage réactif, vous pouvez avoir une antenne d'écoute et de brouillage qui envoie ses propres signaux dès qu'une transmission est détectée, sans faire la "méthode traditionnelle" d'essayer de basculer entre RX et TX comme le plus vite possible.

Une autre chose très intéressante à propos du Feather M4 est qu'il est livré avec un circuit de charge LiPo intégré, il vous suffit donc de brancher votre batterie et d'être prêt à partir. Dans mon cas, avec une antenne en mode RX constant, à l'écoute des transmissions et l'écran OLED allumé, l'appareil fonctionnerait pendant près de 20 heures sur un LiPo de 1000 mAh.

Utilisation de l'écran OLED - mais également possible sans, par ex. en utilisant les trois voyants d'état - vous pouvez avoir plusieurs programmes et sélectionner celui que vous souhaitez exécuter avec les boutons en bas de la carte. Personnellement, j'ai même mis en place tout un menu avec des modes au choix et une vue de réglage de fréquence, etc.

Cela pourrait même servir pour un peu de domotique ! Comme je l'ai mentionné, j'ai pu communiquer avec succès avec les prises de courant (capturer les signaux d'origine une fois et les rejouer chaque fois que vous en avez besoin) et si vous faites un peu de recherche sur Internet, vous trouverez rapidement sur combien d'appareils fonctionnent également ces fréquences avec des codes qui ne changent jamais. Même les codes de certains garages peuvent être enregistrés et sauvegardés avec cet appareil, puis utilisés chaque fois que vous devez ouvrir ou fermer votre garage. Cela peut donc devenir une télécommande universelle pour tous vos appareils RF !

J'ai personnellement reproduit l'attaque RollJam avec cet appareil, mais je ne publierai pas le code car le brouillage est illégal dans la plupart des endroits, donc si vous essayez quelque chose comme ça, consultez vos lois locales;-)

Étant donné que la carte s'affiche comme un disque USB lorsque vous la branchez et que CircuitPython offre une telle fonctionnalité, vous pouvez également demander à l'appareil d'enregistrer les transmissions RF et d'enregistrer les données démodulées (oh oui, les émetteurs-récepteurs le font automatiquement !) dans un fichier texte que vous pouvez ensuite copier sur votre PC et analyser à des fins scientifiques comme l'ingénierie inverse des transmissions.

Étape 5: Résultat final

Résultat final
Résultat final

Tous les commentaires, suggestions et contributions à ce projet sont les bienvenus et n'hésitez pas à poser des questions si vous en avez !

Conseillé: