74
WiFi + hjemmeside SSID: Physical Kode: workshop Hjemmeside: http://physical.io/tl (præsentation og kodeeksempler) © Physical.io, 2020 1

SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

WiFi + hjemmeside

SSID: PhysicalKode: workshopHjemmeside: http://physical.io/tl(præsentation og kodeeksempler)

© Physical.io, 2020 1

Page 2: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Lær at lave kostumermed lyd og lysTeknisk Landsforbund, Haderslev, 03.02.2020

© Physical.io, 2020 2

Page 3: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

I eftermiddag har vi

— Hygget. Med hinanden

— Lært. Om Arduino, wearables, lysdioder, knapper, mikrofon og programmering

— Bygget. Et projekt med den udleverede hardware

— Fået. Et projekt med hjem. Blod på tanden.

© Physical.io, 2020 3

Page 4: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Program 1/2

— Navnerunde, jer og os

— Hvad er Arduino?

— Hvad er wearables?

— Elektriske grundprincipper

— Hvad er der i posen?

— Forberedelser

— Øvelser og introduktioner

— Installation af de nødvendige programmer m.m.

— Hello World. Dit første program

— Frokost i kantinen (ca. 12.00-13.00)

© Physical.io, 2020 4

Page 5: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Program 2/2

— Øvelser og introduktioner

— Projekt

— PAUSE (ca. 14:40-15.00)

— Projekt

— Opsamling og evaluering (ca. 16.30-17)

© Physical.io, 2020 5

Page 6: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Slides og kodeeksempler

http://physical.io/tl

SSID: PhysicalKode: workshop

© Physical.io, 2020 6

Page 7: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Måske når vi ikke alle øvelser og det er

!

© Physical.io, 2020 7

Page 8: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Kursets formål

— Hands dirty med Arduino og Flora platformen, som bruges til wearables

— Få forståelse for de elektroniske komponenter

— Få forståelse for programmering og brug af Arduino-hardware og biblioteker

© Physical.io, 2020 8

Page 9: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Physical.io

© Physical.io, 2020 9

Page 10: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Physical.io - undervisning

© Physical.io, 2020 10

Page 11: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Physical.io - foredrag

© Physical.io, 2020 11

Page 12: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Physical.io - prototyper

© Physical.io, 2020 12

Page 13: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Physical.io + TL

— Physical computing

— DIY/DIT

— Making + open source

— 'Smart' alting

— Ny viden

— Inspiration

© Physical.io, 2020 13

Page 14: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Hvad laver man på et DIY/makerkursus?

— Selvbyg: Lodde, breadboard, samle

— Servos, lysdioder, knapper, sensors

— Eksperimenteren, samarbejde, videndeling

© Physical.io, 2020 14

Page 15: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Navneleg og jeres baggrund

—Elektronikerfaring

— Programmering

— Design

— Andet?

© Physical.io, 2020 15

Page 16: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Hvad er Arduino?

© Physical.io, 2020 16

Page 17: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Hvad er Arduino?

Baggrund

— 2003, Italien: Hernando Barragán skaber Wiring som en del af sin uddannelse i interaktionsdesign

— Massimo Banzi og Casey Reas er hans vejledere

— Reas' Processing er inspirationen - sketching med so!ware

— Projektet får udmærkelser og videreføres. Bliver med tiden og ad omveje til Arduino

© Physical.io, 2020 17

Page 18: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Hvad er Arduino?

Popularitet

— Open source hardware giver mulighed for nye typer boards

— Den lave barriere for at komme i gang gør det interessant for ikke-tekniske

— Den lave pris giver mulighed for udbredelse

— Internettet giver mulighed for videndeling

© Physical.io, 2020 18

Page 19: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Hvad er Arduino?

I brug

— Hobbyister

— Kunstnere

— Tekniske fagfolk

— En 'standard' for prototyper

© Physical.io, 2020 19

Page 20: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Hvad er Arduino?

I dag

— Boards fra helt små til store med forskellig funktionalitet

— BlueTooth / WiFi

— 32 BIT

— On-board sensors

— Wearables

— Kits med temaer fx. IoT, getting started mv.

— Aktive fora + so!wareudvikling

— Nye boards o!e

© Physical.io, 2020 20

Page 21: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Hvad er wearables?

© Physical.io, 2020 21

Page 22: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Hvad er wearables?

Overordnet

— 'Smart' tøj

— Smartwatches (bærbare sensorer + notifikationer fra smartphone)

— 'Pædometre' (bærbare sensorer - FitBit fx.)

— Gør-det-selv tøjtech (lys og sensorer)

© Physical.io, 2020 22

Page 23: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Hvad er wearables?

'Smart' tøj

© Physical.io, 2020 23

Page 24: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Hvad er wearables?

Smartwatches

© Physical.io, 2020 24

Page 25: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Hvad er wearables?

Pædometre

© Physical.io, 2020 25

Page 26: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Hvad er wearables?

Gør-det-selv tøjtech

© Physical.io, 2020 26

Page 27: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Elektriske grundprincipper

© Physical.io, 2020 27

Page 28: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Elektriske grundprincipper

Spænding

— Spændingen (volt) er differencen af energi mellem to punkter (mængden af vand)

© Physical.io, 2020 28

Page 29: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Elektriske grundprincipper

Strøm

— Strøm (ampere) er hastigheden/flowet (trykket på vandet)

© Physical.io, 2020 29

Page 30: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Elektriske grundprincipper

Modstand

— Modstanden (modstanden) er et materiales evne til at modstå hastigheden/flowet (vandrøret)

© Physical.io, 2020 30

Page 31: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Elektriske grundprincipper

Ohms lov

U = Spænding i voltI = Strøm i ampere R = Modstand i Ohm

© Physical.io, 2020 31

Page 32: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Elektriske grundprincipper

Mere forklaring om Elektriske principper

— Hvad er elektricitet

— Spænding, Strøm, Modstande og Ohms low

— LEDs (lysdioder)

(se også bagest i præsentationen)

© Physical.io, 2020 32

Page 33: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Hvad er der i posen?

© Physical.io, 2020 33

Page 34: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Hvad er der i posen?

Flora

— Arduino udviklingsboard som er god til tekstiler (ingen skarpe hjørner)

— USB

— Battery pack forbindelse

— 14 montage huller til at sy (6 er til strøm)

— 8 Digital GPIO muligheder

— I2C (til sensorer)

— 4 PWM muligheder

— 3 analoge muligheder

— Indbygget LED

— Indbygget Neopixel (RGB LED)

© Physical.io, 2020 34

Page 35: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Hvad er der i posen?

Flora kit

— FLORA main board

— 4 stk Flora RGB NeoPixels

— 3 x AAA Battery holder med JST connector og on/off kontakt

— Stainless Medium ledende tråd 18 meter

— Nåle

— 12 ledninger med krokodillenæb

— USB Kabel

— AAA batterier

© Physical.io, 2020 35

Page 36: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Hvad er der i posen?

Mikrofon

© Physical.io, 2020 36

Page 37: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Forberedelser

© Physical.io, 2020 37

Page 38: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Forberedelser

Flora Driver installation

Kun Windows: Drivers

© Physical.io, 2020 38

Page 39: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Forberedelser

Arduino IDE: Installation

— Hent den seneste version på https://www.arduino.cc/en/Main/So!ware

— En Arduinosketch består altid (næsten) af en Setup og en Loop funktion.

— I Setup forbereder man alting og Loop kører igen og igen.

© Physical.io, 2020 39

Page 40: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Forberedelser

Arduino IDE: Referencemanual

© Physical.io, 2020 40

Page 41: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Forberedelser

Arduino IDE: Installation af Flora board

Først: Preferences → Under "Additional Boards Manager URLs" indsæt: https://adafruit.github.io/arduino-board-index/package_adafruit_index.json

Dere!er: Tools/Værktøjer → Boards → Boards Manager: Søg på Flora og installer Adafruit AVR Boards by Adafruit

© Physical.io, 2020 41

Page 42: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Forberedelser

Arduino IDE: Installation af library

Sketch → Include Library → Manage Libraries: Adafruit Neopixel

© Physical.io, 2020 42

Page 43: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Øvelser og introduktioner

© Physical.io, 2020 43

Page 44: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Øvelser

Hello World - Blink med en LED (blink_led)

Værktøjer → Board → Adafruit FloraVærktøjer → Port → (Vælg port)

#define LED_PIN 7

void setup() { pinMode(LED_PIN, OUTPUT);}

void loop() { digitalWrite(LED_PIN, HIGH); delay(500); digitalWrite(LED_PIN, LOW); delay(500);}

Klik Upload (Pilen øverst →)

© Physical.io, 2020 44

Page 45: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Øvelser

Modificer Blink

Modificer blink_led/HELLO WORLD-eksemplet så det blinker to gange kort og venter 2 sekunder

© Physical.io, 2020 45

Page 46: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Introduktioner

Variabler

Når man laver programmer, spil etc. involverer det altid at man skal gemme og arbejde med forskellige slags data. Det gøres med variabler. En variabel indeholder/gemmer på noget data og navn giver det.

Nogle forskellige typer: char, byte, int, unsigned int, long, unsigned long, float, double

Deklaration/oprettelse:

int inputVariabel1;int inputVariabel2 = 0; // begge er korrekte

© Physical.io, 2020 46

Page 47: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Introduktioner

Variabler Scope og inititalisering

Scope: Der man deklarere en variabel bestemmer dens "scope". dvs hvor den kan bruges

Initalisering af Variabler:Variabler kan have en start værdi når de er deklareret eller ingen. Det er dog altid god skik at sikre sig man har valid data i variablen før den brugesEksempel:

int calibrationVal = 17; // declare calibrationVal and set initial value

© Physical.io, 2020 47

Page 48: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Introduktioner

Variabel Rollover

Når en variable når "lo!et"/Maximal værdi ruller den over til deres minimums værdi (typisk 0) og omvendt

byte x;x = 0;x = x - 1; // x indeholder nu 255..x = 255;x = x + 1; // x indeholder nu 0

© Physical.io, 2020 48

Page 49: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Introduktioner

Variabel eksempler

int temperature = analogRead(A2);int Alder = 30;if (Alder > 30){ // gør noget}else{ // gør noget andet ?}

© Physical.io, 2020 49

Page 50: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Øvelser

Standardfunktion: void setup()

setup()-funktionen kaldes når "sketchen"/programmet startes. Den bruges til at initialisere variabler, pin modes og andre ting der kun skal køres en gang.

int buttonPin = 3;

void setup(){ while (!Serial); // Venter indtil serial monitor åbnes Serial.begin(115200); pinMode(buttonPin, OUTPUT);}

void loop(){ // ...}

© Physical.io, 2020 50

Page 51: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Øvelser

Standardfunktion: void loop()

loop()-funktionen køres igen og igen, så længe der er strøm på Arduinoen. Vi bruger en krokodille-ledning som "knap" forbind den til GND og rør D6 for at "trykke" på knappen. Dette kunne evt. være 2 stk kobbertape som trykkes sammen.

const int buttonPin = 6;

// setup initialiserer seriel kommunikation og pin til knapvoid setup(){ while (!Serial); // Venter indtil serial monitor åbnes Serial.begin(115200); pinMode(buttonPin, INPUT);}

// loop checker knappen hver gang,// og sender via seriel forbindelse om knap er trykketvoid loop(){ if (digitalRead(buttonPin) == HIGH) Serial.write('High'); else Serial.write('Low');

delay(1000);}

© Physical.io, 2020 51

Page 52: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Introduktioner

Parenteser og kommentarer

; (semicolon){} (curly braces)// (single line comment)/* */ (multi-line comment)#define#include

© Physical.io, 2020 52

Page 53: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Øvelser

If-else (if_else)

Stille spørgsmål i Arduino/c.

void setup(){ while (!Serial); // Venter indtil serial monitor åbnes // initialiser seriel porten til 115200 bit per sekund Serial.begin(115200);

int Alder = 30; if (Alder > 30) { Serial.print("you are awesome"); } else { Serial.print("you are too young"); }}

void loop() {}

© Physical.io, 2020 53

Page 54: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Øvelser

While-løkke (while)

Gentag en kodeblok indtil en tilstand er mødt.

void setup(){ while (!Serial); // Venter indtil serial monitor åbnes // initialiser seriel porten til 115200 bit per sekund Serial.begin(115200);

int count = 0; while (count < 9) { Serial.print("The count is: "); Serial.print(count); Serial.println(); count = count + 1; } Serial.println("hej hej!");

while(true) { delay(1000); Serial.println("hello world"); }}

void loop() {}

© Physical.io, 2020 54

Page 55: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Øvelser

Funktioner (funktion_blink)

En funktion gør det muligt at genbruge din kode og gør det nemmere at være organiseret. Skal være deklareret (placeret) uden for andre funktioner.

#define LED_PIN 7

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

// initialiser seriel porten til 115200 bit per sekund Serial.begin(115200); Serial.println("indtast antal blink");}

int blink(int antalblink){ int count = 0; while (count < antalblink) { digitalWrite(LED_PIN, HIGH); delay(500); digitalWrite(LED_PIN, LOW); delay(500); count ++; }}

void loop() { if (Serial.available()) { // læs tastetryk int antal = Serial.parseInt(); blink(antal); }}

© Physical.io, 2020 55

Page 56: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Øvelser

Seriel modtagelse og fortolkning (seriel_modtag)

#define LED_PIN 7

void setup(){ pinMode(LED_PIN, OUTPUT); // OBS husk at indstille til 'no line ending' nederst i den serielle monitor while (!Serial); // Venter indtil serial monitor åbnes // initialiser seriel porten til 115200 bit per sekund Serial.begin(115200); // skriv en linie til seriel porten Serial.println("Hello World!");}

void loop(){ // hvis der er modtaget data på seriel porten så læs en byte og // skriv den til seriel porten (loopback) if (Serial.available()) { // læs tastetryk char tast = Serial.read(); // hvis tastetryk er 'a' så tænd lysdiode if (tast == 'a') { digitalWrite(LED_PIN, HIGH); } else { digitalWrite(LED_PIN, LOW); } // send tastetryk tilbage Serial.write(tast); }}

© Physical.io, 2020 56

Page 57: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Øvelser

Onboard RGB LED aka Neopixel (floraonboardneopixeltest)

#include <Adafruit_NeoPixel.h>

#define PIN 8#define RGBLED_COUNT 1// Parameter 1 = number of pixels in strip// Parameter 2 = pin number (most are valid)// Parameter 3 = pixel type flags, add together as needed:// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)Adafruit_NeoPixel strip = Adafruit_NeoPixel(RGBLED_COUNT, PIN, NEO_GRB + NEO_KHZ800);

void setLEDs(int r, int g, int b);

void setup() { strip.begin(); strip.show(); // Initialize all pixels to 'off'}

void loop() { setLEDs(0x50, 0x00, 0x00); strip.show(); delay(500); setLEDs(0x00, 0x50, 0x00); strip.show(); delay(500); setLEDs(0x00, 0x00, 0x50); strip.show(); delay(500);}

void setLEDs(int r, int g, int b) { for (int i = 0; i < RGBLED_COUNT; i++) { strip.setPixelColor(i, r, g, b); }}

© Physical.io, 2020 57

Page 58: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Øvelser

Eksterne Neopixels

— Lav opstilling med 1, 2, 3 eller 4 neopixels ved hjælp af ledningerne

— Brug samme eksempel som ved intern neopixel

— Men sæt PIN til 6 og antal pixels korrekt

© Physical.io, 2020 58

Page 59: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Øvelser

Mikrofon (mikrofon)

— Tilføj mikrofonen og test at den virker med eksemplet

© Physical.io, 2020 59

Page 60: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Projekt

© Physical.io, 2020 60

Page 61: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Projekt

Overordnet

— Smart cap/kjole/skjorte

— Sys på stof

— Kombination af mikrofon og neopixels

© Physical.io, 2020 61

Page 62: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Projekt

Sytips

— Wearables syguide

— 10 sytips video

— Undgå neglelak mellem ledning og elektronik

— Pas på at sytråden ikke kortslutter hvis tekstilet foldes

— Lav knuderne på bagsiden og ikke oppe på elektroniksiden

— Brug gerne at lave dobbelt forbindelse med knude i midten

© Physical.io, 2020 62

Page 63: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Projekt

Mic to RGB (micToRgb)

— Brug mikrofon input (0-1023) til at tænde LEDs (0-255)

— Dvs. jo højere lyd desto kra!igere lys

© Physical.io, 2020 63

Page 64: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Projekt

VU meter (vuMeter)

— Volumen giver udslag på Neopixels.

© Physical.io, 2020 64

Page 65: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Projekt

Sparkle skirt (sparkleSkirt)

— Blinker et tilfældigt mønster når lyden er over et vist niveau

© Physical.io, 2020 65

Page 66: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Opsamling, evaluering + inspiration

(og ekstra information)

© Physical.io, 2020 66

Page 67: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Opsamling og evaluering

— Afsluttende spørgsmål og kommentarer

— Evaluering

© Physical.io, 2020 67

Page 68: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Inspiration

Inspiration til projekter:- https://www.youtube.com (søg på fx. Raspberry Pi projects, Arduino robots osv.)- http://www.instructables.com- http://hackaday.com- https://blog.adafruit.com- ledende stof

Køb af komponenter:- https://www.adafruit.com (USA)- https://www.sparkfun.com (USA)- http://www.watterott.com (Tyskland)- http://www.exp-tech.de (Tyskland)- https://shop.pimoroni.com (England)- http://eud.dx.com og http://dx.com (Kina og EU)- https://www.aliexpress.com (Kina)- https://www.elextra.dk/main.aspx (Danmark)

Andet:- Adafruit wearables kategori- Loddeguide- Labitat (Hackerspace/teknologifællesskab)- Arduino forum- Creative Applications (flotte projekter)

© Physical.io, 2020 68

Page 69: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Tak for i dag !!!

[email protected]

© Physical.io, 2020 69

Page 70: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Ekstra information

© Physical.io, 2020 70

Page 71: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

På de følgende slides er information som kan være nyttig, hvis I vil arbejde videre hjemme.

© Physical.io, 2020 71

Page 72: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Elektriske grundprincipper

Beregn for modstand til LED

5 Volt = 2.0 Volt (LED) + Modstand

Modstand = 5 - 2.0 VoltModstand = 3 Volt

Modstandens størrelse = 3 V / 16 mA = 187.5 Ohm

© Physical.io, 2020 72

Page 73: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Elektriske grundprincipper

AC (og DC) strøm

© Physical.io, 2020 73

Page 74: SSID: Physical Kode: workshop Hjemmeside: ...physical.io/tl/20200203_presentation.pdf · I eftermiddag har vi — Hygget. Med hinanden — Lært. Om Arduino, wearables, lysdioder,

Elektriske grundprincipper

LED uden beregning

© Physical.io, 2020 74