Proposta de trabalho tinkering

Physical computing is best understood by doing it rather than talking about it[…]

O’Sullivan, Dan and Igoe, Tom, 2004.

https://www.hangar.org/docs/docs_lab/PhysicalColmputing.pdf


Tinkering is what happens when you try something you don’t quite know how to do, guided by whim, imagination, and curiosity. When you tinker, there are no instructions—but there are also no failures, no right or wrong ways of doing things. It’s about figuring out how things work and reworking them.

Banzi, Massimo, 2009.

http://cmuems.com/resources/getting_started_with_arduino.pdf

Após a introdução ao microcontrolador arduino e ao ambiente de programação MAX, bem como da apresentação em aula de trabalhos e experiências de diversos autores, cada grupo de 3 estudantes vai conceber, produzir, documentar e apresentar uma obra de arte cuja experiência estética envolva um qualquer sistema original de computação física. A obra deverá produzir fenómenos sonoros e/ou visuais e deverá integrar pelo menos um microcontrolador bem como um ou vários tipos de transdutores (sensores ou atuadores).


Figura 1:  Ilustração de um sistema de computação física segundo Dan O’Sullivan, Dan e Tom Igoe, Physical Computing, 2004

Calendário:

27 de Outubro – Apresentação da proposta e visualização de trabalhos e experiências de diversos autores. Organização dos grupos.

3 e 8 de Novembro – Mini workshop de Arduino e MAX.

10 de Novembro —Brainstorming, levantamento de recursos e possibilidades. Apresentação das intenções de cada grupo à turma.

15, 17, 22 e 24 de Novembro – Materialização, Execução.

29 de Novembro – Apresentação dos projectos finalizados.

6 de Dezembro – Apresentação da arte final e preparação da exposição.

12 de Janeiro – Entrega final da documentação no Moodle da descrição e documentação audiovisual do projeto documentado.

Horas de trabalho:

(40 presenciais + 56 trabalho autónomo) x 3 estudantes = 288 totais.

Relatório:

Semanalmente, cada estudante actualiza e entrega ao docente um relatório do trabalho realizado que especifique objectivamente as tarefas desenvolvidas bem como o tempo despendido a realizar cada uma dessas tarefas.

Bibliografia disponível na biblioteca da FBAUP:

Eustáquio, Luís Miguel Simões. Uma exploração de open hardware no campo da imagem, FBAUP 2012.

https://repositorio-aberto.up.pt/bitstream/10216/70332/2/23839.pdf

Manovich, Lev. Software takes command, Bloomsbury, 2013.

Outra bibliografia sugerida:

Banzi, Massimo. Getting started with Arduino, Dale Dougherty, 2008.

http://cmuems.com/resources/getting_started_with_arduino.pdf

M. Mims, Forrest. Getting Started with Electronics, 1983

http://wbrc.in/ham/getting-started-in-electronics-forrest-m-mims-iii.pdf

O’Sullivan, Dan and Igoe, Tom. Physical Computing, Thomson Course Technology PTR, 2004.

https://www.hangar.org/docs/docs_lab/PhysicalColmputing.pdf






Overexceeds

Imagem:
https://vimeo.com/788616223

Na primeira fase do projeto, utilizámos 3 motores DC para fazer girar uma espécie de cambotas artesanais que criamos com tubos de cartão (presos aos motores com tubos de PVC e cola epóxica) e arame. Essas cambotas por sua vez davam movimento às estruturas abstratas e orgânicas que criamos com arames, tecidos e linha.

Este foi o primeiro protótipo de cambota que construímos.

Relativamente ao Arduino, foi utilizado para, com o auxílio de reles, permitir mudar o sentido de rotação do motor (nós pretendíamos ter um movimento vai-vem ao invés do movimento de rotação sempre no mesmo sentido que é o default do motor).


Este foi o esquema de montagem utilizado na primeira demonstração do projeto. 

Códigos Arduino:

Motor com reles individuais:

void setup() {

  pinMode(4, OUTPUT);

  pinMode(5, OUTPUT);

}


void loop() {

  digitalWrite(4, HIGH);

  digitalWrite(5, HIGH);

  delay(1000);           

  digitalWrite(4, LOW);

  digitalWrite(5, LOW);  

  delay(1000);

}

 

Motores com reles conjuntos:

void setup() {

  pinMode(2, OUTPUT);

}


void loop() {

  digitalWrite(2, HIGH);

  delay(1000);  

  digitalWrite(2, LOW);

  delay(1000);

}


Depois do feedback recebido na primeira demonstração do projeto e da possibilidade dada pelo professor de fazermos melhorias ao mesmo, decidimos implementar um sensor ultrassónico que ativa os motores com a presença de movimento. Para além disso foi necessário melhorarmos também a gestão de eletricidade para alimentar os motores de forma mais eficiente.

Foi necessário prescindirmos de um dos motores para pudermos usar um dos reles para controlar a ativação do circuito através de um patch do MAX.


Este é o segundo esquema de montagem com as alterações e adaptações necessárias para implementar o sensor ultrassónico.

Códigos Arduino:

Sensor:

#include <HCSR04.h>

byte triggerPin = 7;

byte echoPin = 8;


void setup () {

  Serial.begin(9600);

  HCSR04.begin(triggerPin, echoPin);

}


void loop () {

  double* distances = HCSR04.measureDistanceCm();

  Serial.println(distances[0]);

  delay(50);

}

 

Reles:

const int qua = 2;

const int swi = 4;

int b1;

int b2;

 

void setup() {

  // initialize serial communication:

  Serial.begin(9600);

  // initialize the LED pin as an output:

  pinMode(qua, OUTPUT);

  pinMode(swi, OUTPUT);

}

 

void loop() {

  // see if there's incoming serial data:

  if (Serial.available() == 2) {

    // read the oldest byte in the serial buffer:

    b1 = Serial.read();

    b2 = Serial.read();

 

      digitalWrite(qua, b1);

      digitalWrite(swi, b2); 

  }

}

 

Patch do MAX:


Este projeto sofreu várias alterações desde a nossa ideia inicial devido a dificuldades técnicas, à escassez de espaços de exposição adequados na faculdade e aos nossos recursos financeiros limitados.

Um dos pontos positivos desta instalação é que foi maioritariamente feita com materiais reciclados e reaproveitados.

Gostávamos de deixar um agradecimento pela ajuda do professor André Rangel e dos colegas Samuel Menezes, Renata Caramelo, Inês Vieira, Inês Ribeiro e Rita Falcão.