Sadržaj:

Godotov stroj: 4 koraka (sa slikama)
Godotov stroj: 4 koraka (sa slikama)

Video: Godotov stroj: 4 koraka (sa slikama)

Video: Godotov stroj: 4 koraka (sa slikama)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Prosinac
Anonim
Godotov stroj
Godotov stroj

Što je Godotov stroj?

Dio je ljudskog iskustva da se možemo naći u stanju čekanja na nešto što bi se na kraju moglo dogoditi nakon dugog čekanja, ili uopće ne.

Godot Machine je solarno napajano djelo elektro-"umjetnosti" koje pokušava uhvatiti očajničke emocije koje prate moguće besmisleno čekanje.

Naziv je iz poznate drame Samuela Becketta Čekajući Godoa, u kojoj dva čovjeka čekaju dolazak izvjesnog Godota, koji bi mogao stići sutra, dan poslije ili nikad.

Što radi Godot Machine?

  1. 1. S obzirom na malo sunca, krug Joule Thief počinje puniti kondenzator.
  2. 2. Jednom napunjen na približno 5V, Arduino Nano se napaja.
  3. 3. Arduino generira 20-bitni pravi slučajni broj, koji je prikazan na 4-bitnoj LED traci.
  4. 4. Ovaj se broj uspoređuje s drugim, nepoznatim svima slučajnim brojem, koji je pohranjen u eepromu pri prvom pokretanju kruga.
  5. 5. Ako je jednako, čekanje je završeno, stroj pohranjuje tu činjenicu u eeprom i od sada će se aktivirati zelena LED i piezo biper (ako ima dovoljno energije).
  6. 6. Ako nije jednako, nadajte se, očajavajte, ponovite.

… također, s vremena na vrijeme generirani broj se čuje zvučnim signalom, tako da zapravo ne zaboravite da imate Godot Machine.

S obzirom na to da je vjerojatnost da će pogoditi Godotov broj 1 prema 2^20 ili otprilike jedan u milijun, a stroj nije jako brz, osobito zimi i jeseni, moglo bi potrajati godinama da se to pronađe. Vaš Godot stroj mogao bi čak postati dio vašeg nasljedstva. Dok čekate da testira sljedeći broj, možete maštati o tome kako će vaši daleki praunuci napokon vidjeti da je došao do kraja. Ukratko: idealan je poklon za nadolazeće blagdane!

Korak 1: Shema

Shema
Shema

Stroj Godot sastoji se od:

-Joule Thief kombajn za energiju (Q1) koji puni kondenzatore 9x2200uF. Za one koji pate od heliksafobije (iracionalne napetosti induktora, dok kondenzatori i otpornici ne predstavljaju takav problem), nemojte se bojati jer nije potrebno ručno namotavanje: spojnica se stvara postavljanjem standardnih koaksijalnih induktora u međusobnu blizinu, kao što je prikazano ovdje u 2. slika Strašan trik!

-Diskretni prekidač za napajanje tranzistora (Q2, Q3, Q4), koji se uključuje na 5V1 oko i isključuje na oko 3,0V. Možda ćete htjeti malo podesiti R2-R4 ako koristite različite vrste tranzistora (opće namjene).

-Enertopijski generator (Q6, Q7, Q8). Ovaj krug pojačava elektroničku buku prisutnu u okolišu od mikrovolti do razina volti. Taj se signal zatim uzorkuje kako bi se zasnovao generator slučajnih brojeva temeljen na kaosu (čitaj dalje). Komad gitarske žice djeluje kao antena.

-LED-traka s 4 LED ili 4 odvojene crvene LED diode, piezo zvučnim signalom i zelenom LED diodom.

Imajte na umu da je izlaz prekidača za napajanje (kolektor Q4) spojen na 5V pin Arduino Nano, NE na VIN pin!

Korak 2: Izgradnja Godot stroja

Izgradnja Godot stroja
Izgradnja Godot stroja
Izgradnja Godot stroja
Izgradnja Godot stroja
Izgradnja Godot stroja
Izgradnja Godot stroja

Napravio sam krug na komadu perfarda. Nema tu ništa posebno. Solarni panel 2V/200mA ostatak je drugog projekta. Marka je Velleman. Lako ga je otvoriti oštrim nožem, izbušiti rupe za vijke itd. Ploča i solarna ploča pričvršćeni su na dva komada šperploče, kao što je prikazano na slici. Ideja je da se solarni panel može postaviti prema suncu na mirnom prozoru.

Korak 3: Kôd: Slučajni brojevi iz kaosa?

Kôd: Slučajni brojevi iz kaosa?
Kôd: Slučajni brojevi iz kaosa?
Kôd: Slučajni brojevi iz kaosa?
Kôd: Slučajni brojevi iz kaosa?
Kôd: Slučajni brojevi iz kaosa?
Kôd: Slučajni brojevi iz kaosa?

Kako nastaju slučajni brojevi? Pa, napravljeni su s matematikom!

Umjesto da koristim Arduino funkciju generiranja slučajnih brojeva random (), odlučio sam napisati vlastiti generator slučajnih brojeva (RNG), samo za zabavu.

Temelji se na logističkoj karti, koja je najjednostavniji primjer determinističkog kaosa. Evo kako to funkcionira:

Pretpostavimo da je x neka stvarna vrijednost između 0 i 1, a zatim izračunajte: x*r*(1-x), gdje je r = 3,9. Rezultat je vaš sljedeći 'x'. Ponavljajte beskonačno. To će vam dati niz brojeva između 0 i 1, kao na prvoj slici, gdje se ovaj proces započinje za početnu vrijednost x = 0,1 (crvena) i također x = 0,1001 (plava).

Evo sada cool dijela: koliko god blizu odabrali dva različita početna uvjeta, ako oni nisu potpuno jednaki, rezultirajući niz brojeva će se na kraju razići. To se naziva 'Osjetljiva ovisnost o početnim uvjetima'.

Matematički, jednadžba preslikavanja x*r*(1-x) je parabola. Kao što je prikazano na drugoj slici, niz x možete grafički odrediti pomoću onoga što je poznato kao konstrukcija paučine: počnite od x na vodoravnoj osi, pronađite vrijednost funkcije na osi y, a zatim reflektirajte u odnosu na ravnu liniju na 45 stupnjevi kut koji prolazi kroz ishodište. Ponoviti. Kao što je prikazano za crvenu i plavu seriju, čak i ako se u početku zatvore, potpuno se razilaze nakon 30 -ak ponavljanja.

Odakle dolazi broj 'r = 3,9'? Ispada da za niske vrijednosti r dobivamo samo dvije izmjenične x vrijednosti. Povećanjem r-parametra tada će se u jednom trenutku preći na oscilaciju između 4, 8, 16 vrijednosti itd. Ove grane ili bifurkacije dolaze sve brže s povećanjem r, u onome što se naziva 'period udvostručenja razdoblja do kaosa'. Nacrt s r na vodoravnoj osi i s mnogo x-iteracija preklapanih okomito rezultirat će onim što je poznato kao bifurkacijska ploha (3. slika). Za r = 3,9, karta je potpuno kaotična.

Dakle, ako izračunamo mnogo x-ažuriranja i uzorkujemo iz njih, dobit ćemo slučajan broj? Pa ne, u ovom trenutku to bi bio generator pseudo -slučajnih brojeva (PRNG), jer ako uvijek krećemo od iste početne vrijednosti (nakon izlaska iz resetiranja), uvijek bismo dobili isti slijed; poznat i kao deterministički kaos. Ovdje dolazi generator entropije, koji zasijava logističku kartu s brojem stvorenim od električne buke koja se nalazi u okolišu.

Riječima, kôd generatora slučajnih brojeva to čini:

- Izmjerite napon iz generatora entropije na pinu A0. Zadržite samo 4 najmanje bitna bita.

- Pomaknite ova 4 bita u 'početnu' vrijednost, ponovite 8 puta da biste dobili 32-bitno sjeme s pomičnim zarezom.

- Promijenite veličinu sjemena između 0 i 1.

- Izračunajte prosjek ovog sjemena i x, trenutno stanje logističke karte.

- Unaprijedite logističku kartu u mnogo (64) koraka.

- Izdvojite jedan bit iz stanja logističke karte x provjerom neke beznačajne decimale.

- Prebaci taj dio u konačni rezultat.

- Ponovite sve gore navedene korake 20 puta.

Napomena: U kodu su Serial.println i Serial.begin nadmašeni. Uklonite // kako biste provjerili generirane slučajne brojeve na serijskom monitoru.

Iskreno rečeno, nisam statistički provjerio kvalitetu slučajnih brojeva (npr. NIST testni paket), ali čini se da su u redu.

Korak 4: Divite se svom Godot stroju

Divite se svom Godot stroju!
Divite se svom Godot stroju!

Uživajte u svom Godot stroju i podijelite, komentirajte i/ili pitajte ako je nešto nejasno.

Dok čekate da se pronađe Godotov broj, glasajte za ovaj Instructable u natječaju Made With Math! Hvala!

Napravljeno s matematičkim natjecanjem
Napravljeno s matematičkim natjecanjem
Napravljeno s matematičkim natjecanjem
Napravljeno s matematičkim natjecanjem

Drugoplasirani na natjecanju Made with Math

Preporučeni: