- Matériaux nécessaires:
- Schéma:
- Création de l'application Android à l'aide du traitement:
- Comprendre le code de traitement:
- Programmation de votre Arduino:
- Conception de circuits et de circuits imprimés avec EasyEDA:
- Calcul et commande d'échantillons en ligne:
- Fonctionnement de l'affichage du panneau de signalisation Bluetooth:
Que ce soit les longues autoroutes ou la porte d'entrée de votre médecin, nous avons des panneaux d'affichage placés partout pour nous fournir des informations. Mais ces panneaux de signalisation sont souvent ennuyeux et ne peuvent pas être configurés selon nos intérêts de temps en temps. Donc, dans ce projet, nous allons construire un panneau de signalisation contrôlé par Bluetooth en utilisant un écran Matrix 8 * 8. Une caractéristique unique de ce projet est son application Android qui permet à l'utilisateur de contrôler individuellement toutes les 64 LED depuis le téléphone mobile. Cela permet à l'utilisateur de créer facilement des designs personnalisés et de les afficher sur l'écran LED, cela semble intéressant, non? !! Alors, commençons…
Matériaux nécessaires:
- Arduino Pro mini
- MAX7219
- Module Bluetooth HC-05
- Affichage matriciel 8 * 8 LED
- Résistance 20k
- DC Barrel Jack
Schéma:
Le schéma de circuit de cette carte LED contrôlée par Bluetooth construite à l'aide de l'application EasyEDA. Nous utiliserons les mêmes schémas pour développer un PCB à partir de celui-ci et le fabriquer en utilisant EasyEDA.
Le circuit est assez simple. L'ensemble du projet est alimenté par un adaptateur 12V, qui est directement donné à la broche Raw de la carte Arduino. Cette tension brute est ensuite régulée à + 5V qui est fournie au module Bluetooth et au MAX7219 IC. Les broches Tx et Rx du module Bluetooth sont connectées aux D11 et D10 de l'Arduino pour permettre la connexion série.
Les broches numériques D5 à D7 sont connectées au CI MAX7219 pour envoyer et recevoir des données via une communication SPI. La broche ISET du MAX7219 est tirée haut à travers une résistance de 20k.
Pour ce projet, j'ai fabriqué un PCB, vous pouvez obtenir le fichier de conception du PCB et l'utiliser ou construire le circuit sur une maquette. Cependant, en raison de sa complexité, il est recommandé d'acheter un module d'affichage 8x8 ou d'utiliser le PCB
La matrice 8x8 est un module d'affichage très utile et peut être utilisé dans de nombreux projets sympas:
- Contrôle de la matrice LED 8x8 avec Raspberry Pi
- Affichage de texte défilant sur une matrice de LED 8x8 avec Arduino
- Matrice LED 8x8 utilisant Arduino
- Interfaçage matriciel LED 8x8 avec microcontrôleur AVR
Création de l'application Android à l'aide du traitement:
Avant de pouvoir commencer à programmer notre Arduino, nous devons savoir quel type de données nous recevrons du téléphone mobile pour y répondre. Voyons donc comment l'application Android est créée et comment vous pouvez l'utiliser sur votre smartphone pour contrôler la matrice LED 8x8.
L'application Android pour ce projet a été créée à l'aide du logiciel de traitement. Il s'agit d'une application de développement Open Source qui peut être facilement téléchargée et utilisée pour développer des projets intéressants à l'aide d'Arduino ou d'autres microcontrôleurs, car elle peut développer des applications Android et des applications système. Nous avons déjà réalisé quelques projets en utilisant Processing et vous pouvez les consulter en cliquant sur les liens ci-dessous.
- Radio FM bricolage utilisant le traitement
- Réalité virtuelle / contrôle gestuel à l'aide d'Arduino
- Salle de chat privée utilisant Arduino.
- Système radar Arduino utilisant l'application de traitement et le capteur à ultrasons
- Détection et suivi des visages en temps réel à l'aide d'Arduino
- Compteur de vitesse DIY utilisant Arduino et traitement
- Jeu de ping-pong utilisant l'accéléromètre Arduino
- Robot bipède utilisant Arduino
- Caméra d'imagerie thermique DIY Arduino
Pour revenir au sujet, il m'est impossible d'expliquer le code complet de l'application Android, vous devrez donc apprendre le traitement par vous-même, puis regarder le code pour comprendre comment cela fonctionne. Par conséquent, pour les personnes souhaitant ignorer le processus d'apprentissage, le traitement peut télécharger l'application Android à partir du lien ci-dessous
- Téléchargez l'application Android
Ci-dessous l' interface de notre application Android:
Le fichier APK peut être directement installé sur n'importe quelle application Android et lancé comme n'importe quelle autre application. Mais assurez-vous que votre appareil Bluetooth HC-05 est nommé «HC-05», car ce n'est qu'alors qu'il fonctionnera.
Comprendre le code de traitement:
Les personnes intéressées à savoir ce qui se passe derrière l'écran peuvent lire plus loin, les autres peuvent passer à l'en-tête suivant. Fondamentalement, l'application Android se connecte à un appareil Bluetooth appelé «HC-05» au démarrage et affiche un ensemble de 64 LED en forme de cercles. Ensuite, lorsque l'utilisateur appuie sur le cercle, le cercle devient rouge et le numéro du cercle est envoyé à Arduino via Bluetooth, à la réception du numéro du cercle, l'Arduino allume la LED. Examinons les lignes importantes du programme Processing pour mieux comprendre. Le code complet de l'application Android peut être téléchargé à partir du lien ci-dessous.
- Code de traitement pour l'application Android
Nous utilisons des classes et des objets pour afficher 64 LED afin de pouvoir adresser chacune d'elles facilement. Comme vous pouvez le voir dans le code ci-dessous, nous utilisons une boucle for pour itérer de 1 à 64 à l'aide d'un tableau. C'était chaque LED aura sa propre valeur de position X, position Y et couleur et nous pouvons les changer facilement.
// dipslay toutes les leds pour (int i = 1; i <= 64; i ++) led_array.display (); // Toutes les leds affichées class Led { float X_Pos; float Y_Pos; couleur couleur; // Led CONSTRUTOR (float tempx, float tempy, color tempc) { X_Pos = tempx; Y_Pos = tempy; couleur = tempc; } affichage vide () { remplissage (couleur); ellipse (X_Pos, Y_Pos, led_dia, led_dia); } }
Les LED sont chargées sur l'écran dans le même ordre que celui de l'affichage. Chaque LED est séparée par une distance égale au diamètre de la LED, de cette façon nous pouvons facilement distinguer quelle LED est actuellement sélectionnée par l'utilisateur. Comme indiqué dans le programme ci-dessous, nous créons un tableau dans lequel chaque élément contient les informations de la position X, Y et de la couleur de la LED.
void load_leds () { led_array = new Led; int a = 1; pour (int j = 0; j <= 7; j ++) { float y = hauteur / 6 + j * (led_dia * 1.5); for (int i = 0; i <= 7; i ++) { float x = (width / 6) + i * (led_dia * 1.5); // remplir (255); // ellipse (x, y, led_dia, led_dia); led_array = nouvelle Led (x, y, couleur (255,255,255)); a ++; } } }
L'étape principale du programme est de vérifier si l'utilisateur a appuyé sur une LED et si oui, nous devons changer la couleur de la LED et envoyer le numéro de LED via Bluetooth. Depuis maintenant, nous pouvons facilement nous adresser à l'emplacement et à la couleur de chaque LED, nous pouvons le faire en comparant simplement les valeurs X, Y de l'endroit où l'utilisateur a appuyé avec la valeur X, Y des LED. Si les valeurs se confondent, nous changeons l'état de la LED et envoyons également le numéro via Bluetooth comme indiqué ci-dessous.
// vérifier si la souris survole la led // Si oui, envoyer le numéro de led pour (int i = 1; i <= 64; i ++) { if ((mouseX <(led_array.X_Pos + led_dia / 2)) && (mouseX> (led_array.X_Pos - led_dia / 2)) && (mouseY <(led_array.Y_Pos + led_dia / 2)) && (mouseY> (led_array.Y_Pos - led_dia / 2))) {led_array = new Led (led_array.X_Pos, led_array. Y_Pos, led_color); données d'octet = {octet (i)}; bt.broadcast (données); } }
En dehors de cela, le programme peut également réinitialiser la LED complète en les éteignant toutes et vous pouvez également faire en sorte qu'une LED devienne rouge (ON) ou blanche (OFF) afin que nous ayons également un bouton à bascule pour cela. Le bouton bascule s'affiche et attend l'entrée. Si vous appuyez sur, l'action correspondante sera prise. Le code pour faire de même est indiqué ci-dessous en tant que fonction qui est appelée à l'intérieur de la boucle de dessin.
void load_buttons () { rectMode (CENTRE); textAlign (CENTRE, CENTRE); noStroke (); remplir (# 1BF2D4); rect (largeur / 2-largeur / 4, hauteur / 1,3, largeur / 4, hauteur / 12); fill (0); texte ("Réinitialiser", largeur / 2-largeur / 4, hauteur / 1,3); // bouton 1 if (red == true) {fill (# 080F89); rect (largeur / 2 + largeur / 4, hauteur / 1,3, largeur / 4, hauteur / 12); remplissage (255,0,0); text ("RED", width / 2 + width / 4, height / 1.3);} // bouton 2 if (red == false) {fill (# 080F89); rect (largeur / 2 + largeur / 4, hauteur / 1,3, largeur / 4, hauteur / 12); remplissage (255); text ("WHITE", width / 2 + width / 4, height / 1.3);} // bouton 2 } void read_buttons () { if (mousePressed && click_flag == true) { color_val = get (mouseX, mouseY); click_flag = false; if (color_val == - 14945580) { octet de données = {0}; bt.broadcast (données); println ("RESET"); load_leds (); // charge toutes les LED en position et couleur } if (color_val == - 16248951) { byte data = {100}; bt.broadcast (données); si (rouge == vrai) rouge = faux; sinon si (rouge == faux) rouge = vrai; println ("TOGGLE"); } color_val = 0; } }
Programmation de votre Arduino:
Le programme Arduino complet pour ce projet de carte sans fil contrôlée par Bluetooth est donné au bas de cet écran; vous pouvez l'utiliser directement et le télécharger sur votre tableau. Les lignes importantes du programme sont expliquées ci-dessous.
Le module Bluetooth est connecté aux broches 10 et 11, nous devons donc utiliser le logiciel série pour activer la communication série sur ces broches, puis nous pouvons écouter les données de ces broches. Nous récupérons les données reçues du module Bluetooth et les enregistrons dans une variable appelée entrant . Si la valeur de l'entrée est «0», nous éteindrons toutes les LED en utilisant le code ci-dessous
if (BT.available ()) { entrant = BT.read (); Serial.println (entrant); if (entrant == 0) m.clear (); // Efface l'affichage
En utilisant les valeurs de l'entrée, nous devons déterminer sur quelle LED l'utilisateur a appuyé sur le téléphone portable et la météo pour allumer ou éteindre cette LED. Nous vérifions donc si la valeur est égale à 100. Si la valeur est 10, cela signifie que l'utilisateur a demandé de changer la couleur de la LED. Nous basculons donc la variable rouge pour savoir si la LED doit être allumée ou éteinte.
else if (incoming == 100) // Vérifie si on doit allumer ou éteindre la LED { if (red == true) red = false; sinon si (rouge == faux) rouge = vrai; Serial.print ("RED:"); Serial.println (rouge); }
Enfin si la valeur est supérieure à 65 cela signifie que l'utilisateur a appuyé sur une LED. Sur la base du nombre de 1 à 64, nous devons déterminer sur quelle LED l'utilisateur a appuyé. Pour basculer cette LED, nous aurons besoin de la valeur de la ligne et de la colonne de cette LED qui est calculée et stockée sur les variables X et Y respectivement et indiquée sur le code ci-dessous. Enfin, en fonction de la valeur de la variable rouge, nous allumons ou éteignons la LED selon la demande de l'utilisateur
else if (entrant <= 64) {// Calculez où ON ro OFF la LED toggle = true; Y = entrant / 8; X = entrant - (Y * 8); si (entrant% 8 == 0) {X = 8; Y - = 1;} Serial.println (X - 1); Serial.println (Y); if (rouge == vrai) m.setDot ((X - 1), (Y), vrai); // LED allumée sinon si (rouge == faux) m.setDot ((X - 1), (Y), faux); // LED éteinte }
Conception de circuits et de circuits imprimés avec EasyEDA:
Pour concevoir cet écran à matrice contrôlée Bluetooth, nous avons choisi l'outil EDA en ligne appelé EasyEDA. J'ai déjà utilisé EasyEDA à plusieurs reprises et je l'ai trouvé très pratique à utiliser car il a une bonne collection d'empreintes et il est open-source. Après avoir conçu le PCB, nous pouvons commander les échantillons de PCB par leurs services de fabrication de PCB à faible coût. Ils offrent également un service d'approvisionnement en composants où ils ont un grand stock de composants électroniques et les utilisateurs peuvent commander les composants nécessaires avec la commande de PCB.
Lors de la conception de vos circuits et PCB, vous pouvez également rendre publics vos conceptions de circuits et de PCB afin que d'autres utilisateurs puissent les copier ou les modifier et tirer parti de votre travail, nous avons également rendu public l'ensemble de nos schémas de circuits et de PCB pour ce circuit, vérifiez le lien ci-dessous:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bluetooth
Vous pouvez afficher n'importe quelle couche (Haut, Bas, Topsilk, Bottomsilk, etc.) du PCB en sélectionnant le calque dans la fenêtre «Couches».
Vous pouvez également afficher le circuit imprimé et son apparence après la fabrication à l'aide du bouton Photo View dans EasyEDA:
Calcul et commande d'échantillons en ligne:
Après avoir terminé la conception de ce PCB à matrice contrôlée par Bluetooth, vous pouvez commander le PCB via JLCPCB.com. Pour commander le PCB auprès de JLCPCB, vous avez besoin d'un fichier Gerber. Pour télécharger les fichiers Gerber de votre PCB, cliquez simplement sur le bouton Sortie de fabrication dans la page de l'éditeur EasyEDA, puis téléchargez à partir de la page de commande de PCB EasyEDA.
Maintenant, allez sur JLCPCB.com et cliquez sur Quote Now ou sur le bouton, puis vous pouvez sélectionner le nombre de PCB que vous souhaitez commander, le nombre de couches de cuivre dont vous avez besoin, l'épaisseur du PCB, le poids du cuivre et même la couleur du PCB, comme l'instantané. indiqué ci-dessous:
Après avoir sélectionné toutes les options, cliquez sur «Enregistrer dans le panier» et vous serez redirigé vers la page où vous pouvez télécharger votre fichier Gerber que nous avons téléchargé depuis EasyEDA. Téléchargez votre fichier Gerber et cliquez sur «Enregistrer dans le panier». Et enfin, cliquez sur Commander en toute sécurité pour terminer votre commande, puis vous recevrez vos PCB quelques jours plus tard. Ils fabriquent le PCB à un taux très bas qui est de 2 $. Leur temps de construction est également très inférieur, soit 48 heures avec une livraison DHL de 3 à 5 jours.En gros, vous obtiendrez vos circuits imprimés dans la semaine suivant la commande.
Après quelques jours de commande de PCB, j'ai reçu les échantillons de PCB dans un bel emballage comme le montrent les images ci-dessous.
Et après avoir obtenu ces pièces, j'ai soudé tous les composants requis sur le PCB.
Dans mon PCB, j'ai fait une erreur grossière en sélectionnant la mauvaise empreinte pour le module d'affichage 8 * 8, j'ai donc dû utiliser une carte Perf pour monter l'écran comme indiqué sur l'image. Mais maintenant, l'encombrement est mis à jour dans le PCB et vous pouvez commander le PCB corrigé et monter le module d'affichage avec facilité.
Fonctionnement de l'affichage du panneau de signalisation Bluetooth:
Une fois que vous êtes prêt avec le matériel, soit en obtenant le PCB ou en établissant la connexion sur la maquette, utilisez le programme Arduino donné à la fin de la page et téléchargez-le sur votre carte Arduino. Le fichier APK de l'application Android est également fourni ci-dessus, utilisez-le et installez l'application sur votre appareil Android préféré.
Mettez le matériel sous tension et recherchez le nom de l'appareil HC-05 sur votre téléphone pour le coupler. La clé de passe sera 1234 par défaut. Après cela, ouvrez l'application que nous venons d'installer. L'application devrait afficher « connecté à HC-05 » en haut de l'écran, vous pourrez alors toucher la LED sur l'écran et remarquer que la même LED est également allumée dans la carte.
Vous pouvez également éteindre toutes les LED en appuyant sur le bouton Reset et décider d'allumer ou d'éteindre une LED particulière en appuyant sur le bouton Toggle. Par défaut, la LED sur laquelle vous appuyez sera allumée. Le fonctionnement complet du projet peut être trouvé dans la vidéo ci-dessous. Si vous rencontrez un problème pour le faire fonctionner, utilisez la boîte de commentaires ci-dessous ou écrivez sur nos forums pour obtenir une aide plus technique. J'espère que vous avez compris le didacticiel et que vous avez apprécié sa construction.