Obsah:

Godotův stroj: 4 kroky (s obrázky)
Godotův stroj: 4 kroky (s obrázky)

Video: Godotův stroj: 4 kroky (s obrázky)

Video: Godotův stroj: 4 kroky (s obrázky)
Video: Голубая стрела (1958) фильм 2024, Listopad
Anonim
Godotův stroj
Godotův stroj

Co je to Godotův stroj?

Je součástí lidské zkušenosti, že se můžeme ocitnout ve stavu čekání na něco, co se nakonec může stát po dlouhé době čekání, nebo vůbec ne.

Godotův stroj je kus elektro-„umění“poháněný solární energií, který se pokouší zachytit zoufalé emoce doprovázející možná nesmyslné čekání.

Název pochází ze slavné hry Samuela Becketta Čekání na Godota, ve které dva muži čekají na příchod jistého Godota, který by mohl dorazit zítra, pozítří nebo nikdy.

Co tedy Godotův stroj dělá?

  1. 1. Vzhledem k slunečnímu svitu začne obvod Joule Thief nabíjet banku kondenzátorů.
  2. 2. Jakmile je Arduino Nano nabito na přibližně 5V, je napájeno.
  3. 3. Arduino generuje 20bitové skutečné náhodné číslo, které je zobrazeno na 4bitové LED liště.
  4. 4. Toto číslo je porovnáno s jiným náhodným číslem, neznámým všem, které bylo uloženo v eeprom při prvním spuštění obvodu.
  5. 5. Pokud je čekání stejné, stroj tuto skutečnost uloží do eepromu a od této chvíle se aktivuje zelená LED a piezo bzučák (pokud je dostatek energie).
  6. 6. Pokud není stejná, doufejte, zoufejte, opakujte.

… Také jednou za čas vygenerované číslo zazní zvukovým signálem, takže ve skutečnosti nezapomenete, že máte Godotův stroj.

Vzhledem k tomu, že pravděpodobnost zasažení Godotova čísla je 1 přes 2^20 nebo asi jeden z milionu a stroj není příliš rychlý, zvláště v zimě a na podzim, jeho nalezení může trvat roky. Váš Godotův stroj se dokonce může stát součástí vašeho dědictví. Zatímco čekáte, až otestuje další číslo, můžete si představovat, jak to vaše vzdálená pravnoučata konečně uvidí, jak to dospělo k závěru. Stručně řečeno: je to ideální dárek pro nadcházející prázdninové období!

Krok 1: Schéma

Schéma
Schéma

Godotův stroj se skládá z:

-Kombinátor energie Joule Thief (Q1), který nabíjí kondenzátory 9x2200uF. Pro ty, kteří trpí helixafobií (iracionální úzkost induktorů, zatímco kondenzátory a rezistory nepředstavují žádný takový problém), nebojte se, protože není vyžadováno žádné ruční vinutí: spojka je vytvořena umístěním standardních koaxiálních induktorů do vzájemné blízkosti, jak je znázorněno zde v 2. obr. Úžasný trik!

-Diskrétní tranzistorový vypínač (Q2, Q3, Q4), který se zapíná na 5V1 a vypíná kolem 3,0V. Možná budete chtít trochu vyladit R2-R4, pokud používáte různé (obecné) typy tranzistorů.

-Generátor entropie (Q6, Q7, Q8). Tento obvod zesiluje elektronický šum přítomný v prostředí od mikrovoltů po úrovně voltů. Tento signál se poté vzorkuje, aby se naočkoval generátor náhodných čísel založený na chaosu (čtení dále). Kousek kytarové struny funguje jako anténa.

-LED panel se 4 LED diodami nebo 4 červenými samostatnými LED diodami, piezo bzučákem a zelenou LED diodou.

Všimněte si, že výstup spínače napájení (kolektor Q4) je připojen k 5V pinu Arduino Nano, NE ke kolíku VIN!

Krok 2: Sestavení stroje Godot

Stavba Godotova stroje
Stavba Godotova stroje
Stavba Godotova stroje
Stavba Godotova stroje
Stavba Godotova stroje
Stavba Godotova stroje

Obvod jsem postavil na kusu perfboardu. Nic zvláštního. Solární panel 2V/200mA je pozůstatek z jiného projektu. Značka je Velleman. Je snadné jej vypáčit ostrým nožem, vyvrtat otvory pro šrouby atd. Deska plošných spojů a solární panel jsou přišroubovány ke dvěma kusům překližky, jak je znázorněno na obrázku. Předpokládá se, že solární panel může být umístěn na slunci na okenním stojanu.

Krok 3: Kód: Náhodná čísla z chaosu?

Kód: Náhodná čísla z chaosu?
Kód: Náhodná čísla z chaosu?
Kód: Náhodná čísla z chaosu?
Kód: Náhodná čísla z chaosu?
Kód: Náhodná čísla z chaosu?
Kód: Náhodná čísla z chaosu?

Jak se tvoří náhodná čísla? No, jsou vyrobeny s matematikou!

Namísto použití funkce generátoru náhodných čísel Arduino random () jsem se rozhodl napsat vlastní generátor náhodných čísel (RNG), jen tak pro zábavu.

Vychází z logistické mapy, která je nejjednodušším příkladem deterministického chaosu. Funguje to takto:

Předpokládejme, že x je nějaká skutečná hodnota mezi 0 a 1, poté vypočítejte: x*r*(1-x), kde r = 3,9. Výsledkem je vaše další 'x'. Opakujte do nekonečna. Tím získáte řadu čísel mezi 0 a 1, jako na prvním obrázku, kde je tento proces spuštěn pro počáteční hodnotu x = 0,1 (červená) a také x = 0,1001 (modrá).

Tady je skvělá část: bez ohledu na to, jak blízko si vyberete dvě různé počáteční podmínky, pokud nejsou přesně stejné, výsledná řada čísel se nakonec rozejde. Toto se nazývá „citlivá závislost na počátečních podmínkách“.

Matematicky je rovnice mapy x*r*(1-x) parabola. Jak je znázorněno na 2. obrázku, můžete graficky určit řadu x pomocí takzvané konstrukce pavučiny: začněte od x na vodorovné ose, najděte hodnotu funkce na ose y a poté se odrazte proti přímce na 45 stupně úhel procházející počátkem. Opakovat. Jak ukazuje červená a modrá řada, i když se zpočátku zavírají, zhruba po 30 iteracích se zcela rozcházejí.

Odkud tedy pochází číslo 'r = 3,9'? Ukazuje se, že pro nízké hodnoty r získáme pouze dvě střídající se hodnoty x. Zvýšení parametru r pak v určitém bodě přepne na oscilaci mezi 4, 8, 16 hodnotami atd. Tyto větvení nebo rozdvojení přicházejí stále rychleji, jak se zvyšuje r, v čem se nazývá „perioda zdvojnásobení cesty k chaosu“. Graf s r na vodorovné ose a mnoha x-iterátů překrývajících se svisle bude mít za následek takzvaný bifurkační diagram (3. obrázek). Pro r = 3,9 je mapa plně chaotická.

Pokud tedy vypočítáme mnoho aktualizací x a vezmeme z nich vzorky, dostaneme náhodné číslo? No ne, v tomto okamžiku by to byl generátor pseudonáhodných čísel (PRNG), protože kdybychom vždy začínali na stejné počáteční hodnotě (po vyjití z resetu), vždy bychom dostali stejnou sekvenci; aka deterministický chaos. Zde vstupuje generátor entropie, který naočkuje logistickou mapu číslem vytvořeným z elektrického šumu nalezeného v prostředí.

Slovně, kód generátoru náhodných čísel to dělá:

- Změřte napětí z generátoru entropie na pinu A0. Uchovávejte pouze 4 nejméně významné bity.

- Posuňte tyto 4 bity na hodnotu „počátečního“, opakujte 8krát, abyste získali 32bitové osivo s plovoucí desetinnou čárkou.

- Změňte měřítko osiva mezi 0 a 1.

- Vypočítejte průměr tohoto osiva a x, aktuální stav logistické mapy.

- Posuňte logistickou mapu o mnoho (64) kroků.

- Extrahujte jeden bit ze stavu logistické mapy x zaškrtnutím nějakého bezvýznamného desetinného místa.

- Posuňte ten kousek do konečného výsledku.

- Opakujte všechny kroky výše 20krát.

Poznámka: V kódu jsou odkomentovány Serial.println a Serial.begin. Odeberte // a zkontrolujte generovaná náhodná čísla na sériovém monitoru.

Abych byl spravedlivý, kvalitu náhodných čísel (např. Testovací sada NIST) jsem statisticky nekontroloval, ale zdá se, že jsou v pořádku.

Krok 4: Obdivujte svůj Godotův stroj

Žasněte nad svým Godotovým strojem!
Žasněte nad svým Godotovým strojem!

Užijte si svůj Godot Machine a sdílejte, komentujte a/nebo se zeptejte, pokud je něco nejasného.

Zatímco čekáte na nalezení Godotova čísla, hlasujte pro tuto instruktáž v soutěži Made With Math! Dík!

Vyrobeno s matematickou soutěží
Vyrobeno s matematickou soutěží
Vyrobeno s matematickou soutěží
Vyrobeno s matematickou soutěží

Druhé místo v soutěži Made with Math

Doporučuje: