Operácie

Aj Ty v IT: Rozdiel medzi revíziami

Z SensorWiki

(NeoPixel RGB)
Riadok 117: Riadok 117:
  
 
== NeoPixel RGB ==
 
== NeoPixel RGB ==
 +
 +
Priklady práce s inteligentnou RGB LED diódou [https://blog.adafruit.com/2013/08/30/adafruit-neopixel-uberguide/ Neopixel].
 +
  
 
<source lang="C">
 
<source lang="C">
 
#include <Adafruit_NeoPixel.h>
 
#include <Adafruit_NeoPixel.h>
 
+
 
#define PIN 1
 
#define PIN 1
 
+
Adafruit_NeoPixel strip = Adafruit_NeoPixel(1, PIN, NEO_GRB + NEO_KHZ800);
+
Adafruit_NeoPixel LED = Adafruit_NeoPixel(1, PIN, NEO_GRB + NEO_KHZ800);
 
+
 
void setup() {
 
void setup() {
 
+
   strip.begin();
+
   LED.begin();
// strip.setPixelColor(n, red, green, blue, white);
+
// LED.setPixelColor(n, red, green, blue);
   strip.setPixelColor(0, 0, 0, 127);
+
   LED.setPixelColor(0, 0, 0, 127);
   strip.show(); // Initialize all pixels to 'off'
+
   LED.show(); // Show the preset color(s)
 
   delay(2000);
 
   delay(2000);
 +
  LED.setBrightness(100);
 +
  }
 +
 +
void loop() { 
 +
//                n  R  G  B 
 +
  LED.setPixelColor(0, 255, 0, 127);
 +
  delay(2000);
 +
  LED.setPixelColor(0,  0 , 0, 0);
 +
  delay(2000);
 +
 
 
}
 
}
 +
 +
 +
 +
</source>
  
void loop() {
+
<source lang="C">
  strip.setBrightness(100);
+
#include <Adafruit_NeoPixel.h>
  // Some example procedures showing how to display to the pixels:
+
  colorWipe(strip.Color(255, 0, 0), 50); // Red
+
#define PIN 1
  colorWipe(strip.Color(0, 255, 0), 50); // Green
+
  colorWipe(strip.Color(0, 0, 255), 50); // Blue
+
Adafruit_NeoPixel LED = Adafruit_NeoPixel(2, PIN, NEO_GRB + NEO_KHZ800);
//colorWipe(strip.Color(0, 0, 0, 255), 50); // White RGBW
+
  // Send a theater pixel chase in...
+
void setup() {
//  theaterChase(strip.Color(127, 127, 127), 50); // White
+
//  theaterChase(strip.Color(127, 0, 0), 50); // Red
+
  LED.begin();
//  theaterChase(strip.Color(0, 0, 127), 50); // Blue
+
  LED.show(); // Show the preset color(s)
 +
  LED.setBrightness(100); // Interval 0 - 255
  
  rainbow(20);
 
//  rainbowCycle(20);
 
//  theaterChaseRainbow(50);
 
 
}
 
}
 
+
 
+
void loop() { 
 
+
 
 
+
  // LED.setPixelColor(n, red, green, blue);
// Fill the dots one after the other with a color
+
    LED.setPixelColor(0, 255, 0, 0); // First LED Red
void colorWipe(uint32_t c, uint8_t wait) {
+
    LED.setPixelColor(1, 0, 0, 127); // Second LED Blue
  for(uint16_t i=0; i<strip.numPixels(); i++) {
+
    delay(300);
    strip.setPixelColor(i, c);
+
    LED.setPixelColor(0, 0, 0, 127); // First LED Blue
    strip.show();
+
    LED.setPixelColor(1, 255, 0, 0); // Second LED Red
    delay(wait);
+
    delay(300);
  }
+
 
 
}
 
}
 +
 +
</source>
  
void rainbow(uint8_t wait) {
 
  uint16_t i, j;
 
 
  for(j=0; j<256; j++) {
 
    for(i=0; i<strip.numPixels(); i++) {
 
      strip.setPixelColor(i, Wheel((i+j) & 255));
 
    }
 
    strip.show();
 
    delay(wait);
 
  }
 
}
 
 
// Slightly different, this makes the rainbow equally distributed throughout
 
void rainbowCycle(uint8_t wait) {
 
  uint16_t i, j;
 
 
  for(j=0; j<256*5; j++) { // 5 cycles of all colors on wheel
 
    for(i=0; i< strip.numPixels(); i++) {
 
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
 
    }
 
    strip.show();
 
    delay(wait);
 
  }
 
}
 
 
//Theatre-style crawling lights.
 
void theaterChase(uint32_t c, uint8_t wait) {
 
  for (int j=0; j<10; j++) {  //do 10 cycles of chasing
 
    for (int q=0; q < 3; q++) {
 
      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
 
        strip.setPixelColor(i+q, c);    //turn every third pixel on
 
      }
 
      strip.show();
 
 
      delay(wait);
 
 
      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
 
        strip.setPixelColor(i+q, 0);        //turn every third pixel off
 
      }
 
    }
 
  }
 
}
 
 
//Theatre-style crawling lights with rainbow effect
 
void theaterChaseRainbow(uint8_t wait) {
 
  for (int j=0; j < 256; j++) {    // cycle all 256 colors in the wheel
 
    for (int q=0; q < 3; q++) {
 
      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
 
        strip.setPixelColor(i+q, Wheel( (i+j) % 255));    //turn every third pixel on
 
      }
 
      strip.show();
 
 
      delay(wait);
 
 
      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
 
        strip.setPixelColor(i+q, 0);        //turn every third pixel off
 
      }
 
    }
 
  }
 
}
 
 
// Input a value 0 to 255 to get a color value.
 
// The colours are a transition r - g - b - back to r.
 
uint32_t Wheel(byte WheelPos) {
 
  WheelPos = 255 - WheelPos;
 
  if(WheelPos < 85) {
 
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
 
  }
 
  if(WheelPos < 170) {
 
    WheelPos -= 85;
 
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
 
  }
 
  WheelPos -= 170;
 
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
 
}
 
</source>
 
Priklady na neopixel
 
  
 
=== Technicke informacie ===
 
=== Technicke informacie ===

Verzia zo dňa a času 20:58, 13. jún 2017

LogoAjTyvIT.png

Svetielkujúci Workshop 7. a 14. 6. 2017

WearableDef.png


Úvod

Krok za krokom

1. Blink

2. Železničné priecestie

3. K.I.T.T. 2000

4. Ak to nefunguje...

...tak skontrolujte nastavenia.

Druhá časť

Adafruit Gemma

AdafruitGemma.png

V programovacom prostredí Arduino treba najprv nastaviť typ elektronickej dosky na Adafruit Gemma 8MHz v menu Tools->Board.

Flora gemmaselect.gif


Potom ešte treba vybrať vhodný programovací protokol - vyeberiete ho z menu Tools->Programmer->USBtinyISP

Gemma flora selectusbtiny.gif


Vyskúšame postupne jednoduché programy

/*   Blink 1  */
 
#define RED_LED 1

void setup() {
  
  pinMode(RED_LED, OUTPUT);

}

void loop() {
    digitalWrite(RED_LED, HIGH); 
    delay(200);
    digitalWrite(RED_LED, LOW);
    delay(200);
}


/*   Blink 3  */
 
#define RED_LED 0
#define GREEN_LED 1
#define BLUE_LED 2

void setup() {
  
  pinMode(RED_LED, OUTPUT);
  pinMode(GREEN_LED, OUTPUT);
  pinMode(BLUE_LED, OUTPUT);

}

void loop() {
    digitalWrite(RED_LED, HIGH); 
    delay(200);
    digitalWrite(RED_LED, LOW);
    delay(200);

    digitalWrite(GREEN_LED, HIGH); 
    delay(200);
    digitalWrite(GREEN_LED, LOW);
    delay(200);

    digitalWrite(BLUE_LED, HIGH); 
    delay(200);
    digitalWrite(BLUE_LED, LOW);
    delay(200);

}

NeoPixel RGB

Priklady práce s inteligentnou RGB LED diódou Neopixel.


#include <Adafruit_NeoPixel.h>
 
#define PIN 1
 
Adafruit_NeoPixel LED = Adafruit_NeoPixel(1, PIN, NEO_GRB + NEO_KHZ800);
 
void setup() {
 
   LED.begin();
// LED.setPixelColor(n, red, green, blue);
   LED.setPixelColor(0, 0, 0, 127);
   LED.show(); // Show the preset color(s)
   delay(2000);
   LED.setBrightness(100);
   }
 
void loop() {  
 //                 n   R   G   B  
  LED.setPixelColor(0, 255, 0, 127);
  delay(2000);
  LED.setPixelColor(0,  0 , 0, 0);
  delay(2000);
   
}
#include <Adafruit_NeoPixel.h>
 
#define PIN 1
 
Adafruit_NeoPixel LED = Adafruit_NeoPixel(2, PIN, NEO_GRB + NEO_KHZ800);
 
void setup() {
 
   LED.begin();
   LED.show(); // Show the preset color(s)
   LED.setBrightness(100);  // Interval 0 - 255

}
 
void loop() {  
  
  // LED.setPixelColor(n, red, green, blue);
     LED.setPixelColor(0, 255, 0, 0);  // First LED Red
     LED.setPixelColor(1, 0, 0, 127);  // Second LED Blue
     delay(300);
     LED.setPixelColor(0, 0, 0, 127);  // First LED Blue
     LED.setPixelColor(1, 255, 0, 0);  // Second LED Red
     delay(300);
   
}


Technicke informacie