PC ile uzaktan kumanda kontrollü model araba

Başlatan hsny, 23 Ağustos 2007, 16:51:13

hsny

Elimde bir kumanda var,iki servoyu kontrol ediyor.
Bunu pc den paralel port ile visual basic kodlarıyla kontrol etmek istiyorum.
Kumandada ileri,geri ve sağ,sol yönü için iki control stick var.Bunların üç ucu var.Pilin - ucundan bu uçlardan birine dokunduğumda sola çektiğimde sağa dönüyor.Diğer uçlardan birine dokunduğumda iki servo birden dönüyor.
Bu işi nasıl hallederim?

picusta

öncelikle kumandanin türünü bilmelisin, oransal kontrol mu, switch mi?
Eger model araba ise (oyuncak değil) muhtemelen oransal kontroldür, o sticklerde potansyometredir.
Oransal olarak kontrol etmek istiyorsan paralel port'a takacagin devrede bir D/A dönüstürcüye ihtiyacin olacak.

hsny

Evet proportional yazıyor.
yani direk paralel port data pinlerinden visual basicten yazılacak kodlarla kontrolu zor öyle mi?
D/A dönüştürücünün kullanılma mantığı nedir?Bu konuda neleri incelemem gerekir?Biraz daha açıklama yapabilirmisiniz?

picusta

D/A demek dijital veriyi (1/0 ile ifade edilmis )  analog voltaja çevirmek demek.
Yapilmasi gereken Visual Basic' ile yazilmis prog. paralalel porta takilmis devreyi kontrol edecek ve devre istedigimiz voltajda çikis verecek.
Böyle bir devreyi internetten bulabilirsin, bu sitede bile olabilir yapman gereken arama islevini kullanmak.

hsny


hsny

Burda DAC nasıl kullanılır?
Paralel portun data pinlerinin 6 sını kullanıyorum.D3(geri)-D2(ileri) ileri-geri için kullanılan potun orta ucuna,D1(sol)-D0(sağ) sağ-sol için kullanılan potun orta ucuna,D5 sağ-sol için kumandada bulunan reverse butonuna,D4 ileri-geri için kullanılan reverse butonuna ULN2003 entegresi üzerinden bağlı.
Program kodu bu şekilde:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
       Case vbKeyUp
           Out &H378,4    '000100,D2 ON
       Case vbKeyDown
           Out &H378, 24  '011000,D4 ve D3 ON
       Case vbKeyLeft
           Out &H378,34   '100010,D5 ve D1 ON
       Case vbKeyRight
           Out &H378, 1    '000001,D0 ON
   End Select
End Sub

ilgili pin ON olduğunda sağa dönüyor. Ama tam sağa dönüyor.Kumandanın kolunun orantılı dönüşü gibi nasıl orantılı yapılır?DAC nasıl kullanırım?Çünkü tek pin giriş olacak.Mesela Out &H378,4 ile D2 pini ON oluyor tam ileri dönüyor.Orantısal dönmesi tek pinden nasıl sağlanır?
Birde orantısal dönmesi için klavyeden tusa tek basma ile anlamsız olur,scroll bar kullanılabilir mi?Nasıl olur?

picusta

Sana sana en basit yöntemi söyleyeyim: R2R yöntemi.
yapacagin sadece birkaç direnç ile bir devre, parallel porta dogrudan takabilirsin (direnç degerlerine dikkat).

Burada R dirençlerini 4.7K ohmluk seç. 2R olan yerlerde ise 2 direnci seri bagla.
öncelikle 1 tane 2 bitlik DAC yapmayi dene ve dogru çalisip çalismadigini anlamak için çikisini ölç.
Bitleri sirasi ile 0,0   0,1   1,0    1,1  degerlerini ver.

hsny

D0-D1-D2-D3 paralel portlarını r-2r dirençleriyle dac yapcak şekilde bağlarsam da servolar yine tamsağ-tam sol dönüyolar.Çünkü resimdeki gibi D0 ve D1 ile 2bit dac çıkışını kumanda kolunun sağ/sol kolunun orta ucuna bağlıyorum.
kötü bir çizimle eklemeye çalışıyorum.Fakat D1 D2 diye başlamışım,bu saatte bu hatayı hoşgörün.D0 -D1 -D2 .... diye gidecekti.


Bu biçimde oransal olmuyor,dac cıkışı nereye bağlanmalı?

picusta

Sema biraz küçük olmuş zor okunuyor.
R2R'in en altaki saeye bagli direncin degeri 2R olmasi lazim. Yani senin semada 1K değil 2K olmali. Geri kalan OK.
Pot ile nasil baglandigini tam anlayamadim.
Alıntı YapBuraya gelen gerilim ne olursa olsun potu kısa devre yapıp çalıştırıyor

Baska bir soru potun ucunun kaç volt arasi degisti. Yapabiliyorsan Avometre ile gerilimi ölç, sag, sol.

DAC'in dogru çalisip çalismadigini kontrol etmek için de degerleri degistir DAC çikisni ölç.

En son DAC'i kumandaya baglamadan Potansyometreleri devreden sök.

hsny

Potun orta ucuna dac cıkışını bağlıyorum.Bu orta uctan pc ile bağlantı yapmadan sadece kumanda kolunu cevirdiğimde zaten değişken gerilim değerleri okunuyor,dolayısıyla da servo kumanda koluyla orantılı dönüyor.
Ama dac cıkışı orta uca bağlandığında gelen gerilim değerleri farkettirmiyor. servo tam sol/tam sağ dönüş yapıyor.
dac cıkışı potun orta ucuna bağlanmayacak onu anlıyorum.
potu sökmek istemiyorum,iki şekilde çalışsın istiyorum. bilgisayara bağlanmadan da bağımsız çalışsın.
Ama şimdi dac cıkışı nereye bağlamam gerektiğini bulamamış durumdayım.

picusta

1) DAC çalisiyor mu? (kumandaya hiçbir yere baglamadan AVOmetre ile çikisini ölçünce) degisik degerler verince gerilim degisiyor mu?
2) Pot voltaji min - maks kaç volt arasi?
3) Potu sökmeden kullanmak istiyorsan DAC çikisi ile pot orta ucu  arasina opampli takip edici devre koymalisin.
önemli :  Denemeleri yaparken pot orta konumda durmali. En sag veya en sol durursa olmaz.

hsny

D0 -on (01) iken D0-3,3V ,dac cıkış-0,82V
D1-on (10) iken D1-3,3V,dac cıkıs-1,64V
D0-D1-on (11) iken D0-3,3V D1-3,3V, dac cıkıs-2,48V

pot orta konunda iken gerilim-2,54V
en sağ-2,19V,en sol-2,89V

opamplı takip edici devre niçin gerekli?