- Katılım
- 17 Eyl 2013
- Mesajlar
- 8,773
- Tepkime puanı
- 23,158
- Yaş
- 61
- Konum
- İstanbul
- Web sitesi
- www.sumeryamaner.com
- İlgi Alanı
- Uçak
Hezarfen'de iki arkadaşımız 50 cc uçak topluyorlar. Birisi Edge 540. Diğeri de ona benzer bir şey muhtemelen. Uçaklarda aileronlarda çift servo var. Dolayısıyla setup biraz zorlayacak gibi. Eşek yükü ile para verip servoları almışlar ama servolar gerçekten çok kaliteli olmalarına rağmen programlanabilir türden değil. Bu da tek kontrol yüzeyine birden fazla servonun kumanda ettiği modellerde ciddi bir sorun. Çünkü en ufak bir mekanik eşitsizlik, servolardaki minik imalat fakrlılıkları falan bir servonun zorlanmasına yol açabilir. Bu da kontrol yüzeyinde burulmaya, fazla akım tüketimine ya da olmadık yerde servonun yanmasına yol açabilir. Şu an bununla ilgili makaleler okuyorum. Görebildiğim kadarıyla bu amaçla yapılmış modüller var. Örneğin:
Şimdi manualini indirip okuyacağım. Benzer bir modülü bir Arduino ile rahatlıkla yapabileceğimizi düşünüyorum. Eğer yapabilirsek iki arkadaşımdan ciddi birer hayır duası da alırız.
Şimdilik kafamdaki planı aşağıya yazdım. Devre için bir ön çalışma da yaptım. Takıldığım nokta temel senkronizasyon algoritması. Sadece sıfır noktasından senkronizasyon kolay olur. Ama endpointlerde senkronizasyon yapabilsek çok daha efektif olacak. Orad takılıp kaldım. Okuyacağım manual bu kpnuda bir fikir verecektir. Ne yazık ki az önce göz muayenesinden çıktığım için birkaç saat boyunca sadece yazabiliyor ama okuyamıyor olacağım. O nedenle konuyu sizlerle paylaşıp fikirlerinizi alayım dedim.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Bir kontrol yüzeyine bağlı üçe kadar servonun senkronizasyonu amacıyla oluşturulan Arduino projesidir.
Bağlantılar
Değişken Adı
Servo giriş D03 servoin
Servo1 çıkış D06 servo1
Servo2 çıkış D05 servo2
Servo3 çıkış D04 servo3
Mode1 buton giriş A0 mode1 Active LOW, Internal pullup
Mode2 buton giriş A1 mode2 Active LOW, Internal pullup
Increase buton giriş A2 increase Active LOW, Internal pullup
Decrease buton giriş A3 decrease Active LOW, Internal pullup
Center LED çıkış D12 centerLED
EPA1* LED çıkış D11 epa1LED
EPA2* LED çıkış D10 epa2LED
Servo1 LED çıkış D09 servo1LED
Servo2 LED çıkış D08 servo2LED
Servo3 LED çıkış D07 servo3LED
* EPA1 alt endpoint, EPA2 üst endpoint
EEPROM lokasyonları
Değişken Adı
Servo1 Center 00 servo1cnt
Servo1 Epa1 01 servo1epa1
Servo1 Epa2 02 servo1epa2
Servo2 Center 03 servo2cnt
Servo2 Epa1 04 servo2epa1
Servo2 Epa2 05 servo2epa2
Servo3 Center 06 servo3cnt
Servo3 Epa1 07 servo3epa1
Servo3 Epa2 08 servo3epa2
Pratik çalışma algoritması
Enerji verildiğinde;
- Standart port ayarlamarı
- EEPROM testi
- EEPROM testi başarısız ise üç servo LED’inin sürekli yakılıp söndürülmesi ve program kilidi
- EEPROM testi başarılı ise üç servo LED’inin aktivasyonu (normal çaışma modunu gösterir)
- İki MODE butonunun okunması. Eğer ikisine birden basıldı ise programlama flagının set edilmesi, servo LED’lerinin kapatılması
- MsTimer2 ayarlaması
- Değerlerin EEPROM’dan okunması
Loop() içinde;
Programlama flag’ının durumuna göre iki farklı altprogram çalıştırılacak.
Programlama değil de normal çalışma modunda ise;
- Servo giriş sinyali okunacak
- Gelen servo sinyali her bir servonun EEPROM verileri uyarınca yeniden düzenlenecek
- MsTimer2 set edilmiş olacağı için her 20 mS’de bir çağrılan servoout() altprogramı ile peş peşe üç servoya çıkış değerleri gönderilecek.
- Servo çıkış değerlerinin değişkenleri servo1pwm, servo2pwm, servo3pwm.
Programlama modunuda ise;
- Üç farklı programlama aşaması var. Center, Alt EPA, Üst EPA.
- Üç farklı servo seçimi var.
- Programlamaya girişte Servo1 ve Center seçili olacak. İlgili LED’ler aktive edilecek.
- Mode1 butonu ile Center, Alt EPA ve Üst EPA modları arasında seçim yapılacak.
- Mode2 butonu ile Servo seçimi yapılacak.
- Increase ve Decrease butonları ile de değerler artırılıp azaltılacak.
- Center modunda programlanmakta olan servoya 1500 mikrosaniye + geçerli center değeri kadar sinyal gönderilecek.
- Alt EPA modunda 900 + geçerli EPA1, üst EPA modunda ise 2100 - geçerli EPA2 değerine uygun sinyal gönderilecek.
- Bunlar yapılırken butonlar sürekli olarak okunacak, debounce edilecek.
-
...
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[attachimg=1]
Buyurun, demo videomuz...
Bu LİNKİ görmek için izniniz yok. Giriş yap veya üye ol
Şimdi manualini indirip okuyacağım. Benzer bir modülü bir Arduino ile rahatlıkla yapabileceğimizi düşünüyorum. Eğer yapabilirsek iki arkadaşımdan ciddi birer hayır duası da alırız.
Şimdilik kafamdaki planı aşağıya yazdım. Devre için bir ön çalışma da yaptım. Takıldığım nokta temel senkronizasyon algoritması. Sadece sıfır noktasından senkronizasyon kolay olur. Ama endpointlerde senkronizasyon yapabilsek çok daha efektif olacak. Orad takılıp kaldım. Okuyacağım manual bu kpnuda bir fikir verecektir. Ne yazık ki az önce göz muayenesinden çıktığım için birkaç saat boyunca sadece yazabiliyor ama okuyamıyor olacağım. O nedenle konuyu sizlerle paylaşıp fikirlerinizi alayım dedim.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Bir kontrol yüzeyine bağlı üçe kadar servonun senkronizasyonu amacıyla oluşturulan Arduino projesidir.
Bağlantılar
Değişken Adı
Servo giriş D03 servoin
Servo1 çıkış D06 servo1
Servo2 çıkış D05 servo2
Servo3 çıkış D04 servo3
Mode1 buton giriş A0 mode1 Active LOW, Internal pullup
Mode2 buton giriş A1 mode2 Active LOW, Internal pullup
Increase buton giriş A2 increase Active LOW, Internal pullup
Decrease buton giriş A3 decrease Active LOW, Internal pullup
Center LED çıkış D12 centerLED
EPA1* LED çıkış D11 epa1LED
EPA2* LED çıkış D10 epa2LED
Servo1 LED çıkış D09 servo1LED
Servo2 LED çıkış D08 servo2LED
Servo3 LED çıkış D07 servo3LED
* EPA1 alt endpoint, EPA2 üst endpoint
EEPROM lokasyonları
Değişken Adı
Servo1 Center 00 servo1cnt
Servo1 Epa1 01 servo1epa1
Servo1 Epa2 02 servo1epa2
Servo2 Center 03 servo2cnt
Servo2 Epa1 04 servo2epa1
Servo2 Epa2 05 servo2epa2
Servo3 Center 06 servo3cnt
Servo3 Epa1 07 servo3epa1
Servo3 Epa2 08 servo3epa2
Pratik çalışma algoritması
Enerji verildiğinde;
- Standart port ayarlamarı
- EEPROM testi
- EEPROM testi başarısız ise üç servo LED’inin sürekli yakılıp söndürülmesi ve program kilidi
- EEPROM testi başarılı ise üç servo LED’inin aktivasyonu (normal çaışma modunu gösterir)
- İki MODE butonunun okunması. Eğer ikisine birden basıldı ise programlama flagının set edilmesi, servo LED’lerinin kapatılması
- MsTimer2 ayarlaması
- Değerlerin EEPROM’dan okunması
Loop() içinde;
Programlama flag’ının durumuna göre iki farklı altprogram çalıştırılacak.
Programlama değil de normal çalışma modunda ise;
- Servo giriş sinyali okunacak
- Gelen servo sinyali her bir servonun EEPROM verileri uyarınca yeniden düzenlenecek
- MsTimer2 set edilmiş olacağı için her 20 mS’de bir çağrılan servoout() altprogramı ile peş peşe üç servoya çıkış değerleri gönderilecek.
- Servo çıkış değerlerinin değişkenleri servo1pwm, servo2pwm, servo3pwm.
Programlama modunuda ise;
- Üç farklı programlama aşaması var. Center, Alt EPA, Üst EPA.
- Üç farklı servo seçimi var.
- Programlamaya girişte Servo1 ve Center seçili olacak. İlgili LED’ler aktive edilecek.
- Mode1 butonu ile Center, Alt EPA ve Üst EPA modları arasında seçim yapılacak.
- Mode2 butonu ile Servo seçimi yapılacak.
- Increase ve Decrease butonları ile de değerler artırılıp azaltılacak.
- Center modunda programlanmakta olan servoya 1500 mikrosaniye + geçerli center değeri kadar sinyal gönderilecek.
- Alt EPA modunda 900 + geçerli EPA1, üst EPA modunda ise 2100 - geçerli EPA2 değerine uygun sinyal gönderilecek.
- Bunlar yapılırken butonlar sürekli olarak okunacak, debounce edilecek.
-
...
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[attachimg=1]
Buyurun, demo videomuz...
Bu VIDEOYU görmek için izniniz yok. Giriş yap veya üye ol