İçindekiler:

Godot Makinesi: 4 Adım (Resimlerle)
Godot Makinesi: 4 Adım (Resimlerle)

Video: Godot Makinesi: 4 Adım (Resimlerle)

Video: Godot Makinesi: 4 Adım (Resimlerle)
Video: Cinsel İlişki Sırasında 4 Önemli Tavsiye 2024, Temmuz
Anonim
Godot Makinesi
Godot Makinesi

Godot Makinesi nedir?

Kendimizi uzun bir bekleme süresinden sonra eninde sonunda olabilecek ya da hiç olmayacak bir şeyi bekleme durumunda bulmamız insan deneyiminin bir parçasıdır.

Godot Makinesi, muhtemelen anlamsız beklemeye eşlik eden umutsuz duyguyu yakalamaya çalışan, güneş enerjisiyle çalışan bir elektro-"sanat" parçasıdır.

İsim, Samuel Beckett'in ünlü oyunu Godot'yu Beklerken'den geliyor; bu oyunda iki adam, yarın, ertesi gün ya da asla varabilecek olan belirli bir Godot'nun gelişini bekliyor.

Peki Godot Makinesi ne yapıyor?

  1. 1. Bir miktar güneş ışığı verildiğinde, bir Joule Hırsızı devresi bir kapasitör bankasını şarj etmeye başlar.
  2. 2. Yaklaşık 5V'a şarj edildikten sonra Arduino Nano'ya güç verilir.
  3. 3. Arduino, 4 bitlik bir LED çubuğunda gösterilen 20 bitlik gerçek bir rastgele sayı üretir.
  4. 4. Bu sayı, devre ilk başlatıldığında eeprom'da saklanan, herkes tarafından bilinmeyen başka bir rastgele sayı ile karşılaştırılır.
  5. 5. Eşit ise bekleme sona erer, makine bu durumu eeprom'a kaydeder ve bundan sonra yeşil LED ve piezo bipleyici aktif olur (yeterli enerji varsa).
  6. 6. Eşit değilse, umut, umutsuzluk, tekrarlayın.

…ayrıca, ara sıra üretilen numara bipleyici tarafından duyulabilir hale gelir, böylece bir Godot Makineniz olduğunu gerçekten unutmazsınız.

Godot sayısına ulaşma olasılığının 1 bölü 2^20 veya milyonda bir olduğu ve makinenin özellikle kış ve sonbaharda çok hızlı olmadığı göz önüne alındığında, onu bulması yıllar alabilir. Godot Makineniz mirasınızın bir parçası bile olabilir. Bir sonraki sayıyı test etmesini beklerken, uzaktaki büyük torunlarınızın nihayet sonuca ulaştığını nasıl görebileceklerini hayal edebilirsiniz. Kısacası: yaklaşan tatil sezonu için ideal hediye!

Adım 1: Şematik

şematik
şematik

Godot Makinesi şunlardan oluşur:

-9x2200uF kapasitörleri şarj eden bir Joule Hırsızı enerji toplayıcı (Q1). Heliksafobiden muzdarip olanlar için (kapasitörler ve dirençler böyle bir sorun oluşturmazken, indüktörlerin irrasyonel kaygısı), manuel sargı gerekmediğinden korkmayın: kuplaj, burada gösterildiği gibi standart koaksiyel indüktörler birbirinin yakınına yerleştirerek oluşturulur. 2. resim. Müthiş numara!

- Yaklaşık 5V1'de açılan ve yaklaşık 3.0V'da kapanan ayrı bir transistör güç anahtarı (Q2, Q3, Q4). Farklı (genel amaçlı) transistör türleri kullanıyorsanız, R2-R4'ü biraz ayarlamak isteyebilirsiniz.

-Bir entropi üreteci (Q6, Q7, Q8). Bu devre, ortamda bulunan elektronik gürültüyü mikrovoltlardan volt seviyelerine yükseltir. Bu sinyal daha sonra kaosa dayalı (okumaya devam eden) bir rasgele sayı üretecini tohumlamak için örneklenir. Bir parça gitar teli anten görevi görür.

- 4 LED'li veya 4 ayrı kırmızı LED'li bir LED-bar, bir piezo bipleyici ve bir yeşil LED.

Güç anahtarının (Q4 toplayıcı) çıkışının VIN pinine DEĞİL, Arduino Nano'nun 5V pinine bağlı olduğunu unutmayın!

2. Adım: Godot Makinesini İnşa Etmek

Godot Makinesini İnşa Etmek
Godot Makinesini İnşa Etmek
Godot Makinesini İnşa Etmek
Godot Makinesini İnşa Etmek
Godot Makinesini İnşa Etmek
Godot Makinesini İnşa Etmek

Devreyi bir perfboard parçası üzerine kurdum. Orada özel bir şey yok. 2V/200mA güneş paneli, başka bir projeden kalandır. Marka Velleman'dır. Keskin bir bıçak kullanarak, vida vb. için delik açmak için kolayca açılabilir. Devre kartı ve güneş paneli, resimde gösterildiği gibi iki adet kontrplak üzerine vidalanır. Buradaki fikir, güneş panelinin bir pencere üzerinde güneşe doğru konumlandırılabilmesidir.

Adım 3: Kod: Kaostan Rastgele Sayılar?

Kod: Kaostan Rastgele Sayılar?
Kod: Kaostan Rastgele Sayılar?
Kod: Kaostan Rastgele Sayılar?
Kod: Kaostan Rastgele Sayılar?
Kod: Kaostan Rastgele Sayılar?
Kod: Kaostan Rastgele Sayılar?

Rastgele sayılar nasıl yapılır? Eh, Matematikle Yapılmışlar!

Arduino rasgele sayı üreteci işlevini random() kullanmak yerine, sadece eğlence için kendi Rastgele Sayı Üreticimi (RNG) yazmaya karar verdim.

Deterministik kaosun en basit örneği olan lojistik haritaya dayanmaktadır. İşte nasıl çalıştığı:

x'in 0 ile 1 arasında bir gerçek değer olduğunu varsayalım, sonra şunu hesaplayın: x*r*(1-x), burada r=3.9. Sonuç, bir sonraki 'x'inizdir. Sonsuz olarak tekrarlayın. Bu size ilk resimdeki gibi 0 ile 1 arasında bir sayı dizisi verecektir, burada x=0.1 (kırmızı) ve ayrıca x=0.1001 (mavi) başlangıç değeri için bu işlem başlatılır.

Şimdi harika kısım şu: İki farklı başlangıç koşulunu ne kadar yakın seçerseniz seçin, bunlar tam olarak eşit değilse, sonuçta ortaya çıkan sayı dizileri birbirinden uzaklaşacaktır. Buna 'Başlangıç koşullarına hassas bağımlılık' denir.

Matematiksel olarak, x*r*(1-x) harita denklemi bir paraboldür. 2. şekilde gösterildiği gibi, örümcek ağı yapısı olarak bilinen şeyi kullanarak x serisini grafiksel olarak belirleyebilirsiniz: yatay eksende x'ten başlayın, y ekseninde fonksiyon değerini bulun, sonra 45'te düz bir çizgiye yansıtın. orijinden geçen derecelik açı. Tekrarlamak. Kırmızı ve mavi seriler için gösterildiği gibi, başlangıçta yakın olsalar bile, yaklaşık 30 iterasyondan sonra tamamen ayrışırlar.

Şimdi, 'r=3.9' sayısı nereden geliyor? Düşük r değerleri için sadece iki alternatif x değeri elde ettiğimiz ortaya çıktı. Daha sonra r-parametresinin arttırılması, bir noktada 4, 8, 16 değerler vb. arasında bir salınım durumuna geçecektir. Bu dallanmalar veya çatallanmalar, 'kaosa giden yol ikiye katlama dönemi' olarak adlandırılan süreçte, r arttıkça daha hızlı hale gelir. Yatay eksende r olan ve dikey olarak üst üste binen birçok x-yinelemeli bir çizim, çatallanma grafiği olarak bilinen şeyle sonuçlanacaktır (3. şekil). r=3.9 için harita tamamen kaotiktir.

Yani birçok x-güncellemesi hesaplar ve onlardan örnek alırsak, rastgele bir sayı mı elde ederiz? Hayır, bu noktada bir Sözde Rastgele Sayı üreteci (PRNG) olurdu, çünkü her zaman aynı başlangıç değerinden başlarsak (sıfırlamadan çıktıktan sonra), her zaman aynı diziyi alırdık; aka deterministik kaos. Bu, lojistik haritayı ortamda bulunan elektrik gürültüsünden oluşturulan bir sayı ile tohumlayan entropi üreticisinin devreye girdiği yerdir.

Sözlü olarak, rastgele sayı üreteci kodu şunu yapar:

- A0 pimindeki entropi üretecinden gelen voltajı ölçün. Yalnızca en önemsiz 4 biti saklayın.

- Bu 4 biti bir 'tohum' değerine kaydırın, 32 bitlik kayan noktalı bir tohum elde etmek için 8 kez tekrarlayın.

- Tohumu 0 ile 1 arasında yeniden ölçeklendirin.

- Lojistik haritasının mevcut durumu olan bu tohumun ve x'in ortalamasını hesaplayın.

- Lojistik haritayı birçok (64) adımda ilerletin.

- Bazı önemsiz ondalık sayıları kontrol ederek x lojistik harita durumundan tek bir bit ayıklayın.

- Bu parçayı nihai sonuca kaydır.

- Yukarıdaki tüm adımları 20 kez tekrarlayın.

Not: Kodda, Serial.println ve Serial.begin açıklanır. Seri monitörde oluşturulan rastgele sayıları kontrol etmek için // işaretini kaldırın.

Adil olmak gerekirse, rastgele sayıların (örneğin NIST test takımı) kalitesini istatistiksel olarak kontrol etmedim ama iyi görünüyorlar.

Adım 4: Godot Makinenize hayret edin

Godot Makinenize hayret edin!
Godot Makinenize hayret edin!

Godot Makinenizin keyfini çıkarın ve lütfen paylaşın, yorum yapın ve/veya anlaşılmayan bir şey olup olmadığını sorun.

Godot numarasının bulunmasını beklerken, lütfen Made With Math yarışmasında bu Eğitilebilir Kitap için oy verin! Teşekkürler!

Matematik Yarışması ile Yapılan
Matematik Yarışması ile Yapılan
Matematik Yarışması ile Yapılan
Matematik Yarışması ile Yapılan

Made with Matematik Yarışmasında İkincilik

Önerilen: