Yeni Proje: Servolu jikle koruması

Yeni Proje: Servolu jikle koruması

Buyrun size jiroskopsuz, hazır yapılmış helikopter. Uçurarak kırmayı denedim ama başaramadım.

You must be registered for see images attach


Jiroskopsuz helikopterlerinde uçabileceğinin canlı kanıtı :D. Hoş yönü tutturmak biraz zor oluyor ama o kadarlık kısmı da pilotaj olsun :lollol:
 

Ekli dosyalar

  • 5667_1.jpg
    5667_1.jpg
    79.7 KB · Görülme: 28
Yeni Proje: Servolu jikle koruması

Zafer SAHIN' Alıntı:
Buyrun size jiroskopsuz, hazır yapılmış helikopter. Uçurarak kırmayı denedim ama başaramadım...
Gelişmiş kızılötesi sistem varmış bunda Zafer hocam, jiroskop nedir ki. :laugh: :lol:
 
Yeni Proje: Servolu jikle koruması

Bu gece yine mikroişlemci gecesiydi. İşi gücü bırakıp programı baştan yazdım. Evde mükemmel çalışıyor. :)

Kod:
/*
Attiny85 ile jikle koruması için yeni program
Attiny pin 5 (PB2) alıcıdan giriş
Attiny pin 6 (PB1) ateşleme sensörü girişi
Attiny pin 7 (PB0) Servo çıkışı
Attiny pin 2 Analog pot girişi ADC3
Attiny pin 3 Buton girişi PB4
*/


byte x = 0; //Port okuma değişkeni
volatile unsigned long rpm1 = 0;
volatile unsigned long rpm2 = 0;
unsigned long srpm1 = 0;
unsigned long srpm2 = 0;
unsigned int servopwm = 1500;
unsigned int offposition = 1500;

volatile byte rpmx = 0;
volatile byte prevrpmx = 0;
volatile byte rflag = 0;
volatile byte sregvalue;

const int pwmpin = 2;
const int rpmpin = 1;
const int servopin = 0;
const int potin = 3;
const int buton = 4;

unsigned long devir = 0;
unsigned long frame;
long period;


void setup()
{
  noInterrupts();
  pinMode(servopin, OUTPUT);
  pinMode(pwmpin, INPUT);
  pinMode(rpmpin, INPUT_PULLUP);
  pinMode(buton, INPUT_PULLUP);
  offposition = 1000 + analogRead(potin);

  GIMSK |= B00100000; // Pin Change Interrupt enable
  PCMSK |= B00000010; // PB1 için Pin Change Interrupt enable
  interrupts();
}

void loop()
{
  while (digitalRead(buton) == 0)
  {
    setoffposition();
  }
  servopwm = pulseIn(pwmpin, HIGH, 22000);
    if (devir > 1000)
    {
      servopwm = offposition;
    }
    if((servopwm < 800) || (servopwm > 2200)) servopwm = offposition;
    servoout();
  if (rflag = 1)
  {
    noInterrupts();
    srpm1 = rpm1;
    srpm2 = rpm2;
    interrupts();
    calcrpm();
  }
}


ISR(PCINT0_vect)
{
  sregvalue = SREG;
  x = PINB & B00000010;
  rpmx = x & B00000010;

  if (rpmx != prevrpmx)
  {
    prevrpmx = rpmx;
    if (rpmx > 0)
    {
      rpm2 = rpm1;
      rpm1 = millis();
      rflag = 1;
    }
  }

  SREG = sregvalue;
}

void servoout()
{
  digitalWrite(servopin, HIGH);
  delayMicroseconds(servopwm);
  digitalWrite(servopin, LOW);
}

void calcrpm()
{
  rflag = 0;
  period = srpm1 - srpm2;
  if (period > 100 || period <= 0)
  {
    devir = 0;
    return;
  }
  devir = 60000 / period;
}


void setoffposition()
{
  frame = millis();
//  noInterrupts();
  offposition = 1000 + analogRead(potin);
  servopwm = offposition;
  servoout();
//  interrupts();
  while((millis() - frame) < 20)
  {
  }
}

[attachimg=1]
 

Ekli dosyalar

  • Untitled.jpg
    Untitled.jpg
    33.9 KB · Görülme: 72
Yeni Proje: Servolu jikle koruması

Sümer Yamaner' Alıntı:
Bu gece yine mikroişlemci gecesiydi. İşi gücü bırakıp programı baştan yazdım. Evde mükemmel çalışıyor. :)
Bence bu sefer sahada da mükemmel çalışacak inşallah :thumbup:
 
Yeni Proje: Servolu jikle koruması

Mehmet Kucuksari' Alıntı:
Bence bu sefer sahada da mükemmel çalışacak inşallah :thumbup:

Bu gidişle V1500 falan üretilince mükemmel çalışacak. Biz daha V3.0'dayız. :D :p
Aslında geçen versiyon da ilk seferinde tam istediğim gibi çalışmıştı. Motor çalışır çalışmaz jikleyi kendiliğinden kapatmış ve hani neredeyse tek vuruşla çalışmasına yol açmıştı. Sonra şeytan girdi sanırım içine! :D :p
 
Yeni Proje: Servolu jikle koruması

Hadi yaaa. Şeytan kovma kodunun neden işe yaramadığını şimdi anladım. Kodu değiştireyim... :D
 
Yeni Proje: Servolu jikle koruması

Sümer Yamaner' Alıntı:
Bu gidişle V1500 falan üretilince mükemmel çalışacak. Biz daha V3.0'dayız. :D :p
Nasolsa uçak için kullanılacak Sümer abi bence V5500'de olabilir, hiç mahsuru yok. :laugh: :lol:
 
Yeni Proje: Servolu jikle koruması

Uzun zamandır uykuda olan bu projeyi bayram tatilinde canlandırdım. Breadboard testlerini de yaptım. Olması gerektiği gibi çalışıyor. ArGe departman şefimizle yaptığımız çalışmadan bir kesit sunuyorum...

[attachimg=1]
 

Ekli dosyalar

  • pic06001.jpg
    pic06001.jpg
    89.7 KB · Görülme: 36
Yeni Proje: Servolu jikle koruması

Seri imalata geçince haberimiz olsun abi.

HTC Desire 820 cihazımdan Tapatalk kullanılarak gönderildi
 
Yeni Proje: Servolu jikle koruması

Sümer Yamaner' Alıntı:
Uzun zamandır uykuda olan bu projeyi bayram tatilinde canlandırdım. Breadboard testlerini de yaptım. Olması gerektiği gibi çalışıyor. ArGe departman şefimizle yaptığımız çalışmadan bir kesit sunuyorum...
Abi ne yapsan Ar-Ge sefimizin hakkini odeyemezsin :laugh: :D