Съдържание:

Машината Godot: 4 стъпки (със снимки)
Машината Godot: 4 стъпки (със снимки)

Видео: Машината Godot: 4 стъпки (със снимки)

Видео: Машината Godot: 4 стъпки (със снимки)
Видео: КАК ВЫГЛЯДИТ СТАК ЯБЛОК В РЕАЛЬНОЙ ЖИЗНИ? Компот в Майнкрафт #shorts 2024, Декември
Anonim
Машината на Годо
Машината на Годо

Какво представлява машината Godot?

Част от човешкия опит е, че можем да се окажем в състояние на чакане за нещо, което в крайна сметка може да се случи след дълго време на чакане, или изобщо да не се случи.

Машината Godot е слънчево електрическо произведение на изкуството, което се опитва да улови отчаяната емоция, която съпътства евентуално безсмислено чакане.

Името е от известната пиеса на Самюъл Бекет „В очакване на Годо“, в която двама мъже чакат идването на определен Годо, който може да пристигне утре, ден след това или никога.

И така, какво прави машината Godot?

  1. 1. При известно слънчево греене, верига на крадец на Джоул започва да зарежда банка от кондензатори.
  2. 2. След като се зареди до около 5V, Arduino Nano се захранва.
  3. 3. Arduino генерира 20-битово истинно случайно число, което се показва на 4-битова LED лента.
  4. 4. Това число се сравнява с друго произволно число, неизвестно за всички, което се съхранява в eeprom при първото стартиране на веригата.
  5. 5. Ако е равно, чакането приключва, машината съхранява този факт в eeprom и оттук нататък зеленият светодиод и пиезо бийпър се активират (ако има достатъчно енергия).
  6. 6. Ако не са равни, надежда, отчаяние, повторете.

… също така, от време на време генерираният номер се чува от звуковия сигнал, така че всъщност не забравяте, че имате машина Godot.

Като се има предвид, че вероятността да ударите числото на Годо е 1 над 2^20 или около един на милион и машината не е много бърза, особено през зимата и есента, може да отнеме години, за да я намерите. Вашата машина Godot може дори да стане част от вашето наследство. Докато чакате да тества следващото число, можете да фантазирате как вашите далечни правнуци най -накрая могат да го видят да стигне до своя край. Накратко: това е идеалният подарък за предстоящия празничен сезон!

Стъпка 1: Схемата

Схемата
Схемата

Машината Godot се състои от:

-Енергиен комбайн Joule Thief (Q1), който зарежда 9x2200uF кондензатори. За тези, които страдат от хеликсафобия (ирационална вълна от индуктори, докато кондензаторите и резисторите не създават такъв проблем), не се страхувайте, тъй като не се изисква ръчно навиване: съединителят се създава чрез поставяне на стандартни коаксиални индуктори в близост един до друг, както е показано тук в 2 -ра снимка. Страхотен трик!

-Дискретен превключвател за захранване на транзистора (Q2, Q3, Q4), който се включва при 5V1 около и изключва при около 3.0V. Може да искате да настроите R2-R4 малко, ако използвате различни типове транзистори (с общо предназначение).

-Генератор на ентропия (Q6, Q7, Q8). Тази схема усилва електронния шум, присъстващ в околната среда, от микроволта до нива на волта. След това този сигнал се изважда, за да зароди генератор на случайни числа, базиран на хаос (четене). Една струна от китара действа като антена.

-LED лента с 4 светодиода или 4 червени отделни светодиода, пиезо бипер и зелен светодиод.

Обърнете внимание, че изходът на превключвателя на захранването (колектор на Q4) е свързан към 5V щифта на Arduino Nano, НЕ към VIN щифта!

Стъпка 2: Изграждане на машината Godot

Изграждане на машината Godot
Изграждане на машината Godot
Изграждане на машината Godot
Изграждане на машината Godot
Изграждане на машината Godot
Изграждане на машината Godot

Изградих веригата върху парче перфорирана дъска. Нищо особено там. Слънчевият панел 2V/200mA е остатък от друг проект. Марката е Velleman. Лесно е да го отворите с остър нож, да пробиете отвори за винтове и др. Платката и слънчевият панел се завинтват към две парчета шперплат, както е показано на снимката. Идеята е, че слънчевият панел може да бъде позициониран към слънцето върху неподвижен прозорец.

Стъпка 3: Кодът: Случайни числа от хаоса?

Кодът: Случайни числа от хаоса?
Кодът: Случайни числа от хаоса?
Кодът: Случайни числа от хаоса?
Кодът: Случайни числа от хаоса?
Кодът: Случайни числа от хаоса?
Кодът: Случайни числа от хаоса?

Как се правят случайните числа? Е, те са направени с математика!

Вместо да използвам функцията за генериране на произволни числа Arduino random (), реших да напиша свой собствен генератор на произволни числа (RNG), само за забавление.

Тя се основава на логистичната карта, която е най -простият пример за детерминиран хаос. Ето как работи:

Да предположим, че x е някаква реална стойност между 0 и 1, след това изчислете: x*r*(1-x), където r = 3.9. Резултатът е следващият ви „x“. Повторете безкрайно. Това ще ви даде поредица от числа между 0 и 1, както на първата снимка, където този процес се стартира за началната стойност на x = 0,1 (червено), а също и x = 0,1001 (синьо).

Сега ето готината част: без значение колко близо сте избрали две различни начални условия, ако те не са точно равни, получената поредица от числа в крайна сметка ще се разминават. Това се нарича „чувствителна зависимост от началните условия“.

Математически уравнението на картата x*r*(1-x) е парабола. Както е показано на втората фигура, можете да определите графично серията x, като използвате това, което е известно като конструкция на паяжина: започнете от x по хоризонталната ос, намерете стойността на функцията по оста y, след това отразете срещу права линия на 45 градусов ъгъл, преминаващ през началото. Повторете. Както е показано за червената и синята серия, дори и да се затварят първоначално, те се разминават напълно след около 30 повторения.

Сега, откъде идва числото 'r = 3.9'? Оказва се, че за ниски стойности на r получаваме само две редуващи се x-стойности. Увеличаването на r-параметъра след това в един момент ще премине към колебание между 4, 8, 16 стойности и т.н. Тези разклонения или бифуркации идват все по-бързо с увеличаването на r, в това, което се нарича „период на удвояване на периода към хаос“. График с r по хоризонталната ос и много x-итерации, припокрити вертикално, ще доведе до това, което е известно като бифуркационен график (3-та фигура). При r = 3,9 картата е напълно хаотична.

Така че, ако изчислим много x-актуализации и вземем проба от тях, получаваме случайно число? Е, не, в този момент това ще бъде генератор на псевдо произволни числа (PRNG), тъй като ако винаги започваме от една и съща начална стойност (след излизане от нулиране), винаги ще получим една и съща последователност; известен още като детерминистки хаос. Тук идва генераторът на ентропия, който засява логистичната карта с номер, създаден от електрически шум, открит в околната среда.

С думи кодът на генератора на произволни числа прави това:

- Измерете напрежението от ентропийния генератор на щифт А0. Запазете само 4 -те най -малко значими бита.

- Преместете тези 4 бита в "начална" стойност, повторете 8 пъти, за да получите 32-битово начало с плаваща запетая.

- Мащабиране на семената между 0 и 1.

- Изчислете средната стойност на това семе и x, текущото състояние на логистичната карта.

- Напредване на логистичната карта много (64) стъпки.

- Извлечете един бит от състоянието на логистичната карта x, като проверите някои незначителни десетични знаци.

- Преместете това малко в крайния резултат.

- Повторете всички стъпки над 20 пъти.

Забележка: В кода Serial.println и Serial.begin са надценени. Премахнете //, за да проверите генерираните случайни числа на серийния монитор.

За да бъда честен, не съм проверил статистически качеството на случайните числа (напр. Набор от тестове NIST), но те изглежда са наред.

Стъпка 4: Чудете се на вашата машина Godot

Чудете се на вашата машина Godot!
Чудете се на вашата машина Godot!

Насладете се на вашата машина Godot и моля, споделете, коментирайте и/или попитайте, ако има нещо неясно.

Докато чакате да намерите номера на Godot, моля, гласувайте за този Instructable в конкурса Made With Math! Благодаря!

Направено с математически конкурс
Направено с математически конкурс
Направено с математически конкурс
Направено с математически конкурс

Вицешампион в конкурса Made with Math

Препоръчано: