init
This commit is contained in:
+299
@@ -0,0 +1,299 @@
|
||||
|
||||
struct Pixel
|
||||
{
|
||||
unsigned short x = 0;
|
||||
unsigned short y = 0;
|
||||
uint32_t color;
|
||||
};
|
||||
|
||||
Pixel panel_image[16][16] =
|
||||
{
|
||||
{
|
||||
{0, 0, 0xFF000000},
|
||||
{1, 0, 0xFF000000},
|
||||
{2, 0, 0xFF000000},
|
||||
{3, 0, 0xFF000000},
|
||||
{4, 0, 0xFF000000},
|
||||
{5, 0, 0xFF000000},
|
||||
{6, 0, 0xFF000000},
|
||||
{7, 0, 0xFF000000},
|
||||
{8, 0, 0xFF000000},
|
||||
{9, 0, 0xFF000000},
|
||||
{10, 0, 0xFF000000},
|
||||
{11, 0, 0xFF000000},
|
||||
{12, 0, 0xFF000000},
|
||||
{13, 0, 0xFF000000},
|
||||
{14, 0, 0xFF000000},
|
||||
{15, 0, 0xFF000000}
|
||||
},
|
||||
{
|
||||
{0, 1, 0xFF000000},
|
||||
{1, 1, 0xFF000000},
|
||||
{2, 1, 0xFF000000},
|
||||
{3, 1, 0xFF000000},
|
||||
{4, 1, 0xFF000000},
|
||||
{5, 1, 0xFF000000},
|
||||
{6, 1, 0xFF000000},
|
||||
{7, 1, 0xFF000000},
|
||||
{8, 1, 0xFF000000},
|
||||
{9, 1, 0xFF000000},
|
||||
{10, 1, 0xFF000000},
|
||||
{11, 1, 0xFF000000},
|
||||
{12, 1, 0xFF000000},
|
||||
{13, 1, 0xFF000000},
|
||||
{14, 1, 0xFF000000},
|
||||
{15, 1, 0xFF000000}
|
||||
},
|
||||
{
|
||||
{0, 2, 0xFF000000},
|
||||
{1, 2, 0xFF000000},
|
||||
{2, 2, 0xFF000000},
|
||||
{3, 2, 0xFF000000},
|
||||
{4, 2, 0xFF000000},
|
||||
{5, 2, 0xFFFFFF00},
|
||||
{6, 2, 0xFFFFFF00},
|
||||
{7, 2, 0xFFFFFF00},
|
||||
{8, 2, 0xFFFFFF00},
|
||||
{9, 2, 0xFFFFFF00},
|
||||
{10, 2, 0xFFFFFF00},
|
||||
{11, 2, 0xFF000000},
|
||||
{12, 2, 0xFF000000},
|
||||
{13, 2, 0xFF000000},
|
||||
{14, 2, 0xFF000000},
|
||||
{15, 2, 0xFF000000}
|
||||
},
|
||||
{
|
||||
{0, 3, 0xFF000000},
|
||||
{1, 3, 0xFF000000},
|
||||
{2, 3, 0xFF000000},
|
||||
{3, 3, 0xFFFFFF00},
|
||||
{4, 3, 0xFFFFFF00},
|
||||
{5, 3, 0xFFFFFF00},
|
||||
{6, 3, 0xFFFFFF00},
|
||||
{7, 3, 0xFFFFFF00},
|
||||
{8, 3, 0xFFFFFF00},
|
||||
{9, 3, 0xFFFFFF00},
|
||||
{10, 3, 0xFFFFFF00},
|
||||
{11, 3, 0xFFFFFF00},
|
||||
{12, 3, 0xFFFFFF00},
|
||||
{13, 3, 0xFF000000},
|
||||
{14, 3, 0xFF000000},
|
||||
{15, 3, 0xFF000000}
|
||||
},
|
||||
{
|
||||
{0, 4, 0xFF000000},
|
||||
{1, 4, 0xFF000000},
|
||||
{2, 4, 0xFF000000},
|
||||
{3, 4, 0xFFFFFF00},
|
||||
{4, 4, 0xFFFFFF00},
|
||||
{5, 4, 0xFFFFFF00},
|
||||
{6, 4, 0xFFFFFF00},
|
||||
{7, 4, 0xFFFFFF00},
|
||||
{8, 4, 0xFFFFFF00},
|
||||
{9, 4, 0xFFFFFF00},
|
||||
{10, 4, 0xFFFFFF00},
|
||||
{11, 4, 0xFFFFFF00},
|
||||
{12, 4, 0xFFFFFF00},
|
||||
{13, 4, 0xFF000000},
|
||||
{14, 4, 0xFF000000},
|
||||
{15, 4, 0xFF000000}
|
||||
},
|
||||
{
|
||||
{0, 5, 0xFF000000},
|
||||
{1, 5, 0xFF000000},
|
||||
{2, 5, 0xFFFFFF00},
|
||||
{3, 5, 0xFFFFFF00},
|
||||
{4, 5, 0xFF000000},
|
||||
{5, 5, 0xFF000000},
|
||||
{6, 5, 0xFFFFFF00},
|
||||
{7, 5, 0xFFFFFF00},
|
||||
{8, 5, 0xFFFFFF00},
|
||||
{9, 5, 0xFFFFFF00},
|
||||
{10, 5, 0xFF000000},
|
||||
{11, 5, 0xFF000000},
|
||||
{12, 5, 0xFFFFFF00},
|
||||
{13, 5, 0xFFFFFF00},
|
||||
{14, 5, 0xFF000000},
|
||||
{15, 5, 0xFF000000}
|
||||
},
|
||||
{
|
||||
{0, 6, 0xFF000000},
|
||||
{1, 6, 0xFF000000},
|
||||
{2, 6, 0xFFFFFF00},
|
||||
{3, 6, 0xFFFFFF00},
|
||||
{4, 6, 0xFF000000},
|
||||
{5, 6, 0xFF000000},
|
||||
{6, 6, 0xFFFFFF00},
|
||||
{7, 6, 0xFFFFFF00},
|
||||
{8, 6, 0xFFFFFF00},
|
||||
{9, 6, 0xFFFFFF00},
|
||||
{10, 6, 0xFF000000},
|
||||
{11, 6, 0xFF000000},
|
||||
{12, 6, 0xFFFFFF00},
|
||||
{13, 6, 0xFFFFFF00},
|
||||
{14, 6, 0xFF000000},
|
||||
{15, 6, 0xFF000000}
|
||||
},
|
||||
{
|
||||
{0, 7, 0xFF000000},
|
||||
{1, 7, 0xFF000000},
|
||||
{2, 7, 0xFFFFFF00},
|
||||
{3, 7, 0xFFFFFF00},
|
||||
{4, 7, 0xFF000000},
|
||||
{5, 7, 0xFF000000},
|
||||
{6, 7, 0xFFFFFF00},
|
||||
{7, 7, 0xFFFFFF00},
|
||||
{8, 7, 0xFFFFFF00},
|
||||
{9, 7, 0xFFFFFF00},
|
||||
{10, 7, 0xFF000000},
|
||||
{11, 7, 0xFF000000},
|
||||
{12, 7, 0xFFFFFF00},
|
||||
{13, 7, 0xFFFFFF00},
|
||||
{14, 7, 0xFF000000},
|
||||
{15, 7, 0xFF000000}
|
||||
},
|
||||
{
|
||||
{0, 8, 0xFF000000},
|
||||
{1, 8, 0xFF000000},
|
||||
{2, 8, 0xFFFFFF00},
|
||||
{3, 8, 0xFFFFFF00},
|
||||
{4, 8, 0xFFFFFF00},
|
||||
{5, 8, 0xFFFFFF00},
|
||||
{6, 8, 0xFFFFFF00},
|
||||
{7, 8, 0xFFFFFF00},
|
||||
{8, 8, 0xFFFFFF00},
|
||||
{9, 8, 0xFFFFFF00},
|
||||
{10, 8, 0xFFFFFF00},
|
||||
{11, 8, 0xFFFFFF00},
|
||||
{12, 8, 0xFFFFFF00},
|
||||
{13, 8, 0xFFFFFF00},
|
||||
{14, 8, 0xFF000000},
|
||||
{15, 8, 0xFF000000}
|
||||
},
|
||||
{
|
||||
{0, 9, 0xFF000000},
|
||||
{1, 9, 0xFF000000},
|
||||
{2, 9, 0xFFFFFF00},
|
||||
{3, 9, 0xFFFFFF00},
|
||||
{4, 9, 0xFFFFFF00},
|
||||
{5, 9, 0xFFFFFF00},
|
||||
{6, 9, 0xFFFFFF00},
|
||||
{7, 9, 0xFFFFFF00},
|
||||
{8, 9, 0xFF000000},
|
||||
{9, 9, 0xFF000000},
|
||||
{10, 9, 0xFFFFFF00},
|
||||
{11, 9, 0xFFFFFF00},
|
||||
{12, 9, 0xFFFFFF00},
|
||||
{13, 9, 0xFFFFFF00},
|
||||
{14, 9, 0xFF000000},
|
||||
{15, 9, 0xFF000000}
|
||||
},
|
||||
{
|
||||
{0, 10, 0xFF000000},
|
||||
{1, 10, 0xFF000000},
|
||||
{2, 10, 0xFFFFFF00},
|
||||
{3, 10, 0xFFFFFF00},
|
||||
{4, 10, 0xFFFFFF00},
|
||||
{5, 10, 0xFFFFFF00},
|
||||
{6, 10, 0xFFFFFF00},
|
||||
{7, 10, 0xFF000000},
|
||||
{8, 10, 0xFF000000},
|
||||
{9, 10, 0xFFFFFF00},
|
||||
{10, 10, 0xFF000000},
|
||||
{11, 10, 0xFFFFFF00},
|
||||
{12, 10, 0xFFFFFF00},
|
||||
{13, 10, 0xFFFFFF00},
|
||||
{14, 10, 0xFF000000},
|
||||
{15, 10, 0xFF000000}
|
||||
},
|
||||
{
|
||||
{0, 11, 0xFF000000},
|
||||
{1, 11, 0xFF000000},
|
||||
{2, 11, 0xFF000000},
|
||||
{3, 11, 0xFFFFFF00},
|
||||
{4, 11, 0xFFFFFF00},
|
||||
{5, 11, 0xFFFFFF00},
|
||||
{6, 11, 0xFFFFFF00},
|
||||
{7, 11, 0xFF000000},
|
||||
{8, 11, 0xFF000000},
|
||||
{9, 11, 0xFFFFFF00},
|
||||
{10, 11, 0xFF000000},
|
||||
{11, 11, 0xFFFFFF00},
|
||||
{12, 11, 0xFFFFFF00},
|
||||
{13, 11, 0xFF000000},
|
||||
{14, 11, 0xFF000000},
|
||||
{15, 11, 0xFF000000}
|
||||
},
|
||||
{
|
||||
{0, 12, 0xFF000000},
|
||||
{1, 12, 0xFF000000},
|
||||
{2, 12, 0xFF000000},
|
||||
{3, 12, 0xFFFFFF00},
|
||||
{4, 12, 0xFFFFFF00},
|
||||
{5, 12, 0xFFFFFF00},
|
||||
{6, 12, 0xFFFFFF00},
|
||||
{7, 12, 0xFFFFFF00},
|
||||
{8, 12, 0xFF000000},
|
||||
{9, 12, 0xFF000000},
|
||||
{10, 12, 0xFFFFFF00},
|
||||
{11, 12, 0xFFFFFF00},
|
||||
{12, 12, 0xFFFFFF00},
|
||||
{13, 12, 0xFF000000},
|
||||
{14, 12, 0xFF000000},
|
||||
{15, 12, 0xFF000000}
|
||||
},
|
||||
{
|
||||
{0, 13, 0xFF000000},
|
||||
{1, 13, 0xFF000000},
|
||||
{2, 13, 0xFF000000},
|
||||
{3, 13, 0xFF000000},
|
||||
{4, 13, 0xFF000000},
|
||||
{5, 13, 0xFFFFFF00},
|
||||
{6, 13, 0xFFFFFF00},
|
||||
{7, 13, 0xFFFFFF00},
|
||||
{8, 13, 0xFFFFFF00},
|
||||
{9, 13, 0xFFFFFF00},
|
||||
{10, 13, 0xFFFFFF00},
|
||||
{11, 13, 0xFF000000},
|
||||
{12, 13, 0xFF000000},
|
||||
{13, 13, 0xFF000000},
|
||||
{14, 13, 0xFF000000},
|
||||
{15, 13, 0xFF000000}
|
||||
},
|
||||
{
|
||||
{0, 14, 0xFF000000},
|
||||
{1, 14, 0xFF000000},
|
||||
{2, 14, 0xFF000000},
|
||||
{3, 14, 0xFF000000},
|
||||
{4, 14, 0xFF000000},
|
||||
{5, 14, 0xFF000000},
|
||||
{6, 14, 0xFF000000},
|
||||
{7, 14, 0xFF000000},
|
||||
{8, 14, 0xFF000000},
|
||||
{9, 14, 0xFF000000},
|
||||
{10, 14, 0xFF000000},
|
||||
{11, 14, 0xFF000000},
|
||||
{12, 14, 0xFF000000},
|
||||
{13, 14, 0xFF000000},
|
||||
{14, 14, 0xFF000000},
|
||||
{15, 14, 0xFF000000}
|
||||
},
|
||||
{
|
||||
{0, 15, 0xFF000000},
|
||||
{1, 15, 0xFF000000},
|
||||
{2, 15, 0xFF000000},
|
||||
{3, 15, 0xFF000000},
|
||||
{4, 15, 0xFF000000},
|
||||
{5, 15, 0xFF000000},
|
||||
{6, 15, 0xFF000000},
|
||||
{7, 15, 0xFF000000},
|
||||
{8, 15, 0xFF000000},
|
||||
{9, 15, 0xFF000000},
|
||||
{10, 15, 0xFF000000},
|
||||
{11, 15, 0xFF000000},
|
||||
{12, 15, 0xFF000000},
|
||||
{13, 15, 0xFF000000},
|
||||
{14, 15, 0xFF000000},
|
||||
{15, 15, 0xFF000000}
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,54 @@
|
||||
#include <Adafruit_NeoPixel.h>
|
||||
#ifdef __AVR__
|
||||
#include <avr/power.h> // Required for 16 MHz Adafruit Trinket
|
||||
#endif
|
||||
|
||||
#include "ball_image.h"
|
||||
|
||||
#define PIN 12
|
||||
|
||||
#define PANEL_PIXEL_COUNT 16
|
||||
#define NUMPIXELS PANEL_PIXEL_COUNT*PANEL_PIXEL_COUNT*3
|
||||
|
||||
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
|
||||
|
||||
void setPixel(unsigned short x, unsigned short y, uint32_t color)
|
||||
{
|
||||
if (y % 2 == 1)
|
||||
{
|
||||
x = PANEL_PIXEL_COUNT - 1 - x;
|
||||
}
|
||||
pixels.setPixelColor(x + (y * PANEL_PIXEL_COUNT), color);
|
||||
}
|
||||
|
||||
|
||||
void drawPanelImage(int offset_x, int offset_y) {
|
||||
for (int row = 0; row < 16; row++) {
|
||||
for (int col = 0; col < 16; col++) {
|
||||
|
||||
if (panel_image[row][col].color == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int pixel_x = panel_image[row][col].x + offset_x;
|
||||
int pixel_y = panel_image[row][col].y + offset_y;
|
||||
|
||||
if (pixel_x >= 0 && pixel_x < PANEL_PIXEL_COUNT &&
|
||||
pixel_y >= 0 && pixel_y < PANEL_PIXEL_COUNT) {
|
||||
setPixel(pixel_x, pixel_y, panel_image[row][col].color);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void setup() {
|
||||
pixels.begin();
|
||||
|
||||
pixels.clear();
|
||||
drawPanelImage(0, 0);
|
||||
pixels.show();
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user