Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Oficina de Arte e Tecnologia

2,450 views

Published on

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.

Published in: Self Improvement
  • Be the first to comment

Oficina de Arte e Tecnologia

  1. 1. Oficina de Arte e Tecnologiawww.void.cc/workshop/
  2. 2. Ferramentas
  3. 3. Ferramentas Mãos extrasEstanho Ferro de Sugador Solda Multímetro Componentes ProtoboardFios (jumpers) Alicates
  4. 4. Protoboard
  5. 5. Protoboard......
  6. 6. Arduino● Plataforma Open Source Physical Computing● Hardware Livre● Comunidade● IDE
  7. 7. Características Atmega8● 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 / Intel286: 12.5 MHz /Intel Core 2: 3 GHz)
  8. 8. Pinos● 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 aalimentação do Diecimila (roxo)
  9. 9. Digital e Analógico● Digital: On/Off, 1/0, 5v/0v● Analógico: 0 até ∞ (muitos valores)●Computadores não entendem valoresanalógicos, esses valores são convertidos empulsos digitais
  10. 10. PWM (analog output) Pulse Width Modulation●Oscilando rapidamente a saídaDigital, tem-se a impressão de que aquantidade de energia enviada parao circuito é variável●Essa técnica pode ser utilizadapara variar a intensidade luminosade um led, a velocidade de ummotor, etc●No Arduino, as portas 9, 10, 11podem ser usadas como PWM● Usa-se a função analogWrite(x, y)para controlar essa saída. Porexemplo: analogWrite(9,128), seta opino 9 como PWM, usando 50% dasua tensão total. O valor máximopossível é 255
  11. 11. Linguagem Arduino referê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
  12. 12. Linguagem Arduino referências: http://arduino.cc/en/Reference/HomePage● 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()
  13. 13. Mão na massaMontar projetos ao invés de falar sobre eles, a filosofia do Arduino.
  14. 14. Saída DigitalBlink: http://www.arduino.cc/en/Tutorial/Blink
  15. 15. Saída DigitalBlink: http://www.arduino.cc/en/Tutorial/Blink
  16. 16. Saída DigitalBlink: http://www.arduino.cc/en/Tutorial/Blink int ledPin = 13; int ledPin = 13; void setup(){ void setup(){ pinMode(ledPin, OUTPUT); pinMode(ledPin, OUTPUT); }} void loop(){ void loop(){ digitalWrite(ledPin, HIGH); digitalWrite(ledPin, HIGH); delay(1000); delay(1000); digitalWrite(ledPin, LOW); digitalWrite(ledPin, LOW); delay(1000); delay(1000); }}
  17. 17. Saída Digital + PDBlink: http://www.arduino.cc/en/Tutorial/Blink int ledPin = 13; int ledPin = 13; void setup(){ void setup(){ pinMode(ledPin, OUTPUT); pinMode(ledPin, OUTPUT); Serial.begin(9600); Serial.begin(9600); }} void loop(){ void loop(){ int msg ==Serial.read(); int msg Serial.read(); ifif((char)msg == l) { { ((char)msg == l) digitalWrite(ledPin, HIGH); digitalWrite(ledPin, HIGH); } }else ifif((char)msg == d) { { else ((char)msg == d) digitalWrite(ledPin, LOW); digitalWrite(ledPin, LOW); }} }}
  18. 18. Código dos resistoreshttp://www.areaseg.com/sinais/resistores.html
  19. 19. Saída “Analógica“ PWM Saída Digital Fading: http://arduino.cc/en/Tutorial/Fading
  20. 20. Saída “Analógica“ PWMFading: http://arduino.cc/en/Tutorial/Fading
  21. 21. Saída “Analógica“ PWMFading: http://arduino.cc/en/Tutorial/Fading 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); } }
  22. 22. Saída “Analógica“ PWM + PDFading: http://arduino.cc/en/Tutorial/Fading int ledPin = 9; void setup(){ pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop(){ int msg = Serial.read(); if (msg >= 0) { analogWrite(ledPin, msg); } }
  23. 23. Entrada Digital Saída DigitalButton: http://arduino.cc/en/Tutorial/Button Circuito pull-down
  24. 24. Entrada DigitalButton: http://arduino.cc/en/Tutorial/Button
  25. 25. Entrada DigitalButton: http://arduino.cc/en/Tutorial/Button 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); } }
  26. 26. Entrada Digital + PDButton: http://arduino.cc/en/Tutorial/Button int pinoBotao = 2; void setup(){ pinMode(pinoBotao, INPUT); Serial.begin(9600); } void loop(){ int x = digitalRead(pinoBotao); Serial.write(x); }
  27. 27. Entrada AnalógicaAnalog Input: http://arduino.cc/en/Tutorial/AnalogInput Circuito divisor de tensão
  28. 28. Entrada AnalógicaAnalog Input: http://arduino.cc/en/Tutorial/AnalogInput
  29. 29. 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); }
  30. 30. Entrada Analógica + PDAnalog Input: http://arduino.cc/en/Tutorial/AnalogInput 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)); }
  31. 31. Entrada AnalógicaAnalog Input: http://arduino.cc/en/Tutorial/AnalogInput Circuito divisor de tensão
  32. 32. Entrada AnalógicaAnalog Input: http://arduino.cc/en/Tutorial/AnalogInput
  33. 33. 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); }
  34. 34. 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); }
  35. 35. Entrada Analógica PiezoKnock: http://arduino.cc/en/Tutorial/Knock
  36. 36. Entrada Analógica PiezoKnock: http://arduino.cc/en/Tutorial/Knock
  37. 37. 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); }}
  38. 38. Saída Analógica PiezoPitch follower: http://arduino.cc/en/Tutorial/Tone2
  39. 39. Saída Analógica PiezoPitch follower: http://arduino.cc/en/Tutorial/Tone2
  40. 40. Saída Analógica PiezoPitch follower: http://arduino.cc/en/Tutorial/Tone2 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); }
  41. 41. Piezo + PDPitch follower: http://arduino.cc/en/Tutorial/Tone2 int entrada = 0; int valor = 0; void setup() { pinMode(entrada,INPUT); Serial.begin(9600); } void loop(){ valor = analogRead(entrada); Serial.write(valor); }
  42. 42. MotorL293: http://www.arduino.cc/es/L293D/L293D
  43. 43. MotorL293: http://www.arduino.cc/es/L293D/L293D
  44. 44. int motor1Pin1 = 13; // pin 15 on L293Dint motor1Pin2 = 12; // pin 10 on L293Dint enablePin = 11; // pin 9 on L293Dvoid setup() { pinMode(motor1Pin1, OUTPUT); pinMode(motor1Pin2, OUTPUT); pinMode(enablePin, OUTPUT); digitalWrite(enablePin, HIGH);}void loop() { digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, HIGH);}
  45. 45. 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

×