Forum Anasayfa

  Portal Anasayfa    AramaArama  Üye ListesiÜye Listesi   Cesur Türk Üye Kayıt Sözleşmesi (Kuralları Okuyunuz) Cesur Türk Üye Kayıt Sözleşmesi (Kuralları Okuyunuz) 
 
Hesabınız Hesabınız   Kişisel Mesajlar Kişisel Mesajlar   Oturum Aç Oturum Aç 
Cevapsız mesajlar

Etiketler: voltluk, 8bitlik, değerlerini, azından, bizim, uygulamalar, voltajımızın, aşağıdaki, üzerindeki, önceki, yapabiliriz, edebileceğimiz, portlarda, h0378, ikilik, komutları, gönderdiğimiz, digitalanalog, portuna, adresinde
Analoga Giriş ve Basit Robot Gözü

 
 

Yeni Başlık Gönder   Cevap Gönder    Forum Anasayfa -> Ders & Ödev & Tez & Projeler -> Mühendislik / Mimarlık / Peyzaj Mimarlığı
« Önceki başlık :: Sonraki başlık »  
Yazar Mesaj
THe_LooPuS
YaLNıZıM ve SeNSiZiM
YaLNıZıM ve SeNSiZiM

Durum: Çevrimdışı
Kayıt: 04.10.2006
THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar 
Mesajlar: 4957
Şehir: İSTANBUL
Level: 51
Aktiflik: 127 / 280  
 45%
Seviye: 0 / 10660  
 0%
Deneyim: 4964 / 4964  
 100%

MesajTarih: Wed Oct 10, 2007 12:06 pm    Mesaj konusu: Analoga Giriş ve Basit Robot Gözü

Tüm elektronik hobi okurlarına merhaba. Geçen ay paralel port üzerinden DC motor kontrolünü anlatacağımı söylemiştim. Fakat ondan önce Sayısal/Analog veri dönüşütürücülerine değinmek gerektiğini farkettim. En azından bir DC motor hız kontrol devresi yapabilmemiz için, böyle bir dönüşüme ihtiyacımız olacaktır. Bu ay analog sinyalleri sayısal veriye dönüştürmekten bahsedeceğiz ve robotların etrafındaki cisimleri algılamasını sağlayacak basit bir robot gözü uygulamamız olacak.

Bizim bu güne kadar uğraştığımız sinyallerin hepsi sayısaldı. Yani sinyalin “1” yada “0” olması durumunu inceliyorduk. Dolayısı ile lojik voltajımızın değeri, “1” olduğunda +5 Volt, “0” olduğunda ise 0 Volt oluyordu. Analog sinyallerde ise bu voltajın değeri 0 ile 5 volt arasında değişebilir. Bir ADC ile (Analog – Digital Converter) fiziksel değerleri ( ısı, basınç, kütle, ışık yoğunluğu ) sayısal değerlere çevirebilirsiniz. Böylece PC ‘nizi dış dünyayı izleme aracına çevirebilirsiniz. Daha sonra bu ölçümler sonucunda üzt düzey kararlar vermeye programlayabilirsiniz. Örneğin oda sıcaklığı belli bir dereceye ulaştığında PC ‘nizle ısıtma sistemini kapatabilirsiniz.

Bir sıcaklık sensörü, elde ettiği sıcaklığın sonucunda bize 0-5 volt arasında bir değer verebilir. Biz de bu değer üzerinden gerekli dönüşümü yaparak hangi voltajın hangi sıcaklığa denk geldiğini hesaplayabilir ve işlemler yapabiliriz. Herhangi bir ölçüm sonucunda elde edeceğimiz voltaj eğer 5 volt ise bu voltajı ADC ile sayısal veriye dönüştürdüğümüzde elde edebileceğimiz değer 255 olacaktır. Kısacası 0 ile 5 volt arasındaki analog değerler, 8-bitlik sayısal veriye dönüştüğünde 0-255 arasında değerlere denk gelecektir.Analog-Dijital dönüşüm yapılabildiği gibi bunun tam tersini de yapmak mümkündür. Örneğin DATA pinlerine göndereceğimiz 0-255 arası sinyaller ile 0-5 Volt arasında bir voltaj gerilimi elde etmeniz mümkün olabilir. Kullandığınız ADC ve DAC (Digital-Analog Converter) tipine göre analog giriş değerleri değişebilir. Örneğin 255 sayısal sinyali ile +12 volt elde edebilmenizde mümkün olabilir.

Daha önceki uygulamalarımızda paralel portun STATUS pinlerini kullanarak bir tür veri girişi gerçekleştirmiştik. Bu ay ki uygulamamızda paralel portu kullanarak ilk gerçek veri girişini gerçekleştireceğiz. Paralel portun DATA pinlerini bugüne kadar sadece veri çıkışı için kullandık. Yeni teknolojiye sahip paralel portlarda bu DATA pinlerini 8-Bitlik veri girişi için kullanmata mümkündür. Bu işlemi gerçekleştirebilmek için ana kartınızın BI-DIRECTIONAL port tipini desteklemesi gerekmektedir. Bilgisayarınızın BIOS ayarlarına girdiğinizde, paralel port tipini değiştirmeniz mümkün olacaktır. DATA pinleri ile veri girişi yapabilmemiz için port tipinizi BI-DIRECTIONAL yapmalısınız.

Bu güne kadar uygulamalarımızı hep paralel port üzerinde gerçekleştirdik. Fakat uygulamalar geliştikçe bu port bize yetersiz kalmaya başlayacak. Öyle uygulamalar olacak ki, hem 8-bit veri girişi hemde 8-bit veri çıkışını aynı anda yapmamız gerekecek. Bu sebeple, önümüzdeki ay, paralel port üzerinden çalışan 8255 programlama kitini tanıtacağım. Bu kit sayesinde, aynı anda 3 sayısal çıkış yada giriş yapmamız mümkün olacak. Bu kitin diğer bir faydası ise, gerçekleştirdiğimiz uygulamalarda oluşabilecek bir hata sonucu paralel portunuzu yakma riskinin önüne geçebilmemiz. Bu sayede uğrayabileceğimiz en büyük zarar en fazla bir kit parası kadar olacaktır.

Bi-Directional paralel port ile veri girişi STATUS portundan farklıdır. STATUS portu ile girişi, pinin üzerindeki “1” lojik voltajı topraklayarak gerçekleştiriyorduk. DATA portları ile veri girişini ise, bu pinlere lojik voltaj göndererek gerçekleştirebiliyoruz. Bu yazımda ilk kez Visual Basic komutlarının dışında, C++ ve DELPHI komutlarından da bahsedeceğim. DATA portundan veri okumak için INP komudunu DATA portunuzun adresinde kullanmanız gerekmektedir.Çok basit olarak paralel porta veri göndermekten ve almaktan tekrar bahsetmek istiyorum. Paralel portunuza verilen adres üç alt porta şu şekilde dağılır. Örneğin paralel portunuzun taban (base) adresi h0378 olsun. Bu durumda;

DATA portu h0378

STATUS portu h0378 + 1 yani h0379

CONTROL portu ise h0378 +2 yani h037A olur.

Paralel port kontrolü için Visual Basic yada C++ kullanacağız. Visual Basic altında OUT komudunu yada C++ altındaki OUTPORTB kullanarak DATA portuna 0-255 arasında gönderdiğimiz sayısal değer ile istediğimiz data pinlerinin lojik değerlerini “1” yapabiliyoruz. Data pinlerinden bir tanesinin “1” olması o pinin +5 Volt olması anlamına geliyor. DATA portundan 8 bitlik veri çıkışı alabiliyoruz. DATA portuna hiçbir veri göndermediğimiz zaman ki değeri “00000000” dır. Dikkat ederseniz 8 tane “0” var. Örneğin data portuna 25 değerini gönderelim. 25 değerinin ikilik sayı sisteminde karşılığı “00011001” dir. Bu durumda D4, D3 ve D0 pinlerine karşılık gelen lojik değerler “1” olduğundan o pinler +5 Volt olacaktır. Bu ayki uygulamamızda ise Bi-Directional port desteği sayesinde DATA portlarındaki veriyi okuyacağız. Yani D4, D3 ve D0 pinlerine karşılık gelen pinlere +5 voltluk lojik voltaj uyguladığımızda, bu porttan okuyacağımız değer 25 olacaktır.

Paralel port üzerinde CONTROL portununa ait 4 tane pin vardır. Bu pinlerden C0,C1,C3 pinleri tersinmiştir. Yani tersinmiş olan bu pinlere veri göndermediğimiz zaman durumu “1” dir. Bu pinlerden bir tanesine veri gönderdiğimizde o pinin durumu “0” olacaktır. Diğer bir deyişle CONTROL pinlerinin düşük olan 4 bitine “1111” yazmanız halinde konnektördeki bitler “0100” olacaktır. Tersindirme olayına önceki sayılarımızda daha detaylı değinmiştik.

C++ ile PORT GİRİŞ/ÇIKIŞ Komutları

C++ altında veri giriş çıkış komutlarının kullanımı aşağıdaki gibidir. Bu komutları kullanabilmek için kütüphane dosyasını programınıza #include etmelisiniz.

Veri göndermek için : OUTPORTB (port_adresi,byte)

Veri almak için : Byte = INPORTB (port_adresi)

DELPHI ve Assembly kullanımı ile PORT GİRİŞ/ÇIKIŞ Komutları


{$R *.DFM}
procedure portout(IOport:word;value:byte);assembler;
asm
xchg ax,dx //port'a değer göndermek
out dx,al
end;
function portin(IOport:word):byte;assembler;
asm
mov dx,ax //port'taki değeri okumak için
in al,dx
end;

Veri göndermek için : PORTOUT (port_adresi,byte)

Veri almak için : Byte = PORTIN (port_adresi)
Sayısal – Analog dönüştürücü (ADC) devresi :

Devre için ihtiyacımız olan malzemeler;

1 x ADC0804 Analog sayısal dönüştürücü,

1 x 150 pF Kondansatör,

1 x 10mF Kondansatör (isteğe bağlı)

1 x 10K direnç,

1 x BP109 yada uyumlu foto transistör

1 x 1.5 Volt kalem pil

Bir ADC entegresini programlamak oldukça kolaydır. Aynı Haziran sayısında anlattığım LCD panel kontrolüne benzer. ADC yi programlayabilmek için veriyi okuyacağımız DATA pinlerinin dışında, ADC nin RD ve RW pinlerini kontrol etmek için 2 tane CONTROL pinine, ERROR kontrolü içinde 1 tanede STATUS pinine ihtiyacımız olacak. Kullandığımız ADC0804, National Semiconductor firmasının yaygın olarak kullanılan analog-sayısal dönüştürücülerinden biridir.
_________________




YaLNıZıM ve SeNSiZiM


BU SON DEGİL SAKIN
UNUTMA











Başa dön
THe_LooPuS
YaLNıZıM ve SeNSiZiM
YaLNıZıM ve SeNSiZiM

Durum: Çevrimdışı
Kayıt: 04.10.2006
THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar THe_LooPuS herkesçe tanınır ve görevini başarıyla yapar 
Mesajlar: 4957
Şehir: İSTANBUL
Level: 51
Aktiflik: 127 / 280  
 45%
Seviye: 0 / 10660  
 0%
Deneyim: 4964 / 4964  
 100%

MesajTarih: Wed Oct 10, 2007 12:08 pm    Mesaj konusu:

CONTROL portuna göndereceğimiz veriler ile ADC ‘yi şu şekilde programlıyoruz;

Önce CONTROL portuna “32” sayısal değerini göndererek, C0 pinini “0” pini yüksek yapıyoruz. Neden? Çünkü C0 pini donanım tarafından terslenmiştir. Dolayısı ile pine “0” gönderdiğimiz zaman o pin +5 volt oluyor. Sonuçta ilk işlem C0 pinine bağlı olan RD pinini yüksek yapmak oluyor. Ardından, “36” sayısal değeri ile de WR pinini de yüksek yapıyoruz. Böylece entegre ADC veri dönüşümü için ayarlanmış oluyor. Daha sonra dönüştürülmüş sayısal değeri okumak için C2 pini yüksek tutulurken, C0 pini düşük yapılıyor. Veri bu sırada okunuyor ve hemen ardından C0 tekrar yüksek yapılıyor.

Biraz karışık bir işlemmiş gibi gözüküyor fakat. Her zaman söylediğim gibi bu işleri kavrayabilmenin en kolay yolu bol bol uygulama yapmak. Okuyarak anlayamadığınız birçok kavramı uygulama sırasında anlamanız mümkün oluyor. Yani size söyleyeceğim, ben size sadece kapıları gösterebilirim. Kapılardan geçmek size kalıyor. Matrix filminde Morpheus, falcıya girmeden önce Neo ‘ya böyle söylemişti :-)

Örnek programlarımız, ADC ‘nin 6 ve 7 numaralı konnektörlerine uygulanan 0-5 volt arası değerlerin 0-255 arasındaki sayısal değerlerini ekrana yazdırmaya yarıyor. Örneğin bu analog çıkışlara birtane kalem pil bağladığınız zaman ekranda elde edeceğimiz değer 70-80 arasındadır. Gerçektende 5 volt için elde edilecek değer 255 ise, 1,5 Volt için ise yaklaşık değer tam dolu bir pil için 76 ‘dır.

ADC entegreleri oldukça hassastır. Yani ortamdaki voltajdan kolayca etkilenebilir. Elinizle analog girişlere dokunduğunuz zaman bile, ekrandaki sayısal değerde 1-2 derecelik bir artış meydana gelecektir. O bakımdan devreyi ortam voltajlarından etkilenmeyecek bir şekilde yapmanız gerekmektedir. Örneğin toprak olarak birbirinden farklı toprak kanallarını kullanmanızı öneriyorum. Paralel port üzerinde 18-25 arası pinler topraktır. ADC nin 8 ve 10 numaralı konnektörlerini birbirinden farklı topraklara bağlamak bu etkilenmeyi azaltacaktır.

Elde edilen sayısal değerler ile bazı kararlara varmadan önce, tavsiyem elde edilen değerlerin ortalamasını almak ve belli bir aralıkta ise bir işlem yaptırmak. Şimdi anlatacağım robot gözü uygulamasında bu yöntemden yararlanmanız mümkün.

Cisimin uzaklığını ışık şiddeti ile algılama (Basit Robot Gözü):

Temel olarak gerçekleştireceğimiz uygulama oldukça basit. LEGO ‘nun Mindstorms serisi ile birlikte gelen ışık sensörü ‘de aynı mantık ile çalışmaktadır. Geçen ayki sayısımızda Foto transistör kullanarak STATUS pinlerinden bir tanesini tetiklemiştik. Şimdi ise foto transistör üzerine düşen ışık sayesinde, transistörün değişen iç direncini kullanarak ışığa bağımlı bir analog sinyal elde edeceğiz. Sonuçta foto transistöre bir cisim yaklaştığında üzerindeki ışık kaynağı azalacak ve iç direnç artacaktır. Direnç arttığında ise analog sinyalin değeri düşecektir.

Foto transistörlerin normal transistörlerden tek farkı beyz ucundan yapılan tetiklemenin ışık şiddeti kullanılarak yapılmasıdır. Bu bakımdan genelde foto transistörlerin Beyz uçları kullanılmaz. Transistörün üzerinde küçük bir mercek bulunur. Tetikleme işlemi, bu merceğe ışık gönderilerek yapılır. Uygulanan ışığın şiddetine göre Emiter-Kollektör arasındaki iç direnç değişir ve yükün akımı kontrol edilebilir. Işığın şiddeti ile Emitör- Kollektör arası iç direnç ters orantılıdır. Yani Işık şiddeti arttıkça Emiter-Kollektör arası iç direnç düşecektir.

Buradaki tek dezavantajımız, foto transistörün gün ışığından etkilenmesi. Foto transistörü ADC ‘nin analog girişlerine bağladığınızda ekrandan okuduğunuz sayısal değer normal aydınlatmada, 100-150 civarındadır. Transistöre cisim yaklaştıkça, yani ışık şiddeti düştükçe okunan bu değer 5-10 lara kadar düşebilmekte. Böylece cismin yaklaştığını anlamak mümkün olmakta.

Eğer çok aydınlık bir ortamda iseniz, okunan bu değişimlerin değerleri farklı olacaktır. Bu problemden kurtulmak için ise ortam ışığının değerini robotunuza bildirmek yeterli sayılır. Bunun için robotun önüne koyacağınız cisim algılama amaçlı foto transistörlerin yanında, robotun tepesine öndeki cisimlerin gölgelerinden etkilenmeyecek birkaç foto transistör yerleştirmek ve bu transistörlerden okunan değerler ile bir ortam ışığı sayısal değeri belirleyip, bu değerler üzerinden çalışma yapmak. Bunun için ise robotların vazgeçilmez gereksinimi olan yapay zeka programlama işin içerisine giriyor
_________________




YaLNıZıM ve SeNSiZiM


BU SON DEGİL SAKIN
UNUTMA











Başa dön

Yeni Başlık Gönder   Cevap Gönder    Forum Anasayfa -> Ders & Ödev & Tez & Projeler -> Mühendislik / Mimarlık / Peyzaj Mimarlığı
1. sayfa (Toplam 1 sayfa)

Benzer Başlıklar
Başlık Yazar Forum Cevap Tarih
Yeni mesaj yok Windows Vista Automatic Crack 2007 Ço... CT-YavusZ Windows Vista - Microsoft Office 2007 -Windows XP 1 Fri Jul 18, 2008 4:14 pm Son gönderilen mesajlar
Yeni mesaj yok Citroen C4 robot PC oynunu indir Cesu... CT-YavusZ HTTP Oyun (Games) 2 Thu Jul 10, 2008 10:03 am Son gönderilen mesajlar
Bu başlık kilitlenmiştir; cevap yazamaz, mesajları değiştiremezsiniz 25 adet basit oyun tek link indir dow... CT-YavusZ HTTP Oyun (Games) 2 Thu Jul 03, 2008 7:55 am Son gönderilen mesajlar
Yeni mesaj yok VB de basit bir analog saat ODEMISLI Visual Basic 0 Wed Jul 02, 2008 6:59 pm Son gönderilen mesajlar
Yeni mesaj yok Robot Wars: Extreme Destruction CT-YavusZ HTTP Oyun (Games) 1 Fri May 02, 2008 7:47 am Son gönderilen mesajlar
Sayfanın En Üstüne Çıkmak İçin BURAYA TIKLA !


Cesur Türk
Bu forum phpBB Tabanlıdır.
Privacy (Gizlilik ilkesi)
Copyright © 2005-2007
All right reserved CesurTurk.Org
Cesur Türk Kullanıcı Gizlilik Koşulları ve Site Kullanım Şartları
Bu sayfada yer alan bilgilerin her hakkı, aksi ayrıca belirtilmediği sürece CesurTurk.Org'ye aittir.
Materyallerimizin izin alınmadan kopyalanması ve kullanılması 5846 sayılı Fikir ve Sanat Eserleri Yasasına göre suçtur.
Sitemizde yer alan yazıların telif hakları yazarların kendilerine veya yetki verdikleri kişilere aittir.
Sitemiz hiç bir şekilde kâr amacı gütmemektedir ve sitemizde yer alan tüm materyaller yalnızca bilgilendirme ve eğitim amacıyla sunulmaktadır.
Misyonumuzu buradan okuyabilirsiniz. Sitemizde yazınız bulunuyorsa ve kaldırılmasını istiyorsanız lütfen iletişim  bölümünden irtibata geçiniz.
Yönetim ve Webtasarım SABQCES tarafından yapılmaktadır.
(( Gücümüzü Türk devletini kuran asil Türk ırkından alıyoruz ))
Genel Site MapUrllistForum SitemapPortal SitemapDownloadsHaberlerYoutubeForum
seo seo danışmanı çiçekçi | matbaa | Çelik Konstrüksiyon | film indir | söve | söve makinası | Forum


Aspen health directory directoryx submitlink Aspen health adult hikaye sikiş videoları porno videoları erotik hikaye erotik hikaye sikis video porno videolari bedava porno porno hikayeleri hikaye seks hikayeleri sikis hikayeleri sikis hikayeleri porno izle