proyectos:vestuario_aqa
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previaPróxima revisiónAmbos lados, revisión siguiente | ||
proyectos:vestuario_aqa [2019/10/17 23:31] – brolin | proyectos:vestuario_aqa [2021/05/18 00:16] – kz | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
+ | ====== AQA - Taller Vestuario ====== | ||
+ | |||
====== Prendas de vestuario + AQA ====== | ====== Prendas de vestuario + AQA ====== | ||
Línea 10: | Línea 12: | ||
* [[http:// | * [[http:// | ||
+ | |||
+ | ===== Referentes ===== | ||
+ | * https:// | ||
+ | |||
+ | |||
+ | ===== Ideas y materiales que se pueden usar para el taller ===== | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | ===== prendas ===== | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | ===== Iluminación ===== | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | ==== código incial para hacer una animación en la matrix de leds ==== | ||
+ | |||
+ | <code c++> | ||
+ | # | ||
+ | #define LED_PIN | ||
+ | #define LED_TYPE | ||
+ | #define COLOR_ORDER GRB | ||
+ | #define f false | ||
+ | #define t true | ||
+ | |||
+ | const uint8_t kMatrixWidth | ||
+ | const uint8_t kMatrixHeight = 8; | ||
+ | #define NUM_LEDS (kMatrixWidth * kMatrixHeight) | ||
+ | |||
+ | int BRIGHTNESS = 60; // this is half brightness | ||
+ | CRGB leds[kMatrixWidth * kMatrixHeight]; | ||
+ | |||
+ | #define amarillo CRGB:: | ||
+ | #define black CRGB:: | ||
+ | #define rojo CRGB::Red | ||
+ | |||
+ | int loop_cnt = 0; | ||
+ | uint16_t speed = 20; | ||
+ | static uint16_t x; | ||
+ | static uint16_t y; | ||
+ | static uint16_t z; | ||
+ | uint16_t scale = 31; | ||
+ | uint8_t noise[kMatrixWidth][kMatrixHeight]; | ||
+ | |||
+ | // Fill the x/y array of 8-bit noise values using the inoise8 function. | ||
+ | /* | ||
+ | void fillnoise8() { | ||
+ | for(int i = 0; i < kMatrixWidth; | ||
+ | int ioffset = scale * i; | ||
+ | for(int j = 0; j < kMatrixHeight; | ||
+ | int joffset = scale * j; | ||
+ | noise[i][j] = inoise8(x + ioffset,y + joffset,z); | ||
+ | } | ||
+ | } | ||
+ | z += speed; | ||
+ | } | ||
+ | */ | ||
+ | void setup() { | ||
+ | LEDS.addLeds< | ||
+ | FastLED.setBrightness(BRIGHTNESS); | ||
+ | // Initialize our coordinates to some random values | ||
+ | x = random16(); | ||
+ | y = random16(); | ||
+ | z = random16(); | ||
+ | } | ||
+ | |||
+ | #define ESCENAS 8 | ||
+ | |||
+ | CRGB matrix[ESCENAS][8][8] = { | ||
+ | { | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | }, | ||
+ | { | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | }, | ||
+ | { | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | }, | ||
+ | { | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | }, | ||
+ | { | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | }, | ||
+ | { | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | }, | ||
+ | { | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | }, | ||
+ | { | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | {CRGB:: | ||
+ | }, | ||
+ | }; | ||
+ | |||
+ | void loop() { | ||
+ | / | ||
+ | |||
+ | for(int i = 0; i< kMatrixHeight; | ||
+ | for(int j = 0; j< kMatrixWidth; | ||
+ | leds[i*kMatrixWidth + j] = matrix[loop_cnt%ESCENAS][i][j]; | ||
+ | } | ||
+ | } | ||
+ | FastLED.show(); | ||
+ | delay(500); | ||
+ | for(int i = 0; i< kMatrixHeight; | ||
+ | for(int j = 0; j< | ||
+ | leds[i*kMatrixWidth + j] = CRGB:: | ||
+ | } | ||
+ | } | ||
+ | delay(500); | ||
+ | loop_cnt++; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Algunas fotografias de la 5 sesión del taller ===== | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== Código para el proyecto del corazon ===== | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | Este código simula el movimiento del corazón | ||
+ | |||
+ | <code c++> | ||
+ | #include < | ||
+ | FASTLED_USING_NAMESPACE | ||
+ | |||
+ | #if defined(FASTLED_VERSION) && (FASTLED_VERSION < 3001000) | ||
+ | #warning " | ||
+ | #endif | ||
+ | |||
+ | #define DATA_PIN | ||
+ | #define CLK_PIN | ||
+ | #define LED_TYPE | ||
+ | #define COLOR_ORDER BGR | ||
+ | #define NUM_LEDS | ||
+ | #define BRIGHTNESS | ||
+ | CRGB leds[NUM_LEDS]; | ||
+ | |||
+ | int contador = 0; | ||
+ | |||
+ | void setup() { | ||
+ | FastLED.addLeds< | ||
+ | FastLED.setBrightness(BRIGHTNESS); | ||
+ | Serial.begin(115200); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | contador++; | ||
+ | |||
+ | if (contador < 10) { | ||
+ | normalHeart(); | ||
+ | } else { | ||
+ | HeartTired(); | ||
+ | } | ||
+ | |||
+ | if (contador > 20) { contador = 0; } | ||
+ | Serial.println(contador); | ||
+ | |||
+ | } | ||
+ | |||
+ | void normalHeart() { | ||
+ | for(int dot=0; dot< | ||
+ | leds[dot] = CRGB:: | ||
+ | FastLED.show(); | ||
+ | delay(30); | ||
+ | leds[dot] = CRGB:: | ||
+ | FastLED.delay(50); | ||
+ | } | ||
+ | | ||
+ | for(int dot=0; dot< | ||
+ | leds[NUM_LEDS - dot] = CRGB:: | ||
+ | FastLED.show(); | ||
+ | delay(30); | ||
+ | leds[NUM_LEDS - dot] = CRGB:: | ||
+ | FastLED.delay(5); | ||
+ | } | ||
+ | delay(1000); | ||
+ | } | ||
+ | |||
+ | void HeartTired() { | ||
+ | for(int dot=0; dot< | ||
+ | leds[dot] = CRGB::Red; | ||
+ | FastLED.show(); | ||
+ | delay(15); | ||
+ | leds[dot] = CRGB:: | ||
+ | FastLED.delay(10); | ||
+ | } | ||
+ | |||
+ | for(int dot=0; dot< | ||
+ | leds[NUM_LEDS - dot] = CRGB::Red; | ||
+ | FastLED.show(); | ||
+ | delay(15); | ||
+ | leds[NUM_LEDS - dot] = CRGB:: | ||
+ | FastLED.delay(2); | ||
+ | } | ||
+ | delay(500); | ||
+ | } | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | Este código usa la libreria [[https:// | ||
+ | |||
+ | |||
+ | |||
+ | <code c++> | ||
+ | |||
+ | /** | ||
+ | | ||
+ | This demo does the Knight Rider scanner effect with just a few lines of code | ||
+ | The speed and fadespeed need to be adjusted for different processor speeds | ||
+ | | ||
+ | */ | ||
+ | |||
+ | #define NUMBEROFPIXELS 105 //Number of LEDs on the strip | ||
+ | #define PIXELPIN 2 //Pin where WS281X LED strip data-line is connected | ||
+ | |||
+ | #include " | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | #define DATA_PIN | ||
+ | #define CLK_PIN | ||
+ | #define LED_TYPE | ||
+ | #define COLOR_ORDER BGR | ||
+ | #define NUM_LEDS | ||
+ | #define BRIGHTNESS | ||
+ | CRGB leds[NUM_LEDS]; | ||
+ | |||
+ | //create one canvas and one brush with global scope | ||
+ | FastLEDPainterCanvas pixelcanvas = FastLEDPainterCanvas(NUM_LEDS); | ||
+ | FastLEDPainterBrush pixelbrush = FastLEDPainterBrush(& | ||
+ | |||
+ | |||
+ | void setup() { | ||
+ | //initilize FastLED library | ||
+ | FastLED.addLeds< | ||
+ | |||
+ | |||
+ | Serial.begin(115200); | ||
+ | Serial.println(" | ||
+ | Serial.println(F(" | ||
+ | |||
+ | //check if ram allocation of brushes and canvases was successful (painting will not work if unsuccessful, | ||
+ | //this check is optional but helps to check if something does not work, especially on low ram chips like the Arduino Uno | ||
+ | if (pixelcanvas.isvalid() == false) Serial.println(F(" | ||
+ | else Serial.println(F(" | ||
+ | |||
+ | if (pixelbrush.isvalid() == false) Serial.println(F(" | ||
+ | else Serial.println(F(" | ||
+ | |||
+ | // | ||
+ | |||
+ | CHSV brushcolor; //the brush and the canvas operate on HSV color space only | ||
+ | brushcolor.h = 0; //zero is red in HSV. Library uses 0-255 instead of 0-360 for colors (see https:// | ||
+ | brushcolor.s = 255; //full color saturation | ||
+ | brushcolor.v = 130; //about half the full brightness | ||
+ | |||
+ | pixelbrush.setSpeed(1200); | ||
+ | pixelbrush.setColor(brushcolor); | ||
+ | pixelbrush.setFadeSpeed(130); | ||
+ | pixelbrush.setFadeout(true); | ||
+ | pixelbrush.setBounce(true); | ||
+ | |||
+ | //this sets up the brush to paint pixels in red, the pixels fade out after they are painted (the brush is the size of one pixel and can only one pixel per brush update, see other examples to paint multiple pixels at once) | ||
+ | |||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | FastLED.clear(); | ||
+ | |||
+ | pixelbrush.paint(); | ||
+ | pixelcanvas.transfer(); | ||
+ | |||
+ | FastLED.show(); | ||
+ | } | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ==== Leds con plantower ==== | ||
+ | |||
+ | === platformio.ini === | ||
+ | |||
+ | <code c++> | ||
+ | ;PlatformIO Project Configuration File | ||
+ | ; | ||
+ | ; Build options: build flags, source filter | ||
+ | ; | ||
+ | ; | ||
+ | ; | ||
+ | ; | ||
+ | ; Please visit documentation for the other options and examples | ||
+ | ; https:// | ||
+ | |||
+ | [env: | ||
+ | platform = espressif8266 | ||
+ | board = d1_mini | ||
+ | framework = arduino | ||
+ | lib_deps = FastLED, PMS Library, https:// | ||
+ | </ | ||
+ | |||
+ | === main.cpp === | ||
+ | <code c++> | ||
+ | /** | ||
+ | | ||
+ | This demo does the Knight Rider scanner effect with just a few lines of code | ||
+ | The speed and fadespeed need to be adjusted for different processor speeds | ||
+ | | ||
+ | */ | ||
+ | |||
+ | #include " | ||
+ | #include < | ||
+ | #include " | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | #define P_TOWER_RX D2 | ||
+ | #define P_TOWER_TX 6 | ||
+ | // Plantower | ||
+ | SoftwareSerial plantower_serial(P_TOWER_RX, | ||
+ | PMS pms(plantower_serial); | ||
+ | PMS::DATA data; | ||
+ | |||
+ | // Leds | ||
+ | #define DATA_PIN | ||
+ | #define CLK_PIN | ||
+ | #define LED_TYPE | ||
+ | #define COLOR_ORDER BGR | ||
+ | #define NUM_LEDS | ||
+ | #define BRIGHTNESS | ||
+ | CRGB leds[NUM_LEDS]; | ||
+ | |||
+ | //create one canvas and one brush with global scope | ||
+ | FastLEDPainterCanvas pixelcanvas = FastLEDPainterCanvas(NUM_LEDS); | ||
+ | FastLEDPainterBrush pixelbrush = FastLEDPainterBrush(& | ||
+ | |||
+ | CHSV brushcolor; //the brush and the canvas operate on HSV color space only | ||
+ | |||
+ | void setup() { | ||
+ | //initilize FastLED library | ||
+ | FastLED.addLeds< | ||
+ | |||
+ | plantower_serial.begin(9600); | ||
+ | Serial.begin(115200); | ||
+ | Serial.println(" | ||
+ | Serial.println(F(" | ||
+ | |||
+ | //check if ram allocation of brushes and canvases was successful (painting will not work if unsuccessful, | ||
+ | //this check is optional but helps to check if something does not work, especially on low ram chips like the Arduino Uno | ||
+ | if (pixelcanvas.isvalid() == false) Serial.println(F(" | ||
+ | else Serial.println(F(" | ||
+ | |||
+ | if (pixelbrush.isvalid() == false) Serial.println(F(" | ||
+ | else Serial.println(F(" | ||
+ | |||
+ | // | ||
+ | |||
+ | brushcolor.h = 0; //zero is red in HSV. Library uses 0-255 instead of 0-360 for colors (see https:// | ||
+ | brushcolor.s = 255; //full color saturation | ||
+ | brushcolor.v = 130; //about half the full brightness | ||
+ | |||
+ | pixelbrush.setSpeed(1200); | ||
+ | pixelbrush.setColor(brushcolor); | ||
+ | pixelbrush.setFadeSpeed(130); | ||
+ | pixelbrush.setFadeout(true); | ||
+ | pixelbrush.setBounce(true); | ||
+ | |||
+ | //this sets up the brush to paint pixels in red, the pixels fade out after they are painted (the brush is the size of one pixel and can only one pixel per brush update, see other examples to paint multiple pixels at once) | ||
+ | |||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | |||
+ | Serial.println(" | ||
+ | if (pms.readUntil(data)){ | ||
+ | Serial.print(" | ||
+ | // brushcolor.h = data.PM_AE_UG_2_5; | ||
+ | // pixelbrush.setColor(brushcolor); | ||
+ | // // pixelbrush.setFadeSpeed(data.PM_AE_UG_2_5*3); | ||
+ | Serial.print(" | ||
+ | // saveDataForAverage(data.PM_AE_UG_2_5, | ||
+ | } | ||
+ | else Serial.println(" | ||
+ | |||
+ | Serial.println(" | ||
+ | FastLED.clear(); | ||
+ | |||
+ | pixelbrush.paint(); | ||
+ | pixelcanvas.transfer(); | ||
+ | |||
+ | FastLED.show(); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Leds + plantower: cambia color segun lectura del sensor ==== | ||
+ | |||
+ | platformio.ini | ||
+ | |||
+ | <code c++> | ||
+ | [env: | ||
+ | platform = espressif8266 | ||
+ | board = d1_mini | ||
+ | framework = arduino | ||
+ | lib_deps = FastLED, PMS Library, https:// | ||
+ | |||
+ | </ | ||
+ | |||
+ | main.cpp | ||
+ | < | ||
+ | #include " | ||
+ | #include < | ||
+ | #include " | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | #define P_TOWER_RX D2 | ||
+ | #define P_TOWER_TX 6 | ||
+ | |||
+ | // Plantower | ||
+ | SoftwareSerial plantower_serial(P_TOWER_RX, | ||
+ | PMS pms(plantower_serial); | ||
+ | PMS::DATA data; | ||
+ | |||
+ | int pm2_5 = 0; | ||
+ | int *dir_pm2_5; | ||
+ | |||
+ | // Leds | ||
+ | #define DATA_PIN D7 | ||
+ | #define CLK_PIN D6 | ||
+ | #define LED_TYPE DOTSTAR | ||
+ | #define COLOR_ORDER BGR | ||
+ | #define NUM_LEDS 26 // estos 10 es para que cuando lea el sensor no se vean los leds prendidos | ||
+ | #define BRIGHTNESS 96 | ||
+ | CRGB leds[NUM_LEDS]; | ||
+ | |||
+ | //create one canvas and one brush with global scope | ||
+ | FastLEDPainterCanvas pixelcanvas = FastLEDPainterCanvas(NUM_LEDS); | ||
+ | FastLEDPainterBrush pixelbrush = FastLEDPainterBrush(& | ||
+ | |||
+ | CHSV brushcolor; //the brush and the canvas operate on HSV color space only | ||
+ | |||
+ | int color = 0; | ||
+ | int speed = 400; | ||
+ | |||
+ | int time_hours = 0; | ||
+ | int time_minutes = 0; | ||
+ | int time_seconds = 0; | ||
+ | |||
+ | void readPlantower(); | ||
+ | void animateLeds(); | ||
+ | void updateValues(); | ||
+ | |||
+ | void setup() { | ||
+ | //initilize FastLED library | ||
+ | FastLED.addLeds< | ||
+ | |||
+ | plantower_serial.begin(9600); | ||
+ | Serial.begin(115200); | ||
+ | Serial.println(" | ||
+ | Serial.println(F(" | ||
+ | |||
+ | //check if ram allocation of brushes and canvases was successful (painting will not work if unsuccessful, | ||
+ | //this check is optional but helps to check if something does not work, especially on low ram chips like the Arduino Uno | ||
+ | if (pixelcanvas.isvalid() == false) | ||
+ | Serial.println(F(" | ||
+ | else | ||
+ | Serial.println(F(" | ||
+ | |||
+ | if (pixelbrush.isvalid() == false) | ||
+ | Serial.println(F(" | ||
+ | else | ||
+ | Serial.println(F(" | ||
+ | |||
+ | // | ||
+ | brushcolor.h = color; //zero is red in HSV. Library uses 0-255 instead of 0-360 for colors (see https:// | ||
+ | brushcolor.s = 255; // | ||
+ | brushcolor.v = 130; // | ||
+ | |||
+ | pixelbrush.setSpeed(speed); | ||
+ | pixelbrush.setColor(brushcolor); | ||
+ | pixelbrush.setFadeSpeed(130); | ||
+ | pixelbrush.setFadeout(true); | ||
+ | pixelbrush.setBounce(true); | ||
+ | |||
+ | // set pointer | ||
+ | dir_pm2_5 = &pm2_5; | ||
+ | |||
+ | // setup time | ||
+ | setTime(time_hours, | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | readPlantower(); | ||
+ | } | ||
+ | |||
+ | void readPlantower() { | ||
+ | int sec = second(); | ||
+ | if (sec == 0 || sec == 15 || sec == 20 || sec == 30 || sec == 40 || sec == 50 || | ||
+ | sec == 5 || sec == 10 || sec == 35 || sec == 35 || sec == 45 || sec == 55) { | ||
+ | pms.wakeUp(); | ||
+ | if (pms.read(data)) { | ||
+ | pm2_5 = data.PM_AE_UG_2_5; | ||
+ | delay(500); | ||
+ | updateValues(); | ||
+ | } | ||
+ | Serial.print(" | ||
+ | Serial.println(*dir_pm2_5); | ||
+ | } | ||
+ | else { | ||
+ | Serial.print(" | ||
+ | Serial.println(*dir_pm2_5); | ||
+ | pms.sleep(); | ||
+ | animateLeds(); | ||
+ | } | ||
+ | // Serial.print(" | ||
+ | // Serial.println(sec); | ||
+ | } | ||
+ | |||
+ | void animateLeds(){ | ||
+ | // Serial.println(" | ||
+ | FastLED.clear(); | ||
+ | pixelbrush.paint(); | ||
+ | pixelcanvas.transfer(); | ||
+ | FastLED.show(); | ||
+ | } | ||
+ | |||
+ | void updateValues() { | ||
+ | // varia en los que varia | ||
+ | /* | ||
+ | 233 minimo | ||
+ | 1225 maximo | ||
+ | */ | ||
+ | if (*dir_pm2_5 < 400){ | ||
+ | brushcolor.h = 90; // aire bueno verde | ||
+ | pixelbrush.setColor(brushcolor); | ||
+ | pixelbrush.setFadeout(true); | ||
+ | pixelbrush.setBounce(true); | ||
+ | } else if (*dir_pm2_5 > 400 ) { | ||
+ | brushcolor.h = 200; // aire regular azul | ||
+ | pixelbrush.setColor(brushcolor); | ||
+ | pixelbrush.setFadeout(true); | ||
+ | pixelbrush.setBounce(true); | ||
+ | } else if (*dir_pm2_5 > 800) { | ||
+ | brushcolor.h = 155; // aire malo ? | ||
+ | pixelbrush.setColor(brushcolor); | ||
+ | pixelbrush.setFadeout(true); | ||
+ | pixelbrush.setBounce(true); | ||
+ | } else if (*dir_pm2_5 > 1200) { | ||
+ | brushcolor.h = 0; // magenta aire podrido | ||
+ | pixelbrush.setColor(brushcolor); | ||
+ | pixelbrush.setFadeout(true); | ||
+ | pixelbrush.setBounce(true); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | === mostrar texto en matrix led 8 x 8 una pantalla === | ||
+ | |||
+ | // | ||
+ | //Scrolls ' | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #ifndef PSTR | ||
+ | # | ||
+ | #endif | ||
+ | |||
+ | #define PIN D3 | ||
+ | |||
+ | // MATRIX DECLARATION: | ||
+ | // Parameter 1 = width of NeoPixel matrix | ||
+ | // Parameter 2 = height of matrix | ||
+ | // Parameter 3 = pin number (most are valid) | ||
+ | // Parameter 4 = matrix layout flags, add together as needed: | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | // rows or in vertical columns, respectively; | ||
+ | // | ||
+ | // in the same order, or alternate lines reverse direction; pick one. | ||
+ | // See example below for these values in action. | ||
+ | // Parameter 5 = pixel type flags, add together as needed: | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | |||
+ | |||
+ | // Example for NeoPixel Shield. | ||
+ | // as a 5x8 tall matrix, with the USB port positioned at the top of the | ||
+ | // Arduino. | ||
+ | // lines are arranged in columns, progressive order. | ||
+ | // 800 KHz (v2) pixels that expect GRB color data. | ||
+ | // Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(16, | ||
+ | // | ||
+ | // | ||
+ | // | ||
+ | |||
+ | Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(8, | ||
+ | NEO_MATRIX_TOP | ||
+ | NEO_MATRIX_COLUMNS + NEO_MATRIX_PROGRESSIVE, | ||
+ | NEO_GRB | ||
+ | ); | ||
+ | |||
+ | const uint16_t colors[] = { | ||
+ | matrix.Color(255, | ||
+ | }; | ||
+ | |||
+ | String Word = " | ||
+ | |||
+ | void setup() { | ||
+ | matrix.begin(); | ||
+ | matrix.setTextWrap(false); | ||
+ | matrix.setBrightness(40); | ||
+ | matrix.setTextColor(colors[0]); | ||
+ | } | ||
+ | |||
+ | int x = matrix.width(); | ||
+ | int pass = 0; | ||
+ | int pixelsInText = (Word.length() * 7)+8; | ||
+ | |||
+ | void loop() { | ||
+ | matrix.fillScreen(0); | ||
+ | matrix.setCursor(x, | ||
+ | matrix.print(Word); | ||
+ | if(--x < -pixelsInText) { | ||
+ | x = matrix.width(); | ||
+ | if(++pass >= 3) pass = 0; | ||
+ | matrix.setTextColor(colors[pass]); | ||
+ | } | ||
+ | matrix.show(); | ||
+ | delay(100); | ||
+ | } | ||
+ | |||
+ | < | ||
+ | </ | ||
+ | |||
+ |
proyectos/vestuario_aqa.txt · Última modificación: 2021/10/30 23:38 por kz