Cuprins:

Mașina Godot: 4 pași (cu imagini)
Mașina Godot: 4 pași (cu imagini)

Video: Mașina Godot: 4 pași (cu imagini)

Video: Mașina Godot: 4 pași (cu imagini)
Video: UN VAPOR PLIN CU 4000 DE MAȘINI DE LUX ARDE DE 4 ZILE! 2024, Iulie
Anonim
Mașina Godot
Mașina Godot

Ce este o mașină Godot?

Face parte din experiența umană că ne putem găsi într-o stare de așteptare pentru ceva care s-ar putea întâmpla în cele din urmă după o lungă perioadă de așteptare, sau deloc.

Mașina Godot este o piesă de electro „artă” alimentată cu energie solară, care încearcă să surprindă emoția disperată care însoțește așteptările fără rost.

Numele este din celebra piesă a lui Samuel Beckett Waiting for Godot, în care doi bărbați așteaptă venirea unui anumit Godot, care ar putea sosi mâine, poimâine sau niciodată.

Deci, ce face Mașina Godot?

  1. 1. Având puțină rază de soare, un circuit Joule Thief începe să încarce un banc de condensatori.
  2. 2. Odată încărcat la aproximativ 5V, Arduino Nano este alimentat.
  3. 3. Arduino generează un număr aleatoriu adevărat de 20 de biți, care este afișat pe o bară LED pe 4 biți.
  4. 4. Acest număr este comparat cu un alt număr aleatoriu, necunoscut tuturor, care a fost stocat în eeprom prima dată când a pornit circuitul.
  5. 5. Dacă este egal, așteptarea s-a încheiat, mașina stochează acest fapt în eeprom și de acum înainte se activează LED-ul verde și bezo-ul piezo (dacă există suficientă energie).
  6. 6. Dacă nu este egal, speră, disperă, repetă.

… De asemenea, din când în când, numărul generat este audibil de către bip, astfel încât să nu uitați de fapt că aveți o mașină Godot.

Având în vedere că probabilitatea de a atinge numărul Godot este 1 peste 2 ^ 20 sau aproximativ unul la un milion, iar mașina nu este foarte rapidă, mai ales iarna și toamna, ar putea dura ani să o găsim. Mașina ta Godot ar putea chiar să devină parte a moștenirii tale. În timp ce așteptați ca acesta să testeze numărul următor, puteți să fanteziți despre modul în care stră-strănepoții voștri îndepărtați îl pot vedea în cele din urmă ajungând la concluzia sa. Pe scurt: este cadoul ideal pentru următorul sezon de vacanță!

Pasul 1: Schema

Schema
Schema

Mașina Godot constă din:

-Un recoltator de energie Joule Thief (Q1) care încarcă condensatori de 9x2200uF. Pentru cei care suferă de helixafobie (o durere irațională a inductoarelor, în timp ce condensatorii și rezistențele nu prezintă o astfel de problemă), nu vă temeți, deoarece nu este necesară înfășurarea manuală: cuplajul este creat prin plasarea inductoarelor coaxiale standard în vecinătatea celuilalt, așa cum se arată aici în A doua fotografie. Minunat truc!

-Un comutator discret de alimentare cu tranzistor (Q2, Q3, Q4), care pornește la 5V1 aproximativ și se oprește la aproximativ 3,0V. S-ar putea să doriți să reglați puțin R2-R4 dacă utilizați diferite tipuri de tranzistoare (cu scop general).

-Un generator de entropie (Q6, Q7, Q8). Acest circuit amplifică zgomotul electronic prezent în mediu de la niveluri de microvolți la volți. Acest semnal este apoi eșantionat pentru a însămânța un generator de numere aleatorii bazat pe haos (citit pe). O bucată de coardă de chitară acționează ca o antenă.

-O bară cu LED-uri cu 4 LED-uri sau 4 LED-uri roșii separate, un semnal sonor piezo și un LED verde.

Rețineți că ieșirea comutatorului de alimentare (colectorul Q4) este conectată la pinul de 5V al Arduino Nano, NU la pinul VIN!

Pasul 2: Construirea mașinii Godot

Construirea Mașinii Godot
Construirea Mașinii Godot
Construirea Mașinii Godot
Construirea Mașinii Godot
Construirea Mașinii Godot
Construirea Mașinii Godot

Am construit circuitul pe o bucată de perfboard. Nimic special acolo. Panoul solar 2V / 200mA este un rest de la un alt proiect. Marca este Velleman. Este ușor să-l deschideți cu ajutorul unui cuțit ascuțit, să găuriți șuruburile etc. Placa de circuit și panoul solar sunt înșurubate pe două bucăți de placaj, așa cum se arată în imagine. Ideea este că panoul solar poate fi poziționat spre soare pe o fereastră.

Pasul 3: Codul: numere aleatorii din haos?

Codul: numere aleatorii din haos?
Codul: numere aleatorii din haos?
Codul: numere aleatorii din haos?
Codul: numere aleatorii din haos?
Codul: numere aleatorii din haos?
Codul: numere aleatorii din haos?

Cum se fac numerele aleatorii? Ei bine, sunt făcute cu matematică!

În loc să folosesc funcția generator de numere aleatoare Arduino random (), am decis să scriu propriul meu generator de numere aleatorii (RNG), doar pentru distracție.

Se bazează pe harta logistică, care este cel mai simplu exemplu de haos determinist. Iată cum funcționează:

Să presupunem că x este o valoare reală între 0 și 1, apoi calculați: x * r * (1-x), unde r = 3,9. Rezultatul este următorul tău „x”. Repetați la infinit. Acest lucru vă va oferi o serie de numere între 0 și 1, ca în prima imagine, unde acest proces este început pentru valoarea inițială de x = 0,1 (roșu) și, de asemenea, x = 0,1001 (albastru).

Acum, iată partea interesantă: indiferent cât de aproape alegeți două condiții inițiale diferite, dacă acestea nu sunt exact egale, seria de numere rezultate va diferi în cele din urmă. Aceasta se numește „Dependență sensibilă de condițiile inițiale”.

Matematic, ecuația hărții x * r * (1-x) este o parabolă. Așa cum se arată în a doua figură, puteți determina grafic seria x folosind ceea ce este cunoscut sub numele de construcție de pânză de păianjen: începeți de la x pe axa orizontală, găsiți valoarea funcției pe axa y, apoi reflectați pe o linie dreaptă la 45 grade unghi care trece prin origine. Repeta. Așa cum se arată pentru seria roșie și albastră, chiar dacă se închid inițial, acestea diferă complet după aproximativ 30 de iterații.

Acum, de unde vine numărul „r = 3,9”? Se pare că pentru valori scăzute ale lui r, obținem doar două valori x alternative. Creșterea parametrului r va trece la un moment dat la o oscilație între 4, 8, 16 valori etc. Aceste ramificări sau bifurcații vin din ce în ce mai rapid pe măsură ce r este crescut, în ceea ce se numește o „rută de dublare a perioadei către haos”. Un grafic cu r pe axa orizontală și multe iterații x suprapuse vertical va duce la ceea ce este cunoscut sub numele de grafic de bifurcație (a treia figură). Pentru r = 3,9, harta este complet haotică.

Deci, dacă calculăm multe actualizări x și eșantionăm din ele, vom obține un număr aleatoriu? Ei bine, nu, în acest moment ar fi un generator de numere aleatorii Pseudo (PRNG), deoarece dacă pornim întotdeauna de la aceeași valoare inițială (după ieșirea din resetare), am obține întotdeauna aceeași secvență; aka haos determinist. Aici intervine generatorul de entropie, care însămânțează harta logistică cu un număr creat din zgomotul electric găsit în mediu.

În cuvinte, codul generatorului de numere aleatorii face acest lucru:

- Măsurați tensiunea de la generatorul de entropie pe pinul A0. Păstrați doar cei 4 biți cel mai puțin semnificativi.

- Deplasați acești 4 biți într-o valoare „seed”, repetați de 8 ori pentru a obține un seed în virgulă mobilă pe 32 de biți.

- Redimensionați sămânța între 0 și 1.

- Calculați media acestei semințe și x, starea curentă a hărții logistice.

- Avansați harta logistică în mai mulți (64) pași.

- Extrageți un singur bit din starea logistică a hărții x verificând câteva zecimale nesemnificative.

- Treceți puțin în rezultatul final.

- Repetați toți pașii de peste 20 de ori.

Notă: În cod, Serial.println și Serial.begin sunt comentate. Eliminați // pentru a verifica numerele aleatorii generate pe monitorul serial.

Pentru a fi corect, nu am verificat statistic calitatea numerelor aleatorii (de exemplu, suita de testare NIST), dar acestea par a fi OK.

Pasul 4: Minunează-te de Mașina ta Godot

Minunează-te de mașina ta Godot!
Minunează-te de mașina ta Godot!

Bucurați-vă de mașina dvs. Godot și vă rugăm să împărtășiți, să comentați și / sau să întrebați dacă există ceva neclar.

În timp ce așteptați să se găsească numărul Godot, vă rugăm să votați acest instructabil în concursul Made With Math! Mulțumiri!

Realizat cu concurs de matematică
Realizat cu concurs de matematică
Realizat cu concurs de matematică
Realizat cu concurs de matematică

Runner Up în concursul Made with Math

Recomandat: