| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- //----------------------------------------------------------------------
- // NeoPixelTileDump
- // This will dump to the serial output a grid map of the defined tiles
- // 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 tile layout of your panels to
- // confirm you have them correctly wired together for the defined 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 and
- // how you want them rotated. Not all the rotations are listed here
- // but you can modifiy the name to include the rotation of 90,180, or 270.
- typedef ColumnMajorAlternatingLayout MyPanelLayout;
- // typedef ColumnMajorLayout MyPanelLayout;
- // typedef RowMajorAlternatingLayout MyPanelLayout;
- // typedef RowMajorLayout MyPanelLayout;
- // typedef RowMajor90Layout MyPanelLayout; // note rotation 90 was used
- // change this to be one of the layouts which will define the layout
- // of the panels themselves
- typedef ColumnMajorLayout MyTilesLayout;
- // make sure to set these panel and tile layout to match your sizes
- const uint8_t PanelWidth = 8; // 8 pixel x 8 pixel matrix of leds
- const uint8_t PanelHeight = 8;
- const uint8_t TileWidth = 4; // laid out in 4 panels x 2 panels mosaic
- const uint8_t TileHeight = 2;
- NeoTiles <MyPanelLayout, MyTilesLayout> tiles(
- PanelWidth,
- PanelHeight,
- TileWidth,
- TileHeight);
- void DumpTopo()
- {
- Serial.println();
- Serial.print("\t\t");
- for (int x = 0; x < tiles.getWidth(); x++)
- {
- Serial.print(x);
- Serial.print("\t");
- }
- Serial.println();
- Serial.print("\t---");
- for (int x = 0; x < tiles.getWidth(); x++)
- {
- Serial.print("--------");
- }
- Serial.println();
- for (int y = 0; y < tiles.getHeight(); y++)
- {
- Serial.print(" ");
- Serial.print(y);
- Serial.print("\t|\t");
- for (int x = 0; x < tiles.getWidth(); x++)
- {
- NeoTopologyHint hint = tiles.TopologyHint(x, y);
- Serial.print(tiles.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
- DumpTopo();
- }
- void loop()
- {
- }
|