46
Oficina de Arte e Tecnologia www.void.cc/workshop/

Oficina de Arte e Tecnologia

Embed Size (px)

DESCRIPTION

Oficina realizada em 2010 como parte do projeto de extensão "Oficina de Arte e Tecnologia". Exemplos de código e circuitos elétricos simples, Arduino, Pure Data e muito mais para artistas e designers.

Citation preview

Page 1: Oficina de Arte e Tecnologia

Oficina de Arte e Tecnologiawww.void.cc/workshop/

Page 2: Oficina de Arte e Tecnologia

Ferramentas

Page 3: Oficina de Arte e Tecnologia

Ferramentas

Multímetro

Alicates

Fios (jumpers)

Protoboard

Estanho

Ferro de Solda

Componentes

Sugador

Mãos extras

Page 4: Oficina de Arte e Tecnologia

Protoboard

Page 5: Oficina de Arte e Tecnologia

...

...

Protoboard

Page 6: Oficina de Arte e Tecnologia

● Hardware Livre

● IDE

● Comunidade

● Plataforma Open Source Physical Computing

Arduino

Page 7: Oficina de Arte e Tecnologia

● 8 Kbyte - memória flash● 1 Kbyte - RAM● 512 byte – EEPROM● 13 digital I/O● 5 analog input● 6 analog output● 16 Mhz (Apple II: 1 MHz / Intel 286: 12.5 MHz /Intel Core 2: 3 GHz)

Características Atmega8

Page 8: Oficina de Arte e Tecnologia

● Digital Pins 2-13 (verde)

● Digital Pins (RX,TX) 0,1 (verde)

● Reset (azul)

● In-circuit Serial Programer (azul)

● Analog in Pins (azul)

● Power 5v e 9v (laranja)

● Terra (verde e laranja)

● Alimentação externa 9v – 12v (rosa)

● USB (amarelo)

● Jumper para mudar a alimentação do Diecimila (roxo)

Pinos

Page 9: Oficina de Arte e Tecnologia

● Digital: On/Off, 1/0, 5v/0v● Analógico: 0 até ∞ (muitos valores)● Computadores não entendem valores analógicos, esses valores são convertidos em pulsos digitais

Digital e Analógico

Page 10: Oficina de Arte e Tecnologia

PWM (analog output)

● Oscilando rapidamente a saída Digital, tem-se a impressão de que a quantidade de energia enviada para o circuito é variável

Pulse Width Modulation

● Essa técnica pode ser utilizada para variar a intensidade luminosa de um led, a velocidade de um motor, etc

● No Arduino, as portas 9, 10, 11 podem ser usadas como PWM

● Usa-se a função analogWrite(x, y) para controlar essa saída. Por exemplo: analogWrite(9,128), seta o pino 9 como PWM, usando 50% da sua tensão total. O valor máximo possível é 255

Page 11: Oficina de Arte e Tecnologia

Linguagem Arduinoreferências: http://arduino.cc/en/Reference/HomePage

● setup() Executado somente uma vez quando o microcontrolador é ligado

● loop()Roda repetidamente o programa dentro desse bloco

● pinMode(<pino>, <INPUT/OUTPUT>)Configura um pino como entrada ou como saída

● digitalWrite(<pino>, <HIGH/LOW>) Configura o estado de uma saída digital como HIGH ou LOW

● digitalRead(<pino>)● Lê o estado de uma entrada digital● analogWrite(<pino>, <valor: 0-255>)Escreve um valor em uma saída analógica

● analogRead(<pino>)Lê o estado de uma entrada analógica

Page 12: Oficina de Arte e Tecnologia

● delay(<n>)

Pausa o processamento durante n milésimos de segundo● random(<inicio>, <fim>)

Retorna um número entre inicio e fim● Serial.begin(9600)● Serial.print(mensagem, <HEX/DEC/BIN/BYTE>)● Serial.read()

Linguagem Arduinoreferências: http://arduino.cc/en/Reference/HomePage

Page 13: Oficina de Arte e Tecnologia

Mão na massaMontar projetos ao invés de falar sobre eles, a filosofia do Arduino.

Page 14: Oficina de Arte e Tecnologia

Saída DigitalBlink: http://www.arduino.cc/en/Tutorial/Blink

Page 15: Oficina de Arte e Tecnologia

Saída DigitalBlink: http://www.arduino.cc/en/Tutorial/Blink

Page 16: Oficina de Arte e Tecnologia

Saída DigitalBlink: http://www.arduino.cc/en/Tutorial/Blink

int ledPin = 13;

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

void loop(){ digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); delay(1000);}

int ledPin = 13;

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

void loop(){ digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); delay(1000);}

Page 17: Oficina de Arte e Tecnologia

Saída Digital + PDBlink: http://www.arduino.cc/en/Tutorial/Blink

int ledPin = 13;

void setup(){ pinMode(ledPin, OUTPUT); Serial.begin(9600);}

void loop(){ int msg = Serial.read(); if ((char)msg == 'l') { digitalWrite(ledPin, HIGH); } else if ((char)msg == 'd') { digitalWrite(ledPin, LOW); }}

int ledPin = 13;

void setup(){ pinMode(ledPin, OUTPUT); Serial.begin(9600);}

void loop(){ int msg = Serial.read(); if ((char)msg == 'l') { digitalWrite(ledPin, HIGH); } else if ((char)msg == 'd') { digitalWrite(ledPin, LOW); }}

Page 18: Oficina de Arte e Tecnologia

Código dos resistoreshttp://www.areaseg.com/sinais/resistores.html

Page 19: Oficina de Arte e Tecnologia

Saída DigitalSaída “Analógica“ PWMFading: http://arduino.cc/en/Tutorial/Fading

Page 20: Oficina de Arte e Tecnologia

Fading: http://arduino.cc/en/Tutorial/Fading Saída “Analógica“ PWM

Page 21: Oficina de Arte e Tecnologia

int value = 0;int ledpin = 9;

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

}

void loop() { for(value = 0; value <= 255; value+=5) { analogWrite(ledpin, value); delay(30); } for(value = 255; value >=0; value-=5) { analogWrite(ledpin, value); delay(30); } }

Fading: http://arduino.cc/en/Tutorial/Fading Saída “Analógica“ PWM

Page 22: Oficina de Arte e Tecnologia

int ledPin = 9;

void setup(){ pinMode(ledPin, OUTPUT); Serial.begin(9600);}

void loop(){ int msg = Serial.read(); if (msg >= 0) { analogWrite(ledPin, msg); }}

Fading: http://arduino.cc/en/Tutorial/Fading Saída “Analógica“ PWM + PD

Page 23: Oficina de Arte e Tecnologia

Saída DigitalEntrada DigitalButton: http://arduino.cc/en/Tutorial/Button

Circuito pull-down

Page 24: Oficina de Arte e Tecnologia

Entrada DigitalButton: http://arduino.cc/en/Tutorial/Button

Page 25: Oficina de Arte e Tecnologia

int ledPin = 13;int inputPin = 2;int val = 0;

void setup() { pinMode(ledPin, OUTPUT); pinMode(inputPin, INPUT);}

void loop(){ val = digitalRead(inputPin); if (val == HIGH) { digitalWrite(ledPin, LOW); } else { digitalWrite(ledPin, HIGH); }}

Entrada DigitalButton: http://arduino.cc/en/Tutorial/Button

Page 26: Oficina de Arte e Tecnologia

int pinoBotao = 2;

void setup(){ pinMode(pinoBotao, INPUT); Serial.begin(9600);}

void loop(){ int x = digitalRead(pinoBotao); Serial.write(x);}

Entrada Digital + PDButton: http://arduino.cc/en/Tutorial/Button

Page 27: Oficina de Arte e Tecnologia

Analog Input: http://arduino.cc/en/Tutorial/AnalogInput

Circuito divisor de tensão

Entrada Analógica

Page 28: Oficina de Arte e Tecnologia

Entrada AnalógicaAnalog Input: http://arduino.cc/en/Tutorial/AnalogInput

Page 29: Oficina de Arte e Tecnologia

int ledPin = 9;int potPin = 0;int value = 0;

void setup() { pinMode(ledPin, OUTPUT); pinMode(potPin, INPUT); }

void loop(){ value = analogRead(potPin); delay(100); analogWrite(ledPin, value/4); }

Entrada AnalógicaAnalog Input: http://arduino.cc/en/Tutorial/AnalogInput

Page 30: Oficina de Arte e Tecnologia

int potPin = 0;int value = 0;

void setup() { pinMode(potPin, INPUT); Serial.begin(9600);}

void loop(){ value = analogRead(potPin); Serial.write(map(value, 0, 1023, 0, 127));}

Entrada Analógica + PDAnalog Input: http://arduino.cc/en/Tutorial/AnalogInput

Page 31: Oficina de Arte e Tecnologia

Analog Input: http://arduino.cc/en/Tutorial/AnalogInput

Circuito divisor de tensão

Entrada Analógica

Page 32: Oficina de Arte e Tecnologia

Entrada AnalógicaAnalog Input: http://arduino.cc/en/Tutorial/AnalogInput

Page 33: Oficina de Arte e Tecnologia

Entrada AnalógicaAnalog Input: http://arduino.cc/en/Tutorial/AnalogInput

int ledPin = 9;int potPin = 0;int value = 0;

void setup() { pinMode(ledPin, OUTPUT); pinMode(potPin, INPUT); }

void loop(){ value = analogRead(potPin); delay(100); analogWrite(ledPin, value/4); }

Page 34: Oficina de Arte e Tecnologia

Entrada Analógica + PDAnalog Input: http://arduino.cc/en/Tutorial/AnalogInput

int entrada = 0;int valor = 0;

void setup() { pinMode(entrada,INPUT); Serial.begin(9600);}

void loop(){ valor = analogRead(entrada); Serial.write(valor);}

Page 35: Oficina de Arte e Tecnologia

Knock: http://arduino.cc/en/Tutorial/Knock

Entrada Analógica Piezo

Page 36: Oficina de Arte e Tecnologia

Knock: http://arduino.cc/en/Tutorial/Knock

Entrada Analógica Piezo

Page 37: Oficina de Arte e Tecnologia

int ledPin = 13;int knockSensor = 0;byte val = 0;int statePin = LOW;int THRESHOLD = 100;

void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600);}

void loop() { Val =analogRead(knockSensor); if (val >= THRESHOLD) { statePin = !statePin; digitalWrite(ledPin, statePin); Serial.println("Toc-toc"); delay(10); }}

Page 38: Oficina de Arte e Tecnologia

Pitch follower: http://arduino.cc/en/Tutorial/Tone2

Saída Analógica Piezo

Page 39: Oficina de Arte e Tecnologia

Pitch follower: http://arduino.cc/en/Tutorial/Tone2

Saída Analógica Piezo

Page 40: Oficina de Arte e Tecnologia

int piezo = 9;int ldr = 0;

void setup() {}

void loop() {int sensorReading = analogRead(ldr);int pitch = map(sensorReading, 400, 1000, 100, 1000);tone(piezo, pitch, 10);

}

Pitch follower: http://arduino.cc/en/Tutorial/Tone2

Saída Analógica Piezo

Page 41: Oficina de Arte e Tecnologia

int entrada = 0;int valor = 0;

void setup() { pinMode(entrada,INPUT); Serial.begin(9600);}

void loop(){ valor = analogRead(entrada); Serial.write(valor);}

Pitch follower: http://arduino.cc/en/Tutorial/Tone2

Piezo + PD

Page 42: Oficina de Arte e Tecnologia

L293: http://www.arduino.cc/es/L293D/L293D

Motor

Page 43: Oficina de Arte e Tecnologia

L293: http://www.arduino.cc/es/L293D/L293D

Motor

Page 44: Oficina de Arte e Tecnologia

int motor1Pin1 = 13; // pin 15 on L293Dint motor1Pin2 = 12; // pin 10 on L293Dint enablePin = 11; // pin 9 on L293D void setup() { pinMode(motor1Pin1, OUTPUT); pinMode(motor1Pin2, OUTPUT); pinMode(enablePin, OUTPUT); digitalWrite(enablePin, HIGH);} void loop() { digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, HIGH);}

Page 45: Oficina de Arte e Tecnologia
Page 46: Oficina de Arte e Tecnologia

Você pode encontrar tudo isso e muito mais em:

● Arduino → http://arduino.cc● Pure Data → http://puredata.info● Coletivo MuSA → http://musa.cc● Artesanato de Volts → http://artesanato.devolts.org● des).(centro → http://pub.descentro.org● Robótica Livre → http://roboticalivre.org● Metareciclagem → http://rede.metareciclagem.org● Estúdio Livre → http://estudiolivre.org● MSST → http://devolts.org/msst