Table des matières:

Télécommande RF ATtiny85 : 3 étapes
Télécommande RF ATtiny85 : 3 étapes

Vidéo: Télécommande RF ATtiny85 : 3 étapes

Vidéo: Télécommande RF ATtiny85 : 3 étapes
Vidéo: 🚩NRF24L01 + ATTINY85 connection tutorial 2024, Juillet
Anonim
Télécommande RF ATtiny85
Télécommande RF ATtiny85

REMARQUE: Mon Instructable "Virtual Hide-and-Seek Game" montre comment utiliser ce type de télécommande avec un module RXC6 qui décode automatiquement le message.

Comme je l'ai mentionné dans un précédent Instructable, j'ai récemment commencé à jouer avec des puces ATtiny85. Le projet initial que j'avais en tête était de fabriquer une télécommande RF qui pourrait fonctionner sur une pile bouton. J'avais besoin d'utiliser une puce brute car aucun des Arduinos que j'ai ne peut répondre à la fois au besoin de très faible puissance et de taille relativement petite. Un LilyPad modifié s'en est approché, mais la puce est une meilleure réponse. L'idée n'était pas tant de dupliquer une télécommande existante mais de montrer comment vous pouvez constituer votre propre ensemble émetteur et récepteur. En plus d'être un projet d'apprentissage amusant, il vous permet également de créer votre propre combinaison de codes «secret». Je mets "secret" entre guillemets car il est assez facile de déchiffrer ces codes simples.

Étape 1: Format des messages RF

Format des messages RF
Format des messages RF

Pour ce projet, j'ai choisi de reproduire les signaux pour l'un de mes commutateurs sans fil Etekcity RF (reportez-vous à mon Instructable sur ces modules). Je l'ai fait parce que j'ai pu vérifier que mon émetteur fonctionne avec le récepteur Etekcity et que mon récepteur fonctionne avec la télécommande Etekcity. Il se trouve également que je sais exactement quels sont les codes et le format corrects pour ces appareils, car je les ai capturés précédemment. Reportez-vous à mon Instructable "Arduino RF Sensor Decoder" pour le croquis de capture de code.

Les codes et formats des prises Etekcity sont très typiques des appareils RF bon marché. J'ai des dispositifs de sécurité bon marché qui utilisent des formats très similaires avec juste quelques variations temporelles. La longueur du message est pratique de 24 bits avec un bit de démarrage long et un bit d'arrêt court. Vous pouvez facilement modifier le code pour ajouter plus d'octets de données et pour changer la synchronisation des bits de synchronisation et de données. Encore une fois, ce croquis n'est qu'un modèle de départ.

Étape 2: Matériel

Matériel
Matériel
Matériel
Matériel
Matériel
Matériel

L'émetteur fonctionne sur une pile bouton (2032), une faible consommation d'énergie est donc essentielle. La plupart de cela est accompli dans le logiciel, mais cela est aidé par le fait que l'ATtiny85 fonctionne normalement sur l'horloge interne de 1 MHz. La règle est que les fréquences d'horloge inférieures nécessitent moins d'énergie et 1 MHz est parfait pour la logique de l'émetteur.

Le module émetteur RF que j'aime utiliser est un FS1000A qui est couramment disponible. Il est disponible en versions 433 MHz et 315 MHz. Le logiciel ne se soucie pas de celui que vous utilisez, mais vous devez vous assurer que la carte réceptrice fonctionne à la même fréquence. La plupart de mes projets utilisent des appareils à 433 MHz, car c'est ce qui est utilisé par les divers appareils sans fil bon marché que j'ai accumulés. La disposition de la carte émetteur montrée sur l'image s'intègre parfaitement dans une vieille bouteille de pilules. Ce n'est pas joli mais suffisant pour une preuve de concept.

Le récepteur est sur une maquette sans soudure car son seul but est de montrer comment recevoir des signaux et comment allumer/éteindre quelque chose en fonction des codes reçus. Il utilise une LED pour indiquer l'état marche/arrêt, mais vous pouvez le remplacer par un pilote de relais, etc. N'importe quel Arduino peut être utilisé pour le récepteur car il n'a pas besoin de fonctionner avec une batterie. Si la taille est toujours une considération, vous pouvez utiliser une autre puce ATtiny85. La clé est que l'ATtiny85 doit fonctionner à 8 MHz dans le récepteur. Reportez-vous à mon précédent ATtiny85 Instructable pour un croquis simple qui vérifie que vous avez réussi à changer l'horloge interne à 8 MHz. À la fin de mon Instructable sur le décodage du capteur, j'inclus une version Arduino Nano du logiciel du récepteur. Il est identique à la version ATtiny85 incluse ici, à l'exception de quelques différences de registre de puce.

Comme je l'ai détaillé dans mes précédents RF Instructables, je préfère utiliser un récepteur comme le RXB6 commun. C'est un récepteur super-hétérodyne qui fonctionne bien mieux que les récepteurs super-régénératifs généralement fournis avec les émetteurs FS1000A.

Les modules émetteur et récepteur fonctionnent mieux avec les antennes appropriées, mais ils ne sont souvent pas fournis. Vous pouvez les acheter (obtenir la fréquence correcte) ou créer les vôtres. A 433 MHz, la bonne longueur est d'environ 16 cm pour une antenne filaire droite. Pour en faire un enroulé, prenez environ 16 cm de fil central isolé et solide et enroulez-le autour de quelque chose comme une tige de foret de 5/32 pouces en une seule couche. Dénudez l'isolation d'une courte section droite à une extrémité et connectez-la à votre carte émetteur/récepteur. J'ai trouvé que le fil d'un câble Ethernet de rebut fonctionne bien pour les antennes. La carte émettrice a généralement un endroit pour souder l'antenne mais la carte récepteur peut n'avoir que des broches (comme le RXB6). Assurez-vous simplement que la connexion est sécurisée si vous ne la soudez pas.

Étape 3: Logiciel

Le logiciel de l'émetteur utilise des techniques courantes pour mettre la puce en mode veille. Dans ce mode, il consomme moins de 0,2 ua de courant. Les entrées de commutateur (D1-D4) ont les résistances de rappel internes activées, mais elles ne tirent aucun courant tant qu'un commutateur n'est pas enfoncé. Les entrées sont configurées pour l'interruption sur changement (IOC). Lorsqu'un interrupteur est enfoncé, une interruption est générée et force la puce à se réveiller. Le gestionnaire d'interruption exécute un délai d'environ 48 ms pour permettre au commutateur de rebondir. Une vérification est ensuite effectuée pour déterminer quel commutateur a été enfoncé et la routine appropriée est appelée. Le message transmis est répété plusieurs fois (j'ai choisi 5 fois). Ceci est typique des émetteurs commerciaux car il y a tellement de trafic RF sur 433 MHz et 315 MHz. Les messages répétés permettent de s'assurer qu'au moins l'un d'entre eux parvient au récepteur.

Les temps de synchronisation et de bit sont définis à l'avant du logiciel de l'émetteur, mais les octets de données sont intégrés dans chacune des quatre routines de bouton. Ils sont évidents et faciles à modifier et ajouter des octets pour créer un message plus long est également facile. Toutes les mêmes définitions sont incluses dans le logiciel du récepteur ainsi que les définitions des octets de données. Si vous ajoutez des octets de données à votre message, vous devrez modifier la définition de « Msg_Length » et ajouter des octets à la variable « RF_Message ». Vous devrez également ajouter du code à la vérification « RF_Message » dans la « boucle » pour vérifier la bonne réception des octets supplémentaires et définir ces octets.

Conseillé: