çok sayıda hobi servo motoru kontrol etmek

Başlatan muat, 16 Eylül 2007, 22:23:21

muat

Arkadaşlar 10-15 tane servo nasıl kontrol edilir?
Örneğin bi altı ayaklı robot yapılırken kullanmak üzere?

ground

senkron olan motorlar enkoder çıkışlarıyla birbirine bağlanabilir.

senkron değilse haberleşme ile yapmaya mecbursunuz.

modbus , canbus ya da driverın kendine özel bir protokolü ile yapılabilir. driverın pdf inden haberleşme kısmına bakınız.

bunlar plc ile sürebileceğiniz.

birde hareket kontrol kartları var.. kendinize uygun bir model araştırın.
⌒╮'╭⌒╮⌒╮.
╱◥██◣                  
| 田︱田田|              
╬╬╬╬╬╬╬╬╬

Picproje - Sözde değil özde paylaşım..

x-tol

Altı ayaklı bir robotta piyasa bulunan analog servolardan kullanılır(yazımı ona göre yazdım).Analog Servo
bir servo kontrol etmek yada 15 servo kontrol etmek arasında bir fark yok. 15 çıkışı olan bir mikrodenetleyici ile sürülebilir. tek bir pin üzerinden tek tek taramada yapılabilir fakat bunun pek sağlıklı olacağını düşünmüyorum. servoya pulse gelmediği zaman üzerine(miline) ağırlık bindiğinde istemediğin sonuçlarla karşılaşabilirsin.

fatihsatir

Alıntı yapılan: "x-tol"Altı ayaklı bir robotta piyasa bulunan analog servolardan kullanılır(yazımı ona göre yazdım).Analog Servo
bir servo kontrol etmek yada 15 servo kontrol etmek arasında bir fark yok. 15 çıkışı olan bir mikrodenetleyici ile sürülebilir. tek bir pin üzerinden tek tek taramada yapılabilir fakat bunun pek sağlıklı olacağını düşünmüyorum. servoya pulse gelmediği zaman üzerine(miline) ağırlık bindiğinde istemediğin sonuçlarla karşılaşabilirsin.

Arkadaşa aynen katılıyorum. 15 pinli bir işlemciyle sürebileceğine inanmaktayım. Daha önce 5 servoyu aynı anda kontrol ettim, herhangi bir sorun yaşamadım ama 15ini birden kontrol etmedim hiç. Birde ağırlıklara dikkat et.
Dünya güzelliklerine dalıp ahiret hayatını unutma..!

aster

Servo derken tipini belirtmenizde fayda var !...

Benim aklıma hemen endüstriyel servo gelir, ground da öyle düşünüp yazmış.

CAN kontrol kullanarak her türlü ve adetli servoyu oynatabilirsiniz.

Başlığı hobi olarak düzelttim.

muat

kusura bakmayın ben biraz acemiyim :)

peki bu çok sayıda servoyu, her pinden pwm ile mi kontrol ediyorsunuz?
daha önce analog servoyla çalışmadım, bunların kontrolleri nasıl oluyor?


muat

@ x-tol

bunları biliyorum, ancak bunu 15 tanesi için yapmak zor olur diye düşündüğümden daha kolay bi yolu olup olmadığını merak ediyorum?

picusta

Yukaridaki sema yaniltmasin, arada bosluklar var, sinyali her 20ms'de bir tekrar etmek gerekir.
Eger nasil bir sinyal üretmen gerektigini anladiysan bunu yapman için önünde bir engel yok.
Bir ara ben de böyle bir sinyali (PPM) hem ölçebilen, hem üretebilen, I2C ile haberlesebilen bir devre yapmistim.
Cygnal isimli bir MCU kullanmistim ve mümkün oldugunca donanimdan faydalandim :
1 Timer ve 4 adet latch'li (anti-glitch) CCP'ye sahip, ayrica pinler crossbar denilen bir multiplexer'e bagli.
Bütün bunlari kullanip sadece interrupt rutininlerini yazdim, main döngüsü bos.
Sonuç olarak sistemde teorik olarak maksimum 80 PPM çikis elde edebilebilir. Fakat islemcide o kadar pin yoktu, gerek de yoktu.  Sadece 4 PPM üretip 4 tane ölçmek ile yetindim.

PIC ile de ayni mantigi kullanabilirsin. Yapman gereken tek sey harici bir multiplexer kullanman .
PIC'in 2 PWM'sini kullanip toplam 40 PPM üretebilirsin (sadece interrupt kullanarak ).
Yetmiyorsa ana döngüde yazilimsal olarak daha çok üretirsin.
Kolay gelsin.

x-tol

Alıntı yapılan: "muat"@ x-tol

bunları biliyorum, ancak bunu 15 tanesi için yapmak zor olur diye düşündüğümden daha kolay bi yolu olup olmadığını merak ediyorum?
neden zor olsun ki? bu kodu bir kere yazacaksınız. gerekli yerlerde etiketini çağıracaksınız. basit birşey.

muat

@ x-tol
sanırım acemliğimin verdiği bir korku.
Verdiğiniz bilgiler için teşekkür ederim, şu ana uğraşamıyorum zaten, dersler nedeniyle, ilerde bunu yapmaya başladığımda bir sorun olursa yine soracağımdır, ve bitirirsem burada paylaşmayı isterim.
İyi günler herkeze.

aster

Onu bunu bahane edip havlu atıyorsan şimdiden kaybettin say kendini.

Elini atmışken onu bitirmelisin.

muat

öncelikle ilginiz için teşekkür ederim,
ama onu bunu bahane etmiyorum, ben normal bir anadolu lisesinde okuyorum, üstelik yabancı dille eğitim veren bir lise. ve okulumda türkiye müfredatı verilmiyor. bu nedenle össye daha fazla çalışmam gerekiyor.
ben de hiç istemesemde , eğitim sistemi nedeniyle hobilerime ara vermek zorunda kalıyorum.
bu robotu ancak okuldaki bir proje için yapabilirim, başka türlü zaman ayıramam ne yazık ki.
anlayacağınız tek neden zorluğu değil, ortam şartları daha büyük neden.

x-tol

lütfen eğitim sisteminden bahsetmeyin. ben de o eğitim sisteminin kurbanı olan biri olarak çok doluyum ama geçti artık.
madem össye çalışıyorsunuz hiç uğraşmayın derim size. hiç boşuna zaman kaybetmeyin devre kurmakla. hiçbir işinize yaramayacak. öss'de başarılı olursanız sonrasında bol bol zamanınız olacak bu tür işlerle ilgilenmeye.

Klein

Alıntı yapılan: "x-tol"
Alıntı yapılan: "muat"@ x-tol

bunları biliyorum, ancak bunu 15 tanesi için yapmak zor olur diye düşündüğümden daha kolay bi yolu olup olmadığını merak ediyorum?
neden zor olsun ki? bu kodu bir kere yazacaksınız. gerekli yerlerde etiketini çağıracaksınız. basit birşey.

Ah be herşey bu kadar kolay olsa.  Bahsedilen şey 15 tane servo motoru kontrol etmek olsa söylediğine katılırdım.
Ancak  istenilen şey 15 tane servoyu aynı anda kontrol etmek olunca bu kadar emin olmayın derim.
Olmaz , yapılmaz demem asla. Ama sadece bir rutini yazıp istediğinde çağırmak kadar kolay da değil.