Indholdsfortegnelse:
- Trin 1: Skematisk
- Trin 2: Bygning af Godot -maskinen
- Trin 3: Koden: Tilfældige tal fra kaos?
- Trin 4: Forundring over din Godot -maskine
Video: Godot -maskinen: 4 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Hvad er en Godot -maskine?
Det er en del af den menneskelige oplevelse, at vi kan befinde os i en tilstand af at vente på noget, der i sidste ende kan ske efter lang ventetid eller slet ikke.
Godot-maskinen er et soldrevet stykke elektro- "kunst", der forsøger at fange den desperate følelse, der ledsager muligvis meningsløs ventetid.
Navnet er fra Samuel Becketts berømte skuespil Waiting for Godot, hvor to mænd venter på, at en bestemt Godot kommer, som måske ankommer i morgen, dagen efter eller aldrig.
Så hvad gør Godot -maskinen?
- 1. I betragtning af noget solskin begynder et Joule Thief -kredsløb at oplade en bank kondensatorer.
- 2. Når Arduino Nano er opladet til omkring 5V, får den strøm.
- 3. Arduino genererer et 20-bit sandt tilfældigt tal, som vises på en 4-bit LED-bjælke.
- 4. Dette tal sammenlignes med et andet tilfældigt tal, ukendt for alle, der blev gemt i eeprom første gang kredsløbet startede.
- 5. Hvis lige, ventetiden er slut, gemmer maskinen denne kendsgerning i eeprom, og fra nu af aktiveres den grønne LED og piezo -bipper (hvis der er nok energi).
- 6. Hvis ikke lige, håb, fortvivlelse, gentag.
… også en gang imellem bliver det genererede nummer hørbart af bipperen, så du faktisk ikke glemmer, at du har en Godot -maskine.
I betragtning af at sandsynligheden for at ramme Godot -tallet er 1 over 2^20 eller cirka en ud af en million, og maskinen ikke er særlig hurtig, især om vinteren og efteråret, kan det tage år at finde den. Din Godot -maskine kan endda blive en del af din arv. Mens du venter på, at det skal teste det næste nummer, kan du fantasere om, hvordan dine fjerne oldebørn endelig kan se det komme til sin konklusion. Kort sagt: det er den ideelle gave til den kommende feriesæson!
Trin 1: Skematisk
Godot -maskinen består af:
-En Joule Thief energihøstmaskine (Q1), der oplader 9x2200uF kondensatorer. For dem, der lider af helixafobi (en irrationel angst af induktorer, mens kondensatorer og modstande ikke udgør et sådant problem), frygt ikke, da der ikke kræves nogen manuel vikling: koblingen skabes ved at placere standard koaksiale induktorer i hinandens nærhed som vist her i 2. billede. Fantastisk trick!
-En diskret transistor -afbryder (Q2, Q3, Q4), som tændes ved 5V1 omkring og fra omkring 3,0V. Du vil måske indstille R2-R4 lidt, hvis du bruger forskellige (generelle formål) transistortyper.
-En entropi generator (Q6, Q7, Q8). Dette kredsløb forstærker den elektroniske støj, der findes i miljøet, fra mikrovolt til volt. Dette signal samples derefter for at frø en kaosbaseret (læs videre) tilfældig talgenerator. Et stykke guitarstreng fungerer som en antenne.
-En LED-bar med 4 lysdioder eller 4 røde separate lysdioder, et piezo-bipper og en grøn LED.
Bemærk, at afbryderens udgang (samler af Q4) er forbundet til 5V -stiften på Arduino Nano, IKKE til VIN -stiften!
Trin 2: Bygning af Godot -maskinen
Jeg byggede kredsløbet på et stykke perfboard. Intet særligt der. 2V/200mA solpanelet er en rest fra et andet projekt. Mærket er Velleman. Det er let at lirke den op ved hjælp af en skarp kniv, til at bore huller til skruer osv. Kretskort og solpanel skrues fast på to stykker krydsfiner, som vist på billedet. Ideen er, at solpanelet kan placeres mod solen på et vindue stille.
Trin 3: Koden: Tilfældige tal fra kaos?
Hvordan laves de tilfældige tal? Nå, de er lavet med matematik!
I stedet for at bruge Arduino random number generator -funktionen random (), besluttede jeg at skrive min egen Random Number Generator (RNG), bare for sjov.
Det er baseret på det logistiske kort, som er det enkleste eksempel på deterministisk kaos. Sådan fungerer det:
Antag at x er en reel værdi mellem 0 og 1, og bereg derefter: x*r*(1-x), hvor r = 3,9. Resultatet er dit næste 'x'. Gentag ad infinitum. Dette vil give dig en række tal mellem 0 og 1, som på det første billede, hvor denne proces startes for den oprindelige værdi på x = 0,1 (rød) og også x = 0,1001 (blå).
Nu er det den fede del: uanset hvor tæt du vælger to forskellige indledende betingelser, hvis de ikke ligefrem er ens, vil den resulterende række tal til sidst afvige. Dette kaldes 'Følsom afhængighed af indledende forhold'.
Matematisk er kortligningen x*r*(1-x) en parabel. Som vist i 2. figur kan du grafisk bestemme x-serien ved hjælp af en såkaldt spindelvævskonstruktion: start fra x på den vandrette akse, find funktionsværdien på y-aksen og reflekter derefter mod en lige linje ved 45 graders vinkel gennem oprindelsen. Gentage. Som vist for den røde og blå serie, afviger de fuldstændigt efter omkring 30 iterationer, selvom de i starten er tætte.
Nu, hvor kommer 'r = 3.9' -nummeret fra? Det viser sig, at for lave værdier af r får vi kun to skiftevis x-værdier. Forøgelse af r-parameteren vil derefter på et tidspunkt skifte til en oscillation mellem 4, 8, 16 værdier osv. Disse forgreninger eller forgreninger kommer hurtigere og hurtigere, efterhånden som r øges, i det der kaldes en 'periodedouble route to chaos'. Et plot med r på den vandrette akse og mange x-iterater overlappet vertikalt vil resultere i det, der er kendt som et bifurcation-plot (3. figur). For r = 3,9 er kortet fuldstændig kaotisk.
Så hvis vi beregner mange x-opdateringer og prøver fra dem, får vi et tilfældigt tal? Nå nej, på dette tidspunkt ville det være en Pseudo Random Number generator (PRNG), da hvis vi altid starter fra den samme startværdi (efter at være kommet ud af nulstillingen), ville vi altid få den samme sekvens; aka deterministisk kaos. Det er her entropi-generatoren kommer ind, som frøer det logistiske kort med et tal skabt af elektrisk støj, der findes i miljøet.
Med ord gør tilfældig talgenerator -koden dette:
- Mål spændingen fra entropi generatoren på pin A0. Gem kun de 4 mindst betydende bits.
- Skift disse 4 bits til en 'seed' værdi, gentag 8 gange for at få et 32-bit floating point seed.
- Omskaler frøet mellem 0 og 1.
- Beregn gennemsnittet af dette frø og x, den aktuelle tilstand af det logistiske kort.
- Fremfør det logistiske kort mange (64) trin.
- Udtræk en enkelt bit fra den logistiske korttilstand x ved at kontrollere nogle ubetydelige decimaler.
- Skift den bit ind i det endelige resultat.
- Gentag alle trin over 20 gange.
Bemærk: I koden udlægges Serial.println og Serial.begin. Fjern // for at kontrollere de genererede tilfældige tal på den serielle skærm.
For at være retfærdig har jeg ikke statistisk set kontrolleret kvaliteten af tilfældige tal (f.eks. NIST -testsuite), men de ser ud til at være OK.
Trin 4: Forundring over din Godot -maskine
Nyd din Godot -maskine, og del, kommenter og/eller spørg, hvis noget er uklart.
Mens du venter på, at Godot -nummeret findes, skal du stemme på denne Instructable i Made With Math -konkurrencen! Tak!
Runner Up i konkurrencen Made with Math
Anbefalede:
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: 7 trin (med billeder)
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: Jeg planlægger at bruge denne Rapsberry PI i en masse sjove projekter tilbage i min blog. Tjek det gerne ud. Jeg ville tilbage til at bruge min Raspberry PI, men jeg havde ikke et tastatur eller en mus på min nye placering. Det var et stykke tid siden jeg konfigurerede en hindbær
Arduino Halloween Edition - Pop -out -skærm med zombier (trin med billeder): 6 trin
Arduino Halloween Edition - Zombies Pop -out -skærm (trin med billeder): Vil du skræmme dine venner og lave skrigende støj i Halloween? Eller vil du bare lave en god sjov? Denne pop-out-skærm fra Zombies kan gøre det! I denne Instructable vil jeg lære dig, hvordan du nemt laver jump-out zombier ved hjælp af Arduino. HC-SR0
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
Ciclop 3d Scanner My Way Trin for trin: 16 trin (med billeder)
Ciclop 3d Scanner My Way Step by Step: Hej alle sammen, jeg kommer til at indse den berømte Ciclop 3D -scanner.Alle trin, der er godt forklaret på det originale projekt, er ikke til stede.Jeg lavede nogle rettelser for at forenkle processen, først Jeg udskriver basen, og end jeg genstarter printkortet, men fortsæt
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: 7 trin (med billeder)
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: Selv efter 25 års introduktion til forbrugermarkedet er infrarød kommunikation stadig meget relevant i de seneste dage. Uanset om det er dit 55 tommer 4K -fjernsyn eller dit billydsystem, har alt brug for en IR -fjernbetjening for at reagere på vores