horloge Arduino WiFi Tetris

34,665

244

39

Introduction : Horloge Tetris Arduino WiFi

À propos de : Salut tout le monde ! Je m'appelle Brian et merci d'avoir vérifié mes Instructables. Je suis développeur de logiciels de formation, mais je me suis récemment lancé dans le développement Arduino après avoir découvert la puce esp8266, une activation WiFi…

C'est des blocs qui tombent emblématiques sont instantanément reconnaissables par presque tout le monde, quel que soit leur intérêt pour les jeux vidéo. Mais au lieu d'utiliser les blocs pour effacer les lignes, nous allons les utiliser pour lire l'heure !
Ce projet dessine les chiffres d'une horloge en utilisant les formes classiques de Tetris sur un écran LED Matrix.

Mesurant environ 19 cm x 9,5 cm, il s'agit d'un écran assez grand et très lumineux, le résultat est donc incroyablement accrocheur.

Une autre tournure avec ce projet est, contrairement aux projets d'horloge Arduino traditionnels, il n'utilise pas de module RTC pour garder l'heure, à la place l'heure de l'horloge est réglée à partir d'Internet. Un grand avantage de ceci est que vous n'avez qu'à réglervotre fuseau horaire et l'horloge affichera automatiquement l'heure correcte, elle s'ajustera même à l'heure d'été.

C'est un projet étonnamment facile à mettre en place qui ne devrait prendre que quelques heures au total, donc armé de ce guide, vous ne devriez avoir aucune excuse pour ne pas en faire un !

Fournitures

  • P3 64x32 Matrice LED RVB - Aliexpress*
  • Carte de développement ESP32 - Personnellement j'utilise le kit ESP32 Dev mini Aliexpress* / Amazon*
  • Alimentation 5 V - 4 A ou plus devrait faire l'affaire - Aliexpress*
  • câbles Dupont femelle à femelle 20 cm
  • Adaptateur femelle Barrel Jack vers borne à vis - Dépend de la tête de votre alimentation
  • L'imprimé en 3D représente la matrice LED - Ou quelque chose pour la maintenir droite !

* = Lien d'affiliation

Étape 1 : La vidéo

J'ai fait une vidéo sur ce sujet que vous pouvez vérifier ici !

Étape 2 : Panneaux matriciels LED

J'adore ces écrans ! C'est un moyen fantastique de construire rapidement un projet arudino vraiment saisissant. Le but de ces écrans est de s'enchaîner pour former d'énormes écrans comme on les voit lors de concerts, etc., mais ils peuvent être contrôlés individuellement à l'aide d'unmicrocontrôleur. Les écrans sont disponibles dans de nombreuses configurations différentes, mais j'ai utilisé une matrice P3 64x32 pour ce projet.

Un écran avec une résolution de 64 x 32 signifie qu'il aura 64 LED en travers
et 32 ​​LED vers le bas. Ce projet est codé pour fonctionner sur des écrans 64 x 32, mais il pourrait être adapté pour d'autres si nécessaire.

La partie "P3" indique que l'écran a un pas de 3 mm. Les écrans avec des pas plus grands seront physiquement plus grands.

Ces écrans peuvent être pilotés avec de nombreux microcontrôleurs différents, les gens les utilisent couramment avec Raspberry Pis, mais pour ce projet, nous allons utiliser un ESP32. Un ESP32 est un microcontrôleur bon marché, compatible Arduino, avec WiFi intégré.


Les supports sont imprimés en 3D et vous pouvez les trouver sur autre chose. Il s'agissait d'un design existant que j'ai remixé à l'aide de Tinkercad.

Étape 3 : Boucliers matriciels

J'ai fait un PCB qui rend l'utilisation de ces écrans vraiment facile ! Ceux-ci ne sont pas nécessaires, mais ils les rendent beaucoup plus faciles à utiliser.

L'original utilise la bibliothèque PxMatrix et la nouvelle matrice I2S utilise la bibliothèque DMA HuB75. Il existe une version du code pour les deux. Pour plus d'informations sur les différences entre les deux bibliothèques, consultez ce lien.

Si vous êtes intéressé à en acheter un, je les vends sur ma boutique tindie.

Si vous êtes basé au Royaume-Uni, Colin Hickey les vend également sur son magasin

Étape 4 : Câblage sans les blindages

La première chose que nous devons faire est de connecter l'alimentation aux fils fournis avec l'écran. Pour cela, j'ai utilisé quelques bornes à vis et un morceau de panneau perforé pour faire une petite carte pour connecter l'alimentation aux fils, jeétait content du résultat !

Adafruit dans ses guides d'apprentissage recommande de connecter le fil directement au connecteur jack cylindrique comme illustré ci-dessus, mais je n'ai pas réussi à établir une connexion solide physiquement, mais qui suis-je pour remettre en question ce que suggère Adafruit ! Si vous le faitesemprunter cette voie, assurez-vous d'utiliser du ruban isolant ou un patin thermique pour lui donner un peu de force.

La prochaine chose que nous devons faire est de câbler l'ESP32 au panneau matriciel. Le connecteur dont les flèches s'éloignent est "P-In" et l'ESP32 sera connecté à cela, mais avant de le connecter,nous devons connecter certains des connecteurs P-in au connecteur P-out celui vers lequel les flèches se dirigent. Vous devez connecter les éléments suivants :

P-in -> P-out
R2 -> R1
G1 -> R2
G2 -> G1
B1 -> G2
B2 -> B1

Pour l'ESP32, vous devrez connecter les éléments suivants :

P-in -> ESP32
A -> 19
B -> 23
C -> 18
D -> 5
E -> 15
STB/LAT -> 22
P_OE -> 2
CLK -> 14
R1 -> 13


Si vous utilisez un Adafruit Feather Huzzah 32, utilisez la broche 21 pour P_OE car il n'a pas de 2 broches.

Étape 5 : Configuration du logiciel ESP32

Si vous n'êtes pas déjà configuré pour programmer un ESP32, vous devrez procéder comme suit

Vous devrez d'abord télécharger l'IDE Arduino à partir du site Web Arduino et l'installer - https://www.arduino.cc/en/Main/Software

Vous devrez ensuite configurer l'IDE Arduino pour qu'il soit utilisé avec un ESP32. Ouvrez l'IDE Arduino, accédez à Fichier->Préférences et collez l'URL suivante dans les URL du gestionnaire de cartes supplémentaires et cliquez sur "OK".

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

De retour sur l'écran principal de l'IDE Arduino, Outils->Tableau->Gestionnaire de tableaux lorsque cet écran s'ouvre, recherchez « ESP32 » et installez-le, cela peut prendre quelques minutes en fonction de votre connexion Internet.

Après avoir configuré une nouvelle carte, il est recommandé d'obtenir un simple croquis avant d'essayer quelque chose de plus compliqué, cela peut éviter une énorme quantité de maux de tête!

Étape 6 : Configuration du code

Le code de ce projet est disponible sur Github. Pour l'installer :

  • Aller au page github du projet.
  • Cliquez sur le bouton Cloner ou Télécharger sur le côté droit de la page, puis sur Télécharger le zip.
  • Extraire le fichier zip.
  • Dans le dossier extrait, ouvrez le dossier "ESP32 ou TinyPICO", puis le dossier EzTimeTetrisClockESP32 et ouvrez le fichier EzTimeTetrisClockESP32.ino.

Cette esquisse nécessite l'installation de quelques bibliothèques Arduino supplémentaires

  • Tetris Animation par Tobias Blum - gère l'animation de style tetris de l'horloge
  • PxMatrix by 2Dom - pour contrôler l'affichage matriciel.
  • EzTime par ropg - utilisé pour obtenir l'heure sur Internet.
  • AdafruitGFX par Adafruit - la bibliothèque de base sur laquelle PxMatrix est construit.

Les détails des versions des bibliothèques nécessaires et de l'endroit où les obtenir sont contenus près du haut de l'esquisse.

Après avoir installé ces bibliothèques, vous devez cliquer sur le bouton « vérifier » en forme de coche sur le croquis EzTimeTetrisClockESP32 pour vous assurer que tout se compile bien.

REMARQUE : si vous utilisez la matrice I2S, protégez le code du projetest ici et vous demandera d'installer le Bibliothèque DMA HUB75 I2S.

Étape 7 : Configuration du code

Vous devrez apporter quelques modifications à l'esquisse pour que l'horloge fonctionne correctement pour vous. Dans la section « Trucs à configurer », définissez votre SSID et votre mot de passe pour votre WiFi.
Juste en dessous de celui qui définit votre fuseau horaire au format "Europe/Dublin", un lien avec la liste complète des fuseaux horaires possibles est un commentaire dans le croquis.

Et enfin, si vous utilisez une carte ESP32 différente de celle du TinyPICO, vous devrez changer le câblage. Recherchez "Générique" dans le croquis et décommentez les deux lignes que vous trouvez, et commentez les lignes adjacentes qui contiennent un "Commentaire de TinyPICO.

Une fois la configuration terminée, téléchargez le code sur votre ESP32 et vous devriez le voir s'animer dans toute sa gloire !

Autres ajustements :

Il y a plusieurs réglages que vous pouvez apporter à l'horloge pour qu'elle fonctionne exactement comme vous le souhaitez.
Si vous préférez une horloge au format 24 heures, réglez le douzeHourFormat à faux.

Le forceRefresh l'option contrôle le nombre de chiffres tirés chaque minute. Si elle est définie sur vrai, l'horloge entière sera effacée et il dessinera à nouveau tous les chiffres. Si réglé sur faux, il n'effacera que les chiffres dont il a besoin, par exemple si l'heure était actuellement « 10:29 » et qu'il devait être mis à jour, seuls le « 2 » et le « 9 » seraient remplacés, le « 10 » resterait alluméfiltrer.

Et enfin, vous pouvez régler la vitesse à laquelle les blocs tetris tombent en changeant la valeur qui déclenche le animationTimer. Par défaut dans l'esquisse, il est défini sur 100000, qui est de 100 000 microsecondes, ou 0,1 de seconde. Réduire ce nombre accélérera la chute des blocs. Changer la valeur en 50000 l'animation sera deux fois plus rapide.

Une fois ces modifications apportées, téléchargez à nouveau le code et l'horloge fonctionnera comme vous le souhaitez. Il ne vous reste plus qu'à perdre du temps à regarder les blocs tomber !

Étape 8 : Merci d'avoir lu !

J'espère que vous apprécierez le projet ! J'aimerais voir votre construction si vous l'essayez !

Prix des juges dans le
Challenge Speed ​​Challenge

9 personnes ont réalisé ce projet !

Recommandations

  • Défi d'art comestible

  • Concours de matériaux récupérés

  • Défi laser

39 commentaires

0
via20

Question il y a 2 mois

Hola, hace dos dias que se retraso dos horas y no hay forma de ajustarse a la correcta, en el monitor serial dice " Timezone lookup for : Europe/Madrid...Error: Timeout " y tampoco admite nueva hora de de otraszonas, si alguien sabe como solucionar lo agradecería mucho.
Saludos

0
Alexvanhe

Réponse il y a 2 mois

Hola,
Sí, también me rompió, hace dos días, no arregló lo que hice.

0
via20

Répondre il y a 2 mois

Esta tarde lo apagué y al volverlo a encender ,ya cargó la hora correcta de Madrid, no comprendo , supongo que seria error de la web de donde toma la hora.
Gracias y saludos

0
Alexvanhe

Question il y a 2 mois

Bonjour,
J'ai besoin d'aide, le réglage de l'heure pour l'Allemagne ne fonctionne pas, toujours 2 heures en arrière, quelqu'un peut-il m'aider ? merci


0
via20

Réponse il y a 2 mois

Hola, si consigues resolver este problema ruego me lo digas.
Gracias y saludos

0
tericamen

il y a 3 mois

Bonjour,

Jusqu'à présent, tout va bien jusqu'à cela, reste le même pendant un moment puis changera de couleur, est-ce un problème de soudure ou autre chose ? Toute aide est appréciée. Merci !

0
Jopiell2

Question il y a 4 mois

Bonjour à tous !

Je travaille sur ce projet car un débutant ne peut pas sortir de la disposition des broches commandé les pièces de la liste

* Matrice LED RVB 64x32 - Aliexpress*
* Carte de développement ESP32 - Personnellement j'utilise le kit ESP32 Dev mini Aliexpress

P-in -> P-out
R2 -> R1
G1 -> R2
G2 -> G1
B1 -> G2
B2 -> B1

Pour l'ESP32, vous devrez connecter les éléments suivants :

P-in -> ESP32
A -> 19
B -> 23
C -> 18
D -> 5
E -> 15
STB/LAT -> 22
P_OE -> 2
CLK -> 14
R1 -> 13

Quelqu'un peut-il me dire quelle broche utiliser sur le wroom esp32? Attaché une photo de la disposition des broches sur la pièce

merci cordialement salutations Johan

0
ConstructeurAl1958

Question il y a 4 mois

Bonjour, je n'ai plus d'électronique depuis environ 40 ans, je m'y remets avec mon petit-fils. J'utilise le Tiny Pico et je me fie au schéma de câblage que j'ai tous connectés sauf 2 et 13 car il n'y en a pas 2et 13 sur le TP.. Suite aux images du câblage TP, j'ai OEB connecté à la broche 25 et RD1 connecté à la broche 26. Je voudrais vérifier que cela est correct avant de mettre l'horloge sous tension.l'alimentation du TP provient de l'alimentation de l'affichage, est-ce correct ? Merci.

0
LuisS268

il y a 5 mois sur Étape 8

Bonjour, je construis cette horloge en utilisant ESP32 Wroom 32 et cela ne fonctionne pas. J'utilise les numéros GPIO. Est-ce que je fais bien ou je devrais aller sur PWM de la carte. J'utilise cette image Pinout.

P-in -> ESP32
A -> D19
B -> D23
C -> D18
D -> D5
E -> D15
STB/LAT -> D22
P_OE -> D2
CLK -> D14
R1 -> D13

Pouvez-vous m'aider s'il vous plaît. Merci d'avance.

0
via20

Répondre il y a 5 mois

You usé esta esp32 mini con los gpio equivalentes si falta alguno , en el arduino ide utilizo la version 2.6 que reconoce las esp32, con la real 3.0 no funciona, y las versiones antiguas de las librerías que mas abajo describen, tuve que borrarlas actuales, me costo bastante horas de ensayo y error hasta que lo consegui

0
SINVER

Répondre il y a 5 mois

Bonjour, quelles bibliothèques avez-vous modifiées ?

0
via20

Répondre il y a 5 mois

Hola, fue error mio ,estas son correctas, no dan errores ,confundi con las del morphing clock que si dan problemas, lo siento

0
SINVER

Répondre il y a 4 mois

OK merci

0
LuisS268

Répondre il y a 5 mois

Bonjour, merci j'ai réussi.

0
via20

Répondre il y a 5 mois

Mas photos del montaje

0
témoin maintenant

Répondre il y a 5 mois

Ça a l'air bien c'est la même chose que j'ai mentionné ci-dessus

Si vous rencontrez des problèmes, je vous recommanderais de commencer par l'un des exemples de base de matrice px, comme le temps de pixel. Cela ne sert à rien de compliquer le dépannage en ajoutant le wifi et le NTP dans le mix.

0
LuisS268

Répondre il y a 5 mois

Bonjour, j'ai réussi à répliquer, le problème était sur le code où initialiser l'affichage, j'ai été mal initialisé en tant que tinypico par erreur, puis je passe au générique esp32 et cela fonctionne.

0
via20

il y a 5 mois

Realizado y probado con panel p4 es mas brillante y espectacular que con p3 al ser mas grande.
Gracias Brian

0
LuisS268

Répondre il y a 5 mois

Bonjour Brian, quelle carte ESP32 avez-vous utilisée ?

0
jimtozer6

Question il y a 5 mois sur Introduction

Je suis nouveau
Arduino mais j'adore le look de ce projet.


Je propose d'utiliser I2S Matrix et la bibliothèque HuB75 DMA.


Je propose d'utiliser Tiny Pico


Y a-t-il un câblage plus explicite
schéma s'il vous plait ?


Qu'est-ce que l'accéléromètre ?


J'ai téléchargé le croquis sur le
Arduino IDE, et ajouté les éléments de la bibliothèque comme indiqué, et j'obtiens un
commentez que cela ne convient pas pour Tiny Pico et une énorme masse d'autres
commentaires que je ne comprends pas. Y a-t-il un moyen facile de s'en sortir ?