Daftar Isi:

Mesin Godot: 4 Langkah (dengan Gambar)
Mesin Godot: 4 Langkah (dengan Gambar)

Video: Mesin Godot: 4 Langkah (dengan Gambar)

Video: Mesin Godot: 4 Langkah (dengan Gambar)
Video: Godot 4.0 -2 : Mengenal Node dan Scene 2024, Juli
Anonim
Mesin Godot
Mesin Godot

Apa itu Mesin Godot?

Ini adalah bagian dari pengalaman manusia bahwa kita dapat menemukan diri kita dalam keadaan menunggu sesuatu yang akhirnya mungkin terjadi setelah lama menunggu, atau tidak sama sekali.

Mesin Godot adalah karya seni elektro bertenaga surya yang mencoba menangkap emosi putus asa yang menyertai penantian yang mungkin sia-sia.

Namanya diambil dari drama terkenal Samuel Beckett Waiting for Godot, di mana dua pria menunggu kedatangan Godot tertentu, yang mungkin tiba besok, lusa, atau tidak sama sekali.

Jadi apa yang dilakukan Mesin Godot?

  1. 1. Diberi sinar matahari, sirkuit Joule Thief mulai mengisi bank kapasitor.
  2. 2. Setelah diisi hingga sekitar 5V, Arduino Nano dihidupkan.
  3. 3. Arduino menghasilkan angka acak sejati 20-bit, yang ditampilkan pada bilah LED 4-bit.
  4. 4. Angka ini dibandingkan dengan angka acak lain, tidak diketahui semua orang, yang disimpan di eeprom saat pertama kali sirkuit di-boot.
  5. 5. Jika sama, penantian selesai, mesin menyimpan fakta ini di eeprom dan mulai sekarang LED hijau dan pager piezo diaktifkan (jika ada cukup energi).
  6. 6. Jika tidak sama, harap, putus asa, ulangi.

…juga, sesekali nomor yang dihasilkan dibuat terdengar oleh pager, jadi Anda tidak benar-benar lupa bahwa Anda memiliki Mesin Godot.

Mengingat bahwa peluang untuk mencapai angka Godot adalah 1 banding 2^20 atau sekitar satu banding sejuta, dan mesinnya tidak terlalu cepat, terutama di musim dingin dan musim gugur, butuh waktu bertahun-tahun untuk menemukannya. Mesin Godot Anda bahkan mungkin menjadi bagian dari warisan Anda. Sambil menunggunya untuk menguji nomor berikutnya, Anda dapat berfantasi tentang bagaimana cicit Anda yang jauh akhirnya dapat melihatnya sampai pada kesimpulannya. Singkatnya: ini adalah hadiah yang ideal untuk musim liburan yang akan datang!

Langkah 1: Skema

Skema
Skema

Mesin Godot terdiri dari:

-Sebuah pemanen energi Joule Thief (Q1) yang mengisi kapasitor 9x2200uF. Bagi mereka yang menderita helixaphobia (kecemasan irasional dari induktor, sementara kapasitor dan resistor tidak menimbulkan masalah seperti itu), jangan takut karena tidak diperlukan lilitan manual: kopling dibuat dengan menempatkan induktor koaksial standar di sekitar satu sama lain seperti yang ditunjukkan di sini di gambar ke-2. Trik yang luar biasa!

-Sakelar daya transistor diskrit (Q2, Q3, Q4), yang menyala sekitar 5V1 dan mati sekitar 3.0V. Anda mungkin ingin menyetel R2-R4 sedikit jika Anda menggunakan jenis transistor (tujuan umum) yang berbeda.

-Sebuah generator entropi (Q6, Q7, Q8). Sirkuit ini memperkuat kebisingan elektronik yang ada di lingkungan dari level mikrovolt ke volt. Sinyal itu kemudian diambil sampelnya untuk menyemai generator angka acak berbasis kekacauan (baca terus). Sepotong senar gitar bertindak sebagai antena.

-Sebuah LED-bar dengan 4 LED atau 4 LED merah terpisah, pager piezo dan LED hijau.

Perhatikan bahwa output sakelar daya (kolektor Q4) terhubung ke pin 5V Arduino Nano, BUKAN ke pin VIN!

Langkah 2: Membangun Mesin Godot

Membangun Mesin Godot
Membangun Mesin Godot
Membangun Mesin Godot
Membangun Mesin Godot
Membangun Mesin Godot
Membangun Mesin Godot

Saya membangun sirkuit di atas sepotong perfboard. Tidak ada yang istimewa di sana. Panel surya 2V/200mA adalah sisa dari proyek lain. Merknya adalah Veleman. Sangat mudah untuk membukanya menggunakan pisau tajam, untuk mengebor lubang untuk sekrup dll. Papan sirkuit dan panel surya disekrup ke dua potong kayu lapis, seperti yang ditunjukkan pada gambar. Idenya adalah bahwa panel surya dapat diposisikan ke arah matahari pada jendela diam.

Langkah 3: Kode: Angka Acak Dari Kekacauan?

Kode: Angka Acak Dari Kekacauan?
Kode: Angka Acak Dari Kekacauan?
Kode: Angka Acak Dari Kekacauan?
Kode: Angka Acak Dari Kekacauan?
Kode: Angka Acak Dari Kekacauan?
Kode: Angka Acak Dari Kekacauan?

Bagaimana angka acak dibuat? Yah, mereka Dibuat Dengan Matematika!

Alih-alih menggunakan fungsi generator nomor acak Arduino random(), saya memutuskan untuk menulis Random Number Generator (RNG) saya sendiri, hanya untuk bersenang-senang.

Ini didasarkan pada peta logistik, yang merupakan contoh paling sederhana dari kekacauan deterministik. Berikut cara kerjanya:

Misalkan x adalah suatu nilai riil antara 0 dan 1, maka hitunglah: x*r*(1-x), di mana r=3.9. Hasilnya adalah 'x' Anda berikutnya. Ulangi tanpa batas. Ini akan memberi Anda serangkaian angka antara 0 dan 1, seperti pada gambar pertama, di mana proses ini dimulai untuk nilai awal x=0.1 (merah) dan juga x=0.1001 (biru).

Sekarang inilah bagian kerennya: tidak peduli seberapa dekat Anda memilih dua kondisi awal yang berbeda, jika keduanya tidak persis sama, rangkaian angka yang dihasilkan pada akhirnya akan berbeda. Ini disebut 'Ketergantungan sensitif pada kondisi awal'.

Secara matematis, persamaan peta x*r*(1-x) adalah parabola. Seperti yang ditunjukkan pada gambar ke-2, Anda dapat menentukan secara grafis deret-x menggunakan apa yang dikenal sebagai konstruksi sarang laba-laba: mulai dari x pada sumbu horizontal, cari nilai fungsi pada sumbu y, kemudian refleksikan terhadap garis lurus di 45 derajat sudut melalui titik asal. Mengulang. Seperti yang ditunjukkan untuk seri merah dan biru, bahkan jika pada awalnya dekat, mereka benar-benar menyimpang setelah sekitar 30 iterasi.

Sekarang, dari mana angka 'r=3.9' berasal? Ternyata untuk nilai r yang rendah, kita hanya mendapatkan dua nilai x yang bergantian. Meningkatkan r-parameter kemudian pada beberapa titik akan beralih ke osilasi antara nilai 4, 8, 16 dll. Percabangan atau bifurkasi ini datang lebih dan lebih cepat saat r meningkat, dalam apa yang disebut 'periode penggandaan rute menuju kekacauan'. Sebuah plot dengan r pada sumbu horizontal dan banyak x-iterasi yang tumpang tindih secara vertikal akan menghasilkan apa yang dikenal sebagai plot bifurkasi (gambar ke-3). Untuk r=3.9, peta sepenuhnya kacau.

Jadi jika kita menghitung banyak x-update dan sampel dari mereka, kita mendapatkan nomor acak? Nah tidak, pada titik ini akan menjadi generator Pseudo Random Number (PRNG), karena jika kita selalu memulai dari nilai awal yang sama (setelah keluar dari reset), kita akan selalu mendapatkan urutan yang sama; alias kekacauan deterministik. Di sinilah entropi-generator masuk, yang menyemai peta logistik dengan nomor yang dibuat dari kebisingan listrik yang ditemukan di lingkungan.

Dengan kata lain, kode pembangkit angka acak melakukan ini:

- Ukur tegangan dari entropy generator pada pin A0. Simpan hanya 4 bit paling tidak signifikan.

- Geser 4 bit ini menjadi nilai 'seed', ulangi 8 kali untuk mendapatkan seed 32-bit floating point.

- Skala ulang benih antara 0 dan 1.

- Hitung rata-rata benih ini dan x, keadaan peta logistik saat ini.

- Majukan peta logistik banyak (64) langkah.

- Ekstrak satu bit dari status peta logistik x dengan memeriksa beberapa desimal yang tidak signifikan.

- Geser sedikit itu ke hasil akhir.

- Ulangi semua langkah di atas 20 kali.

Catatan: Dalam kode, Serial.println dan Serial.begin di-outcomment. Hapus // untuk memeriksa nomor acak yang dihasilkan pada monitor serial.

Agar adil, saya belum memeriksa secara statistik kualitas angka acak (mis.

Langkah 4: Kagumi Mesin Godot Anda

Kagumi Mesin Godot Anda!
Kagumi Mesin Godot Anda!

Selamat menikmati Mesin Godot Anda dan silakan bagikan, beri komentar dan/atau tanyakan jika ada yang kurang jelas.

Sambil menunggu nomor Godot ditemukan, silakan pilih Instructable ini dalam kontes Made With Math! Terima kasih!

Dibuat dengan Lomba Matematika
Dibuat dengan Lomba Matematika
Dibuat dengan Lomba Matematika
Dibuat dengan Lomba Matematika

Runner Up dalam Lomba Made with Math

Direkomendasikan: