oficina de arte e tecnologia
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.TRANSCRIPT
![Page 1: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/1.jpg)
Oficina de Arte e Tecnologiawww.void.cc/workshop/
![Page 2: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/2.jpg)
Ferramentas
![Page 3: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/3.jpg)
Ferramentas
Multímetro
Alicates
Fios (jumpers)
Protoboard
Estanho
Ferro de Solda
Componentes
Sugador
Mãos extras
![Page 4: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/4.jpg)
Protoboard
![Page 5: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/5.jpg)
...
...
Protoboard
![Page 6: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/6.jpg)
● Hardware Livre
● IDE
● Comunidade
● Plataforma Open Source Physical Computing
Arduino
![Page 7: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/7.jpg)
● 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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/8.jpg)
● 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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/9.jpg)
● 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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/12.jpg)
● 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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/13.jpg)
Mão na massaMontar projetos ao invés de falar sobre eles, a filosofia do Arduino.
![Page 16: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/18.jpg)
Código dos resistoreshttp://www.areaseg.com/sinais/resistores.html
![Page 19: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/19.jpg)
Saída DigitalSaída “Analógica“ PWMFading: http://arduino.cc/en/Tutorial/Fading
![Page 20: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/20.jpg)
Fading: http://arduino.cc/en/Tutorial/Fading Saída “Analógica“ PWM
![Page 21: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/23.jpg)
Saída DigitalEntrada DigitalButton: http://arduino.cc/en/Tutorial/Button
Circuito pull-down
![Page 25: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/27.jpg)
Analog Input: http://arduino.cc/en/Tutorial/AnalogInput
Circuito divisor de tensão
Entrada Analógica
![Page 28: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/28.jpg)
Entrada AnalógicaAnalog Input: http://arduino.cc/en/Tutorial/AnalogInput
![Page 29: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/31.jpg)
Analog Input: http://arduino.cc/en/Tutorial/AnalogInput
Circuito divisor de tensão
Entrada Analógica
![Page 32: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/32.jpg)
Entrada AnalógicaAnalog Input: http://arduino.cc/en/Tutorial/AnalogInput
![Page 33: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/35.jpg)
Knock: http://arduino.cc/en/Tutorial/Knock
Entrada Analógica Piezo
![Page 36: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/36.jpg)
Knock: http://arduino.cc/en/Tutorial/Knock
Entrada Analógica Piezo
![Page 37: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/38.jpg)
Pitch follower: http://arduino.cc/en/Tutorial/Tone2
Saída Analógica Piezo
![Page 39: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/39.jpg)
Pitch follower: http://arduino.cc/en/Tutorial/Tone2
Saída Analógica Piezo
![Page 40: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/40.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/41.jpg)
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 44: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/44.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/45.jpg)
![Page 46: Oficina de Arte e Tecnologia](https://reader033.vdocuments.us/reader033/viewer/2022060109/5554b390b4c90559398b45ff/html5/thumbnails/46.jpg)
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