Aller au contenu

+49 1626571232

info@openelab.io

🚀 Livraison gratuite à partir de 50€ dans l'UE / 80€ dans le monde entier

FAQ

Comment utiliser le puzzle d'unité M5Stack ?

20 Nov 2024 0 commentaires

Qu'est-ce que Unit Puzzle ?

Récemment, M5Stack a lancé un nouveau produit appelé Unit Puzzle. Unit Puzzle est une unité de contrôle de lumière multicolore composée d'un réseau RVB 8x8 composé de 64 LED RVB WS2812E.

M5Stack ATOM Echo

Écho ATOM M5Stack

Voir le produit
 

Je l'ai vu pour la première fois lors d'un salon MakerFaire comme celui-ci :

Cela me fait plaisir, vous savez que nous aimons beaucoup les LED, alors j'ai immédiatement reçu un puzzle de 10 unités. Amusons-nous un peu.

  

Connexion du matériel

À propos du microcontrôleur, vous savez quel est mon préféré. C'est vrai, M5Stack ATOM Lite.

M5Stack ATOM Lite

M5Stack ATOM Lite

Voir le produit
 

Et l'unité comprenait un puzzle d'unité, un connecteur, un câble Grove. Cela signifie que nous pouvons rassembler toutes les unités.

Mettons-les ensemble.
Dos

 

Partie du code

Première version

//The unit puzzle used WS2812E, which means Adafruit_NeoPixel library is our best choice
#include 

//And define part:
#define PIN 26
#define NUMPIXELS 512
//The official recommendation for long-term lighting is 10% brightness, so we use 25
#define BRIGHTNESS 25 // Brightness range(0-255)

Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);


//I need display letters 'OPENELAB'
int letters[8][64] = {
  {30, 38, 21, 45, 20, 44, 19, 43, 18, 42, 17, 41, 24, 32}, // "O"
  {22, 30, 38, 46, 21, 45, 20, 44, 19, 27, 35, 43, 18, 17, 16}, // "P"
  {22, 30, 38, 46, 21, 20, 19, 27, 35, 43, 18, 17, 16, 24, 32, 40}, // "E"
  {22, 46, 21, 45, 20, 28, 44, 19, 27, 35, 43, 18, 34, 42, 17, 41, 16, 40}, // "N"
  {22, 30, 38, 46, 21, 20, 19, 27, 35, 43, 18, 17, 16, 24, 32, 40}, // "E"
  {22, 21, 20, 19, 18, 17, 16, 24, 32, 40}, // "L"
  {30, 38, 21, 45, 20, 44, 19, 27, 35, 43, 18, 42, 17, 41, 16, 40}, // "A"
  {22, 30, 38, 21, 45, 20, 36, 19, 27, 18, 34, 17, 41, 16, 24, 32} // "B"
};

//Initialize the NeoPixel library, set the brightness, turn off all pixels, call the function that displays text, and then loop empty

void setup() {
  pixels.begin();
  pixels.setBrightness(BRIGHTNESS);
  pixels.show();
  displayText();
}

void loop() {
}

// Clear all lamp beads
void displayText() {
  pixels.clear();

// Set the position of the lamp beads to display each character
  for (int charIndex = 0; charIndex < 8; charIndex++) {
    for (int i = 0; i < 64; i++) {
      if (letters[charIndex][i] != -1) {
        int pixelIndex = charIndex * 64 + letters[charIndex][i];
        pixels.setPixelColor(pixelIndex, pixels.Color(255, 0, 0)); // Définit le pixel à la position spécifiée sur rouge
      }
    }
  }

  pixels.afficher();

✔ Copié !
 
Adafruit_NeoPixel pixels (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800) ;
Cette partie est drôle. J'ai utilisé Excel pour m'aider à le faire. Lorsque le puzzle unitaire est connecté, ses perles de lampe sont numérotées comme ceci :
 

Premier spectacle

Affichage très parfait, mais chaque pixel 0 s'éclaire. Trop bizarre, il devrait servir au positionnement. Peu importe, éteignons-le.

 

Deuxième version

Je dois désactiver le pixel 0, donner aux lettres des couleurs différentes.
// In the define section, increase the color cycle time by 0.5 seconds
#define COLOR_CHANGE_INTERVAL 500

// Define the character part to add characters to display red, green and blue in three colors
int letters[8][64] = {
  {30, 38, 21, 45, 20, 44, 19, 43, 18, 42, 17, 41, 24, 32}, // "O"
  {22, 30, 38, 46, 21, 45, 20, 44, 19, 27, 35, 43, 18, 17, 16}, // "P"
  {22, 30, 38, 46, 21, 20, 19, 27, 35, 43, 18, 17, 16, 24, 32, 40}, // "E"
  {22, 46, 21, 45, 20, 28, 44, 19, 27, 35, 43, 18, 34, 42, 17, 41, 16, 40}, // "N"
  {22, 30, 38, 46, 21, 20, 19, 27, 35, 43, 18, 17, 16, 24, 32, 40}, // "E"
  {22, 21, 20, 19, 18, 17, 16, 24, 32, 40}, // "L"
  {30, 38, 21, 45, 20, 44, 19, 27, 35, 43, 18, 42, 17, 41, 16, 40}, // "A"
  {22, 30, 38, 21, 45, 20, 36, 19, 27, 18, 34, 17, 41, 16, 24, 32} // "B"
};

unsigned long lastColorChangeTime = 0;
int currentColorIndex = 0;
uint32_t colors[3] = {pixels.Color(255, 0, 0), pixels.Color(0, 255, 0), pixels.Color(0, 0, 255)};

// Add switching colors in the loop
void loop() {
  unsigned long currentTime = millis();
  if (currentTime - lastColorChangeTime >= COLOR_CHANGE_INTERVAL) {
    lastColorChangeTime = currentTime;
    displayText(); 
    currentColorIndex = (currentColorIndex + 1) % 3; 
  }
}

  // Make sure the first lamp bead (pixel 0) of all matrices is off
  for (int charIndex = 0; charIndex < 8; charIndex++) {
    int firstPixelIndex = charIndex * 64;
    if (firstPixelIndex < NUMPIXELS) {
      pixels.setPixelColor(firstPixelIndex, pixels.Color(0, 0, 0));

✔ Copié !
  
 

Deuxième spectacle

Beau

 

Autre version

  // Define the color corresponding to each character
  uint32_t characterColors[8] = {
    pixels.Color(255, 0, 0), // "O" - Red
    pixels.Color(0, 255, 0), // "P" - Green
    pixels.Color(0, 0, 255), // "E" - Blue
    pixels.Color(255, 255, 0), // "N" - Yellow
    pixels.Color(0, 255, 255), // "E" - Light blue
    pixels.Color(255, 0, 255), // "L" - Magenta
    pixels.Color(255, 128, 0), // "A" - Orange
    pixels.Color(128, 0, 128) // "B" - Purple
  };

✔ Copié !
 
 

Résumé

Unit Puzzle est une matrice LED néopixel amusante. Cela me rend heureux toute la journée.

Avez-vous d'autres façons amusantes de jouer ? Partageons-le ensemble.

Article précédent
Prochain article

laissez un commentaire

Tous les commentaires du blog sont vérifiés avant la publication

Quelqu'un a récemment acheté un

Merci pour votre subscription!

Cet email a été enregistré !

Achetez le look

Choisissez les options

Modifier l'option
Notification de retour en stock
this is just a warning
Se connecter
Panier
0 articles
RuffRuff App RuffRuff App by Tsun