| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- //----------------------------------------------------------------------
- // NeoPixelMosaicDump
- // This will dump to the serial output a grid map of the defined mosaic
- // The output is displayed as row column labeled grid with the NeoPixelBus
- // index of the pixel at the intersection of the row and column.
- //
- // To help with physical layout, there maybe included a symbol following the index
- // < means the index is the input index for the panel, the first on the panel
- // > means the index is the output index for the panel, the last on the panel
- //
- // This is useful in visualising the mosaic layout of your panels to
- // confirm you have them correctly wired together for this mosaic pattern
- //
- // It does not require that you have the actual panel connected
- //----------------------------------------------------------------------
- #include <NeoPixelAnimator.h>
- #include <NeoPixelBus.h>
- // uncomment one of these that matches your panel pixel layouts
- // rotation is ignored for mosaic as it applies a rotation for you
- // that is specific to the location of the panel within the mosaic
- // to reduce connection lengths
- typedef ColumnMajorAlternatingLayout MyPanelLayout;
- // typedef ColumnMajorLayout MyPanelLayout;
- // typedef RowMajorAlternatingLayout MyPanelLayout;
- // typedef RowMajorLayout MyPanelLayout;
- // make sure to set these panel and tile layout to match your sizes
- const uint8_t PanelWidth = 8; // a 8 pixel x 8 pixel matrix of leds on the panel
- const uint8_t PanelHeight = 8;
- const uint8_t TileWidth = 4; // laid out in 4 panels x 2 panels mosaic
- const uint8_t TileHeight = 2;
- NeoMosaic <MyPanelLayout> mosaic(
- PanelWidth,
- PanelHeight,
- TileWidth,
- TileHeight);
- void DumpMosaic()
- {
- Serial.println();
- Serial.print("\t\t");
- for (int x = 0; x < mosaic.getWidth(); x++)
- {
- Serial.print(x);
- Serial.print("\t");
- }
- Serial.println();
- Serial.print("\t---");
- for (int x = 0; x < mosaic.getWidth(); x++)
- {
- Serial.print("--------");
- }
- Serial.println();
- for (int y = 0; y < mosaic.getHeight(); y++)
- {
- Serial.print(" ");
- Serial.print(y);
- Serial.print("\t|\t");
- for (int x = 0; x < mosaic.getWidth(); x++)
- {
- NeoTopologyHint hint = mosaic.TopologyHint(x, y);
- Serial.print(mosaic.Map(x, y));
- if (hint == NeoTopologyHint_FirstOnPanel)
- {
- Serial.print("<");
- }
- else if (hint == NeoTopologyHint_LastOnPanel)
- {
- Serial.print(">");
- }
- Serial.print("\t");
- }
- Serial.println();
- }
- }
- void setup()
- {
- Serial.begin(115200);
- while (!Serial); // wait for serial attach
- DumpMosaic();
- }
- void loop()
- {
- }
|