Turinys:

„Godot“mašina: 4 žingsniai (su nuotraukomis)
„Godot“mašina: 4 žingsniai (su nuotraukomis)

Video: „Godot“mašina: 4 žingsniai (su nuotraukomis)

Video: „Godot“mašina: 4 žingsniai (su nuotraukomis)
Video: Пиши лучший код / Паттерн State для GdScript / Godot Engine 4 2024, Liepa
Anonim
„Godot“mašina
„Godot“mašina

Kas yra „Godot“mašina?

Tai yra žmogaus patirties dalis, kad galime atsidurti būsenoje, kai laukiame to, kas ilgainiui gali įvykti po ilgo laukimo arba visai ne.

„Godot“mašina yra saulės energija varomas elektros „meno“kūrinys, kuriuo bandoma užfiksuoti beviltišką emociją, lydinčią galbūt beprasmišką laukimą.

Pavadinimas kilęs iš garsiosios Samuelio Beketo pjesės „Belaukiant Godo“, kurioje du vyrai laukia, kol ateis tam tikras Godotas, kuris gali ateiti rytoj, poryt arba niekada.

Taigi ką veikia „Godot“mašina?

  1. 1. Atsižvelgiant į saulę, „Joule Thief“grandinė pradeda krauti kondensatorių banką.
  2. 2. Įkrovus maždaug 5 V įtampą, „Arduino Nano“yra maitinamas.
  3. 3. „Arduino“sukuria 20 bitų tikrąjį atsitiktinį skaičių, kuris rodomas 4 bitų LED juostoje.
  4. 4. Šis skaičius lyginamas su kitu atsitiktiniu, visiems nežinomu skaičiumi, kuris buvo įrašytas „eeprom“pirmą kartą paleidus grandinę.
  5. 5. Jei lygus, laukimas baigtas, aparatas išsaugo šį faktą „eeprom“ir nuo šiol įjungiamas žalias šviesos diodas ir pjezo pyptelėjimas (jei yra pakankamai energijos).
  6. 6. Jei ne lygūs, viltis, neviltis, pakartokite.

… taip pat kartas nuo karto pyptelėjimas leidžia išgirsti sukurtą skaičių, todėl iš tikrųjų nepamiršite, kad turite „Godot“mašiną.

Atsižvelgiant į tai, kad tikimybė pasiekti Godoto skaičių yra 1 per 2^20 arba maždaug vienas iš milijono, o mašina nėra labai greita, ypač žiemą ir rudenį, ją surasti gali prireikti metų. Jūsų „Godot“mašina netgi gali tapti jūsų palikimo dalimi. Laukdami, kol bus išbandytas kitas skaičius, galite fantazuoti, kaip jūsų tolimi proanūkiai pagaliau gali pamatyti, kaip jis baigiasi. Trumpai tariant: tai ideali dovana artėjančiam atostogų sezonui!

1 žingsnis: schema

Schema
Schema

„Godot“mašiną sudaro:

-Joule Thief energijos kombainas (Q1), kuris įkrauna 9x2200uF kondensatorius. Tiems, kurie kenčia nuo helixaphobia (neracionalios induktorių įtampos, o kondensatoriai ir rezistoriai tokios problemos nekelia), nebijokite, nes nereikia apvijos rankiniu būdu: mova sukuriama įdedant standartinius bendraašius induktorius vienas šalia kito, kaip parodyta čia 2 pav. Nuostabus triukas!

-Diskretinis tranzistoriaus maitinimo jungiklis (Q2, Q3, Q4), kuris įjungiamas esant 5V1 maždaug ir išsijungia esant maždaug 3,0 V įtampai. Jei naudojate skirtingų tipų (bendrosios paskirties) tranzistorius, galbūt norėsite šiek tiek sureguliuoti R2-R4.

-Entropijos generatorius (Q6, Q7, Q8). Ši grandinė sustiprina aplinkoje esantį elektroninį triukšmą nuo mikrovoltų iki voltų lygio. Tada šis signalas imamas imti chaosu pagrįstą (skaityti toliau) atsitiktinių skaičių generatorių. Gitaros stygos veikia kaip antena.

-LED juosta su 4 šviesos diodais arba 4 raudonais atskirais šviesos diodais, pjezo pyptelėjimu ir žaliu šviesos diodu.

Atkreipkite dėmesį, kad maitinimo jungiklio (Q4 kolektoriaus) išėjimas yra prijungtas prie „Arduino Nano“5 V kaiščio, o ne prie VIN kaiščio!

2 žingsnis: „Godot“mašinos kūrimas

„Godot“mašinos kūrimas
„Godot“mašinos kūrimas
„Godot“mašinos kūrimas
„Godot“mašinos kūrimas
„Godot“mašinos kūrimas
„Godot“mašinos kūrimas

Aš sukūriau grandinę ant perforatoriaus gabalo. Nieko ten ypatingo. 2V/200mA saulės kolektorius yra kito projekto likučiai. Prekės ženklas yra „Velleman“. Jį lengva atsukti aštriu peiliu, išgręžti skyles varžtams ir pan. Plokštė ir saulės kolektorius prisukami prie dviejų faneros gabalų, kaip parodyta paveikslėlyje. Idėja yra tai, kad saulės kolektorių galima pastatyti saulės link ant nejudančio lango.

3 žingsnis: kodas: atsitiktiniai skaičiai iš chaoso?

Kodas: atsitiktiniai skaičiai iš chaoso?
Kodas: atsitiktiniai skaičiai iš chaoso?
Kodas: atsitiktiniai skaičiai iš chaoso?
Kodas: atsitiktiniai skaičiai iš chaoso?
Kodas: atsitiktiniai skaičiai iš chaoso?
Kodas: atsitiktiniai skaičiai iš chaoso?

Kaip sudaromi atsitiktiniai skaičiai? Na, jie pagaminti naudojant matematiką!

Užuot naudojęs „Arduino“atsitiktinių skaičių generatoriaus funkciją atsitiktinis (), nusprendžiau savo malonumui parašyti savo atsitiktinių skaičių generatorių (RNG).

Jis pagrįstas logistiniu žemėlapiu, kuris yra paprasčiausias deterministinio chaoso pavyzdys. Štai kaip tai veikia:

Tarkime, x yra tikroji vertė nuo 0 iki 1, tada apskaičiuokite: x*r*(1-x), kur r = 3,9. Rezultatas yra jūsų kitas „x“. Pakartokite be galo. Taip gausite skaičių seriją nuo 0 iki 1, kaip ir pirmoje nuotraukoje, kur šis procesas pradedamas, kai pradinė vertė yra x = 0,1 (raudona), taip pat x = 0,1001 (mėlyna).

Dabar štai šaunioji dalis: kad ir kaip arti pasirinktumėte dvi skirtingas pradines sąlygas, jei jos nėra visiškai lygios, gauta skaičių serija ilgainiui skirsis. Tai vadinama „jautria priklausomybe nuo pradinių sąlygų“.

Matematiškai žemėlapio lygtis x*r*(1-x) yra parabolė. Kaip parodyta 2 paveiksle, galite grafiškai nustatyti x seriją naudodami vadinamąją voratinklio konstrukciją: pradėkite nuo x horizontalioje ašyje, raskite funkcijos reikšmę y ašyje, tada atspindėkite tiesę ties 45 laipsnių kampu, einančiu per kilmę. Pakartokite. Kaip parodyta raudonos ir mėlynos spalvos serijose, net jei jos iš pradžių buvo uždarytos, jos visiškai išsiskiria maždaug po 30 pakartojimų.

Dabar iš kur gaunamas skaičius „r = 3.9“? Pasirodo, kad esant mažoms r reikšmėms gauname tik dvi kintamas x reikšmes. Padidinus r parametrą, tam tikru momentu pereinama prie svyravimų tarp 4, 8, 16 verčių ir tt. Šie išsišakojimai ar išsišakojimai atsiranda vis greičiau, kai r padidėja, vadinama „laikotarpio dvigubinimo keliu į chaosą“. Sklypas su r ant horizontalios ašies ir daug x-iteracijų, persidengiančių vertikaliai, sudarys vadinamąjį bifurkacijos grafiką (3 pav.). Jei r = 3,9, žemėlapis yra visiškai chaotiškas.

Taigi, jei apskaičiuosime daug x atnaujinimų ir imsime iš jų pavyzdį, gausime atsitiktinį skaičių? Na ne, šiuo metu tai būtų pseudo atsitiktinių skaičių generatorius (PRNG), nes jei visada pradėtume nuo tos pačios pradinės vertės (išėję iš naujo), visada gautume tą pačią seką; dar žinomas kaip deterministinis chaosas. Čia įeina entropijos generatorius, kuris sėja logistinį žemėlapį su skaičiumi, sukurtu iš aplinkoje randamo elektros triukšmo.

Žodžiu, atsitiktinių skaičių generatoriaus kodas tai daro:

- Išmatuokite įtampą iš entropijos generatoriaus ant kaiščio A0. Palikite tik 4 mažiausiai reikšmingus bitus.

- Perkelkite šiuos 4 bitus į „sėklos“vertę, pakartokite 8 kartus, kad gautumėte 32 bitų slankiojo kablelio sėklą.

- Pakeiskite sėklos mastelį nuo 0 iki 1.

- Apskaičiuokite šios sėklos vidurkį ir x, dabartinę logistinio žemėlapio būklę.

- Iš anksto atlikite logistinį žemėlapį (64).

- Ištraukite vieną bitą iš logistinio žemėlapio būsenos x, patikrindami nereikšmingą dešimtainį skaičių.

- Perkelkite šiek tiek į galutinį rezultatą.

- Pakartokite visus aukščiau nurodytus veiksmus 20 kartų.

Pastaba: Kode yra „Serial.println“ir „Serial.begin“. Pašalinkite //, kad patikrintumėte serijiniame monitoriuje sugeneruotus atsitiktinius skaičius.

Teisybės dėlei, statistiškai netikrinau atsitiktinių skaičių kokybės (pvz., NIST testų rinkinio), bet atrodo, kad jie yra gerai.

4 žingsnis: stebėkitės savo „Godot“mašina

Stebėkite savo Godot mašiną!
Stebėkite savo Godot mašiną!

Mėgaukitės savo „Godot“mašina ir pasidalykite, komentuokite ir (arba) paklauskite, jei kas neaišku.

Kol laukiate, kol bus rastas Godoto numeris, balsuokite už šį nurodymą konkurse „Made With Math“! Dėkoju!

Sukurtas su matematikos konkursu
Sukurtas su matematikos konkursu
Sukurtas su matematikos konkursu
Sukurtas su matematikos konkursu

Konkurso „Made with Math“laimėtojas

Rekomenduojamas: