Spisu treści:

Maszyna Godot: 4 kroki (ze zdjęciami)
Maszyna Godot: 4 kroki (ze zdjęciami)

Wideo: Maszyna Godot: 4 kroki (ze zdjęciami)

Wideo: Maszyna Godot: 4 kroki (ze zdjęciami)
Wideo: babcia z torebką torebką wypada z piątego piętra z okna #ziemnioki i kartofle 2024, Listopad
Anonim
Maszyna Godota
Maszyna Godota

Co to jest maszyna Godota?

Częścią ludzkiego doświadczenia jest to, że możemy znaleźć się w stanie oczekiwania na coś, co w końcu może się wydarzyć po długim czasie oczekiwania lub wcale.

Maszyna Godot to zasilana energią słoneczną sztuka elektro-„sztuki”, która próbuje uchwycić rozpaczliwe emocje, które towarzyszą prawdopodobnie bezsensownemu oczekiwaniu.

Nazwa pochodzi ze słynnej sztuki Samuela Becketta Czekając na Godota, w której dwóch mężczyzn czeka na przybycie pewnego Godota, który może przybyć jutro, pojutrze lub nigdy.

Więc co robi Maszyna Godota?

  1. 1. Przy odrobinie nasłonecznienia obwód Joule Thief zaczyna ładować baterię kondensatorów.
  2. 2. Po naładowaniu do około 5 V Arduino Nano jest zasilane.
  3. 3. Arduino generuje 20-bitową prawdziwą liczbę losową, która jest pokazana na 4-bitowym pasku LED.
  4. 4. Ta liczba jest porównywana z inną losową liczbą, nieznaną wszystkim, która była przechowywana w eepromie przy pierwszym uruchomieniu obwodu.
  5. 5. Jeśli jest równy, oczekiwanie się skończyło, urządzenie zapisuje ten fakt w eepromie i od tej chwili włącza się zielona dioda LED i piezoelektryczny brzęczyk (jeśli jest wystarczająca ilość energii).
  6. 6. Jeśli nie jest równy, miej nadzieję, rozpacz, powtórz.

… poza tym raz na jakiś czas wygenerowana liczba jest słyszalna przez brzęczyk, więc nie zapominasz, że masz Godot Machine.

Biorąc pod uwagę, że prawdopodobieństwo trafienia liczby Godota wynosi 1 przez 2^20, czyli około 1 na milion, a maszyna nie jest zbyt szybka, szczególnie zimą i jesienią, znalezienie jej może zająć lata. Twój Godot Machine może nawet stać się częścią twojego dziedzictwa. Czekając, aż przetestuje następny numer, możesz fantazjować o tym, jak odległe praprawnuki mogą w końcu zobaczyć, jak to się kończy. W skrócie: to idealny prezent na nadchodzące święta!

Krok 1: Schemat

Schemat
Schemat

Maszyna Godot składa się z:

- Urządzenie do pozyskiwania energii Joule Thief (Q1), które ładuje kondensatory 9x2200uF. Dla tych, którzy cierpią na heliksafobię (irracjonalny niepokój cewek, podczas gdy kondensatory i rezystory nie stanowią takiego problemu), nie obawiaj się, ponieważ nie jest wymagane ręczne nawijanie: sprzężenie powstaje poprzez umieszczenie standardowych cewek koncentrycznych w pobliżu siebie, jak pokazano tutaj Drugie zdjęcie. Niesamowita sztuczka!

- Dyskretny tranzystorowy przełącznik zasilania (Q2, Q3, Q4), który włącza się przy 5V1 około i wyłącza przy około 3,0V. Możesz trochę dostroić R2-R4, jeśli używasz różnych (ogólnych) typów tranzystorów.

- Generator entropii (Q6, Q7, Q8). Obwód ten wzmacnia szum elektroniczny obecny w środowisku od mikrowoltów do poziomów woltów. Ten sygnał jest następnie próbkowany, aby zainicjować oparty na chaosie (odczytywany) generator liczb losowych. Kawałek struny gitarowej działa jak antena.

-Listwa LED z 4 diodami LED lub 4 oddzielnymi czerwonymi diodami LED, sygnalizatorem piezoelektrycznym i zieloną diodą LED.

Zauważ, że wyjście wyłącznika zasilania (kolektora Q4) jest podłączone do pinu 5V Arduino Nano, a NIE do pinu VIN!

Krok 2: Budowa maszyny Godot

Budowa maszyny Godota
Budowa maszyny Godota
Budowa maszyny Godota
Budowa maszyny Godota
Budowa maszyny Godota
Budowa maszyny Godota

Układ zbudowałem na kawałku płyty perforowanej. Nic specjalnego. Panel słoneczny 2V/200mA to pozostałość z innego projektu. Marka to Velleman. Łatwo ją podważyć ostrym nożem, wywiercić otwory na śruby itp. Płytka drukowana i panel słoneczny są przykręcone do dwóch kawałków sklejki, jak pokazano na zdjęciu. Pomysł polega na tym, że panel słoneczny można ustawić w kierunku słońca na nieruchomym oknie.

Krok 3: Kod: losowe liczby z chaosu?

Kod: losowe liczby z chaosu?
Kod: losowe liczby z chaosu?
Kod: losowe liczby z chaosu?
Kod: losowe liczby z chaosu?
Kod: losowe liczby z chaosu?
Kod: losowe liczby z chaosu?

Jak powstają liczby losowe? Cóż, są zrobione z matematyki!

Zamiast używać funkcji generatora liczb losowych Arduino random(), postanowiłem napisać własny generator liczb losowych (RNG), dla zabawy.

Opiera się na mapie logistycznej, która jest najprostszym przykładem chaosu deterministycznego. Oto jak to działa:

Załóżmy, że x jest wartością rzeczywistą z zakresu od 0 do 1, a następnie oblicz: x*r*(1-x), gdzie r=3,9. Wynikiem jest twój następny „x”. Powtarzaj w nieskończoność. To da ci serię liczb od 0 do 1, jak na pierwszym rysunku, gdzie ten proces jest uruchamiany dla wartości początkowej x=0,1 (czerwony) oraz x=0,1001 (niebieski).

A teraz fajna część: bez względu na to, jak blisko wybierzesz dwa różne warunki początkowe, jeśli nie są one dokładnie równe, wynikowe serie liczb w końcu się rozejdą. Nazywa się to „Wrażliwą zależnością od warunków początkowych”.

Matematycznie równanie mapy x*r*(1-x) jest parabolą. Jak pokazano na drugim rysunku, można graficznie określić serię x za pomocą tak zwanej konstrukcji pajęczyny: zacznij od x na osi poziomej, znajdź wartość funkcji na osi y, a następnie odbij od linii prostej przy 45 kąt stopni przechodzący przez początek. Powtarzać. Jak pokazano dla serii czerwonej i niebieskiej, nawet jeśli początkowo są bliskie, całkowicie się rozchodzą po około 30 iteracjach.

Skąd wzięła się liczba r=3,9? Okazuje się, że dla niskich wartości r otrzymujemy tylko dwie naprzemienne wartości x. Zwiększenie parametru r spowoduje przejście w pewnym momencie do oscylacji między 4, 8, 16 wartościami itd. Te rozgałęzienia lub bifurkacje przychodzą coraz szybciej wraz ze wzrostem r, co nazywa się „podwajającą okresową drogą prowadzącą do chaosu”. Wykres z r na osi poziomej i wieloma nakładającymi się w pionie iteracjami x da w wyniku tak zwany wykres bifurkacji (rysunek 3). Dla r=3,9 mapa jest całkowicie chaotyczna.

Więc jeśli obliczymy wiele aktualizacji x i pobierzemy z nich próbkę, otrzymamy liczbę losową? Cóż, w tym momencie byłby to generator pseudolosowych liczb (PRNG), ponieważ jeśli zawsze zaczynamy od tej samej wartości początkowej (po wyjściu z resetu), zawsze otrzymujemy tę samą sekwencję; aka chaos deterministyczny. Tu właśnie pojawia się generator entropii, który zasiewa mapę logistyczną liczbą utworzoną z szumu elektrycznego znajdującego się w środowisku.

Słowem, kod generatora liczb losowych robi to:

- Zmierz napięcie z generatora entropii na styku A0. Zachowaj tylko 4 najmniej znaczące bity.

- Przesuń te 4 bity do wartości „ziarna”, powtórz 8 razy, aby uzyskać 32-bitowy ziarno zmiennoprzecinkowe.

- Zmień skalę nasion od 0 do 1.

- Oblicz średnią tego materiału siewnego i x, aktualny stan mapy logistycznej.

- Przesuń mapę logistyczną o wiele (64) kroków.

- Wyodrębnij pojedynczy bit ze stanu mapy logistycznej x, sprawdzając nieznaczną liczbę dziesiętną.

- Przesuń ten bit na wynik końcowy.

- Powtórz wszystkie powyższe kroki 20 razy.

Uwaga: W kodzie, Serial.println i Serial.begin są odkomentowane. Usuń //, aby sprawdzić wygenerowane liczby losowe na monitorze szeregowym.

Aby być uczciwym, nie sprawdziłem statystycznie jakości liczb losowych (np. zestaw testów NIST), ale wydają się być OK.

Krok 4: Podziwiaj swoją maszynę Godot

Podziwiaj swoją maszynę Godot!
Podziwiaj swoją maszynę Godot!

Ciesz się swoim Godot Machine i dziel się, komentuj i/lub pytaj, jeśli coś jest niejasne.

Czekając na znalezienie numeru Godota, zagłosuj na ten Instructable w konkursie Made With Math! Dziękuję!

Wykonane w konkursie matematycznym
Wykonane w konkursie matematycznym
Wykonane w konkursie matematycznym
Wykonane w konkursie matematycznym

Drugie miejsce w konkursie Made with Math

Zalecana: