Partilhar: WhatsApp
aulify
UC UC02647 · T. Multimédia

Ficha 02 · Projectar uma instalação interactiva

Circuito e código para um cenário descrito
Versão · Aluno
Tempo · 90 minutos
Cotação · 100 pontos
Aluno(a)
Turma
Data
Objectivos da ficha

Parte I · Verdadeiro ou Falso (20 pts)

Indica V ou F e justifica.

  1. Para controlar uma fita LED de 12 V com o Arduino, basta ligá-la directamente a um pino digital. (5 pts)
  2. O padrão de uma instalação interactiva é "entrada (sensor) → processamento → saída (resposta)". (5 pts)
  3. A porta Serial pode ser usada para enviar dados a software multimédia como o Processing. (5 pts)
  4. Um sensor PIR é adequado para detectar a presença/movimento de pessoas. (5 pts)
  1. F — Um pino não fornece corrente/tensão para uma fita de 12 V. É preciso um transístor/MOSFET (ou relé) e uma fonte de 12 V, com GND comum.
  2. V — É o padrão fundamental de qualquer instalação interactiva.
  3. V — A Serial envia números/dados que o Processing (ou TouchDesigner/Unity) lê para controlar visuais ou som.
  4. V — O PIR detecta variações de calor (infravermelho) típicas de pessoas em movimento, ideal para presença.

Parte II · Projectar o circuito (40 pts)

Cenário: pretende-se uma instalação "Som da Distância" para uma exposição. Quando um visitante aproxima a mão de um sensor de distância, a instalação produz um som cuja altura (frequência) varia com a distância, e acende um LED com brilho proporcional à proximidade.

Componentes disponíveis: Arduino Uno, sensor de distância ultrassónico (HC-SR04), buzzer, LED, resistências, breadboard, cabos.

Descreve as ligações do circuito (que pino a quê) e justifica. Inclui as resistências e o GND comum. (40 pts)

Esquema de ligações (referência)

Sensor HC-SR04 (4 pinos): - VCC → 5 V do Arduino. - GND → GND do Arduino. - TRIG → pino digital 9 (saída — dispara o pulso). - ECHO → pino digital 10 (entrada — recebe o eco).

Buzzer: - Terminal + → pino digital 8 (usa tone()). - Terminal − → GND.

LED: - Ânodo (+) → pino 11 (PWM, com analogWrite) através de uma resistência de 220-330 Ω. - Cátodo (−) → GND.

Geral: - Todos os GND ligados em comum (sensor, buzzer, LED, Arduino). - Alimentação por USB (5 V) suficiente para esta carga.

Justificações: - TRIG/ECHO são digitais porque o HC-SR04 mede tempo de eco (pulsos), não tensão. - O LED vai num pino PWM (11) para permitir variar o brilho com analogWrite. - A resistência limita a corrente no LED, protegendo-o e ao pino. - O buzzer usa tone() para gerar frequências variáveis. - GND comum é obrigatório para um referencial eléctrico único.

(Avaliar: pinos coerentes, PWM para o LED, resistência presente, GND comum, justificação.)

Parte III · Escrever o código (40 pts)

Escreve o sketch completo para a instalação "Som da Distância" da Parte II: - Medir a distância com o HC-SR04. - Se a distância for inferior a 30 cm: produzir som cuja frequência aumenta quanto mais perto, e acender o LED com brilho proporcional à proximidade. - Caso contrário: silêncio e LED apagado. - Imprimir a distância pela Serial.

const int TRIG = 9;
const int ECHO = 10;
const int BUZZER = 8;
const int LED = 11;   // PWM

void setup() {
  pinMode(TRIG, OUTPUT);
  pinMode(ECHO, INPUT);
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
}

long medirDistanciaCm() {
  // dispara um pulso de 10 us
  digitalWrite(TRIG, LOW);  delayMicroseconds(2);
  digitalWrite(TRIG, HIGH); delayMicroseconds(10);
  digitalWrite(TRIG, LOW);

  long duracao = pulseIn(ECHO, HIGH);   // tempo do eco (us)
  long cm = duracao / 58;               // converter para cm
  return cm;
}

void loop() {
  long dist = medirDistanciaCm();
  Serial.print("Distancia: ");
  Serial.print(dist);
  Serial.println(" cm");

  if (dist > 0 && dist < 30) {
    // mais perto -> frequência mais alta e mais brilho
    int freq   = map(dist, 0, 30, 1500, 200);   // 200..1500 Hz
    int brilho = map(dist, 0, 30, 255, 0);       // 0..255
    brilho = constrain(brilho, 0, 255);

    tone(BUZZER, freq);
    analogWrite(LED, brilho);
  } else {
    noTone(BUZZER);
    analogWrite(LED, 0);
  }

  delay(60);
}

Pontos avaliados: - Disparo correcto do TRIG e leitura com pulseIn. - Conversão para cm. - Condição < 30 cm com mapeamento de frequência e brilho (mais perto = mais agudo/brilhante). - noTone + LED apagado fora do intervalo. - Serial a imprimir a distância. - Estrutura organizada (função auxiliar de medição é bónus).