!! ARKADAŞLAR 10 HANELİ HEX KODU PBP DE İŞLEME???

Başlatan gulbey84, 18 Kasım 2009, 23:15:28

gulbey84

sevgili arkadaşlarım...size bir soru sormak istiyorum... şimdi ben bi 125 khz rfid reader devresi yaptım..bu devrede 125 khz manyetik kartı okutup röle çektirebiliyorum..devre ayrıca bir pinin den okunan manyetik kartın id numarasını seri bilgi olarak gönderiyor..şimdi benim sorum alınan bu id yi pic basic pro da nasıl alıp işleyeceğim...

örnek veri şu... A900C76554

yani bana 10 bitlik bi id no su veriyo başkada bişey göremiyorum tabi...ben bunu serin komutuylamı alacağım..bikaç denemem oldu fakat olayı çözemedim...devrenin çalışan halini buraya aktaracağım...yada google da attiny2313 rfid reader electronic lab diye aratın proje çıkıyor...yukarı da belirttiğm şekilde bir 10 btlik sayıyı nasıl alıp işleyebilirim sizce?? daha doğrusu ben karşılaştırma doğrulama tekniği ile belirli kartlarda röle çeksin yapacağım esasında....yukarı daki id sadece örnek...yani herhangi bir id olmadan fakat kartı okuutuğumda 10 bitlik bir id kodunu ben nasıl alıp işleyebilirim??

saygılarla Question Question
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE

gulbey84

ETE

Önemli bir hata yapıyorsun. Aldığın kod 10 bitlik değil 10 haneli bir hex kodudur. Bunun gerçek bit sayısı 40 dır.
40 bitlik sayı 5 adet byte şeklinde alınabilir.
En kolayı ve rahat yol bu bence.

ete hocam haklısınız!! peki tam olarak nasıl almalıyım hocam.... 5 adet byte şeklinde derken bana bir format verebilirmisiniz...yol gösterebilirmisiniz??? saygılarla
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE

ete

Elindeki sayı şu şekilde: A900C76554
Bunu 5 ayrı byte bölersek şöle olur;

Byte1: 54
Byte2: 65
Byte3: C7
Byte4: 00
Byte5: A9

Şimdi bu sayının RFID de nasıl oluştuğunu bilmeyince bu safhadan daha fazlasını söyleyemiyorum. Ama ordaki sistem sayıyı teker teker yani byte byte vermeye müsait ise sen yukarıdaki formatta alabilirsin.

Bana kalırsa önce otur 16 tabanına göre sayı sistemini biraz çalış.
Küçük sayılarla denemeler yap. Örneğin. senin sayının sondaki 4 hanesi,
$6554 dür. Bu sayının 8 bitlik 2 sayıya bölünmüş hali $65 ve $54 dür.
Pic ile çalışırken SAYI.Byte0 dediğin zaman $54 karşılığını alabilirsin.
SAYI.Byte1 dedğin zamanda $65 değerini alabilirsin.
Bu işi desmal sistemde hesap ile yapmanın yolu ise;
Sayının önce desimal karılığını alalım: 25940 dır.
Bu sayıyı önce 256 ya bölelim 101 değerini bulacağız. BU bize sayının Hıghbyte yani SAYI.Byte1 kısmını verecektir. O halde sayının 1. sekiz bitlik parçası 101 dir.
Şimdi 25940 - (101*256)= işlemini yaparsak oda bize Low byte ı verecektir.
Burada da 84 rakamını buluruz. O halde sayıyı 8 er bitlik iki parçaya 101 ve 84 olarak ayırmış oluruz. Zatenbunların hex karşılıkları $65 ve $54 dür.

Şimdi aynı işi 24 bitlik bir sayı ile yapalım. Yani Sayı=$C76554 olsun
İŞlemi yapınca elimizde C7 - 65 ve 54 sayıları olmuş olacaktır.

Sayımız 24 bit olunca bir düşük format 16 bitlik olacaktır. O halde sayımızı 16 bitlik (en büyük sayı+1) sayısına böleceğiz.  Yada başka bir deyişle sayıyı 16bit+1bit=17 bitlik ilk sayı olan $10000 (65536) ya böleceğiz.
$C76554 / 65536 (yani $10000)=199 yada $C7 sayısını buluruz.
Bu sayının ilk 8 bitlik parçasıdır.
Şimdi $C76554-($C7*$10000)=$6554 sayısı elimizde kalır.
Bu işlemi desimal yaparsak;
13.067.604 - (199 * 65536)=25.940
Elimizdeki sayı artık 16 bitliktir. Onada bir önceki işlemi uygular isek elimizde $65 ve $54 sayıları kalacaktır.

Buraya kadar anlattıklarımdan aslında olayı hemen kavraman gerekir.
10 tabanına göre sayılar (Desimal) 1-10-100-1000-10000-100000 şeklinde 10 un katları şeklinde gitmektedir.
16 tabanına göre sayılarda 16 nınkatları şeklinde gitmektedir. İşlemde bu esasa göre yapılmaktadır.
01-0F - FF - FFFF - FFFFFF - ... şeklinde gidiyorlar.
10 tabanına göre işlem yaparken 12.348.546 sayısının kat değerlerini bulmak için
12.348.546 / 10.000.000=12
12.348.546 - (12*10.000.000)=348.546
348.546/100.000=348    ,  348.546-(348 * 100.000)= 546
546/100=5    546-500=46
46/10=4   46-40=6

şeklinde yaptığımız işlemin aynısını 16 tabanına göre sayılara uygularsan işin görülecektir.

Kolay Gelsin
ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

gulbey84

hocam çok teşekkürederim...bu anlattıklarınız kafamda bazı şeyleri yerine oturttu...çalışmalarıma devam edeceğim....birde hprterminalde pc de gördüğüm şekilde bu 10 haneli hex dizisi...çalışacağım..çok sağolun..görüşmek üzere
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE

gulbey84

ete hocam sayı formatlarını biraz çalıştım fakat bir başka işlemci ile (16f628a) bu 10 haneli hex kodunu nasıl alıp işleyeceğimi tam olarak kafamda şekillendiremedim...bana bu konuda biraz yardım edebilirmisin acaba..şunu sölersem belki faydası olur..entegremnin 3. bacağı donanımsal seri çıkış için...yani ben bu bacağı pnp tranistör üzerinden bilgisayarın seri portuna girdiğim zaman hyper terminalde 19200 baund hızında okuttuğum rfid kartın id numarasını (yukarıdaki örnek hex veri) okuyabiliyorum..fakat benim amacım bilgisayara değilde ikinci bir işlemciye bu veriyi alıp daha sonra istedğim şekilde işlemek (ilk etapta lcd de dahi gösterebilsem bana yeticek) mesela bu id numarasını 16f628 le alıp aynen lcd ye gönderen bir rutin yazabilirmisin bana seni çok uğraştırmazsa tabi..orjinal entegre attiniy2313 fakat ben bu entegreden gelen 10 haneli hex id kodu pic ile alacağım sanırım bu fark etmez değilmi hocam...bide hserin ilemi yoksa serin ilemi alacağız...baya bi karıştı kafam hocam bana bi yardım edebilirsen çok minnettar olurum...sevgilerle
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE

ete

Başından beri söylemeye çalıştığım konuya geldin sonunda.
Sen sürekli sanki bilgiyi aldın ve elinde 40 bitlik bir bilgi varda onu nasıl ayıklarım diye düşünüyordun. Halbiki esas zorluk bilginin alımında idi ve oraya geldin işte.

10 haneli kodun gönderiliş formatını bilmeden herhangi bir şey yazmak mümkün değil. Bu 10 haneli bilgi tam tamına  40 bit oluyor.
- Öncelikle Yüksek Duyarlıklı Bit (MSB) denmi başlanıyor yoksa düşük duyarlıklı bittenmi başlanıyor (LSB) onu bilmek gerek.
- 40 bitin tamamı bir andamı yollanıyor (aralıksız) yoksa 8 bitlik parçalar halindemi yollanıyor, Yada 16 şar bitlik parçalarmı kullanılıyor
- Yollama şekli nasıl ? SPI mı, Seri mi .....

Haberleşme şekli konusunda hiç bilgim yok. Araştırmadığım bir konu. O nedenle bu bilgiler belli olmadan bir şey yapmak mümkün değil.
Mademki PC bu bilgileri alıyor ona benzetim yapılarak benzer bir mantıkta kurulabilir.
Anlayacağın ilave bilgiler lazım
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

gulbey84

anladım hocam...hocam ben bu gerekli bilgileri toplamaya çalışacağım...sanırım bana osilaskop verileri lazım olacak...ben burda osilaskop sinyallerini derleyip sana sunmak istiyorum...birkaç gün sonra bu verileri toplayabilirim...çok teşekkürederim ete hocam...türkiyedeki elektronik meraklılarına yaptığınız katkılar gerçekten çok fazla..yıllardır sizin verilerinizi takip ediyorum son derece öğretici doyurucu bilgiler veriyorsunuz...varolun...
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE

gulbey84

ete abi en son konuşmamızda konuyla ilgili biraz daha somut bilgilerle sana geleceğimi belirtmiştim...hocam şu şekilde bir çalışma yaptım bilmiyorum derdimi daha net anlatabiliecekmiyim...şimdi ben rfid okuyucu devremi pc ye girdim...burada proteuslada sinyali osilaskopta okudum...bakınız şöyle



şimdi hocam buradaki sinyal 10 haneli hex kodu sinyali yani okuttuğum rfid 125 khz kartın id numarası ben bunu bir başka işlemciye alıp işlemek istiyorum...lakin sizinde anladığınız gibi buradaki hex kodunun ne olduğu mühim değil..çünki ben bir format olarak bunu ele almalıyım...yani eğer okunan id xxxx ve bu id numarası daha önceden sisteme tanıtılmış ise röle çeksin vb. ama tabi ilk olarak 10 haneli bir hex kodu alıp bunu lcdye dahi akratsam bu bana büyük destek olur...sinyal aynen bu resimdekidir hocam..bana yardım edebilirmisiniz??sevgilerle
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE

ete

Gulbey,
Bana yeni bir şey söylemedin. Bunu zaten biliyor idik.

Bana ne geldiği değil nasıl geldiği gerekli.

Her neyse bana kalırsa sen gelen bu 40 bitlik sinyali 8 ayrı byte olarak alabilirsin.

Alıcı kısma 8 ayrı değişken adı yaz ve sonuçta bak bakalım senin kod 5 ayrı parçada sana ulaşmışmı. Yapacak başka şey yok zaten.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

gulbey84

HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE

gulbey84

ETE ABİ OLAYI ŞU ŞEKİLDE ÇÖZDÜM..YİNE SENİN BANA VERDİĞİN BİLGİLERDEN YOLA ÇIKARAK 5 AYRI WORD TİPİNDE DEĞİŞKEN BELİRLEDİM..HSERİN KOMUTU İLE RFİD OKUYUCU DEVREDEN GELEN 125KHZ KART İD NUMARASINI ALMAYI BAŞARDIM VE LCD DE GÖRÜNTÜLEYEBİLİYORUM...KODLAR BU ŞEKİLDE

INCLUDE "MODEDEFS.BAS"

'***********************DEFINITIONS***************************************
DEFINE Osc 4
'--------------------------------------------------------------------------------------------
'***********************SERIAL COMM DEFINITION**********************
DEFINE HSER_TXSTA 24h
DEFINE HSER_RCSTA 90h
DEFINE HSER_BAUD 19200

DEFINE LCD_DREG PORTb
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTb
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTb
DEFINE LCD_EBIT 3

cmcon=7
trisb=%00000010
trisa=%00000001

a var word
b var word
c var word
d var word
e var word

ANAPROGRAM:

hserin [hex2 a,hex2 b,hex2 c,hex2 d,hex2 e]
pause 50
LCDOut $fe, 1,hex2 a,hex2 b,hex2 c,hex2 d,hex2 e
pause 10

goto anaprogram

end

BİRAZDA ACEMİ ŞANSI İLE DENEME YANILMA YÖNTEMİYLE UĞRAŞARAK BU KODLARLA KART İDLERİNİ ALIP LCD YE AKTARDIM...FAKAT SERİN2 YADA SERİN KOMUTU İLE BİR TÜRLÜ BAŞARAMADIM...NEYSE BENDE O ZAMAN DONANIMSAL SERİ GİRİŞ OLAN BİR PİC KULLANCAM(628A) ŞİMDİ HOCAM BURAYA KADAR HERŞEYİ ÇÖZDÜM FAKAT BİR SORUM DA OLACAK SİZE...ÖRNEĞİN BİR BUTONA BASILI TUTARAK OKUTTUĞUM 125KHZ KARTIN İD NUMARASINI EEPROMA KAYDECEM...SORADA DİCEM Kİ DİĞER BİR BAŞKA BUTONA BASILIYKEN OKUTTUĞUM KART EĞER EPROMDA KAYITLIYSA RÖLE ÇEKSİN...YANİ BEN BURADA HEM BU VERİLERİ EPROMA KAYDECEĞİM SORA BİR BAŞKA HAMLEYLE OKUTTUĞUM KARTIN İD NUMARASINI EPROMDAKİYLE KARŞILAŞTIRACAĞIM DOĞRUYSA RÖLE ÇEKCEK..DEĞİLSE RÖLE ÇEKMİCEK...BİRKAÇ DENEM YAPTIM WRİTE VE READ KOMUTLARIYLA AMA 5 PARÇA HALİNDE ALDIĞIM VERİLERİ NEREYE NASIL YERLEŞTİRECEĞİM BUNU ÇÖZEMEDİM HOCAM...BANA YARDIM EDEBİLİRMİSİNİZ?

SEVGİLERLE
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE

ete

Gulbey,
Başardığına sevindim. Ufak tefek ikazlarım olacak.
Birincisi değişkenleri Word değil Byte kullan. Çünki aldığın bilgi zaten byte, word değil. Üstelik  komut satırına yazmış olduğun Hex2 a komutu a bilgisinin byte olarak al anlamına geliyor. Bilmem denedinmi bunu dene istersen çalışması gerek.

Gelelşm kayıt meselesine, muhtemelen word olarak tanımladığın a,b,c,d,e gibi değişkenleri kayıt ederken sorun yaşamışsındır. Şİmdi burada her ikisinide göstereceğim.

Şayet kullandığın değişkenleri Byte cinsine çevirir ve başarılı okuma yaparsan kayıt yöntemin şöyle olacak
Write Adres (0-255 arası) , Değişken  , hemen örnek vereyim 10 nolu adresten itibaren değişkenleri kayıt edelim.
Write 10, a :pause 10  'bu 10 ms gecikme mutlaka verilmeli . Yaklaşık kayıt süresidir ve tamamlanmadan bir sonraki kayıta geçilmemelidir.
Write 11, b:pause 10
Write 12, c:Pause 10
Write 13, d:pause 10
Write 14,e:pause 10
Gördüğün gibi adres değeri birer artırılarak kayıt yapılıyor.

Şayet illaki word tipi değişken kullanman gerekiyor ise o zaman kayıt yöntemin;
Write 10, a.byte0:pause 10
Write 11, a.byte1:pause 10

Write 12, b.byte0:pause 10
Write 13, b.byte1:pause 10

şeklinde 16bitlik değişkeni 8 bitlik iki parça halinde ve iki ayrı adres kullanarak kayıt ediyoruz.

Bu işin kayıt kısmı idi.

Şimdi diyelimki kayıtlarını yaptın ve RFID den başka bir ID okudun.
Okunan ile kayıttan okunan farklı değişkenlerde tutulması gerekecek.
Bunun için şöyle bir yöntem kullan,
ao , bo , co , do , eo değişkenleri karşılaştırılacak bilgi değişkenleri olsun.
Yani diğer butona basılınca okunan ID bu değişkenlere yerleştirilsin.
Şimdi önce eepromdan a değerini alırsın
Read 10,a  ' Okuma yaparken pause kullanmaya gerek yoktur.
Bir:
IF a=ao then  iki
 Goto CIK   işte burası önemli şayet a=ao değil sie program bu satıra gelecektir ve ilk karşılaştırma eşit olmadığına göre okunan ID ile kayıtlı ID bir birine eşit değildir kabul edilecektir.
iki:
Read 11, b
IF b=bo then Uc
  Goto CIK    'şayet a=ao olupta b=bo olmaz ise program bu satıra gelecektir.
Uc:
Read 12, c
If c=co then Dort
 Goto CIK
Dort:
Read 13,d
If d=do then Bes
Goto CIK
Bes:
Read 14,e
IF e=eo then
  LCDOUT $fe,1,"ID ler esit"
  pause 1000
  Goto basla
endif
CIK:
LCDOUT $fe,1," ID ler esit değil"
pause 1000
goto basla

Dikkat edersen açıklamamı byte değişkenleri kullandığını varsayarak yaptım. Word kullanırsan yalnızca okuma adreslerin değişecek. Onun içinde bir örnek vereyim yalnızca a değişkeni için vereyim diğerleri aynı mantıkla yapılacaktır.
Bir:
Read 10,a.byte0
Read 11,a.byte1
If a=ao then Iki
Goto CIK
...
...

Buton kullanımını artık açıklamayayım onu halledersin artık.

Kolay Gelsin
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

gulbey84

ete hocam herzaman söylüyorum sizin elektronikçilere olan katkınız tartışılmaz!! yine bana satırlar dolusu faydalı bilgiler verdiniz...gönül isterki size hakkınızı en güzel şekilde ödiyim...sanırım ankaradasınız...istanbula geldiğinizde çay içmeye de beklerim...ankaraya yolum düşerse sizi ziyaret etmeden de hiçbiyere gitmem!! şimdi hocam işyerimde olduğum için verdiğiniz bilgileri eve döünüce inceleyeceğim..ama sorunuzun yanıtını verebilirim..değişkenkeri word değilde byte olarak tanımladığımda da sistem harika çalışıyor..hatta önce öyleydi daha sonra ben write read denemelerim için öle değiştirdim...akşam tekrar görüşmek dileğiyle

selametle kalın

gulbey
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE

gulbey84

selamlar...ete hocam verdiğin bilgiler ışığında birşeyler yapmaya çalıştım...biraz daha bu konuda kendimi geliştirdim...fakat benim şöyle bir sorum olacak aslında size....hocam şimdi benim esas gayem elimdeki rfid kartlardan bir tanesini yazılımın içine dahil etmek...daha sonra ben bu kayıtlı kartı okuttuğumda 15 saniye içinde sisteme diğer kartları taıtıcam...yani elimdeki bir kart admin kartı olacak...fakat elimdeki kartın datalarını nasıl sabit birşekilde yazılıma yerleştireceğim bunu çözemedim...data veyahut eeprom komutuyla olacağını biliyorum...fakat  elimdeki rakamlar sizde biliyorsunuz son derece karışık...en azından beş parça halinde hex2 olarak aldığım rakamlar...ben bunu yazılımın başına nasıl yerleştireceğim...yani 1 numaralı kartı okuttuğumda diğer kartları üst üste sisteme tanıtacağım..ama bu olay misal 20 saniye içinde olacak...20 saniye sonra ise sistem rutin çalışmaya geçicek...yani artık okutulan kart doğrumu?doğruysa röle çeksin...değilse uyarı versin gibi...burada kesme olayınıda devreye sokmam gerekicek gibi geliyo bana...sizce nereden başlamalıyım hocam?...en azından bana elimdeki kartlardan bir tanesini sabit olarak sisteme dahil etmeyi (data\eeprom) ve bu kartı okuttuğumda kesmein nasıl başlayacağını anlatabilirmisiniz??

sevg,lerle
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE

gulbey84

hocam son sordğum sorunun cevabını buldum

basla:
hserin [hex2 a,hex2 b,hex2 c,hex2 d,hex2 e]
pause 100
if a=$1C AND B=$00 AND C=$C7 AND D=$46 AND E=$54 THEN
goto hadi
endif
goto basla

bu şekilde istedğim şey oldu...öleyse soru hakkımı başka bir soruyla kullanmak isterim müsade varsa :) hocam şimdi buraya kadar bana okuttuğum id leri eeproma nasıl yazdıracağımı ve nasıl okutacağımı öğrettiniz...ama şöyle bir şey var..

mesela ben bir kart kaydedebiliyorum bu şekilde...halbuki en az 20 adet kart  tanıtmam gerekiyor...bunun içinde onlarca değişken oluşturmak zorundamı kalacağım hocam? mesela ne demişik...ao,bo,co,do,eo bunlar karşılaştırma için kullanacağım deişkenler...öyleyse diğer kartlar içinde al,bl,cl,dl,el sonrasında af,bf,cf,df,ef gibi devam eden deişkenler mi oluşturafcağım hocam...yani amacım 10 tane kartı eproma yazmak..daha sonra okunduğunda var ise eğer sonuç vermesi...yoksa uyarı vermesi..

sevgilerle
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE