Table des matières:
- Étape 1: Émetteur avec accéléromètre
- Étape 2: Récepteur avec LED RVB
- Étape 3: programmation en C
- Étape 4: Le résultat
Vidéo: LED RVB contrôlées par accéléromètre sans fil : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:10
Les accéléromètres MEMS (Micro-Electro-Mechanical Systems) sont largement utilisés comme capteurs d'inclinaison dans les téléphones portables et les appareils photo. Des accéléromètres simples sont disponibles à la fois sous forme de puces électroniques et de cartes de circuits imprimés de développement bon marché.
Les puces sans fil sont également abordables et disponibles dans des circuits assemblés, avec un réseau d'antennes et des capuchons de découplage adaptés à bord. Connectez la carte sans fil et l'accéléromètre à un microcontrôleur via une interface série et vous obtenez une manette sans fil avec des fonctions nintendo-wii. Ensuite, construisez un récepteur avec le même type de puce sans fil et de LED RVB contrôlées par pwm, le tour est joué, vous avez un éclairage de pièce coloré sans fil et contrôlé par inclinaison. Gardez le niveau de la carte émetteur avec la planche à pain tournée vers le haut et la LED est bleu froid, seule la LED bleue est active. Inclinez ensuite l'émetteur dans un sens et vous mélangez en rouge ou en vert selon le sens dans lequel vous l'inclinez. Inclinez complètement à 90 degrés, et vous passez par tous les mélanges de rouge et bleu ou vert et bleu jusqu'à ce que seul le rouge ou le vert soit actif à 90 degrés d'inclinaison. Inclinez un peu dans les directions x et y et vous obtenez un mélange de toutes les couleurs. À 45 degrés dans toutes les directions, la lumière est un mélange égal de rouge, vert et bleu, en d'autres termes, de la lumière blanche. Les pièces utilisées sont disponibles dans les magasins d'électronique de loisir sur Internet. Doit être identifiable à partir de certaines photos.
Étape 1: Émetteur avec accéléromètre
L'émetteur est basé sur le microcontrôleur Atmel avr168. La carte rouge pratique avec le 168 est une carte arduino avec régulateur de tension et circuit de réinitialisation. L'accéléromètre est connecté à l'avr avec un bus i2c bit-banged, et la carte sans fil est connectée au matériel SPI, (Serial Peripheral Interface).
La planche à pain est entièrement sans fil avec la batterie 4, 8V attachée en dessous. La carte sans fil et l'arduino wee acceptent jusqu'à 9 V et ont un régulateur de tension linéaire intégré, mais l'accéléromètre a besoin de 3, 3 V du rail régulé sur le wee.
Étape 2: Récepteur avec LED RVB
Le récepteur est basé sur la carte de démonstration atmel avr169 nommée Butterfly. La carte a beaucoup de fonctionnalités non utilisées dans ce projet. L'émetteur-récepteur sans fil est connecté à PortB et la LED contrôlée par PWM est connectée à PortD. L'alimentation est fournie au niveau de l'en-tête du FAI, 4,5 V suffisent. La carte sans fil peut tolérer 5 V sur les broches d'E/S, mais nécessite une alimentation de 3,3 V fournie par le régulateur embarqué.
Le câble d'en-tête modifié pour l'émetteur-récepteur RF est vraiment pratique et connecte la carte sans fil avec le contrôleur spi d'alimentation et de matériel sur le papillon. Le shiftbright est un contrôleur de modulation de largeur d'impulsion à LED RGB qui accepte une commande de 4 octets qui est verrouillée puis verrouillée sur les broches de sortie. Vraiment facile à connecter en série. Il suffit de décaler de nombreux mots de commande, et le premier décalé se retrouvera dans la dernière LED connectée de la guirlande.
Étape 3: programmation en C
Le code est écrit en C car je ne me souciais pas d'apprendre le langage de traitement "plus facile" sur lequel arduino est basé. J'ai moi-même écrit l'interface du transceiver SPI et rf pour l'expérience d'apprentissage, mais j'ai emprunté le code assembleur i2c à avrfreaks.net. L'interface shiftbright est bitbangée en code C. Un problème que j'ai rencontré était de petites variations irradiques dans la sortie de l'accéléromètre, ce qui a beaucoup fait clignoter la LED. J'ai résolu ce problème avec un filtre passe-bas logiciel. Une moyenne pondérée mobile sur les valeurs de l'accéléromètre. Le rf-tranceiver prend en charge le matériel crc et ack avec retransmission automatique, mais pour ce projet, la mise à jour fluide et en temps réel des LED était plus importante. Chaque paquet avec des valeurs d'accéléromètre n'a pas besoin d'arriver intact au récepteur, tant que les paquets corrompus sont rejetés. Je n'ai eu aucun problème avec les paquets RF perdus dans un rayon de 20 mètres. Mais plus loin le lien est devenu instable, et les leds ne se sont pas mises à jour en continu. La boucle principale de l'émetteur en pseudo-code:initialize(); while(true){ Values = abs(get x, y, z accelerometer values()); RF_send(Valeurs); delay(20ms);}La boucle principale du récepteur en pseudo-code:initialize();while(true){ newValues = blocking_receiveRF()); rgbValues = rgbValues + 0.2*(newValues-rgbValues); écrivez rgbValues dans shiftbrigth;}
Étape 4: Le résultat
J'ai été étonné de voir à quel point le contrôle était fluide et précis. Vous avez vraiment un contrôle précis de la couleur du bout des doigts. Le contrôleur pwm-LED a une résolution de 10 bits pour chaque couleur, ce qui permet des millions de couleurs possibles. Malheureusement, l'accéléromètre n'a qu'une résolution de 8 bits, ce qui ramène le nombre de couleurs théoriques à des milliers. Mais il n'est toujours pas possible de percevoir une gradation dans le changement de couleur. J'ai placé le récepteur dans une lampe IKEA et j'ai pris une photo de différentes couleurs ci-dessous. Il y a aussi une vidéo, (qualité horrible cependant)
Conseillé:
Robot Arduino sans fil utilisant le module sans fil HC12 : 7 étapes
Robot Arduino sans fil utilisant le module sans fil HC12 : Salut les gars, bon retour. Dans mon article précédent, j'ai expliqué ce qu'est un circuit de pont en H, un circuit intégré de pilote de moteur L293D, un circuit de pilote de moteur L293D superposé pour piloter des pilotes de moteur à courant élevé et comment vous pouvez concevoir et fabriquer votre propre carte de pilote de moteur L293D
Bandes lumineuses à DEL à décoloration contrôlées par capteur, alimentées par Arduino : 6 étapes (avec images)
Bandes lumineuses à DEL à décoloration contrôlées par capteur et alimentées par Arduino : j'ai récemment fait rénover ma cuisine et je savais que l'éclairage « rehausserait » l'apparence des placards. J'ai opté pour ‘True Handless’ donc j'ai un espace sous le plan de travail, ainsi qu'une planche, sous le placard et sur le dessus des placards disponibles et
Point d'accès sans fil de 50 mètres de portée avec adaptateur sans fil USB TP Link WN7200ND sur Raspbian Stretch: 6 étapes
Point d'accès sans fil de 50 mètres de portée avec adaptateur sans fil USB TP Link WN7200ND sur Raspbian Stretch : Raspberry Pi est idéal pour créer des points d'accès sans fil sécurisés mais il n'a pas une bonne portée, j'ai utilisé un adaptateur sans fil USB TP Link WN7200ND pour l'étendre. Je veux partager comment le fairePourquoi est-ce que je veux utiliser un Raspberry Pi au lieu d'un routeur ?T
Système DIY de micro sans fil pour guitare sans fil : 4 étapes
DIY Wireless Mic to Wireless Guitar System: J'ai regardé des vidéos et des groupes et presque tous utilisent un système sans fil à la guitare. Devenir fou, bouger, marcher et faire ce qu'ils veulent sans le cordon alors je rêve d'en avoir un.. Mais.. pour moi maintenant c'est trop cher alors je suis arrivé à ça
Pirater une sonnette sans fil dans un interrupteur d'alarme sans fil ou un interrupteur marche/arrêt : 4 étapes
Piratage d'une sonnette sans fil dans un interrupteur d'alarme sans fil ou un interrupteur marche/arrêt : j'ai récemment construit un système d'alarme et je l'ai installé dans ma maison. J'ai utilisé des interrupteurs magnétiques sur les portes et les ai câblés à travers le grenier. Les fenêtres étaient une autre histoire et leur câblage n'était pas une option. J'avais besoin d'une solution sans fil et c'est