Operácie

Aj Ty v IT: Rozdiel medzi revíziami

Z SensorWiki

(ColorMix Workshop 15. 3. 2018)
(39 medziľahlých úprav od rovnakého používateľa nie je zobrazených.)
Riadok 1: Riadok 1:
[[Súbor:logoAjTyvIT.png|right|150px]]
+
[[Súbor:logoAjTyvIT.png|right|150px]] Robili sme:
 +
* [[Svetielkujúci workshop]]
 +
* [[Micro:bit workshop]] pre učiteľov
  
= '''Svetielkujúci Workshop 7. a 14. 6. 2017''' =
+
= '''ColorMix Workshop 15. 3. 2018''' =
 
  
[[Súbor:wearableDef.png|500px]]
+
[[Súbor:ColroMixKolaz.jpg|thumb|center|600px|[https://omsi.edu/tech/colormix.php Vyskúšajte si ako sa miešajú farby...] ]]
  
  
 +
[http://technologiescollege.github.io/Blockly-at-rduino/?lang=en&card=arduino_pro_mini&toolboxids=CAT_LOGIC,CAT_LOOPS,CAT_MATH,CAT_VARIABLES,CAT_FUNCTIONS,CAT_ARDUINO,CAT_LED_RGB_CHAIN&toolbox=toolbox_arduino_all&webaccess=false&localcodebender=false Vývojové prostredie]
  
== Úvod ==
 
  
  
* [http://senzor.robotika.sk/balogh/wearable.pdf Úvodná prezentácia]
+
[[Súbor:RGBledkaArduino.png|thumb|center|400px|Zapojenie jednej RGB LED diódy ]][[Súbor:RGBpasikArduino.png|thumb|center|400px|Zapojenie RGB pásika]]
** [https://player.vimeo.com/video/114828162 Spider dress video]
 
** [https://cutecircuit.com/wearable-technology/ Cute Circuit]
 
* [https://learn.adafruit.com/category/wearables Wearables od firmy Adafruit]
 
** 1: [https://learn.adafruit.com/candle-flicker-hair-bow/ Mašľa]
 
** 2: [https://learn.adafruit.com/sparkle-skirt/ Sukňa]
 
** 3: [https://learn.adafruit.com/twinkling-led-parasol Dáždnik]
 
** 4: [https://learn.adafruit.com/led-ampli-tie Kravata]
 
** 5: [https://learn.adafruit.com/light-activated-pixel-heart/ Brošňa]
 
  
== Krok za krokom ==
 
  
== 1. '''Blink''' ==
+
<source lang="C">
  
* [http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Acrob02 Blink]
+
#include <Adafruit_NeoPixel.h>            // kniznica - musi byt
  
== 2. '''Železničné priecestie''' ==
+
#define ledPIN 10                        // kam je pripojeny pasik
  
* [https://youtu.be/YaH8DJpeYs0?t=1m6s Video]
+
Adafruit_NeoPixel pasik = Adafruit_NeoPixel(5, ledPIN, NEO_GRB + NEO_KHZ800);
 
+
                                        // 5 - pocet LED diod na pasiku  
== 3. '''K.I.T.T. 2000''' ==
 
 
 
* [https://youtu.be/iQwlrEdka6Q?t=5s Video]
 
 
 
== 4. Ak to nefunguje... ==
 
 
 
...tak [[Acrob Settings|skontrolujte nastavenia]].
 
 
 
= Druhá časť =
 
 
 
 
 
== Adafruit Gemma ==
 
 
 
* [https://learn.adafruit.com/introducing-gemma/ Stránka u výrobcu so všetkými informáciami]
 
 
 
[[Súbor:AdafruitGemma.png|500px|center]]
 
 
 
V programovacom prostredí Arduino treba najprv nastaviť typ elektronickej dosky
 
na '''Adafruit Gemma 8MHz''' v menu Tools->Board.
 
 
 
[[Súbor:flora_gemmaselect.gif|center]]
 
 
 
 
 
Potom ešte treba vybrať vhodný programovací protokol -
 
vyeberiete ho z menu Tools->Programmer->'''USBtinyISP'''
 
 
 
[[Súbor:gemma_flora_selectusbtiny.gif|center]]
 
 
 
 
 
Vyskúšame postupne jednoduché programy
 
 
 
<source lang="Cpp">
 
/*  Blink 1  */
 
 
#define RED_LED 1
 
  
 
void setup() {
 
void setup() {
 
 
  pinMode(RED_LED, OUTPUT);
 
 
}
 
 
void loop() {
 
    digitalWrite(RED_LED, HIGH);
 
    delay(200);
 
    digitalWrite(RED_LED, LOW);
 
    delay(200);
 
}
 
</source>
 
 
  
<source lang="Cpp">
+
  pinMode(ledPIN, OUTPUT);
/*  Blink 3  */
+
  pasik.begin();                          // inicializacia
 
#define RED_LED 0
 
#define GREEN_LED 1
 
#define BLUE_LED 2
 
  
void setup() {
+
   pasik.setPixelColor(0, pasik.Color(0,0,127) );  
 
+
                    // ktora LEDka        //  Red, Green, Blue z intervalu 0 - 255
   pinMode(RED_LED, OUTPUT);
 
  pinMode(GREEN_LED, OUTPUT);
 
  pinMode(BLUE_LED, OUTPUT);
 
  
 +
  pasik_NeoPixels.show();                  // jediny aktivny prikaz
 
}
 
}
  
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);
 
 
}
 
 
</source>
 
</source>
 
+
[[Category: AjTyvIT]]
== NeoPixel RGB ==
 
 
 
<source lang="C">
 
#include <Adafruit_NeoPixel.h>
 
 
 
#define PIN 1
 
 
 
Adafruit_NeoPixel strip = Adafruit_NeoPixel(1, PIN, NEO_GRB + NEO_KHZ800);
 
 
 
void setup() {
 
 
 
  strip.begin();
 
// strip.setPixelColor(n, red, green, blue, white);
 
  strip.setPixelColor(0, 0, 0, 127);
 
  strip.show(); // Initialize all pixels to 'off'
 
  delay(2000);
 
}
 
 
 
void loop() {
 
  strip.setBrightness(100);
 
  // Some example procedures showing how to display to the pixels:
 
  colorWipe(strip.Color(255, 0, 0), 50); // Red
 
  colorWipe(strip.Color(0, 255, 0), 50); // Green
 
  colorWipe(strip.Color(0, 0, 255), 50); // Blue
 
//colorWipe(strip.Color(0, 0, 0, 255), 50); // White RGBW
 
  // Send a theater pixel chase in...
 
//  theaterChase(strip.Color(127, 127, 127), 50); // White
 
//  theaterChase(strip.Color(127, 0, 0), 50); // Red
 
//  theaterChase(strip.Color(0, 0, 127), 50); // Blue
 
 
 
  rainbow(20);
 
//  rainbowCycle(20);
 
//  theaterChaseRainbow(50);
 
}
 
 
 
 
 
 
 
 
 
// Fill the dots one after the other with a color
 
void colorWipe(uint32_t c, uint8_t wait) {
 
  for(uint16_t i=0; i<strip.numPixels(); i++) {
 
    strip.setPixelColor(i, c);
 
    strip.show();
 
    delay(wait);
 
  }
 
}
 
 
 
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 ===
 
 
 
* Adafruit Gemma Windows Driver: https://learn.adafruit.com/introducing-gemma/windows-setup
 
* Adafruit Board Arduino Manager: https://adafruit.github.io/arduino-board-index/package_adafruit_index.json
 
* Neopixel Library: https://github.com/adafruit/Adafruit_NeoPixel
 

Verzia zo dňa a času 21:52, 14. marec 2018

LogoAjTyvIT.png
Robili sme:

ColorMix Workshop 15. 3. 2018


Vývojové prostredie


Zapojenie jednej RGB LED diódy
Zapojenie RGB pásika


#include <Adafruit_NeoPixel.h>            // kniznica - musi byt

#define ledPIN 10                         // kam je pripojeny pasik

Adafruit_NeoPixel pasik = Adafruit_NeoPixel(5, ledPIN, NEO_GRB + NEO_KHZ800);
                                         // 5 - pocet LED diod na pasiku  

void setup() {

  pinMode(ledPIN, OUTPUT);
  pasik.begin();                          // inicializacia

  pasik.setPixelColor(0, pasik.Color(0,0,127) ); 
                    // ktora LEDka         //  Red, Green, Blue z intervalu 0 - 255

  pasik_NeoPixels.show();                  // jediny aktivny prikaz
}