Zum Inhalt springen

+49 1626571232

info@openelab.io

🚀 Kostenloser Versand ab 50€ in der EU / 80€ weltweit

Wie verwende ich das M5Stack-Einheitenpuzzle?

20 Nov 2024 0 Kommentare

Was ist Unit Puzzle?

Vor kurzem hat M5Stack ein neues Produkt namens Unit Puzzle auf den Markt gebracht. Unit Puzzle ist eine mehrfarbige Lichtsteuereinheit, die aus einem 8x8 RGB-Array bestehend aus 64 WS2812E RGB-LEDs besteht.

M5Stack ATOM Echo

M5Stack ATOM Echo

Produkt anzeigen
 

Ich habe es zum ersten Mal auf einer MakerFaire-Show wie dieser gesehen:

Das macht mich glücklich, Sie wissen, dass wir LED sehr mögen, also habe ich sofort ein 10-Einheiten-Puzzle bekommen. Lass uns etwas Spaß haben.

  

Hardware-Anschluss

Was den Mikrocontroller angeht, ihr wisst, was mir am besten gefällt. Genau, M5Stack ATOM Lite.

M5Stack ATOM Lite

M5Stack ATOM Lite

Produkt anzeigen
 

Und zur Einheit gehörten ein Einheitspuzzle, ein Stecker und ein Grove-Kabel. Das heißt, wir können alle Einheiten zusammenfügen.

Lassen Sie uns sie zusammenfügen.
Zurück

 

Codeteil

Erste 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)); // Setzt das Pixel an der angegebenen Position auf Rot
      }
    }
  }

  pixels.show();

✔ Kopiert!
 
Adafruit_NeoPixel Pixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
Dieser Teil ist lustig. Ich habe Excel verwendet, um mir dabei zu helfen. Wenn das Einheitspuzzle verbunden ist, sind seine Lampenperlen wie folgt nummeriert:
 

Erste Show

Sehr perfektes Display, aber jedes Pixel 0 leuchtete. Zu seltsam, es sollte zur Positionierung verwendet werden. Macht nichts, schalten wir es aus.

 

Zweite Version

Ich muss Pixel 0 ausschalten und den Buchstaben unterschiedliche Farben geben.
// 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));

✔ Kopiert!
  
 

Zweite Show

Schön

 

Andere 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
  };

✔ Kopiert!
 
 

Zusammenfassung

Unit Puzzle ist eine lustige Neopixel-LED-Matrix. Es macht mich den ganzen Tag glücklich.

Habt ihr noch andere unterhaltsame Spielmöglichkeiten? Lasst es uns gemeinsam teilen.

Vorheriger Beitrag
Nächster Beitrag

Hinterlasse einen Kommentar

Alle Blog-Kommentare werden vor der Veröffentlichung geprüft

Jemand kaufte vor kurzem ein

Danke fürs Abonnieren!

Diese E-Mail wurde registriert!

Shoppen Sie den Look

Wähle Optionen

Bearbeitungsoption
Benachrichtigung wieder vorrätig
this is just a warning
Anmeldung
Einkaufswagen
0 Artikel
RuffRuff App RuffRuff App by Tsun