Table des matières:
- Étape 1: Test initial et mise en page
- Étape 2: Souder la matrice et le stripboard
- Étape 3: Intégration du module Bluetooth
- Étape 4: Piratage de table
- Étape 5: Pièces découpées au laser
- Étape 6: Glédiateur
- Étape 7: Contrôle série Bluetooth
- Étape 8: Jeux
- Étape 9: Profitez
- Étape 10: Mettre à jour
Vidéo: Table basse LED Arduino contrôlée par Bluetooth : 10 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
C'était mon premier vrai projet Arduino et c'est aussi mon premier instructable alors soyez gentil dans les commentaires:) Je voulais essayer de répondre aux questions qui m'ont pris du temps à comprendre et à fournir des instructions détaillées donc si vous êtes très familier avec les amateurs électronique, vous pouvez probablement parcourir chaque étape, mais si vous êtes nouveau dans ce domaine, il devrait vous fournir tout ce dont vous avez besoin.
L'objectif du projet était de créer un écran de 12 x 12 pixels dans une table basse pouvant être contrôlé via Bluetooth et utilisé comme éclairage de pièce cool/jouer à des jeux dessus.
Pour cette construction, vous aurez besoin de ces pièces:
- Arudino Mega (ou clone) -
- Bouclier de carte micro SD Arduino (j'ai utilisé celui-ci et j'ai soudé les en-têtes) -
- Carte Micro SD - N'importe quelle taille fera l'affaire mais elle doit être formatée en FAT32
- Bande LED adressable WS2812B 5 m -
- Module Bluetooth HC05 -
- Alimentation 5 V 6 Amp - (j'ai utilisé celle-ci mais il y en a une centaine d'autres sur ebay)
- Table Ikea LACK (le classique des amateurs) -
- Accès à un cutter laser pour contreplaqué 3 mm (ou une main très stable). Vous pouvez commander des pièces découpées au laser en ligne à divers endroits (https://www.hobbytronics.co.uk/laser-cutting par exemple)
- Peinture en aérosol blanche
- Profilé en T en aluminium de 2 m (1 1/2 x 1 1/2 x 1/8) -
- Plateau en verre de 450 mm x 450 mm x 6 mm (la plupart des vitriers locaux peuvent couper des pièces personnalisées pour vous, mais j'ai utilisé ces gars
- 1 x 100 micro Farad Condensateur
- 2 résistances 1k
- 1 résistance 2k
- 1 x potentiomètre rotatif linéaire
- Divers cavaliers (probablement une dizaine lors du prototypage)
- Au moins trois couleurs de câbles relativement épais pour la soudure (cela peut attirer des courants importants donc je ne recommanderais pas de fils de connexion pour l'alimentation)
- Stripboard pour le circuit interne (rassurez-vous c'est très simple)
Outils nécessaires:
- Un fer à souder + soudure
- Une paire de cisailles
- Pince à dénuder
- Un Dremel ou un puzzle quelconque pour découper la table. J'ai utilisé ceci https://www.amazon.co.uk/gp/product/B0078LENZC/ref… avec des embouts de coupe en spirale
Étape 1: Test initial et mise en page
Le premier port d'escale consiste à découper la bande LED dans les longueurs dont vous avez besoin. Cette bande LED est vraiment facile à utiliser car elle n'a que 3 broches et permet à l'Arduino de faire le vrai travail. J'ai coupé la bobine en 12 sections chacune d'une longueur de 12 LED comme indiqué sur la figure et je les ai disposées au dos de la table pour m'aider à visualiser où j'allais avec ça.
Il me restait alors quelques LED alors je les ai connectées à un Arduino UNO dont je devais tester si elles fonctionnaient (vous pouvez également utiliser le Mega mentionné dans le plan du projet). Pour ce faire, j'ai coupé et dénudé des en-têtes mâles à mâles et les ai soudés aux pastilles à l'extrémité de la bande LED. Sur la bande WS2812 que j'ai utilisé, le fil 5V est rouge, la masse est blanche et les données sont vertes. Assurez-vous de faire attention à la flèche directionnelle imprimée sur la bande WS2812B afin de ne pas essayer d'envoyer des données dans le mauvais sens. J'ai connecté la ligne 5V à 5V sur l'Arduino, Ground to GND et Data à la broche 6 avec une résistance de 1k en série. Gardez à l'esprit que le schéma de Fritzing des LED WS2812B est légèrement différent de ceux que j'avais livrés - il suffit de dire, assurez-vous simplement que les données sont connectées à la broche 6, Gnd est connecté à la terre et 5 est connecté à 5V.
Avec si peu de LED (5 environ), l'Arduino devrait suffire pour fournir l'alimentation; Cependant, vous ne pouvez pas en alimenter beaucoup car lorsqu'elles sont entièrement blanches, les LED consomment jusqu'à 60 mA chacune et peuvent rapidement submerger l'Arduino.
En supposant que vous ayez l'IDE Arduino (sinon le téléchargez et l'installez), définissez le type de chipset sur l'Arduino que vous avez et définissez le port COM sur celui qui affiche un Arduino dans les options. Téléchargez maintenant la bibliothèque FastLED et installez-la (https://fastled.io/). Ouvrez l'exemple striptest.h et définissez le nombre de LED dans le croquis sur le nombre que vous avez (il m'en restait 5). Appuyez sur vérifier et (en supposant que tout se passe bien) téléchargez-le sur l'Arduino et vous devriez voir les lumières de la petite bande s'allumer et changer de couleur.
Étape 2: Souder la matrice et le stripboard
Il est maintenant temps de commencer à créer la matrice LED.
Coupez 11 petites longueurs de chacune des trois couleurs de fil que vous avez. Assurez-vous qu'ils sont assez longs pour aller de la fin d'une bande au début de la suivante. Lors de la pose des bandes LED, vous devez vous assurer que la flèche du flux de données suit un serpent. Une fois cela fait, soudez soigneusement chaque rangée de leds à la suivante comme indiqué sur la figure. C'est beaucoup plus facile si vous utilisez la même couleur pour chaque type de connexion.
Maintenant, plus de soudure, nous devons créer le stripboard qui gérera l'alimentation du secteur. J'ai soudé deux colonnes sur le stripboard ensemble pour le 5V et GND afin qu'il gère mieux le courant. Voir le schéma ci-joint pour le circuit que vous devez créer. Lors de la soudure du condensateur, assurez-vous que l'extrémité négative est attachée au rail GND, pas à celui 5V. Une fois le stripboard terminé, nous devons connecter le +VE et GND à la bande LED et utiliser également l'autre moitié des cavaliers que nous avons coupés plus tôt pour connecter l'Arduino à l'alimentation et au stripboard. Ce serait maintenant le bon moment pour ajouter la carte de dérivation SD à l'Arduino afin que nous puissions y enregistrer des fichiers et les lire plus tard. Une fois la carte de dérivation SD en place, nous pouvons connecter le rail 5V à la broche Vin et le GND à n'importe quelle broche GND de l'Arduino.
Enfin, nous pouvons connecter un potentiomètre à l'entrée analogique A0 comme indiqué afin d'avoir un moyen de contrôler la luminosité des LED.
Une fois que tout cela est fait, nous pouvons télécharger à nouveau le croquis de striptest en changeant le nombre de LED à 144. Assurez-vous que l'alimentation est active avant de télécharger ce croquis. Espérons que toutes les LED devraient s'allumer dans les motifs du croquis de striptest afin que nous sachions que tout fonctionne.
Étape 3: Intégration du module Bluetooth
Dernier morceau de câblage maintenant, l'unité HC05 se connecte à l'Arduino Mega comme indiqué dans le schéma. Assurez-vous que l'unité HC05 se connecte aux ports Rx1 et Tx1 du méga - cela facilite beaucoup la programmation et évite d'utiliser la bibliothèque "softwareserial".
NB. L'unité HC05 prendra soit 5V soit 3,3V et fonctionne généralement sur une logique 3,3V, je l'ai donc connectée au rail 3,3V. Certains autres instructables ont montré le Tx (sur Arduino) à Rx (sur l'unité HC05) avec un circuit diviseur de potentiel pour faire tomber la logique 5 V de l'Arduino au niveau natif pour le module HC05. C'est la raison pour laquelle j'avais les résistances 1k et 2k dans la liste des pièces; cependant, je n'ai pas pris la peine et il semble parfaitement heureux sur ma table:)
Étape 4: Piratage de table
Nous devons maintenant commencer à découper la table pour donner à nos LED et à nos appareils électroniques une nouvelle maison.
Tracez d'abord un carré de 450 mm x 450 mm au milieu du dessus du plateau LACK. À l'aide du Dremel (ou d'une scie sauteuse), découpez le carré du mieux que vous pouvez pour le garder droit. Nous pouvons maintenant retirer le dessus et les pièces intérieures en carton, vous laissant avec un plateau de table évidé, comme indiqué sur la photo. En utilisant à nouveau le Dremel, nous pouvons percer un trou dans le coin du bas de la table afin d'avoir un endroit où passer le câble d'alimentation.
Une fois la table préparée, nous pouvons coller les LED dans les bonnes positions avant de passer aux étapes suivantes. J'ai trouvé utile de m'assurer que l'électronique était correcte après chaque étape, alors essayez à nouveau le croquis de striptest.
Une fois que vous êtes à l'aise, tout est à sa place, vous pouvez percer quelques petits trous pour monter l'alimentation à l'intérieur du bord de la table à l'aide de petits boulons. J'ai choisi de monter l'Arduino à l'extérieur de la table afin de pouvoir le reprogrammer facilement si je le souhaite, mais il est monté à l'envers jusqu'au bas de la table et n'est pas facilement visible. J'ai également monté le potentiomètre à travers le bas de la table pour que le contrôle de la luminosité soit agréable et professionnel.
Étape 5: Pièces découpées au laser
Nous devons maintenant présenter les pièces découpées au laser qui forment la matrice de carrés afin que nous ayons des pixels définis. J'ai inclus les fichiers dxf pour les pièces découpées au laser qui forment la matrice en bois ainsi que des images d'entre elles afin que vous sachiez à quoi elles devraient ressembler. Ils sont constitués de deux pièces distinctes, l'une longe chaque rangée de LED et l'autre les traverse. Les parties qui se croisent ont un écart de 10 mm de haut découpé en bas pour permettre le passage du câblage. Cet écart pourrait être réduit à 5 mm car il me semble qu'il y a un peu de fuite de lumière d'un pixel à l'autre.
11 exemplaires des deux pièces doivent être découpés au laser dans du contreplaqué de 3 mm, puis assemblés pour s'assurer qu'ils s'adaptent correctement. Une fois que vous êtes satisfait, démontez à nouveau la matrice et vaporisez-la en blanc pour améliorer les caractéristiques réfléchissantes de la table. Une fois secs, remettez-les ensemble et placez-les sur les LED. Il peut être un peu plus difficile de les assembler après la pulvérisation car ils sont maintenant un peu plus épais, mais ne vous inquiétez pas, tapotez-les doucement avant de mettre la matrice dans la table.
Étape 6: Glédiateur
Maintenant que nous avons mis en œuvre tout le matériel, nous pouvons commencer à examiner les logiciels. J'ai téléchargé et installé un logiciel appelé Glediator pour créer des animations pour les LED (https://www.solderlab.de/index.php/software/glediat…). Les instructions d'installation peuvent être un peu compliquées, mais suivez attentivement le site Web et tout devrait bien se passer. Nous devons également télécharger le croquis sur le site Web de Glediator pour le télécharger sur l'Arduino (https://www.solderlab.de/index.php/downloads/catego…). Nous utilisons des LED WS2812B, alors assurez-vous de télécharger la bonne (interface WS2812 Glediator). Une fois que vous avez ouvert ce croquis, changez le NUMBER_OF_PIXELS en 144 et téléchargez-le sur l'Arduino.
Une fois Glediator installé, nous pouvons commencer à jouer des animations sur la table. Tout d'abord, nous devons définir la taille de la matrice sur 12 x 12 dans le logiciel Glediator et également définir le type de sortie sur HSBL - Horizontal Snake (starting) Bottom Left car c'est ainsi que nous avons câblé les LED et changé l'ordre des couleurs en GRB (c'est pour cela que les LED prennent les données). Sur l'onglet de sortie, ouvrez le port COM et la matrice LED devrait commencer à afficher le motif LED sur l'écran central du logiciel Glediator.
Vous pouvez créer des animations et les enregistrer dans un fichier.dat que nous pouvons télécharger sur la carte SD, ce qui signifie que vos animations préférées peuvent être affichées sur la table sans avoir besoin de connecter un PC. Il existe quelques tutoriels en ligne à ce sujet (https://hackaday.io/project/5714-glediator-from-sd… par exemple). J'ai modifié quelques sources de code différentes pour fonctionner pour cela, donc mon code devrait être correct.
Lorsque vous enregistrez vos animations, assurez-vous de les enregistrer en tant que "animX.dat" où X est un nombre compris entre 1 et 15. Vous pouvez en implémenter davantage en modifiant quelques lignes dans mon code.
NB- Lors de l'enregistrement de fichiers Glediator, le logiciel contient un bogue qui signifie qu'il ne se souvient pas de la façon dont vous avez câblé la bande LED. Dans mon code, j'ai implémenté une fonction simple pour inverser l'ordre des lignes paires, ce qui signifie que tout s'affiche correctement
Étape 7: Contrôle série Bluetooth
La configuration de la communication Bluetooth entre un smartphone et l'Arduino s'est avérée étonnamment délicate, mais il existe quelques étapes simples qui rendront cela beaucoup plus facile. Tout d'abord, vous devrez télécharger une application pour votre smartphone. J'ai utilisé https://play.google.com/store/apps/details?id=com…. mais il existe probablement un équivalent iphone (que vous devez payer;p)
Vous avez peut-être remarqué que le module HC05 a un petit interrupteur dessus. Si vous l'allumez avec cet interrupteur enfoncé, il passe en mode AT, ce qui signifie que vous pouvez interroger les paramètres et les modifier si vous le souhaitez.
Téléchargez le croquis ci-joint sur le Mega et réglez le débit série sur votre PC sur 9600. Déconnectez l'alimentation de l'unité HC05, puis appuyez sur le bouton lorsque vous la reconnectez. Le clignotement devrait maintenant être environ une fois toutes les deux secondes - maintenant le HC05 est en mode AT.
Maintenant, dans le moniteur série, nous pouvons envoyer des commandes au HC05 et voir sa réponse. Tapez "AT" et appuyez sur envoyer et vous devriez voir "OK" revenir sur le moniteur série - maintenant nous savons qu'il écoute. Le nom Bluetooth de l'appareil peut être modifié en tapant "AT+NAME=XYZPQR" où XYZPQR est ce que vous voulez que le module soit appelé. J'ai appelé le mien LightWave. Le mot de passe par défaut du module Bluetooth est 1234 (ou 0000) mais il peut également être modifié en envoyant "AT+PSWD=9876" par exemple. Enfin, on peut changer le débit de communication du HC05 en envoyant "AT+UART=38400". Il s'agit du taux par défaut pour la plupart des modules HC05, mais le mien a été défini différemment, il est donc recommandé de le définir pour être sûr. Il y a beaucoup plus de détails sur ces commandes ici: https://www.itead.cc/wiki/Serial_Port_Bluetooth_M… et il y a aussi des instructables sur cette étape qui ont beaucoup plus de détails https://www.instructables.com/id/Modify -Le-HC-05-…
Nous pouvons maintenant essayer d'envoyer des commandes au module via un périphérique Bluetooth. Débranchez d'abord l'alimentation du module HC05 puis rebranchez-le. Vous devriez voir que le taux de clignotement de la LED est beaucoup plus rapide - cela signifie qu'il attend maintenant de se coupler. Sur votre smartphone, ouvrez l'application Arduino Bluetooth Controller et recherchez le module HC05. Si vous n'avez pas changé le nom, il s'appellera probablement HC05 ou similaire. Lorsqu'on vous donne les options de la façon dont vous souhaitez vous connecter, sélectionnez le mode Terminal. Essayez maintenant d'envoyer des chiffres et du texte et voyez si le moniteur série du PC signale qu'ils ont été reçus. J'espère qu'ils l'ont fait pour que nous puissions passer à autre chose, sinon il y a beaucoup d'instructables qui pourraient vous donner quelques indices (https://www.instructables.com/id/Bluetooth-Hc-05-W… par exemple).
La dernière chose à faire ici est de mapper les entrées du contrôleur sur des nombres avec lesquels Arduino peut faire quelque chose. J'ai utilisé les valeurs suivantes:
Haut = 1, Bas = 2, Gauche = 3, Droite = 4, Début = 5, Sélectionnez = 6.
Étape 8: Jeux
Je ne prends aucun crédit pour le code du jeu. J'ai utilisé le code source trouvé ici https://github.com/davidhrbaty/IKEA-LED-Table écrit par davidhrbaty. Cependant, je l'ai modifié de différentes manières:
- J'ai ajouté une fonction de contrainte de luminosité basée sur la valeur du potentiomètre afin que nous puissions modifier la luminosité
- J'ai supprimé le jeu de briques car je n'arrivais pas à le compiler
- J'ai changé le codage couleur des blocs de tetris pour qu'ils soient tous de couleurs différentes
- j'ai réorganisé le menu
- J'ai mis en place une option pour jouer des animations à partir de la carte SD
- J'ai ajouté le suivi des meilleurs scores et une option d'affichage des meilleurs scores dans le menu
Le code joint devrait fonctionner immédiatement, mais sinon, ma suggestion serait de supprimer les jeux qui semblent provoquer des messages d'erreur et de vérifier à nouveau le code jusqu'à ce que vous trouviez où se situe le problème. Ajoutez ensuite progressivement plus de complexité.
L'auteur original de ce code a fait un travail fantastique en créant quelque chose de vraiment modulaire et facile à ajouter. Il n'est pas si difficile d'ajouter des cas supplémentaires pour ajouter plus de fonctions dans la table.
Les options du menu sont:
- Carte SD - Lit les animations stockées sur la carte SD
- Tetris
- Serpent
- Pong
- Dice - Générateur de nombres aléatoires entre 1 et 6
- Animation - Une collection d'animations de la bibliothèque FastLED
- Stars Animation - EDIT - J'ai maintenant implémenté le jeu de la vie de Conway au lieu de cette animation
- Animation arc-en-ciel
- High Scores - Affiche les meilleurs scores pour tetris et snake
Avant de commencer à jouer, vous devez créer deux fichiers txt sur la carte SD, l'un appelé "teths.txt" et l'autre appelé "snkhs.txt". Dans ces deux fichiers, mettez le numéro 0 puis enregistrez-les dans le dossier racine de la carte SD. Ce sont les fichiers de suivi des meilleurs scores et seront mis à jour chaque fois que le meilleur score est battu. Si vous souhaitez le réinitialiser, remettez simplement les valeurs à 0 sur un PC.
Une fois que vous avez téléchargé le programme LED_table sur l'Arduino, vous pouvez ouvrir le moniteur série et vous devriez pouvoir voir les commandes Bluetooth lorsque vous les envoyez - de cette façon, vous savez que tout fonctionne correctement.
Étape 9: Profitez
Tout ce qu'il reste à faire est de télécharger le code principal de la table LED sur le Mega, puis de jouer et de me faire part de vos meilleurs scores !
J'attends toujours l'arrivée des pièces pour le plateau de table (section en T en aluminium et verre) mais la table fonctionne maintenant très bien et je peux jouer à des jeux dessus.
Faites-moi savoir si vous avez des commentaires, des modifications ou si vous remarquez des erreurs que j'ai commises.
Étape 10: Mettre à jour
Maintenant c'est complètement fini !:)
J'ai finalement pris livraison de la section en T en aluminium pour la bordure et j'ai fait de mon mieux pour couper le joint (il s'avère que 45 degrés est l'un des angles les plus difficiles), mais il est presque complètement carré. Pour le dessus, j'ai décidé d'obtenir une feuille de verre plus épaisse (425 x 425 x 8 mm) et j'ai dépoli le dessous à l'aide d'un spray de glaçage pour verre Rustoleum. J'ai utilisé du calfeutrage ordinaire (mastic silicone) pour joindre le dessus et les pièces d'angle afin qu'il y ait un peu de flexion dans les joints si nécessaire.
Mise à jour mise à jour. Maintenant, j'ai ajouté dans Conway's Game of Life comme option 7 dans le menu plutôt que l'animation des étoiles car je ne l'ai jamais utilisée. Si vous ne savez pas ce qu'est ce jeu, recherchez-le sur Google, mais en gros, c'est un jeu à zéro joueur qui montre une évolution basée sur trois règles simples. Le jeu de la vie de Conway
Mettre à jour^3. J'ai apporté quelques modifications au code afin qu'il inclue désormais une correction de bug concernant la gradation des LED rouges et inclue également une animation d'arbre de Noël en tant qu'option 11 dans le menu. Prendre plaisir.
Conseillé:
Table basse LED interactive Arduino : 6 étapes (avec photos)
Table basse interactive à LED Arduino : j'ai fait une table basse interactive qui allume les lumières LED sous un objet, lorsque l'objet est placé sur la table. Seules les leds qui se trouvent sous cet objet s'allumeront. Il le fait en utilisant efficacement des capteurs de proximité, et lorsque la proximité
Table basse d'animation : 9 étapes (avec photos)
Table basse d'animation : Il existe de nombreux très bons instructables sur la façon de faire des tables basses interactives avec des matrices LED, et je me suis inspiré et des conseils de certains d'entre eux. Celui-ci est simple, bon marché et surtout destiné à stimuler la créativité : avec seulement deux boutons
Machine à brouillard glacé ultime - Contrôlée par Bluetooth, alimentée par batterie et imprimée en 3D. : 22 étapes (avec photos)
Machine à brouillard à glace sèche ultime - Contrôlée par Bluetooth, alimentée par batterie et imprimée en 3D. : J'avais récemment besoin d'une machine à glace sèche pour des effets théâtraux pour un spectacle local. Notre budget ne s'étendrait pas à l'embauche d'un professionnel, c'est donc ce que j'ai construit à la place. Il est principalement imprimé en 3D, contrôlé à distance via Bluetooth, alimentation par batterie
Table basse d'arcade à deux joueurs RasPi : 7 étapes (avec photos)
Table basse d'arcade à deux joueurs RasPi : Voici ma version de la table basse d'arcade Raspberry Pi. J'ai eu l'idée d'autres excellents instructables ici et je voulais partager mon expérience avec la construction. La table peut jouer à des jeux de plusieurs époques de jeux vidéo, notamment NES, SNES, Sega, Play
Table basse LED interactive DIY : 16 étapes (avec photos)
Table basse LED interactive bricolage : dans ce Instructable, je vais vous montrer comment j'ai fait une table basse LED interactive étape par étape. Cette table étonnante crée une ambiance incroyable dans mon salon. H