Picproje Elektronik Sitesi

DERLEYİCİLER => PIC C => Konuyu başlatan: serafetin - 05 Ağustos 2004, 11:42:35

Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: serafetin - 05 Ağustos 2004, 11:42:35
Arkadaşlar deliricem ya 16F877 ile  pic Ccs de çok uzun zamandır çalşıyorum. genelde sorunla krşılaşmıyordum. geçenlerde ram yetmediğinden 18F452 ye geçiş yapmak zorunda kaldım fakat başıma şöyle bir sorun geldi, 18F452 ye yazdığım prg çalışmadı. bende 16f877 ye yazdığım başka bir programı 18F için derleyip yukleyim dedim.


//#INCLUDE <16F877.h>
//#use delay(clock=20000000)
//#FUSES HS,NOWDT,NOPROTECT,NOLVP,noPUT, NOBROWNOUT

#include <18F452.h>
#use delay(clock=20000000) //when using national demo board
#fuses HS,NOWDT,NOPROTECT,NOLVP,NOOSCSEN,NOBROWNOUT,NOSTVREN,NOPUT,NOEBTRB,NOEBTR,NOCPB,NOCPD,NOWRT,NOWRTD,NOWRTC,NOWRTB,NODEBUG


yaptım ve denedim..


#bit clk = 0xF83.0                  // PORTD bit 0
#bit Data = 0xF83.1                  // PORTD bit 1
int read_bit(void);


/* PROGRAM */
void main(void){


  int      i;   //i,k
  unsigned char   d;
  long int k;
 
init_ext_eeprom();

SET_TRIS_d(0b00000010);

while(1){

if (!input(pin_c7)){
output_high(pin_e2);
/* 100bit continuation is carried out. That '1' comes It waits.  */
     i = 0;
     while(i<100){
        if( read_bit() == 1) i++;
        else i = 0;
     }

     /* '0' for 65 bits of continuation Detection*/
     i = 0;
     while(i<65){
        if( read_bit() == 0) i++;
        else i = 0;
     }

     /* The data for continuing 16 bits is disregarded. */
     for( i=0; i<16; i++ ){
        read_bit();
     }
     /* From here to an image data acquisition start */
for( k=0; k < 96*72*2; k++){        // for( k=0; k < 96*72*2; k++){
        d = 0;
        for (i=0; i<8; i++){
           d <<= 1;
           if(read_bit())
              d |= 0x1;
        }
      write_ext_eeprom(k, d);
     }
output_low(pin_e2);
  }

else{
getc();

for( k=0; k < 96*72*2; k++){

putc(read_ext_eeprom(k));

}
}
}//while
}   /* main */

int read_bit(){
  int i, a;
clk=1;
  a = data;      /* 1bit read-out
clk=0;
  if(a)
     return 1;
  else
     return 0;
}



bu program kameradan bilgi alıp eeproma kaydediyo. seri porttan bilgi gelirse seri porttan bilgisayara gönderiyo.

sorun şu 16F877 de süper çalışıyo ama 18F452 de
for( k=0; k < 96*72*2; k++){
olduğu döngü birtürlü sonlanmıyor. döngünün sonuna led koydum döngü bitince haber led sönmesi gerek fakat led sönmüyor. hiçbirşey anlamadım. ve ben seri porttan  bilgi yollamadan bana bilgileri yollamaya başlıyo getc çalışmıyo. o satırda bekleyip. bir karakter gelince devam etmesi lazım fakat çalışmıyo... 16f877 de ise kod düzgün çalışıyo..
16f877 de daha önce
for( k=0; k < 96*72*2; k++){  
burdaki k yı int tanımlamıştım. (96*72*2) bu sayı 8 bit olamayacağından program gene sonsuz dongüye giriyodu. ama değiştirdikten sonra sorun kalmamıştı. 18F serisinde tanımlamalr farklımı acaba. ben kameradan gelen bilgileri alıp görünen cismin (mesela kırmızı top) koordinatlarını çıkaracağım. programıda yazdım ama 18F te böle kıl sorun çıkarsa yandım. ICD falanda yok, karambole yazarım dururum. her türlü önerinize hazırım. şimdiden teşekkürler
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: ahmetu - 05 Ağustos 2004, 14:06:24
sanırım ben cevap yazana kadar yazını edit etmişsin yine de söyleyeyim port struct'ın şu şekil olmalıydı

struct portd_pin_map {
                      BOOLEAN clk;    //PORT_D.0
                      BOOLEAN data;   //PORT_D.1
                    } portd;

#byte portd = 0xF83


for( k=0; k < 96*72*2; k++) döngüsünü test ettim  bir sorun çıkmadı, genel anlamda kod üzerinde biraz düzeltme yaptım proteus'ta çalışıyor, proteus 56000 baud gibi bir değerle çalışmadığı için bunu 57600 yaptım gerekliyse değiştirirsin.


#include <18F452.h>
#use   delay(clock=20000000,RESTART_WDT)
#fuses HS,NOPUT,NOWDT,NOPROTECT,BROWNOUT,BORV42,NOLVP
#use   rs232(baud=57600, xmit=PIN_E0, rcv=PIN_E1)

#INCLUDE <24256.c>

struct portd_pin_map {
                      BOOLEAN clk;    //PORT_D.0
                      BOOLEAN data;   //PORT_D.1
                    } portd;

#byte portd = 0xF83

int1 read_bit() {
  int1 a;
  portd.clk=1;
  a = portd.data;   /* 1bit read-out processing DOUT is read in a */
  portd.clk=0;
  return a;
}

void main(void) {
  int8 i;
  char d;
  long k;

  setup_adc_ports(NO_ANALOGS);
  setup_adc(ADC_OFF);
  setup_psp(PSP_DISABLED);
  setup_spi(FALSE);
  setup_wdt(WDT_OFF);

  init_ext_eeprom();
  SET_TRIS_C(0b10000000);
  SET_TRIS_D(0b00000010);

  while(1)
  {
     if (!input(pin_c7))
     {
        output_high(pin_e2);

           i = 0;
           while(i<100)   // 100 bits continuation is carried out. That '1' comes It waits.
           {
              if(read_bit())
                 i++;
              else
                 i = 0;
           }


           i = 0;
           while(i<65)    // '0' for 65 bits of continuation Detection*/
           {
              if(!read_bit())
                 i++;
              else
                 i = 0;
           }

           /* The data for continuing 16 bits is disregarded. */
           for( i=0; i<16; i++ )
              read_bit();

        /* From here to an image data acquisition start */
        for( k=0; k < 96*72*2; k++)
        {
                 d = 0;
                 for (i=0; i<8; i++)
                 {
                    d <<= 1;
                    if(read_bit())
                       d |= 0x1;
                 }
              /* The acquired data is transmitted to PC. */
               write_ext_eeprom(k, d);
        }
        output_low(pin_e2);
     }
     else
     {
        while(!kbhit())
        {
           for( k=0; k < 96*72*2; k++)
              putc(read_ext_eeprom(k));
        }
     }
  }
}


aklıma şimdi geldi read_bit() fonksiyonunda clock sinyalini high yaptıktan sonra datayı almak için birkaç cycle beklemekte fayda var belki cihaz pic'in isteğine bu kadar hızlı cevap veremiyor olabilir gerçi senin haberleştiğin cihazın hızını bilmiyorum ama bu da bir olasılık.


int1 read_bit() {
  int1 a;
  portd.clk=1;
  delay_cycles(2); // daha bile fazla olabilir 4 gibi, test etmek gerekli.
  a = portd.data;   /* 1bit read-out processing DOUT is read in a */
  portd.clk=0;
  delay_cycles(1); // 1 cycle uygun olur kesin lazım.
  return a;
}
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: serafetin - 05 Ağustos 2004, 15:35:28
Kodun son hali bu dediğim gibi 16F877 de süper çalışıyo.. fakat 18F için compile edince çalışmıyo. getc() gelmiş gibi kafasına göre output_high(pin_e2);  (bu pinde led var). led yanıp sönüyo. bazen yanıyo bazen sönüyo.. Bu bir kamera , japon bir arkadaşımdan aldım küçücük bişi..
data ve clk bacakları var. clk verip bilgi okuyorum 16f877 ile resim çekebiliyorum. ama resim işleme yapacağımdan yavaş kalıyor. bu sebepten 18F serisini kullnayım dedim. 40Mhz çalışmasından dolayı.
Birçok web sayfası yazmış 18f te 40 mhz kullanırken 10 mhz osc kullan  pllx4 kullan, bazıları diyo oyle kullanma sorun oluyo 40 mhz osc kullan.
Bu konuda beni bilgilendirirsen sevinirim...

bulduğum bir sitede bunun haricinde H8 diye Nec in bir imcu su var osc frekansını 4 e bölmüyo.. Atmelin AT90s serisini kullanmayı düşündüm. 90s lerde osc yi bölmüyo  ama izmirde bulamadım.

eğer pll x4 kullansam osc 10 mhz kullandığımda çalışma 40 mhz olacak. peki osc/ 4 olmayacakmı. 18f datasheetinde göremedim.

veya direk 40 hmz osi kullanırsam osc/4 olmayacakmı..

yapmak istediğim robotla ilgili bulduğum web sitesi

H8 versiyonu
http://www.excite.co.jp/world/english/web/body?wb_url=http://www.asahi-net.or.jp/~QX5K-ISKW/robot/ball.html&wb_lp=JAEN&wb_dis=2

Atmel versiyonu
http://www.excite.co.jp/world/english/web/body?wb_url=http%3A%2F%2Fwww.asahi-net.or.jp%2F%7EQX5K-ISKW%2Frobot%2Fdigiq.html&wb_lp=JAEN&wb_dis=2

Buda anne sayfası
http://www.excite.co.jp/world/english/web/body?wb_url=http%3A%2F%2Fwww.asahi-net.or.jp%2F%7EQX5K-ISKW%2Frobot%2Findex.html&wb_lp=JAEN&wb_dis=2

Anne sayfayı inceleyin eminim hoşunuza gidecektir.

işte ben bu adamın yaptığı h8 programını pice yazdım ve resim çekebiliyorum. ama dediğim gibi 18f te sorun çıkıyo.

getc yerine if(!input(pin_C7)){ kullanıyorum buda çalışmadı bu kodu hiç iplemiyo.. pull up direnci var butona basınca - alıp kodu işlemesi lazım butona basmadan işliyo.. delirecem ya :cry:  :cry:  :cry:


//#INCLUDE <16F877.h>
#include <18F452.h>
#use delay(clock=20000000)
#FUSES HS,NOWDT,NOPROTECT,NOLVP,noPUT, NOBROWNOUT

#use rs232(baud=19200, xmit=PIN_E0, rcv=PIN_E1)

#use fast_io(d)

int read_bit(void);


/* PROGRAM */
void main(void){

  int i;   //i,k
  unsigned char d;
  long int k;

SET_TRIS_d(0b00000010);



while(1){

getc();
output_high(pin_e2);
/* 100bit continuation is carried out. That '1' comes It waits.  */
i = 0;
while(i<100){
if( read_bit() == 1) i++;
else i = 0;
}

/* '0' for 65 bits of continuation Detection*/
i = 0;
while(i<65){
if( read_bit() == 0) i++;
else i = 0;
}

/* The data for continuing 16 bits is disregarded. */
for( i=0; i<16; i++ ){
read_bit();
     }
/* From here to an image data acquisition start */
for( k=0; k < 96*72*2; k++){        // for( k=0; k < 96*72*2; k++){
d = 0;
for (i=0; i<8; i++){
d <<= 1;
if(read_bit())
d |= 0x1;
}
/* The acquired data is transmitted to PC. */
// sci_outch(d);
        putc(d);
     }
output_low(pin_e2);
 
}//while
} /* main */

int read_bit(){
int i, a;
output_high(pin_d0)
  a = input(pin_d1)/* 1bit read-out processing DOUT is read in a */

output_low(pin_d0);
if(a)
return 1;
else
return 0;
}


:cry:  :cry:
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: serafetin - 05 Ağustos 2004, 17:59:31
Bu programdada  aynı sorun var. 16F877 karakter bekliyo karakter gelince "onur" yazısını yolluyo..

gel gelelim 18f452 de hiçbişi beklemeden "onur" yolluyo..
kıl oldum ya.
Bir yanlışımmı va bilmiyorum?


#INCLUDE <18F452.h>
//#INCLUDE <16F877.h>
#use delay(clock=20000000)
#FUSES HS,NOWDT,NOPROTECT,NOLVP,NOPUT, NOBROWNOUT,NOOSCSEN,NOSTVREN,NODEBUG,NOWRT,NOWRTD,NOWRTB,NOWRTC,NOCPD,NOCPB,NOEBTR,NOEBTRB
//#FUSES HS,NOWDT,NOPROTECT,NOLVP,noPUT, NOBROWNOUT

#use rs232(baud=9600, xmit=PIN_E0, rcv=PIN_E1)

void main(){

while(1){
if (kbhit()){
puts("onur");
delay_ms(500);
}
}
}

Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: serafetin - 05 Ağustos 2004, 18:02:40
Al işte bitane daha
bu hali ile sürekli "onur" yollaması lazım..
doğru gerçekten yolluyo..

#INCLUDE <18F452.h>
#use delay(clock=20000000)
#FUSES HS,NOWDT,NOPROTECT,NOLVP,noPUT, NOBROWNOUT
#use rs232(baud=9600, xmit=PIN_E0, rcv=PIN_E1)
void main(){

while(1){
puts("onur");
delay_ms(500);
}
}


getc() ekledim ama hiçbirşey değişmedi. nasıl oluyor anlamıyorum. nerde yanlış yapıyorum bilemedim
:cry:  :cry:  :cry:

#INCLUDE <18F452.h>
#use delay(clock=20000000)
#FUSES HS,NOWDT,NOPROTECT,NOLVP,noPUT, NOBROWNOUT
#use rs232(baud=9600, xmit=PIN_E0, rcv=PIN_E1)
void main(){

while(1){
getc();
puts("onur");
delay_ms(500);
}
}
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: ahmetu - 05 Ağustos 2004, 18:16:34
mail adresini yazarsan sana proteus simulasyonunu göndereyim kodda bir sıkıntı yok

40 mhz kristal kullanamazsın 10 mhz kullanıp pll seçiyorsun şöyleki;

#fuses H4,NOPUT,NOWDT,NOPROTECT,BROWNOUT,BORV27,NOLVP
#use   delay(clock=40000000,RESTART_WDT)


HS yerine H4
clock = 40000000
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: serafetin - 05 Ağustos 2004, 18:45:11
Abi peki bende neden çalışmıyo herşey aynı kullandığım deney bordu aynı
sadece entegre değiştiriyorum.
belki bendeki compilerda sorun vardır..

bendeki
3.203

keşke yanımda olsanda göstersem. söylediğim sorunlar çıkıyo.
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: ahmetu - 05 Ağustos 2004, 22:04:04
gönderdim, mail'ini bir kontrol et.

Kolay gelsin.
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: Erkan Gench - 05 Ağustos 2004, 23:04:51
serafettin hocam bi bakarmısın işlemci getc ile ne tür bilgiler alıyor belki birşey çıkartabiliriz.

a=getc();
printf("%x",a);
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: serafetin - 06 Ağustos 2004, 01:38:20
Ahmetu mail için teşekkürler. deneyeceğim.

Erkan Hocam tam olarak ne demek istediğinizi pek anlayamadım . Konuyu biraz açarmısınız.
Başlık: CMUCam
Gönderen: DumrulBey - 06 Ağustos 2004, 12:27:07
Alıntı yapılan: "serafetin"... Bu bir kamera , japon bir arkadaşımdan aldım küçücük bişi..
data ve clk bacakları var. clk verip bilgi okuyorum 16f877 ile resim çekebiliyorum. ama resim işleme yapacağımdan yavaş kalıyor. bu sebepten 18F serisini kullnayım dedim. 40Mhz çalışmasından dolayı.
...
Herhalde CMUCam kullanmıyorsun? Bildiğim kadarıyla bu tip modülerde TW komutunu gönderip cismi takip etmesi sağlanabiliyor. Hatta servo motor çıkışı varmış. O yüzden bu kadar hızlı mikrodenetleyici gereksiz kaçabilir. Bahsettiğim kameralar yaklaşık 110$ ve yurtdışından temin edilebiliyor.

Başarılar...
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: serafetin - 06 Ağustos 2004, 14:01:33
Bahsettiğim kamerayı verdiğim linklerden görebilirsiniz. bu kamera cep telefonu kamerası. kyocera cep telefonun için. benim okuduğum dökümanlara göre bu kameradan sadece resim alabiliyorum.
Bu kameranın yaklaşık fiyatı 25-30 milyon civarında
Başlık: CMUCam
Gönderen: DumrulBey - 06 Ağustos 2004, 16:49:13
Hmm,

İnceliyorum... Top takibi falan da var. Peki fiyatı nedir? Açıkcası önerdiğim 109 dolarlık kamera çok iyidir ama çok da pahalı. Bir üniversite geliştirmiş ve şimdi yeni versiyonu yolda. Bilgi almak için http://www-2.cs.cmu.edu/~cmucam adresini ziyaret edin. Resimi ve satış bilgileri için ise aşağıdaki resme tıklayabilirsiniz.

(http://www.robotstore.com/catalog/images/large/3-903_CMUCam.gif)
http://www.robotstore.com/catalog/display.asp?pid=381 (http://www.robotstore.com/catalog/display.asp?pid=381) (Satın almak için)

Kolay gelsin...
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: ahmetu - 06 Ağustos 2004, 17:58:46
bu 25-30 milyonluk kamera benimde ilgimi çekti, 109 USD'lik bir hayli pahalı geldi, serafetin bu kamerayı incelemek isterim ama ben link falan göremedim fiyatı, dökümanı vesaire sen bunu yurtdışından mı aldın?
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: serafetin - 06 Ağustos 2004, 19:23:31
Bu linkleri yahoo.co.jp den arattırdım ve buldum. altavistadan tercume edecektim birçoğunu tercume etmedi bende başka bi site buldum ordan tercume ettim.

eski yazdığım linklerin haricinde bunlarada bakın.
o eski yolladıklarımda adam wireless ethernet için devre yapmış oha dedim. adam süper. birde bluetooth var ona söyleyecek söz bulamadım

bu linkten bu cihazın nasıl çalıştığını öğrenebilirsiniz
http://www.paken.org/aaf/treva/index.html

Burdada ingilizcesi.
http://www.excite.co.jp/world/english/web/body?wb_url=http://www.paken.org/aaf/treva/index.html&wb_lp=JAEN&wb_dis=2

dediğim gibi bu kamera Kyocera firmasının ürettiği bir ürün


Treva HC-D01


internetten satış..
http://www.excite.co.jp/world/english/web/body?wb_url=http://www.tmtele.com/webshop/kisyu-3.htm&wb_lp=JAEN&wb_dis=2

cihaz özellikleri..
http://www.excite.co.jp/world/english/web/body?wb_url=http%3A%2F%2Fwww.ddipocket.co.jp%2Fp_s%2Fproducts%2Fcontent%2Ftreva.html&wb_lp=JAEN&wb_dis=2

Arkadaşlar size bişi dicem.. eskiden image processing i kafamda çok büyütüyordum. aslında tek ihtiyacınız olan bir kamera. normal bir web cam kullanarak bile bunu yapabilirsiniz..

daha önce yazdığım linkleri bir inceleyin.

unutmuşum bu kamera CMOS image sensor diye geçiyodu..

DumrulBey sizin söylemiş olduğunuz kamerayı bi kitapta görmüştüm. dediğiniz gibi çok pahallı..

bu arada ben öğrenciyim yani bunu hobi olarak yapıyorum.
yani 100$ gibi rakamlar benim için çoook.

şu 18f452 ile ilgili sorunu çözebilsem robot yapacam. verdiğim sitelerde vardı. küçücük arabanın üzerine koymuşlar. ununla sarı topu takip ediyo. süper bilşi ya.

daha önce dediğim gibi H8 diye bir işlemci var onun içine yazmışlar programı (C de) bede o programı 16f877 için yazdım ve resim çekiyorum şimdi. sonra bu resmi işleyip x y buldurmam lazım ama At90s serisi izmirde yok. 18F te yoktu ankaradan getirttim.

birde istanbuldan veya ankaradan parça getirtebileceğim yerler biliyomusunuz. mesela USBN9603 onu bulamıyom. bir ara sislerle embeded sistemler hakkında konuşalım. linux unix entegreye gömme. süper şeyler ya..



Ahmetu H4 pllx4 seçtim peki  osc frekansı kaç çalışıyo yani
1 cycle süresi ? eğer söylemiş olduğun gibi osc=40.000.000 seçiyor isek

1/40.000.000 = 0.025 us  yani 25ns mi oluyo abi inanasım gelmiyo. eğer bu frekansta çalışıyo ise manyak bişi ya...

1/(1/4 * 40.000.000) =0.1 us böyle olsa bile çok iyi.

entegre daha yeni programlayıcı P16pro IC prog kullanıyom.
doğrulama yapıyorum entegreye doğru yazıyo. neyse çözecem o işi..

Aklıma Ram kullanmak geldi. eski bir Printerdan söktüm. bakalım ne yapcaz. herkeze kolay gelsin..
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: ahmetu - 06 Ağustos 2004, 22:30:28
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ı.
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: serafetin - 06 Ağustos 2004, 22:50:41
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.
Başlık: Al işte Bir kıllık daha
Gönderen: serafetin - 06 Ağustos 2004, 23:11:52
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..
Başlık: WDT128
Gönderen: DumrulBey - 24 Ağustos 2004, 00:01:49
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...
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: serafetin - 24 Ağustos 2004, 06:07:56
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?
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: z - 24 Ağustos 2004, 12:23:19
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...
Başlık: Fuar...
Gönderen: DumrulBey - 24 Ağustos 2004, 13:51:09
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...
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: serafetin - 25 Ağustos 2004, 00:52:39
@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..
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: axanc - 25 Ağustos 2004, 09:31:16
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
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: serafetin - 26 Ağustos 2004, 00:58:00
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.
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: axanc - 26 Ağustos 2004, 09:48:34
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..??
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: serafetin - 26 Ağustos 2004, 13:51:13
şö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
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: axanc - 26 Ağustos 2004, 14:13:53
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)
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: z - 26 Ağustos 2004, 15:01:51
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?
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: aster - 26 Ağustos 2004, 15:57:11
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
(http://www.entek.com.tr/urunler/silindirler/tutucular/mhk2_mhy2_files/Mhk.gif)(http://www.entek.com.tr/urunler/silindirler/tutucular/mhk2_mhy2_files/Mhy2.gif)(http://www.entek.com.tr/urunler/silindirler/doner/msub_files/msub.gif)
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/topics/sensors/rgb/p_main02_a.jpg)(http://world.keyence.com/products/vision/cv_2100/img/cv2100.gif)
http://world.keyence.com/index.html
Başlık: Görüntü işleme...
Gönderen: DumrulBey - 26 Ağustos 2004, 17:16:22
Alıntı yapılan: "bunalmis"...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.
...
Bu yılın Mayıs ayı sonlarına doğru çok güzel bir site keşfetmiştim. Heme forum üyeleriyle paylaştım. Aşağıdaki başlığı ziyaret etmenizde fayda var. Paper kısmında robotlar ile ilgili çalışmalar var. Aslında onların özeti 1996 yılında yapılmış bir derleme. Öncelikle onu, sonra vidyoyu inceleyin. Adamlar bu konuda neler yapmış görün. Formullere kadar her türlü şekilde en ince ayrıntısına kadar var.

https://www.picproje.org/index.php/topic,3418


http://www-personal.engin.umich.edu/~johannb


İşte bu yukarıdaki hoca, üniversitede olanaklarında Ginger dedikleri cihazın benzer robotlar yapmış. Vidyoyu incelerseniz robot etrafındaki şekillere göre rotasını çiziyor. Bu güne kadar bakmamış olanlar için mutlaka bakması gereken belgeler. En azından vidyoyu inceleyin ağzınız iki karış açılsın. Dikkat edin mil üzerinde iki tekerlek ile hareket ediyor. Bir yanda etraftaki nesnelere çarpmazken bir yandan da dengesini sağlıyor. Robot üzerindeki bildiğimiz PC, vidyo ile beraber ultrasound da kullanılıyor.

Sevgiler, saygılar...
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: serafetin - 26 Ağustos 2004, 23:51:27
Alıntı YapBu 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?

mercak sağa sola çevirmiyoruz biz mekanizmayı çevirince merce ileri gelri hareket ediyor ama nasıl oluyorda bunu programda yapıyolar bilmiyorum..
hiç uğraşmadım. ama otomatik focus olan cep tlefonu gördüm şaştım kaldım.
japon bir arkadaşımda vardı. sharp ve 2 sene öncesinin teknolojisi dedi.
ve cihazın kamerası 2 megapixel..... içinde java mava ne ararsan var.
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: z - 27 Ağustos 2004, 00:15:47
:D  Serafettin bu senin resminmi?
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: serafetin - 27 Ağustos 2004, 02:28:34
bunalmis ne oldu beğenemedinmi?  :evil:  :evil:

kamyon şöförüne falanmı benzettin yoksa???  
kusura bakmayın dişlerimi daha yaptıramadım..hayat şartları işte...

:P  :P  :P
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: serafetin - 26 Aralık 2004, 01:18:15
Epey uzun sure gecti ama.. (bunun icin uzgunum sizinle paylasmayi unutmusum..)
web cam kullanarak yapabileceginiz bir kod ornegi buldum..win wdm driver kullanarak butun cameralari kullanabileceginiz bir kod buldum. zaten yapmamiz gereken tek sey bilgiyi kameradan alip bir picture boxta goruntulemekti. nitekim bunu bir degiskenin icine atip x ve y eksenlerinde for next dongusu yardimi ile istediginizi yapabilirsiniz. benim yaptigim projenin aynini yani kucuk kamera ile olani.. kendi pc nizde rahtlikla yapabilirsiniz diye dusunuyorum...  top bulma olayiyi web cam ile yapacaktim ama baska seylerle ugrasmaktan birturlu vakit bulamiyorum.. herhangibisi sorabilirsiniz. gorusmek dilegiyle...

yahoo group sayfasini hatirlayamadim biri bana sayfayi verir ise oraya dosyayi upload edebilirim.
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: aster - 26 Aralık 2004, 10:30:42
http://groups.yahoo.com/
sol tarafta "Sign in" girdikten sonra üye olduğunuz guruplar tekrar solda belirecektir
Başlık: 16F877 de çalışıyor 18F452 de çalışmıyor
Gönderen: serafetin - 26 Aralık 2004, 13:42:14
http://groups.yahoo.com/group/PicProjeUP1/files/

dosyayi buraya upload ettim

dosya adı :
webcam.zip
VB6 icin webcam ile goruntu yakalama

blue cam diye bir dosya var picture boxta goruntu alıyosunuz. gerisi size kaliyor..