16F877 de çalışıyor 18F452 de çalışmıyor

Başlatan serafetin, 05 Ağustos 2004, 11:42:35

ahmetu

picler 4 clock çevriminde ancak bir komut işleyebildikleri için mcu'yu 40 mhz çalışıyor gibi düşünmemek lazım ancak 10 mhz çalışıyor yani 40 mhz'de 100 ns aslında bu hız bazen düşük bile kalıyor son uğraştığım projede bu sıkıntıyı yaşıyorum 1/2 sn'lik iş 4 sn'de tamamlanıyor pic18lf458 4x pll' le kullanıyorum, şu isa ethernet olayını 6 ay kadar önce başka türlü denedim şahane oldu (PicDEMNET), verdiğin linkler için sağol bir bakalım neymiş bu kamera olayı.

serafetin

1/(40 mhz osi /4)= 0.1 us ok

teşekkürler.  ben bi ara sony uzaktan kumanda için onla uğraştım frekansı tutturana kadar canım çıkmıştı. inşallah kamera kıllatmaz.
bilgi paylaştıkça büyür.....

serafetin

Aşağıdaki programı çalıştırınca
C3 pini Gnd ye deymeden D0 aktif oluyo. resetliyorum genede ilk durumda D0 aktif oluyo
#include <18F452.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)

void main()
{
  output_low(pin_d0);
  while(1)
  {
       if( !input(pin_c3))
     {
       output_high(pin_d0);
      }
  }
}


Aşağıdaki programı çalıştırınca sorun çözülüyo.. C3 e Gnd gelmeden D0 aktif olmuyor. Yani olması gerektiği gibi çalışıyor.

#include <18F452.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)

void main()
{
  output_low(pin_d0);
  while(1)
  { 
       delay_ms(100);
       if( !input(pin_c3))
     {
       output_high(pin_d0);
      }
  }
}



Bana kalırsa bu 16F877 ile 18F452 arasındaki donanımsal farklardan kaynaklanıyor.(Aslında saçmalık.) bi anlam veremiyorum..
bilgi paylaştıkça büyür.....

DumrulBey

Merhaba,

Arkadaşlar şu günlerde ben de aynı sorunu yaşadım. Watchdog'u kurdum sorunu aştım. Belki uçuk bir şekilde sorunu aşmış olabilirim ama kod istediğim gibi çalışıyor ve sorun yaşamıyorum. Yine de gerçek uygulamada ayarı eski haline getireceğim. Çünkü yaptığım işte hata denetimi olduğu için pek ihtiyaç duymayacağım.

//#fuses HS, NOWDT, NOPROTECT, NOLVP
#fuses HS,WDT128,NOPROTECT,NOLVP

Uzun lafın kısası yukarıdaki gibi kullandığınız ayarı iptal edip hemen altındaki gibi uygulayın. Tek yapmanz gereken WDT128'i eklemek, sorun kalmıyor.

Başarılar...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)

serafetin

Salih abi dediğin ayarı en kısa zamanda deneyeceğim. Kafayı yedim ama 16F877 ile söylemiş olduğum şeyi yaptım. izmir fuarında sergi var Fuar boyunca Pakistan pavyonunda, düzenlenen yarışmaya katılyorum. izmirdeki arkadaşları beklerim.

Robot ta 3 step motor var. 2 tanesi tekerlek için. robot sağa kısa bir dönüş yapıyor ve resim çekiyor. bu işlemi cisimi bluncaya kadar tekrarlıyor. cismi bulduğunda cismi ortalıyor ve cismin üzerine gidiyor. daha sonra 3. step motor ile cismi sıkıştırıyor ve cismi akıp geri getiriyor.

böyle bişi yaptım.

image processing hakkında yardımcı olabileceğim bişi varsa buyrun..


eğer 18F452 yi adam gibi çalıştırabilseydim. x ve y koordinatlarında çalılşan başka bir robot yapacaktım..

18F452 ile ilgi başka şeyler denedim. rezanator ile denedim. çünkü problem sanki osi den kaynaklanıyor gibi geldi. çünkü herşey normal olmasına rağmen 18F te kod bazen çalışıyor bazen çalışmıyordu..

4 mhz denedim (xtal) pek sorun çıkmadı. 10 mhz denedim bazı sorunlar çıkıyo. 20 mhz denediğimde kesin kıllık yapıyo. hatta 4 bacaklı osiler varya kararlı olanlar onlarla bile denedim. 877 süper mam gel gelelim 452 çalışmıyo.

10 mhz osi takıp 40 mhz çalışayım dedim. busefer kod hiç çalışmadı.

denediğim programlarda öyle çok bişi değil mesela seri porttan a  karakteri gelince led yak gibi şeyler.. inşallah sorun çözülür.

AT90S serisi 2323 2332 böyleydi yanlışsam düzeltin. bunlar osc yi bolmuyo. onlardan izmirde bulamadım(zaten 18F ide Ankara'dan aldım). istanbul'da veya Ankara'da satan yer varmı biliyomusunuz?
bilgi paylaştıkça büyür.....

z

Serafettin,

Herhalde beklediğim kişiyi buldum.

Image processing konusunda hiç bir bilgim yok ve konunun derinliklerine girmeyi göze alamıyorum. Ancak gerçekleştirmem gereken bazı hayallerim var.

Bilgisayar ile kontrol edilen ve step motorlarla tahrik edilen mekanik bir el düşün. Bu el malzeme kutusundan smd bir çipi alıp havaya kaldırıyor.

Daha sonra PCB de konacağı hedef koordinata taşıyor ve IC'yi bacakları, tam padler üzerine gelecek şekilde bırakıyor.

Ancak elin, çipi kutudan yakalaması aşamasında kayma olabiliyor.

Hayalim şu:

Mekanik el IC'yi kutudan aldığı anda çip posizyonunda kaçıklık (açılı tutuş) varsa yazılım kamera sayesinde hatayı tespit etsin ve bileği döndürmek suretiyle tutuştaki posizyonlama hatasını yok etsin istiyorum. (Tabiki çok kısa bir zaman içinde)

Görüntü işleme ile ilgili  donanım ve yazılım için neler söyleyebilirsin.

Nelere sahip olmam gerekir vs vs...
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

DumrulBey

Alıntı yapılan: "serafetin"...izmir fuarında sergi var Fuar boyunca Pakistan pavyonunda, düzenlenen yarışmaya katılyorum. izmirdeki arkadaşları beklerim.
...
Yaw, yarışmaya katılıyordun da niye haber vermedin...:)

Ben bir arkadaşla katılacaktım. Ekip kurup donanımlı gitmeyi hayal etmiştim ama arkadaş memlekete gitti. Dolayısıyla yalnız kaldım ben. O yüzden iptal ettim. Seneye de olmaz herhalde. Zira askere gideceğim. Tüh de ne tüh...:)

Artık fuar izlenimleri ve varsa bir sayısal kamera ile çekilmiş resimleri aktarırsanız sevinirim. Yapacağım proje de ilk otomatlardan biri olan satranç oynayan "Turk" olacaktı. Tabii daha moderni ve gerçekten bilgisayar ile oynayanı.

Alıntı yapılan: "serafetin"...
AT90S serisi 2323 2332 böyleydi yanlışsam düzeltin. bunlar osc yi bolmuyo. onlardan izmirde bulamadım(zaten 18F ide Ankara'dan aldım). istanbul'da veya Ankara'da satan yer varmı biliyomusunuz?
Evet, Atmel mikrodenetleyicileri PIC'ler gibi osilasyon frekansını bölmüyor. Bahsettiğin 90S ailesi seri programlanabilen modeller. Aslında bunlar ucuz oldukları için tercih sebebi. Ama ne yazık ki PIC'ler kadar gözde (popular) değiller. Herhalde çok desteklenmiyor ondan. Bir de Dallas'ın DS89C420 mikrodenetleyicisi var. Süper bir şey, tıpkı 18F452 gibi.

Başarılar...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)

serafetin

@Salih

Abi keşke bilseydim. hiç aklıma gemedi. zaten bende robotu 2 haftada yaptım yani çok uğraşmadım. bakalım neler olacak.


@bunalmis

merhaba ben en başlarda image processingi düşündüğüm zaman kendi kendime manyak bişi abi ya diyodum. hayallere dalıyodum. kendimi hiç yeterli bulmuyordum o konuda. sonra elime dediğim kamera geçti.

sonra birçok araştırma ve deneme yaptım bunun hakkında.

ben bu robotla uğraşırken bana dedilerki neden renk sensoru kullanmadın?
sonra japon arkadaş var o bana dediki renk sensorleri çok yakından algılıyo 1-2 cm max uzaklığı dedi proximty sensorler varya onlar gibiymiş
hatta dedi renk algılamak için en iyi yol kamera kullanmak dedi.
ama gerçekte bilmiyorum uzaktan algılayan renk sensorleri varmı diye.

neyse kısaca deyinmek istedim image processing konusuna..

benim kullandığım kamera direk digital çıkış vermesi yönünden çok iyi
bu projeden sonra aslında kafama koyduğum şey insan yuzlerini tanımak.
insan yuzunde kaş arası kaşların dıştan dışa ölçüsü kaş ve çene ölçüsü arasında bir ilişki varmış ve bu ilişki dünyada her insanda farklıymış.
konudan konuyamı dallanıyorum bilmiyorum ama paylaşmak istedim.

bu tip bir uygulamaya başlamak için düşündüğüm şey web cami bağlacam bilgisayar biliyosunuz usb den bağlanıyor. driverinı inceleleyip ve datasheetini bulup bilgisayara yolladığı bilginin formatını çözücem mesela bu format benim gorduklerimde YUV renk formatındaydı ama YUV renk formatıda kendi içinde farklı bölümlere ayrılıyor.

bu işten sonra döngü ile alınan bilgideki renkleri RGB ye çevirip (formata göre çevirme formullerş mevcut.) daha sonra geln her pixeli resime yerleştirmek kalıyo. mesela benim kamera 96x72 pixel yani 72 tane satır var ve her satır 96 pixel bilgisinden oluşuyo. 96 pixe bilgisi şöyle çıkıyo
mesela resim 256 renk olarak geliyo. ozaman (benim kulladığım kamerada böyleydi.) her 16 bit te 1 pixel bilgisi çıkıyo. kalite arttıkça mesela 32 bitte 1 pixel bilgisi çıkabiliyor. tabi benim kameram okadar kaliteli bişi olmadığından böyle bşiyi yoktu. daha sonra satır satır bu resmi aldıktan sonra bunu kaydediyoruz. sonrada bu resim içerisinde önce satırlarda daha sonra sütunlarda olmak üzere renk aratıyoruz.
oda şöyle oluyo her satırda 96 pixel varya bu 96 pixelde aradığımız renk varmı diye bakıyoruz. eğer o satırda aranan renk var ise onun olduğu satırı kaydediyoruz. bu işlemi yaparken şuna dikkat ediyoruz aradığımız renk aralığından her satırda kaç pixelde var? döngüyü şöyle bir hale getiriyoruz. satırda renk aralığını ara kaç tane var ? eğer aradığın renk bir önceki satırdan çoksa bulunduğun satırın yerini sakla.
bunu çok iyi düşünün. aklınızda canlandırmaya çalışın. bir top düşünün tpun resminde bunu yaptuğımızı düşünelim dikine topu tarıyoruz. bildiğiniz gibi top  yuvarlak ve topun merkezine kadar her satırdai renkler artış gösterecektir. taki topun merkezine kadar. işte dikey düzlemde topun merkezi. 2. işlem olarak busefer sütunları arıyoruz ve aynı şekilde max artış noktasını alıyoruz. şimdi topun x ve y sini biliyoruz. işte bukadar kolay. gözünde hiç büyütme.
abi varya söylediğin şei bende yapmak istiyordum yani malzeme yerleştiren makina. çok iyi bir fikir.
mailim: azgezer@hotmail.com msn uyumadığım zamalarda açık mailden anlayabileceğiniz gib pek dışarı çıkmam(azgezer:))
aslında bende bu konuda profosyonel olarak çalışmayı isterim. türkiyede arge ile ilgilenen firma biliyomusunuz ben arge üzerine çalışmak istiyorum. ama arge yapan pek firma bilmiyorum..

şimdi gördüm bunu makina ile yapacaksan 486 gib bişi kullanısan çok iyiolur 66 mhz çalışma hızı bu işi keser yoksa zor. ben pic877 kullandım canm çıktı yapana kadar.:) ah şu 18f452 adam gibi çalışsaydı..
çok kücük bir anakart yapabilirsin ramler eprom cpu işte bukadar. bitanede kernel yazdınmıdı içine al sana embeded system birde bu konuyla ilgileniyorum.. vallaha aklıma yazcak başka bşi gelmedi herhangibir sorunuz varsa buyrun..
görüşmek üzere..
bilgi paylaştıkça büyür.....

axanc

merhaba,
öncelikle tebrikler... ben de labirent çözen bir robot fare yapmıştım.. ancak IR kullanıyordu... Böyle çalışmalara ben de başlamak istiyorum, bana temel bir bilgi verir misin? Kamera markası, usb'den gelen bilgileri nasıl editleyeceğim vb..

http://www24.brinkster.com/kaancweb/resi/resi.html
Uzmanlık: Bilgisayar Müh. öğrenci Derleyici: PicBasic Pro Compiler Ver. 2.45 Program: Proteus 6.2.5 ve MCSP

serafetin

bir önceki yazdığım yazılarda mevcut oralardan daha fazla bilgi edinebilirsin Kamera markası  Kyocera modeli Treva. daha önceki yazılarda konu hakkında yapılmış proje linkleri mevcut.

istediğin usb kamerayı kullanabilirsin önemli olan ne formatta bilgi yolladığı yukarıdai yazıda objelerin nasıl bulunduğunu anlattım. öncelikle kameranı seç daha sonra kameranın yolladığı bilgi formatını öğrenmek için kamerayı aç ve içindeki entegrenin datasheetini bul. zaten o data sheetlerde yok yok. herşeyi görebilirsin.

ama yok benokadar uğraşmak istemiyorum dersen bildiğin bir programlama dilinde visual C++, visual basic delphi gibi programlama dillerinden hangini dah iyi biliyosan seçtiğin programlama dili lie ilgili web sitesine gir. web cam den bilgi alma gib bişiler ara kesin daha önceden yapılmış programlar bulursun. zaten Twain driveri makine tanıyınca kamerayı herbişekilde kullanbiliyosun. sonra gelen bilgi nasıl alınıyo onu incele ve yukarıdaki  anlattığım işlemleri yap işte bukadar.
bilgi paylaştıkça büyür.....

axanc

merhaba,

benim merak ettiğim, farklı ortamlarda çekilmiş aynı resimde, kırmızı top'u bulurken, renk'le ilgili sayıların nasıl ayırt edileceği, yani hepsindeki kırmızının tonu farklı olmayacak mı?..

bir de 8 bitlik bir resmi açtığımda bitmap'in pixellerinin renk değerleri gene 32 bit oluyor..??
Uzmanlık: Bilgisayar Müh. öğrenci Derleyici: PicBasic Pro Compiler Ver. 2.45 Program: Proteus 6.2.5 ve MCSP

serafetin

şöyleki ; çektiğin resimlerde ışık değişken ise merkez kayar eğer kameranın üzernden tam objeya resim şekildiği anda bir ışık tutarsan (ben beyaz led kullandım)yani flash gibi oluyo. neyse dah sonra çektiğin resim için bir program yazıyosun ve pixeel renklerinin hangi renk tonlarında değiştiğini buluyosun ve ona göre bir aralık belrliyosun.

resimle ilgili daha önceden söyledimmi blmiyorum. 32 bitlik resimin 1 pixelinde taşıdığı bilgi çok fazla bit var. bndeki kamerada 1 pixel için 3 renk gerekiyo sadece ama kaite arrtıkça iş değişiyo a konu başka bir derya bak bu siteye ne demek istediğimi dah iyi anlayabilrsin

http://www.fourcc.org/index.php

burada yuv formatı ve rgb formatını dah iyi anlayabilirsin
bilgi paylaştıkça büyür.....

axanc

yani kamera sana bilgiyi gönderirken..

"1.satır.. 1.pixel.. Kırmızı-(%54), Yeşil-(%35), Mavi-(%89)" gibi bir formatta mı gönderiyor...
sonuçta bilgisayar ile resmi incelediğimde RGB formatında 1 pixel için "6705454" gibi bir sayı veriyor.. bu sayının 0-255 arasında olması nasıl olacak??

RGB to YUV Conversion
         Y  =      (0.257 * R) + (0.504 * G) + (0.098 * B) + 16

         Cr = V =  (0.439 * R) - (0.368 * G) - (0.071 * B) + 128

         Cb = U = -(0.148 * R) - (0.291 * G) + (0.439 * B) + 128


YUV to RGB Conversion
         B = 1.164(Y - 16)                   + 2.018(U - 128)

         G = 1.164(Y - 16) - 0.813(V - 128) - 0.391(U - 128)

         R = 1.164(Y - 16) + 1.596(V - 128)
Uzmanlık: Bilgisayar Müh. öğrenci Derleyici: PicBasic Pro Compiler Ver. 2.45 Program: Proteus 6.2.5 ve MCSP

z

Serafettin,

Önerin üzerine Delphi sitelerini dolaştım, benim gibi arayış içinde olan   pek çok kişi delphi ile WEBCAM den görüntü yakalama konusunda soru sormus ancak işe yarar bir cevap verilmemiş.

Ben creative marka kamera kullanıyorum, içini  açtım ama çipi kendileri için özel mi ürettirmişler anlamadım ve adını göremedim.

Eğer delphide kameradan görüntüyü yakalarsam özel algoritmalara girmeden bir şeyler yapabileceğim.

Bu arada image processing bayağı geniş bir konu ve sırf matematik.

Sanırım bizim ürettiğimiz if then türü çözümler kaçak dövüş tipine giriyor ve nesnenin yada kameranın açısı, ortam ışığındaki değişimler sistemin performansını etkiliyor.

Benim yapmak istediğim işde zaten PC olacak ve mevcut webcamler işimi görecek. Sadece küçük bir SMD çipi ekrana büyükçe getirebilecek şekilde optik değişiklikler yapmam gerekecek.

Bu arada otomatik fokus kontrolunun mantığı nedir? Biz merceği sağa sola çevirerek görüntüyü netleştiriyoruz. Motor desteği ile  bu işi bilgisayara yaptırmak istesek nasıl bir algoritma düşünmeliyiz?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

aster

benim gördüğüm malzeme yerleştirme uygulamaları hava ile çalışıyor
malzeme tutan uç vakumlu ped (vantuz) malzemeyi daha önceden koordinatlı olduğu için alıp alıp yerleştiriyor (smd için)yerine koyma 2 şekilde oluyor ya önceden çamur lehim bir şablonlan (seregrafi gibi) sürülüp üstüne tuturuluyor yada konacak yere bir macun damlatıp ondan sonra tuturuluyor yada döner kafa parmak kolla malzeme yerleştirilip yapılıyor her 2 sindede arka planda tam ortada mercimek kamera var ve bayagı bir zumlu resim veriyor ve bütün sistem motorlar hariç hava ile çalışıyor kızaklar vs lakin önce den kart kamerayla bir taranıp org noktaları tek tek heflenip kayda alınıyor sonra başlıyor dizmeye misal önce dirençlerden başlıyor sonra kapasiteler sonra tr ler felan devam ediyor tabii çok seri bir çalışma ile

bu arada biz bunlarla ugraşıyoruzda adam cnc tezgahlarda kalemi 2" gibi bir zamanda değiştiriyor ve aşınan ucu 1/2mm gibi bir değer içinde laserle tespit edip kalem değiştiriyor
Digital microscope image samples
http://world.keyence.com/topics/vh/app_guide.html?en=0408WD2

http://world.keyence.com/index.html