Kullanıcıyı takip eden TV

Tv yada bilgisayarla ilgilenirken herzaman olduğumuz yerde durmadığımız kesin .Bu projemizde kullanıcının durumuna göre monitör yada TV sizi takip ederek konumunuza göre yönünü çeviriyor.

Bu projemizin kullanımında bazı sıkıntılar olacaktır. Sebebi ise birden çok kişi varken monitör kime doğru dönmesi gerektiği programlamada belirtilmediği için sıkıntı yaşanabilir. Programlamada bu sıkıntının üstesinden gelebilirsiniz.

Projemizde 3 adet Ultrasonic sensör ve 3 adet servo motor vardır. 3 adet servo motoru projemizde sadece monitör yada TV konum değiştirecekse 1 taneye düşürebilirsiniz.
Projemizde kullanılan servo motorlar arduinomuzun 9,10 ve 11. pinlerine bağlıdır
Kullanılan Ultrasonic sensörler ise
1. ultrasonic sensör Triger : 2 Echo : 3
2. Ultrasonik sensör Triger : 4 Echo : 5
3. Ultrasonik sensör Triger : 6 Echo : 7

….



#include <Servo.h>

const int atpin = 2;
const int aepin = 3;
const int btpin = 4;
const int bepin = 5;
const int ctpin = 6;
const int cepin = 7;

const int num = 15;
int i = 0;
// Burada monitörün hareket etmesini istediğiniz mesafe aralığı girilebilir.
const int limit = 5500;
int hold = 500;

long adur, atot, afix;
long bdur, btot, bfix;
long cdur, ctot, cfix;

Servo lfs; // sol hoparlör
const int lfsout = 69;
const int lfsin = 92;

Servo mon; // Monitör
const int monl = 145;
const int monc = 91;
const int monr = 45;

Servo rfs; // sağ hoparlör
const int rfsin = 63;
const int rfsout = 78;

void setup() {
  Serial.begin(9600);

  pinMode(atpin, OUTPUT);
  pinMode(aepin, INPUT);
  pinMode(btpin, OUTPUT);
  pinMode(bepin, INPUT);
  pinMode(ctpin, OUTPUT);
  pinMode(cepin, INPUT);

  lfs.attach(8);
  mon.attach(9);
  rfs.attach(10);

  digitalWrite(atpin, LOW);
  digitalWrite(btpin, LOW);
  digitalWrite(ctpin, LOW);

  lfs.write(lfsin);
  mon.write(monc);
  rfs.write(rfsin);

}

void loop() {

  atot = 0;
  for (i=0; i <= num; i++){ digitalWrite(atpin, HIGH); delayMicroseconds(10); digitalWrite(atpin, LOW); adur = pulseIn(aepin, HIGH); if (adur > limit) {
      adur = limit;
    }
    atot = atot + adur;
  }
  afix = atot / num;

  btot = 0;
  for (i=0; i <= num; i++){ digitalWrite(btpin, HIGH); delayMicroseconds(10); digitalWrite(btpin, LOW); bdur = pulseIn(bepin, HIGH); if (bdur > limit) {
      bdur = limit;
    }
    btot = btot + bdur;
  }
  bfix = btot / num;

  ctot = 0;
  for (i=0; i <= num; i++){ digitalWrite(ctpin, HIGH); delayMicroseconds(10); digitalWrite(ctpin, LOW); cdur = pulseIn(cepin, HIGH); if (cdur > limit) {
      cdur = limit;
    }
    ctot = ctot + cdur;
  }
  cfix = ctot / num;

  Serial.print(afix);
  Serial.print("  ");
  Serial.print(bfix);
  Serial.print("  ");
  Serial.println(cfix);

  if (afix < bfix && afix < cfix) {
    // Position 2
    lfs.write(lfsout);
    mon.write(monl);
    rfs.write(rfsin);
  } 
  else if (bfix < afix && bfix < cfix) {
    // Position 1 and 3
    lfs.write(lfsin);
    mon.write(monc);
    rfs.write(rfsin);
  } 
  else if (cfix < afix && cfix < bfix) {
    // Position 4
    lfs.write(lfsin);
    mon.write(monr);
    rfs.write(rfsout);
  } 
  else if (afix == limit && bfix == limit && cfix == limit) {
    // Position Open
    lfs.write(lfsout);
    mon.write(monc);
    rfs.write(rfsout);
  }

  delay(hold);
}

Boş zamanlarda arduino ile uğraşan kendi halinde bir Öğretmen.

  1. konyali 6 Ocak 2016 07:42

    Projeniz cok enteresanmis . Calismalara baslayacagim

    Cevapla

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.