Оглавление:

Машина Годо: 4 шага (с изображениями)
Машина Годо: 4 шага (с изображениями)

Видео: Машина Годо: 4 шага (с изображениями)

Видео: Машина Годо: 4 шага (с изображениями)
Видео: гонка Honda и машинки 🔥🔥😱 #shorts #гонки #Драг-рейсинг #машины 2024, Июль
Anonim
Машина Годо
Машина Годо

Что такое Годо-машина?

Это часть человеческого опыта, когда мы можем оказаться в состоянии ожидания чего-то, что в конечном итоге может произойти после долгого ожидания или вообще не произойти.

Godot Machine - это произведение искусства на солнечных батареях, которое пытается уловить отчаянные эмоции, сопровождающие, возможно, бессмысленное ожидание.

Название взято из знаменитой пьесы Сэмюэля Беккета «В ожидании Годо», в которой двое мужчин ждут пришествия некоего Годо, который может прибыть завтра, послезавтра или никогда.

Так что же делает машина Годо?

  1. 1. При солнечном свете схема Joule Thief начинает заряжать батарею конденсаторов.
  2. 2. После зарядки примерно до 5 В Arduino Nano получает питание.
  3. 3. Arduino генерирует 20-битное истинное случайное число, которое отображается на 4-битной светодиодной полосе.
  4. 4. Это число сравнивается с другим неизвестным всем случайным числом, которое было сохранено в EEPROM при первой загрузке схемы.
  5. 5. Если они равны, ожидание окончено, аппарат сохраняет этот факт в EEPROM, и с этого момента включаются зеленый светодиод и пьезоэлектрический звуковой сигнал (при наличии достаточной энергии).
  6. 6. Если не равны, то надежда, отчаяние, повторение.

… Кроме того, время от времени сгенерированное число становится слышимым звуковым сигналом, так что вы на самом деле не забываете, что у вас есть машина Годо.

Учитывая, что вероятность попасть в число Годо составляет 1 на 2 ^ 20 или примерно один на миллион, а машина не очень быстра, особенно зимой и осенью, на ее поиск могут уйти годы. Ваша Godot Machine может даже стать частью вашего наследства. В ожидании проверки следующего числа вы можете фантазировать о том, как ваши далекие праправнуки могут, наконец, увидеть, что оно подошло к концу. Одним словом: это идеальный подарок к приближающемуся праздничному сезону!

Шаг 1: Схема

Схема
Схема

Машина Годо состоит из:

- Сборщик энергии Joule Thief (Q1), который заряжает конденсаторы 9x2200 мкФ. Тем, кто страдает геликсафобией (иррациональное беспокойство катушек индуктивности, в то время как конденсаторы и резисторы не представляют такой проблемы), не бойтесь, так как ручная намотка не требуется: связь создается путем размещения стандартных коаксиальных катушек индуктивности рядом друг с другом, как показано здесь в 2-й рис. Шикарный трюк!

-Дискретный транзисторный переключатель питания (Q2, Q3, Q4), который включается при 5V1 примерно и выключается примерно при 3,0V. Возможно, вы захотите немного настроить R2-R4, если вы используете разные типы транзисторов (общего назначения).

-Генератор энтропии (Q6, Q7, Q8). Эта схема усиливает электронный шум, присутствующий в окружающей среде, от микровольт до вольт. Затем этот сигнал дискретизируется для заполнения основанного на хаосе (считываемого) генератора случайных чисел. Отрезок гитарной струны действует как антенна.

-Светодиодная полоса с 4 светодиодами или 4 отдельными красными светодиодами, пьезо-звуковым сигналом и зеленым светодиодом.

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

Шаг 2: создание машины Годо

Создание машины Годо
Создание машины Годо
Создание машины Годо
Создание машины Годо
Создание машины Годо
Создание машины Годо

Я построил схему на куске перфорированной платы. Ничего особенного. Солнечная панель 2 В / 200 мА - это пережиток другого проекта. Бренд - Velleman. Его легко открыть острым ножом, просверлить отверстия для шурупов и т. Д. Печатная плата и солнечная панель прикручены к двум кускам фанеры, как показано на рисунке. Идея состоит в том, что солнечную панель можно расположить по направлению к солнцу на окне.

Шаг 3: Код: случайные числа из хаоса?

Код: случайные числа из хаоса?
Код: случайные числа из хаоса?
Код: случайные числа из хаоса?
Код: случайные числа из хаоса?
Код: случайные числа из хаоса?
Код: случайные числа из хаоса?

Как составляются случайные числа? Что ж, они созданы с помощью математики!

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

Он основан на логистической карте, которая является простейшим примером детерминированного хаоса. Вот как это работает:

Предположим, что x - некоторое действительное значение от 0 до 1, затем вычислите: x * r * (1-x), где r = 3,9. Результат - ваш следующий «х». Повторяйте до бесконечности. Это даст вам ряд чисел от 0 до 1, как на первом рисунке, где этот процесс запускается для начального значения x = 0,1 (красный), а также x = 0,1001 (синий).

А теперь самое интересное: независимо от того, насколько близко вы выберете два разных начальных условия, если они не совсем равны, результирующий ряд чисел в конечном итоге будет расходиться. Это называется «чувствительной зависимостью от начальных условий».

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

Итак, откуда взялось число r = 3,9? Оказывается, что при малых значениях r мы получаем только два переменных значения x. Увеличение r-параметра затем в какой-то момент переключится на колебания между 4, 8, 16 значениями и т. Д. Эти ветвления или бифуркации происходят все быстрее и быстрее по мере увеличения r, что называется «путем удвоения периода к хаосу». График с r на горизонтальной оси и множеством x-итераций, перекрывающихся по вертикали, приведет к так называемому графику бифуркации (3-й рисунок). При r = 3,9 карта полностью хаотична.

Итак, если мы посчитаем много x-обновлений и сделаем из них выборку, мы получим случайное число? Ну нет, на данный момент это будет генератор псевдослучайных чисел (PRNG), поскольку, если мы всегда начинаем с одного и того же начального значения (после выхода из сброса), мы всегда будем получать одну и ту же последовательность; он же детерминированный хаос. Здесь на помощь приходит генератор энтропии, который заполняет логистическую карту числом, созданным из электрического шума, обнаруженного в окружающей среде.

На словах код генератора случайных чисел делает это:

- Измерьте напряжение генератора энтропии на контакте A0. Оставьте только 4 младших бита.

- Сдвиньте эти 4 бита в начальное значение, повторите 8 раз, чтобы получить 32-битное начальное число с плавающей запятой.

- Измените масштаб семени от 0 до 1.

- Рассчитайте среднее значение этого начального числа и x, текущее состояние логистической карты.

- Переместите логистическую карту на много (64) шагов.

- Извлеките один бит из состояния логистической карты x, проверив какой-нибудь незначительный десятичный разделитель.

- Сдвиньте этот бит в окончательный результат.

- Повторите все шаги выше 20 раз.

Примечание: в коде Serial.println и Serial.begin не закомментированы. Удалите //, чтобы проверить сгенерированные случайные числа на последовательном мониторе.

Честно говоря, я не проверял статистически качество случайных чисел (например, набор тестов NIST), но, похоже, они в порядке.

Шаг 4: Полюбуйтесь своей Годо Машиной

Поразитесь своей машине Годо!
Поразитесь своей машине Годо!

Наслаждайтесь своей Godot Machine и, пожалуйста, поделитесь, прокомментируйте и / или спросите, если что-то неясно.

Пока вы ждете, пока будет найдено число Годо, проголосуйте за это Учебное пособие в конкурсе «Сделано с математикой»! Спасибо!

Сделано с математикой
Сделано с математикой
Сделано с математикой
Сделано с математикой

Финалист конкурса Made with Math

Рекомендуемые: