Merhaba Değerli Arkadaşlar bu yazımda sizlere Barkodlar hakkında bilgi vermeye devam edeceğim.Önceki yazımda genel olarak barkod hakkında genel kültür tarzında bilgiler vermiştim.Bu yazımda ise biraz daha işin derinlemesine girip daha ayrıntılı bilgi vermeye devam edeceğim.

Öncellikle bu yazıma başlamadan önce yeniden barkodun ne olduğunu hatırlamakta fayda vardır.Barkod,siyah ve beyaz renkte olup diktörtgen şeklinde olan çubuklardan oluşan sembollere denmektedir.Aşağıdaki resimde okuduğum kitaptan çektiğim  barkod resmi verilmiştir.

Şekil-1

Barkodun tanımını verdikten hemen sonra şunu hemen söylemem gerekiyor ki barkod tek bir çeşit değildir.Barkodlar tek boyutlu ve 2 boyutlu olabilmektedir.Bununla beraber boyutlar içerisinde de farklı farklı barkodlar bulunmaktadır.Bilinen önemli barkod standartları aşağıda ki gibidir.

  • UPC (Universal Product Codes)
  • EAN  (European Article Numbering)
  • EAN-13
  • EAN-8
  • CODE-39
  • CODE-93
  • CODE-128
  • QR KOD

Yukarıdaki barkod standartlarından bilinen en önemlileri UPC ve EAN-13 dür.UPC,Amerika ve Kanada da kullanılırken EAN-13 ise Türkiye dahil olmak üzere bir çok Avrupa ülkesinde kullanılmaktadır. Aşağıda EAN-13 ve UPC barkod resmi verilmişir.

Şekil -2

Ben çalışmamda şuana kadar Türkiyede kullanılan EAN-13 barkodu nu incelediğim için sizlere EAN-13 barkodu hakkında bilgiler vereceğim.Ve ardından yaptığım barkod okuma programımı sizlerle paylaşacağım.

EAN-13 Barkod Standartı

EAN-13 barkod standartı UPC barkodtan türemiş bir barkod türüdür.Bu barkodlarda bulunan referans numarası 13 haneden meydana geldiği için Bu standart EAN-13 diye belirlenmiştir.Aşağıda EAN-13 standartına ait bir barkodun referans numaralarının ne anlama geldiğini şekilsel olarak görelim.

Şekil-3

Bu şekli incelediğimiz zaman barkoda ait referans numarasının ilk 3 hanesi ülke veya simge kodunu belirtmektedir.Aşağıda bazı önemli ülke kodları belirtilmiştir.

 

Şekil-4

Ondan sonra gelen 4 hane ise Firma kodunu belirtmektedir.Bu firma kodu Türkiye’de TOBB (Türkiye Odalar ve Borsalar Birliği) da bulunan Mal Numaralandırma Merkezi bünyesinde verilmektedir.

Firma kodundan sonra gelen Ürün kodu ise her firma tarafından kendi ürünleri için şahsi olarak belirlenmektedir.Son olarak gelen Kontrol kodu ise Barkodun okunurken doğru okunup okunmadığını belirleyen bir numaradır.Buda Aşağıdaki gibi hesaplanmaktadır.

Barkod referans numarası 978-9753-15375-1 olsun.Kontrol kodu şu adımlarla hesaplanır.

  1. Kontrol kodu tarafından başlayarak çift indisli hanedeki sayılar toplanır.  ( 5+3+1+5+9+7=30 )
  2. Bulunan bu sayı algoritma gereği 3 le çarpılır. (3*30=90)
  3. Kontrol karakterden sonra gelen tek indisli hanelerdeki sayılar toplanır. ( 7+5+3+7+8+9=39 )
  4. Bulunan iki sayı toplanır ve 10 katına ulaşması için gerekli olan sayı Kontrol kodudur. (90+39=129 ) bulundu.Bu sayıya en yakın 10 un katı 130 olduğu için 129+1 =130 olduğu için kontrol kodumuz 1 bulunmuş olur.

Böylece bir yazımın daha sonuna gelmiş bulunmaktayım.Bir sonraki yazımda görüşmek dileğiyle şimdilik esen kalın…!!

 

Mehmet Salih Deveci

Bilgisayar Mühendisi

 

Reklamlar
yorum
  1. Merve dedi ki:

    Merhaba ben bilgisayar mühendisliği son sınıf öğrencisiyim bitirme projem mobil ödeme sistemleri ile alakalı bunun için java platformunu kullanarak telefonada barkod üretmem gerekiyo
    Bu konu ile ilgili bilginiz varsa ve paylaşırsanız yada bi kaynak söyleyebilirseniz çok memnun olurum.
    Şimdiden teşekkürler.
    İyi çalışmalar…

    • BİLGİSAYAR MÜHENDİSİ dedi ki:

      Yani sizin bahsettiğiniz mobil ödeme sistemi NFC teknolojisi olarak bilinmektedir.Bu anahtar kelimesiyle ararsanız çok fazla kaynak bulunmaktadır.Açılımı Near Field communication ….Ayrıca barkod hakkında isteğinizi yada gereksiniminizi anlayamadım tam olarak…Barkodu okumanızmı lazım yoksa barkodu oluşturmanızmı lazım bu 2 si farklı şeyler çünkü???

    • hilal dedi ki:

      Merhaba Merve,
      benim de bitirme ödevim java platformunu kullanarak barkod okuma üzerine.Bu konuda ulaştığın bilgileri benimle paylaşabilirsen sevinirim:)

  2. Senem dedi ki:

    Merhaba. Ben web programlama lise son sınıf öğrencisiyim. C# ile visual studio da barkod programı yapacağım. Barkodu okutup ekrana yazdırıyorum ama benim istediğim okunan değerlerin sırası ile ayrı bir textbox a yazdırılması ve onay verildikten sonra database den düşmesi. yardımcı olur musunuz?

    • BİLGİSAYAR MÜHENDİSİ dedi ki:

      Senem hanım sorunuzu tam olarak anlayamadım biraz daha açıklarmısınız ??? Okunan değer textbox a yazdırıldıktan sonra database emi kaydediliyor ki ordan işlem yapılıyor ???

      • Senem dedi ki:

        Değerlerimiz Database de kayıtlı. Marketlerdeki sistem gibi düşünebiliriz. Ürünü alıyoruz barkodunu okutuyoruz.Okunan değer textbox a yazdırılıyor ve database den düşüyor.Dediğim gibi okutmada problemim yok ancak değerleri database den düşüremiyorum.

      • BİLGİSAYAR MÜHENDİSİ dedi ki:

        Senem hanım database den düşüremiyorum derken silmeye çalışıyorsunuz ancak silinmiyormu ?? Silinmiyorsa belki o kolon başka bir yerde okunabilir bu yüzden sistem bırakmaz silmenizi…

  3. Mehmet dedi ki:

    Merhaba Bilgisayar. Muh. son sınıf ogrencisiyim.Windows mobile üzerinde cekilen resimdeki
    (Ean-13)borkodu okumak istiyorum acaba yardımcı olabilirmısınız

  4. Mehmet dedi ki:

    windows mobile 6.5 ta EAN-13 resmi cekip cekilen resim uzerinden barkod okutmaya çalişiyoruz.Digital olarak cektiğimiz fotografları kolayca okurken ,telefondan cekilen fotografı okuyamıyoruz..cunku cekilen resimde barkodun siyahı dısında siyahlar olusuyor buda okumamızı engelliyor.Acaba bunla ilgili bize yol gösterebilirmisiniz yada aklınızda bunla ilgili bi yöntem varsa bizle paylasırmısınız

    • BİLGİSAYAR MÜHENDİSİ dedi ki:

      Mehmet bey 1.si çektiğiniz resimde meydana gelen siyahlıklar donanımsal olarak kameranın çektiği gürültülermidir yoksa başka bir sorunmu ?? Eğer gürültüyse bunlar median yada laplacian gürültü yok etme filtreleri ile giderilebilir..

  5. mehmet dedi ki:

    acaba tam olarak sozluk karsılıgı var mı
    “010101000”, “$” demek gibi bunla alakalı bir sey elinizde varmıydı
    telefonda yavas calsıtıgından filitreleme tekniğini uygulamak okuma zamanını cok artırıyor

    • BİLGİSAYAR MÜHENDİSİ dedi ki:

      Mehmet Bey neyin Sözlük karşılığı ??? Ayrıca eğer öle istenmeyen gürültüler varsa mecburen bunlara filtre uygulamak zorundasınız bide bu 2 filtre çok aşırı hızlıdır ki 1 saniyenin üstüne asla çıkmazlar yani….

  6. mehmet dedi ki:

    sizleri baya da yorduk kusura bakmayın..Cok sagolun.
    Y abizim resmin boyutları cok buyuk yada biz yanlıs bişe yapıyoruz okurken cok yavaslıyor telefon.Sözluk derken demek istediğimiz kodu okumuzda onumeze gelen 1ler ve 0 ları text nasıl değiştirecegimiz.Mesala cod 39 10001001 “A” harfini yerini tutuyor.Ben EAN-13 kodunu okudugumda (1001000111)geldiğinde bunu değeri ne olacak?
    tekrar tesekkurler

    • BİLGİSAYAR MÜHENDİSİ dedi ki:

      Mehmet Bey EAN-13 hexal tabanlı değil rakamlar 0-9 a kadar vardır dolayısıyla EAN-13 te A nın karşılığı yoktur örneğin EAN-13 barkodu : 978-97517-83843 şeklindedir…Yani decimal sayılarla ifade ediliyor…

  7. Mehmet dedi ki:

    Sagolun.Ben karakter kumesi olcagını dusnmustum yanılmısım.
    Bu arada windows mobilede yazmaya calsıtıgımız 3.2 megepixel kamera yapılan cekimde resmi bir (bir satırnı taramayı) 10 dakıkada yapıyor:herralde telefonda bir sıkıntı var yada
    isletim sisteminde cok yavas belli bir saniyeyi gecincede kendiliğinden kilitleniyor

    • BİLGİSAYAR MÜHENDİSİ dedi ki:

      Yani normal C# ta yazılan bir filtre 1 saniyenin çok altında cevap verir dediğiniz gibi sıkıntı telefondadır…Ben Android le ilgilendiğim için bilirim Android dede emülatörde yazıp test ettiğiniz bir uygulama gerçek zamanlı bir android telefonda aynı performansı vermeyebiliyor…!!!

  8. Mehmet dedi ki:

    iste sorun tam olarak da emilatorde yazılan programı calsıtırdıgımızda bilgisayarda 10 saniye telefonda 5 dakika yada donup kalma:)

    • BİLGİSAYAR MÜHENDİSİ dedi ki:

      Şunu söylim telefon gibi cihazlara uygulama geliştirirken sadece uygulama bazlı yazılım geliştirmek hep yetersiz olmuştur çünkü yazdığınız uygulama tüm cihazlar için donanım destekli ve donanım uyumluluğunu yakalamalıdır bir çok hata ve gerçek zamanlı performans kayıpları bu nedenle yaşanmaktadır…!!

    • miyase dedi ki:

      Merhabalar,

      Ben de C# da barkod okuma içeren bir proje yapıyorum.Acaba barkod okuma için siz OpenCV mi yoksa Matlab mi kullandınız? Ben OpenCV kullanıyorum ama henüz barkod okutmayı başaramadım.Yardımcı olursanız çok sevinirim.

      Çok teşekkürler…

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s