|
|
(48 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]] Z tejto stránky sa dostanete k materiálom k jednotlivým kurzom |
| | * [[Svetielkujúci workshop]] |
| | * [[ColorMix Workshop]] |
| | * [[Micro:bit workshop]] pre učiteľov |
| | * [[Micro:bit workshop pre pokročilých]] učiteľov |
| | * [[OzoBot robot]] workshop |
|
| |
|
| = '''Svetielkujúci Workshop 7. a 14. 6. 2017''' =
| | <BR> |
|
| | <BR> |
|
| |
|
| [[Súbor:wearableDef.png|500px]]
| |
|
| |
|
|
| |
|
| | | [[Category: AjTyvIT]] |
| == Úvod ==
| |
| | |
| | |
| * [http://senzor.robotika.sk/balogh/wearable.pdf Úvodná prezentácia]
| |
| ** [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''' ==
| |
| | |
| * [http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Acrob02 Blink]
| |
| | |
| == 2. '''Železničné priecestie''' ==
| |
| | |
| * [https://youtu.be/YaH8DJpeYs0?t=1m6s Video]
| |
| | |
| == 3. '''K.I.T.T. 2000''' ==
| |
| | |
| * [https://youtu.be/iQwlrEdka6Q?t=5s Video]
| |
| | |
| | |
| | |
| = 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() {
| |
|
| |
| pinMode(RED_LED, OUTPUT);
| |
| | |
| }
| |
| | |
| void loop() {
| |
| digitalWrite(RED_LED, HIGH);
| |
| delay(200);
| |
| digitalWrite(RED_LED, LOW);
| |
| delay(200);
| |
| }
| |
| </source>
| |
| | |
| | |
| <source lang="Cpp">
| |
| /* 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);
| |
| | |
| }
| |
| </source>
| |
| | |
| == 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
| |