Sensor de presença PIR

download Sensor de presença PIR

of 2

Transcript of Sensor de presença PIR

Ficha prtica n 6 de Inteligncia Ambiente2009-2010 2 Semestre

MDMUNIVERSIDADE DE COIMBRA FACULDADE DE CINCIAS E TECNOLOGIA

Departamento de Engenharia Informtica

Expandindo o Arduino II

Nota Importante: A fraude denota uma grave falta de tica e constitui um comportamento no admissvel num estudante do ensino superior e futuro profissional licenciado. Qualquer tentativa de fraude pode levar a anulao da componente prtica tanto do facilitador como do prevaricador. Iremos abordar a ligao do Arduino a um sensor de movimento. O sensor PIR, na Figura abaxo (em duas vistas), permite detectar movimento a uma distncia de 6 metros

Este sensor tem trs pinos de contacto (que deve inserir numa breadboard): - Pin de power (+) - Pin de ground (-) - Pin de dados (OUT) - Envia os dados para o exterior. Este um sensor digital, ou seja apenas diz se detecta movimento ou no.

Para funcionar, portanto necessrio ligar a um GND do Arduino o pin de ground, ligar ao 5Vdo Arduino o de power e finalmente ligar o de dados a uma entrada digital (2 a 13).

Com este sensor pode fazer imensas aplicaes que envolvem deteco de presena de pessoas (alarme de intrusos, controlo de um funcionalidade, abrir/fechar portas, etc.). Para comear vamos criar uma aplicao simples que acende um LED no Arduino sempre que se detecta movimento. Ligue o arduino ao sensor PIR de acordo com o descrito anteriormente. Coloque o seguinte cdigo no Arduino (e faa o upload):/* * PIR sensor tester */ int int int int ledPin = 13; inputPin = 2; pirState = LOW; val = 0; // // // // choose the pin for the LED choose the input pin (for PIR sensor) we start, assuming no motion detected variable for reading the pin status

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

// declare LED as output // declare sensor as input

void loop(){ val = digitalRead(inputPin); // read input value if (val == HIGH) { // check if the input is HIGH digitalWrite(ledPin, HIGH); // turn LED ON if (pirState == LOW) { // we have just turned on Serial.println("Motion detected!"); // We only want to print on the output change, not state pirState = HIGH; } } else { digitalWrite(ledPin, LOW); // turn LED OFF if (pirState == HIGH){ // we have just turned of Serial.println("Motion ended!"); // We only want to print on the output change, not state pirState = LOW; } } }

Exerccios1. Crie um programa em Processing para receber e imprimir as mensagens geradas (Motion detected! e Motion ended!). Use os mtodos available() e read() da classe Serial. 2. Junte ao seu programa da ficha 2 (distoro temporal) a particularidade de apenas fazer distoro quando o arduino detecta movimento. 3. Faa um programa que mostre um vdeo (.mov) e junte uma musica (.mp3).