Indholdsfortegnelse:

Godot -maskinen: 4 trin (med billeder)
Godot -maskinen: 4 trin (med billeder)

Video: Godot -maskinen: 4 trin (med billeder)

Video: Godot -maskinen: 4 trin (med billeder)
Video: Необычный 4 тактный двигатель - БЕЗ КЛАПАНОВ гильза вращается Что за зверь такой ??? 2024, Juli
Anonim
Godot -maskinen
Godot -maskinen

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. 1. I betragtning af noget solskin begynder et Joule Thief -kredsløb at oplade en bank kondensatorer.
  2. 2. Når Arduino Nano er opladet til omkring 5V, får den strøm.
  3. 3. Arduino genererer et 20-bit sandt tilfældigt tal, som vises på en 4-bit LED-bjælke.
  4. 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. 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. 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

Det skematiske
Det skematiske

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

Bygger Godot -maskinen
Bygger Godot -maskinen
Bygger Godot -maskinen
Bygger Godot -maskinen
Bygger Godot -maskinen
Bygger 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?

Koden: Tilfældige tal fra kaos?
Koden: Tilfældige tal fra kaos?
Koden: Tilfældige tal fra kaos?
Koden: Tilfældige tal fra kaos?
Koden: Tilfældige tal fra kaos?
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

Forundre din Godot -maskine!
Forundre 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!

Lavet med matematikkonkurrence
Lavet med matematikkonkurrence
Lavet med matematikkonkurrence
Lavet med matematikkonkurrence

Runner Up i konkurrencen Made with Math

Anbefalede: