avatar_bilsisco

Joystick modülü ile ilgili örnek pbp

Başlatan bilsisco, 21 Eylül 2015, 16:12:45

bilsisco

İnternette hep arduino ile c kullanılarak yapılmış projeler var, onlardan yararlanarak robot kol yaptım
Bu modülü basic kullanarak yapılmış bir proje bulamadım(burada da yok)
basic ile mantığını kavrasam yeter, ne projesi olursa olsun

Elzemefe

iki  adet adc  ve bir adet buton giriş yaptığın zaman oluyor
rx ve ry yazan pinler adc ye gelecek şekilde bağlantı yap
sw  kılasik buton bağlantısı ama pull up  mı yada pull down mı  ölçü
aleti bak

kolay gelsin :D

ete

Şayet yanlış görmüyorsam bu üzerinde 2 adet trimpot bulunan birde bastırınca çıkış veren buton'u olan bir joystick ünitesi.
Genellikle SONY oyun konsollarında yer alıyor. Önce nasıl kullanılması gerektiğini söyleyeyim.
Her iki potun dışlardaki uçları (takip edilerek bulunması gerek) GND ve +5V ta bağlanacak. Orta uçlar ise Pic ADC girişlerine bağlanacaktır.
Dik konumda her iki pot da orta noktada bekliyor. Bu konumda ADC kaşılıklarını ölçerseniz 511 civarında bir değer okursunuz.
Kolu ileri ittirince potların birisi maksimuma (ADC karşılığı 1023) ulaşır . Aynı yönde geri çekince aynı pot sıfır değerini verecektir.
+ işaretinin çizgilerini takip edecek şekilde kolu ittirip çekerseniz her iki pot da da dediğim değişimleri okuyabilirsiniz. Kolu iki çizgi arasına alınca her iki pot da değer okursunuz. Bu şekilde de okunan değerlere bağlı olarak ne yapmak istiyorsanız yaparsınız.
Mesel bir kaç okuma örneği vereyim. Potlara A ve B şeklinde isim verelim.

POTA=1023 :POTB=511 Kol , direk ileri ittirilmiş açı verilmeden.  (Direk İleri)
POTA=1023:POTB=1023 , kol 45 derecelik sağa doğru açı ile ileri ttirilmiş. (Sağa ileri)
POTA=511:POTB=1023 , kol direk sağa yatırılmış (Direk Sağa)
POTA=0:POTB=1023     , kol 45 derecelik açı ile sağa  geri çekilmiş. (Sağa geri)
POTA=0:POTB=511 , kol direk aşağı çekilmiş (direk geri)
POTA=0:POTB=0 , kol 45 derecelik sola açı ile geri çekilmiş.  (sola Geri)
POTA=511 : POTB=0 , Kol direk sola yatırılmış.  (Direk Sola)
POTA=1023:POTB=511, Kol sola ileri  (Sola ileri)

epeyce karmaşık umarım bir hata yapmamışımdır.
Buton uçlarınıda takip edip onuda ayrıca değerlendirmek gerekiyor.
Aslında basit bir konu ve illaki örnek aramak da gerekmez bana kalırsa.
Ben , PAN-TILT denilen özel kamera kontrol mekanizması sistemini bu joystick ile kontrol etmiştim.

Ete

gogoce

bu josytick in kodu nedir acaba? Nerelerden temin edilebilir
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

bilsisco

pbp de pot komutuyla yazılabilir ama zor sanırım
ete hocamın yazdıklarına bakın

#include <Servo.h>    // Servo kütüphanesi

Servo myservo1;       // 2 adet servo motor kullanıldı
Servo myservo2;

int pozisyon_x=0;     // Joystick lerden okunan analog değerler bu değişkenlerde tutulacak
int pozisyon_y=0;
const int x_pin=0;   // Joystick in x ve y eksenleri
const int y_pin=1;   // analog 0 ve 1. pinlere bağlanacak


void setup() {
  myservo1.attach(9);   //  Servolar arduinonun
  myservo2.attach(10);  //  dijital 9 ve 10. pinlerine bağlanacak
  Serial.begin(9600);   //  Seri haberleşme başladı
}

void loop() {
  pozisyon_x = analogRead(x_pin);    //0. pinden analog veri okundu         
  pozisyon_x = map(pozisyon_x, 0, 1023, 0, 180); //0-1023 değeri 0-180 değerine çekildi
  myservo1.write(pozisyon_x);        // Elde edilen 0-180 arası açı değeri servoya gönderildi           
  delay(15);                       // Servonun uygun konuma gelmesi için kısa bir gecikme

  pozisyon_y = analogRead(y_pin);     //1. pinden analog veri okundu         
  pozisyon_y = map(pozisyon_y, 0, 1023, 0, 180);  //0-1023 değeri 0-180 değerine çekildi
  myservo2.write(pozisyon_y);          // Elde edilen 0-180 arası açı değeri servoya gönderildi 
  delay(15);                          // Servonun uygun konuma gelmesi için kısa bir gecikme
   
  Serial.print("Servo 1: ");
  Serial.print(pozisyon_x);  // Servoların kaçar derece döndükleri seri monitörde görüntülenecek
  Serial.print("  Servo 2: ");
  Serial.print(pozisyon_y);
  Serial.print("\n"); 
  delay(100);
}


gogoce

Alıntı yapılan: ete - 22 Eylül 2015, 11:12:29
Şayet yanlış görmüyorsam bu üzerinde 2 adet trimpot bulunan birde bastırınca çıkış veren buton'u olan bir joystick ünitesi.
Genellikle SONY oyun konsollarında yer alıyor. Önce nasıl kullanılması gerektiğini söyleyeyim.
Her iki potun dışlardaki uçları (takip edilerek bulunması gerek) GND ve +5V ta bağlanacak. Orta uçlar ise Pic ADC girişlerine bağlanacaktır.
Dik konumda her iki pot da orta noktada bekliyor. Bu konumda ADC kaşılıklarını ölçerseniz 511 civarında bir değer okursunuz.
Kolu ileri ittirince potların birisi maksimuma (ADC karşılığı 1023) ulaşır . Aynı yönde geri çekince aynı pot sıfır değerini verecektir.
+ işaretinin çizgilerini takip edecek şekilde kolu ittirip çekerseniz her iki pot da da dediğim değişimleri okuyabilirsiniz. Kolu iki çizgi arasına alınca her iki pot da değer okursunuz. Bu şekilde de okunan değerlere bağlı olarak ne yapmak istiyorsanız yaparsınız.
Mesel bir kaç okuma örneği vereyim. Potlara A ve B şeklinde isim verelim.

POTA=1023 :POTB=511 Kol , direk ileri ittirilmiş açı verilmeden.  (Direk İleri)
POTA=1023:POTB=1023 , kol 45 derecelik sağa doğru açı ile ileri ttirilmiş. (Sağa ileri)
POTA=511:POTB=1023 , kol direk sağa yatırılmış (Direk Sağa)
POTA=0:POTB=1023     , kol 45 derecelik açı ile sağa  geri çekilmiş. (Sağa geri)
POTA=0:POTB=511 , kol direk aşağı çekilmiş (direk geri)
POTA=0:POTB=0 , kol 45 derecelik sola açı ile geri çekilmiş.  (sola Geri)
POTA=511 : POTB=0 , Kol direk sola yatırılmış.  (Direk Sola)
POTA=1023:POTB=511, Kol sola ileri  (Sola ileri)

epeyce karmaşık umarım bir hata yapmamışımdır.
Buton uçlarınıda takip edip onuda ayrıca değerlendirmek gerekiyor.
Aslında basit bir konu ve illaki örnek aramak da gerekmez bana kalırsa.
Ben , PAN-TILT denilen özel kamera kontrol mekanizması sistemini bu joystick ile kontrol etmiştim.

Ete


hocam bu joystickin herhangi bir kodu veya buılabileceğim bir yer konusunda yardımcı olabilir misiniz?


saygılar
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

ete

Ankara da Pazar günleri Cebeci pazarından hurda pazarı kuruluyor idi. Şimdi kaldırıldı. Temmuz ayından beri kurulmuyor.
O pazardan bir kaç tane almıştım 1TL ye. Sony markalı olanlar üzerinde çift joystick bulunuyor. Başka markalarda var onlarda da aynısı kullanılıyor. Oyun konsolları için Joystick kontrol ünitesi. Piyasa da da satıldığını biliyorum. Aşağıdaki linkte var gibi ama her nedense tek eksen denilmiş. Anlamadım gerekirse sorularak öğrenilebilir.

http://www.direnc.net/JOYSTICK-BUTON-KOLLU-1-AXIS,PR-6574.html

Ete

alisumer

bu modülü kumandamda kullanıyorum hocam fakat orta konumdan yarısına kadar hareket ettirince servo hareketini bitiriyor geri kalan yarısı boş acaba kodda mı hata var dedim potansiyometre ile deniyorum onda hassasiyet çok iyi acaba modullerin genel bir skıntısımı yapılabilecek birşey varmı kullanan bilgisi olan varsa paylaşırsa sevinirim
Hep meraktan

ete

Öncelikle modülün yapısını incelemende yarar görüyorum. Pot daima orta noktada duruyor. Kolu ileri itince orta noktadan üst noktaya, kolu aşağı itince de orta noktadan alt noktaya hareket var pot da. Bu durumda yazılımda buna uygun tedbir almak gerekir. Normal pot bağladığın zaman düzgün çalışıyor demişsin. O düzgün çalışan Pot'u orta konuma getir bir ileri bir geri al bakalım ne oluyor. Modül potundaki aynı olayı yaratmış olursun.

Ete

alisumer

hocam kastettiğim joystiği orta noktadan sağ yöne çekiyorum bu yolun yarısına kadar servoya yol veriyor hareket ediyor servo dönüşü tamamlıyor geri kalan yarısında servoda hiç hareket olmuyor potansiyometre ile yaptığımda başından sonuna kadar servonun hareket ediyor 5 k lık joyistiğin direncini tek bacak ve orta bacaktan multimetre ile ölçüyorum orta noktada 2,6 k değeri veriyor bu norma ama joystiği sağa yada sola hareket ettirdiğimde direnç belli yere kadar normal düşüyor yada artıyor sonra  azalması gerekirken artıyor görünüyor bunu 2 eksen playstation joystiğinde de denedim aşağı yukarı aynı sonucu veriyor sonuçta onlarda da pot var tüm skalasının çeyreğini kullansalarda da artış ve eksilme düzenli olması gerekiyor ama olmuyor sorunum bu
Hep meraktan

alisumer

hocam joystik orta noktada 1.5 ms veriyor değer de 1 ile 2 ms arası ayarlandı onda sıkıntı olduğunu sanmıyorum
Hep meraktan

alisumer

kızdım parçaladım sorunu buldum karbon yüzey alanını çok kısa tutmuşlar joystik kolunun hareketi alanın dışına çıkarıyor fırçayı
Hep meraktan

Powered by EzPortal