Table des matières:

LED RVB contrôlées par accéléromètre sans fil : 4 étapes
LED RVB contrôlées par accéléromètre sans fil : 4 étapes

Vidéo: LED RVB contrôlées par accéléromètre sans fil : 4 étapes

Vidéo: LED RVB contrôlées par accéléromètre sans fil : 4 étapes
Vidéo: Comment installer des bandes LED connectées Luminéa ELESION TUYA SMARTLIFE ? [PEARLTV.FR] 2024, Novembre
Anonim
LED RVB contrôlées par accéléromètre sans fil
LED RVB contrôlées par accéléromètre sans fil
LED RVB contrôlées par accéléromètre sans fil
LED RVB contrôlées par accéléromètre sans fil

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

Transmetteur avec accéléromètre
Transmetteur avec accéléromètre
Transmetteur avec accéléromètre
Transmetteur avec accéléromètre
Transmetteur avec accéléromètre
Transmetteur avec accéléromètre
Transmetteur avec accéléromètre
Transmetteur 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

Récepteur avec LED RVB
Récepteur avec LED RVB
Récepteur avec LED RVB
Récepteur avec LED RVB
Récepteur avec LED RVB
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

Le résultat
Le résultat
Le résultat
Le résultat
Le résultat
Le résultat
Le résultat
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é: