top of page

Hilesiz Yedi Yüzlü Zar : Dijital Rastgele Sayı Üretimi

  • Davut
  • 27 Şub
  • 3 dakikada okunur
Dijital sistem tasarımında, rastgele sonuçlar üreten mekanizmalar, oyunlardan güvenli iletişime kadar geniş bir uygulama yelpazesinde kritik öneme sahiptir. Geleneksel rastgele sayı üreticileri genellikle simetrik dağılıma sahip zarlar veya algoritmik yaklaşımlar kullanırken, bu proje dengesiz bir yedi yüzlü zar üreticisi geliştirerek klasik yöntemleri aşmayı amaçlamaktadır.
Bu projede, dijital sinyal işleme ve depolama tekniklerini kullanarak rastgele bir üç bitlik sayı üreten bir elektronik sistem tasarlanmıştır. Sistem, bir veri jeneratörü, CMOS konfigürasyonlu 1-bit tam toplayıcı, ara ve çıkış kayıtları ve bir kontrol devresi içerir. Projenin yenilikçi yönü, rastgele sayı üretiminde saat sinyali manipülasyonu ve CMOS teknolojisinin etkin kullanımına dayanmasıdır.

Projenin Amacı
Bu proje, aşağıdaki temel hedeflere ulaşmayı amaçlamaktadır:
✔️ Dengesiz yedi yüzlü bir zar üretebilen elektronik bir sistem tasarlamak,
✔️ CMOS konfigürasyonlu tam toplayıcılar kullanarak ikili toplama işlemini optimize etmek,
✔️ Saat sinyalini 400 Hz’den 100 Hz’e düşürerek sistemin zamanlamasını yönetmek,
✔️ Geliştirilen devrenin doğruluğunu hem teorik hem de deneysel olarak analiz etmek,
✔️ Arduino ve MATLAB kullanarak gerçek zamanlı veri analizi yapmak.

Schematic diagram of an uneven seven-sided dice roller
Schematic diagram of an uneven seven-sided dice roller
Sistem Tasarımı ve Uygulama
1️⃣ Veri Jeneratörü (D0) ve Rastgele Sinyal Üretimi
Sistemin temelini, rastgele veri üreten multivibratör devresi oluşturur.
🔹 Multivibratör Devresi:
  • Kararsız multivibratör (astable multivibrator) kullanılarak rastgele veri üretilmiştir.
  • Devrede 2 adet 2N2222 transistör, 1kΩ ve 82kΩ dirençler, 1nF kapasitörler kullanılmıştır.
  • Üretilen sinyalin frekansı, sistem saat sinyali ile senkronize edilmemiştir, böylece rastgelelik korunmuştur.
  • Deneysel ve teorik hesaplamalar karşılaştırıldığında %4,215 hata payı tespit edilmiştir.
2️⃣ Saat Sinyali Manipülasyonu ve Zamanlama Kontrolü
Sistemin düzgün çalışması için 400 Hz’lik CLK1 sinyali, 100 Hz’lik CLK4 sinyaline düşürülmüştür.
🔹 Saat Sinyali Yönetimi:
  • 400 Hz'lik giriş saat sinyali (CLK1), 100 Hz’e düşürülerek (CLK4) sistemin çıkış register’ını senkronize etmiştir.
  • Saat sinyali düşürme işlemi, 74LS11 AND kapısı entegresi ile gerçekleştirilmiştir.
  • Çıkış sinyalinin doğruluğu, MATLAB zamanlama analizleriyle doğrulanmıştır.


3️⃣ Tam Toplayıcı Konfigürasyonu ve İkili Toplama İşlemi
Dijital toplama işlemi, CMOS ve standart tam toplayıcı IC’ler ile hibrit bir yapı kullanılarak gerçekleştirilmiştir.
🔹 1-bit CMOS Tam Toplayıcı:
  • CMOS teknolojisi kullanılarak düşük güç tüketimi ve yüksek verimlilik sağlanmıştır.
  • BS170 ve BS250P MOSFET modelleri kullanılmıştır.
  • XNOR, AND ve OR kapıları CMOS yapıda tasarlanarak, sum ve carry çıkışları optimize edilmiştir.
🔹 1-bit Standart Tam Toplayıcı IC:
  • CMOS tam toplayıcının carry çıkışı (C0), ikinci tam toplayıcı için giriş olarak kullanılmıştır.
  • A1 ve B1 girişleri, geleneksel tam toplayıcı IC kullanılarak işlenmiştir.
  • Bu yapı, iki farklı toplama yönteminin avantajlarını birleştirerek sistem doğruluğunu artırmıştır.

4️⃣ Veri Kayıt ve Çıkış İşlemleri (Registers)
Sistemin ara ve çıkış register’ları, dijital veri akışını düzenlemek ve senkronize etmek için kullanılmıştır.
🔹 Ara Kayıt (RI - Intermediate Register):
  • Giriş verisini belirli zaman aralıklarıyla saklayarak çıkış register'ına aktarır.
  • CLK1 sinyali ile tetiklenir ve A1, A0, B1, B0 girişlerini senkronize eder.
🔹 Çıkış Kayıt (RO - Output Register):
  • Tam toplayıcıdan gelen sum ve carry değerlerini saklar.
  • Arduino’ya gönderilecek üç bitlik rastgele sayıyı oluşturur.

5️⃣ Arduino ile Sayısal Dönüştürme ve MATLAB Analizi
Sistemin çıktısı, Arduino kullanılarak okunmuş ve MATLAB ile analiz edilmiştir.
🔹 Arduino ile Dijital Dönüştürme:
  • RO çıkışındaki O2, O1, O0 bitleri Arduino üzerinden okunarak onluk sisteme çevrilmiştir.
  • Çıktılar MATLAB kullanılarak grafiksel olarak görselleştirilmiştir.
🔹 MATLAB ile Olasılık Hesaplamaları:
  • Üretilen zar değerleri, teorik olasılık hesaplamalarıyla karşılaştırılmıştır.
  • Arduino’dan alınan olasılık dağılımı ile teorik dağılım arasında %9,29 hata payı hesaplanmıştır.

Sonuçlar ve Tartışma
Bu çalışma, dijital sistem tasarımında rastgelelik sağlamak için CMOS ve klasik entegre devre teknolojilerinin etkin bir şekilde birleştirildiğini göstermektedir.
Possibility Values from Arduino
Possibility Values from Arduino
✔️ Multivibratör tabanlı rastgele veri jeneratörü başarıyla çalışmıştır.
✔️ CMOS tam toplayıcı ve standart tam toplayıcı IC kombinasyonu, hata payını minimize etmiştir.
✔️ Saat sinyali manipülasyonu, çıkış register'ının senkronizasyonunu sağlamıştır.
✔️ Arduino ve MATLAB analizleri, üretilen zar dağılımının teorik hesaplamalarla uyumlu olduğunu göstermiştir.
🔹 Sistem hata oranı %9,29 olarak hesaplanmış olup, ileri optimizasyonlarla bu değer düşürülebilir.
🔹 Gelecekte, FPGA tabanlı bir sistem kullanılarak hız ve doğruluk artırılabilir.
🔹 Yapay zeka destekli algoritmalar ile rastgele sayı dağılımı daha iyi optimize edilebilir.





Proje Raporuna Şuradan Ulaşabilirsiniz:


Commenti


IMG-20240327-WA0011.jpg

Elektrik-Elektronik Mühendisliği öğrencisiyim, mühendislik projelerimi ve deneyimlerimi paylaşıyorum. Teknik bilgilerin yanında hayatımdan kesitleri, okuduğum kitapları ve gezdiğim yerleri de eğlenceli ve anlaşılır şekilde aktarmayı hedefliyorum.

 

Read More

 

bottom of page