Servo Motor Kontrolü ??

Başlatan artur_2929, 02 Haziran 2012, 21:38:55

artur_2929

Merhaba

seri porttan gelen sayı degerine göre 4 adet servo motoru kontrol etmek istiyoruz.
Örnegin seri porttan "1" geldiginde birinci servo +x yönünde, "2" geldiginde -x yönünde dönmesini istiyoruz.
sorunum servo motorlar sadece bir adım atıp duruyor. tam dönüş yapmıyor. sitedeki servo motor kontrolü ile ilgili tüm yazıları okudum.
Pulsout 'a hangi degeri verirsem vereyim hep bir adım atıp duruyor.

Servo motorun çalışma aralıgını bir türlü bulamadım  :(

kullanılan malzemeler:
PIC16F877A
4 MHz Kristal
TowerPro Microservo 9G SG90

Örnek kodlar ( Not: Pulsout'taki degerler deneme için yazılmıştır. onları defalarca değiştirerek denedim )
Include "modedefs.bas"

define hser_baud 2400
veri var word
TRISA=%11111111
TRISB=%11111110
PORTB=0

MAIN:
hserin [veri]
veri=veri-$30
select case veri
case 1
goto GOZARTIX
case 2
goto GOZEKSIX
case 3
goto BOYUNARTIX
case 4
goto BOYUNEKSIX
case 5
goto BOYUNARTIY
case 6
goto BOYUNEKSIY
                   
END SELECT                     
                     
GOTO MAIN


GOZARTIX:
PULSOUT PORTB.0,260
PAUSEUS 5
GOTO MAIN

GOZEKSIX:
PULSOUT PORTB.0,90
PAUSEUS 5
GOTO MAIN


BOYUNARTIX:
PULSOUT PORTB.1,260
PAUSEUS 5
GOTO MAIN

BOYUNEKSIX:
PULSOUT PORTB.1,90
PAUSEUS 5
GOTO MAIN


BOYUNARTIY:
PULSOUT PORTB.2,260
PAUSEUS 5
GOTO MAIN

BOYUNEKSIY:
PULSOUT PORTB.2,90
PAUSEUS 5
GOTO MAIN


END


Teşekkür ederim...

artur_2929


ete

Bu tür servo motorlar kesnlikle tam tur atmazlar. Motorlar genelde 180 derece döncek şekilde yapılmışlardır. İçindeki dişli mekanizması buna mani olur. Bazı kişiler mekanizmadaki pimi kırarak motorun tam tur atmasını sağlıyorlar. Ama mevcut hali ile tam tur atmaz.

Servoların bir sinyal alma aralığı olması lazım dır. Bu aralık genelde 500us ile 2000 us arasındadır. Bu aralıkta verdiğiniz pulslar motorun konum değiştirmesine sebep olur.

Bu konuda aşağıdaki örnekleri incelemenizi öneririm.

http://etepic.com/index.php?topic=63.0

Ete

Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

artur_2929

Cevabınız için çok teşekkür ederim..

POT ile yazmış olduğunuz programı kullanarak servoyu kontrol edebiliyoruz fakat enerji verildiği andan itibaren servo boştayken bile cızır cızır ötmekte. ve çok az bir titreme oluşmakta. sebebi nedir acaba ?


Not: Güç kaynagı olarak 5V adaptör kullanılmaktadır.

Teşekkürler..

harmanx

servo çalıştırmak için sürücü üzerinde bazı ayarlar yapman gerekli
1 Çalışmam modu
2 pulse sürceksen Puls şekli  puls+puls veya Pulse+dır 
3 electronic gear   kaç palste kaç tur atacağı
4 gain ayarları yüke göre
ayrıntılı bilgi sürücülerin datashetlerinde var

ete

Bana kalırsa iki puls arasındaki zaman veya min puls süreleri kullandığınız Servo da farklı yada en son ihtimal Servo nuz pek sağlıklı değil. Pek çok servo çalıştırdım ama söylediğiniz durumla hiç karşılaşmadım.
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

artur_2929

Öncelikle cevaplarınız için teşekkürler..

Aynı servodan 5 adet var hepsinde de aynı sorunu yaşıyorum.

hpwm komutundaki "iş süresi" ve "frekans" değerleriyle oynamama rağmen motorlardan gelen cızırtı ve titreşimi engelleyemedim.

Bu arada kullandığım servo motorların resmi aşağıdaki gibidir.



Bir sorum daha olacaktı

MATLAB Programından seri port aracılığıyla 2 tane 3 bitlik koordinat bilgilerini PIC'e gönderiyorum. Ancak PIC'e gelen verileri iki ayrı değişken'e atayamıyorum..

Nerede hata yapıyorum acaba ? yardımcı olursanız sevinirim. 

ete

#7
Biraz araştırınca analdımki elindeki motor bir digital servo. Analog servolardan farkı dead time süreleri çok kısa bunların.
Bir analog servo saniyede 50 puls alırken digital servoların 300 puls almaları gerkiyormuş. Böylece motor torkunda maksimum verim alınıyor sanırım.
Aşağıdaki yazıyı okuyun bence.

http://www.futaba-rc.com/servos/digitalservos.pdf

Ben digital servo hiç kullanmadım.  Sizin motorun verilerini araştırdım net olarak alamadım ama sanırım 10us lik bir dead time süresi mevcut.
Bu tür motorların sürülmesinde en azından 300 Hzlik bir PWM sinyali kullanmanız gerekiyor.  Bazı yerlerde sinyalin 300-400 Hz arasında olması yeterli deniliyor.
Bu durumda yapmanız gereken şu. Duty süresi ayarlanabilir bir 300 Hz lik PWM sinyali üretmeniz ve bu sinyali motora vermeniz. Bunu bir pic ile yapabileceğiniz gibi bir 555 kullanarak da yapabilirsiniz.
Mesela 16F88 kullanarak analog port'a bir adet pot bağlarsınız ve potun ayarına bağlı olarak duty değerini %0- %100 arasında değiştirirsiniz.
Bunu yapabilirmisiniz bilmiyorum. O nedenle biraz çalışın yapamazsanız haber verin.

Ete

           Edit:  16F88 ile yaptığım sistemi  aşağıdaki linkte tıklayarak yükleyebilirsiniz.
                     https://dl.dropbox.com/u/25364674/Digital%20Servo.rar


Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

artur_2929

Servolarımızın dijital olduğunu bilmiyordum sayenizde öğrendim :)

bahsetmiş olduğunuz şekilde denemeler yapıp olumlu yada olumsuz sonuçlarını sizinle paylaşacağım.

yardımlarınızdan dolayı tekrardan teşekkür ederim...

y1lh4n

Bu servo Motorlarda Tam olarak Dakikadaki devir ayarını yapan nedir ?

mustafa6106

icinde bulunan encoderle pozisyon devi kontrolu yapilir.basit rc servolarn icinde pot bulunur.

ete

Servo motorlar tam devir yapmazlar. Pozisyon kontrolleri için kullanılırlar. RC servolar genelde 90 veya 180 derece ye kadar dönebilirler. SOnra tekrar geri dönmeleri gerekir. Tam tur atabilmeleri için mekanik sistemlerinde tadilat yapılması gerekir.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

y1lh4n

Genelde artımlı encoder mı bunların içersindeki yoksa mutlak encoder mı
15A lik servolarla projemde işim olacak gibi duruyor, devir önemli kaçırma olayı nasıl olur. Birde 15Alik bir servo 7,5kw güce mi tekamül eder. Biraz konu saptı kusura bakmayın.
Benim gördüğüm kadarıyla cnc tezgahlarda hep ana motorları servo ona istinaden sordum.

mustafa6106

genelde şu encoderli diye olmuyor.ihtiyaca göre tercih edersin.gücü motor etiketinde yazar.toplam mekanik güçten bahsediyorsan motor miline bağlı redükterde alacağın mekanik gücü etkiler

y1lh4n

Ete hocam bu servo motorların tam tur atması için ne gibi mekanik tadilat gerekiyor. Söylemeniz mümkünse tabii.