Isi kandungan:

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, November
Anonim
Mesin Godot
Mesin Godot

Apa itu Mesin Godot?

Ini adalah sebahagian dari pengalaman manusia yang dapat kita temui dalam keadaan menunggu sesuatu yang mungkin akhirnya berlaku setelah lama menunggu, atau sama sekali tidak.

The Godot Machine adalah karya elektro- "seni" bertenaga suria yang cuba menangkap emosi putus asa yang menemani penantian tanpa sia-sia.

Nama itu berasal dari drama terkenal Samuel Beckett, Waiting for Godot, di mana dua lelaki menunggu kedatangan Godot tertentu, yang mungkin tiba esok, lusa, atau tidak pernah.

Jadi apa yang dilakukan oleh Mesin Godot?

  1. 1. Diberi cahaya matahari, litar Joule Thief mula mengecas kapasitor.
  2. 2. Setelah dicas sekitar 5V, Arduino Nano dihidupkan.
  3. 3. Arduino menghasilkan nombor rawak sebenar 20-bit, yang ditunjukkan pada bar LED 4-bit.
  4. 4. Nombor ini dibandingkan dengan nombor rawak lain, yang tidak diketahui oleh semua orang, yang disimpan di eeprom pada kali pertama litar dimulakan.
  5. 5. Sekiranya sama, penantian sudah selesai, mesin menyimpan fakta ini di eeprom dan mulai sekarang LED hijau dan piezo beeper diaktifkan (jika terdapat cukup tenaga).
  6. 6. Sekiranya tidak sama, harap, putus asa, ulangi.

… juga, sesekali nombor yang dihasilkan dibuat didengar oleh bip, jadi anda tidak lupa bahawa anda mempunyai Mesin Godot.

Memandangkan kebarangkalian untuk memukul nombor Godot adalah 1 lebih dari 2 ^ 20 atau kira-kira satu dalam sejuta, dan mesinnya tidak terlalu cepat, terutama pada musim sejuk dan musim luruh, memerlukan beberapa tahun untuk mencarinya. Mesin Godot anda bahkan boleh menjadi sebahagian daripada harta pusaka anda. Sambil menantinya untuk menguji nombor seterusnya, anda dapat membayangkan bagaimana cucu-cucu besar anda yang jauh dari akhirnya dapat melihatnya sampai pada kesimpulannya. Ringkasnya: ia adalah hadiah yang ideal untuk musim percutian yang akan datang!

Langkah 1: Skematik

Skema
Skema

Mesin Godot terdiri daripada:

-Penuai tenaga Joule Thief (Q1) yang mengecas kapasitor 9x2200uF. Bagi mereka yang menderita helixaphobia (kemarahan induktor yang tidak rasional, sementara kapasitor dan perintang tidak menimbulkan masalah seperti itu), jangan takut kerana penggulungan manual tidak diperlukan: gandingan dibuat dengan meletakkan induktor sepaksi standard di sekitar satu sama lain seperti yang ditunjukkan di sini di Gambar ke-2. Silap mata yang luar biasa!

- Suis kuasa transistor diskrit (Q2, Q3, Q4), yang dihidupkan pada 5V1 kira-kira dan mati pada sekitar 3.0V. Anda mungkin mahu menyesuaikan R2-R4 sedikit jika anda menggunakan jenis transistor (tujuan umum) yang berbeza.

- Penjana entropi (Q6, Q7, Q8). Litar ini menguatkan kebisingan elektronik yang terdapat di persekitaran dari tahap voltan mikro hingga volt. Isyarat itu kemudian diambil sampel untuk menghasilkan penjana nombor rawak (baca terus) berdasarkan kekacauan. Sekeping tali gitar bertindak sebagai antena.

-Batang LED dengan 4 LED atau 4 LED merah yang berasingan, bip piezo dan LED hijau.

Perhatikan bahawa output suis kuasa (pengumpul Q4) disambungkan ke pin 5V Arduino Nano, BUKAN ke pin VIN!

Langkah 2: Membina Mesin Godot

Membina Mesin Godot
Membina Mesin Godot
Membina Mesin Godot
Membina Mesin Godot
Membina Mesin Godot
Membina Mesin Godot

Saya membina litar di atas papan serpihan. Tidak ada yang istimewa di sana. Panel solar 2V / 200mA adalah sisa dari projek lain. Jenamanya adalah Velleman. Sangat mudah untuk membukanya dengan menggunakan pisau tajam, untuk mengebor lubang untuk skru dll. Papan litar dan panel solar dipasang pada dua kepingan papan lapis, seperti yang ditunjukkan dalam gambar. Ideanya adalah bahawa panel suria dapat diposisikan ke arah matahari di tingkap pegun.

Langkah 3: Kod: Nombor Rawak Dari Kekacauan?

Kodnya: Nombor Rawak Dari Kekacauan?
Kodnya: Nombor Rawak Dari Kekacauan?
Kodnya: Nombor Rawak Dari Kekacauan?
Kodnya: Nombor Rawak Dari Kekacauan?
Kodnya: Nombor Rawak Dari Kekacauan?
Kodnya: Nombor Rawak Dari Kekacauan?

Bagaimana nombor rawak dibuat? Nah, mereka Dibuat Dengan Matematik!

Daripada menggunakan fungsi penjana nombor rawak Arduino secara rawak (), saya memutuskan untuk menulis Penjana Nombor Rawak (RNG) saya sendiri, hanya untuk keseronokan.

Ia berdasarkan peta logistik, yang merupakan contoh paling mudah dari kekacauan deterministik. Inilah cara kerjanya:

Katakan x adalah beberapa nilai sebenar antara 0 dan 1, kemudian hitung: x * r * (1-x), di mana r = 3.9. Hasilnya adalah 'x' anda yang seterusnya. Ulangi iklan infinitum. Ini akan memberi anda rangkaian nombor antara 0 dan 1, seperti pada gambar pertama, di mana proses ini dimulakan untuk nilai awal x = 0.1 (merah) dan juga x = 0.1001 (biru).

Sekarang inilah bahagian yang menarik: tidak kira seberapa dekat anda memilih dua keadaan awal yang berbeza, jika tidak sama persis, rangkaian nombor yang dihasilkan akhirnya akan berbeza. Ini dipanggil 'Pergantungan sensitif pada keadaan awal'.

Secara matematik, persamaan peta x * r * (1-x) adalah parabola. Seperti yang ditunjukkan dalam gambar ke-2, anda secara grafik dapat menentukan siri-x menggunakan apa yang dikenali sebagai pembinaan jaring laba-laba: mulakan dari x pada paksi mendatar, cari nilai fungsi pada paksi-y, kemudian bayangkan dengan garis lurus pada 45 sudut darjah melalui asal. Ulangi. Seperti yang ditunjukkan untuk siri merah dan biru, walaupun pada awalnya ditutup, mereka menyimpang sepenuhnya setelah sekitar 30 lelaran.

Sekarang, dari mana nombor 'r = 3.9' berasal? Ternyata untuk nilai r rendah, kita hanya mendapat dua nilai x bergantian. Meningkatkan parameter r pada suatu ketika akan beralih ke ayunan antara nilai 4, 8, 16 dan lain-lain. Cabang-cabang atau bifurkasi ini datang lebih cepat dan cepat apabila r meningkat, dalam apa yang disebut sebagai 'tempoh penggandaan laluan ke kekacauan'. Plot dengan r pada paksi mendatar dan banyak x-iterasi bertindih secara menegak akan menghasilkan apa yang dikenali sebagai plot bifurcation (rajah ke-3). Untuk r = 3.9, peta sepenuhnya kacau.

Oleh itu, jika kita mengira banyak kemas kini x dan mengambil sampel daripadanya, kita mendapat nombor rawak? Baiklah, pada tahap ini ia akan menjadi penjana Nombor Rawak Pseudo (PRNG), kerana jika kita selalu bermula dari nilai awal yang sama (setelah keluar semula), kita akan selalu mendapat urutan yang sama; kekacauan alias deterministik. Di sinilah generator entropi masuk, yang menyusun peta logistik dengan nombor yang dihasilkan dari bunyi elektrik yang terdapat di persekitaran.

Dengan kata lain, kod penjana nombor rawak melakukan ini:

- Ukur voltan dari generator entropi pada pin A0. Simpan hanya 4 bit yang paling ketara.

- Ubah 4 bit ini menjadi nilai 'benih', ulangi 8 kali untuk mendapatkan benih terapung 32-bit.

- Jual semula benih antara 0 dan 1.

- Hitung purata biji dan x ini, keadaan peta logistik semasa.

- Maju peta logistik dengan banyak (64) langkah.

- Ekstrak sedikit pun dari keadaan peta logistik x dengan memeriksa beberapa perpuluhan yang tidak signifikan.

- Ubah bit ke hasil akhir.

- Ulangi semua langkah di atas 20 kali.

Nota: Dalam kod, Serial.println dan Serial.begin tidak mencukupi. Keluarkan // untuk memeriksa nombor rawak yang dihasilkan pada monitor bersiri.

Untuk bersikap adil, saya belum memeriksa secara statistik kualiti nombor rawak (mis. Rangkaian ujian NIST) tetapi nampaknya OK.

Langkah 4: Kagumi Mesin Godot Anda

Kagumi Mesin Godot Anda!
Kagumi Mesin Godot Anda!

Nikmati Mesin Godot anda dan sila kongsi, komen dan / atau tanyakan jika ada yang tidak jelas.

Sementara anda menunggu nombor Godot dijumpai, sila pilih peraduan Instructable in Made With Math ini! Terima kasih!

Dibuat dengan Peraduan Matematik
Dibuat dengan Peraduan Matematik
Dibuat dengan Peraduan Matematik
Dibuat dengan Peraduan Matematik

Naib Johan dalam Peraduan Made with Math

Disyorkan: