- PVSM.RU - https://www.pvsm.ru -

Создаём аппаратный навигатор рандонавта

Рандонавтинг (randonauting [1]) — это когда, используя генератор случайных чисел, находят и исследуют близлежащие места. Выглядит это так: сначала случайным образом выбирают широту и долготу, а потом посещают соответствующее место на Земле.

У этой деятельности есть метафизическая подоплёка: предполагается, что намерения рандонавта воздействуют на процесс случайного выбора точки на карте. Лучше всего об этом сказали в статье [2] NY Times: «Подумайте: закон притяжения соприкасается с геокешингом».

Создаём аппаратный навигатор рандонавта - 1


Навигатор рандонавта «Dujour»

С чего бы это было возможным? Дело в том, что есть люди, которые верят [3] в то, что используя случайные числа, полученные с опорой на квантовые процессы, например — с применением аппаратного генератора случайных чисел (Hardware Random Number Generator, HRNG), можно силой мысли влиять на то, какие именно координаты будут выбраны. В результате можно столкнуться с некими удивительными, познавательными или даже неприятными последствиями. Хорошей иллюстрацией этой идеи служит одно мрачное видео [4] из TikTok, в котором подростки-рандонавты находят чемодан с частями тела.

Идея, в соответствии с которой разум управляет материей, может быть не такой уж невероятной, как это кажется на первый взгляд. Есть некоторые исследования [5], удивительные результаты которых, похоже, указывают на возможность воздействия мысли на случайные числа, генерируемые с опорой на квантовые процессы.

Что произойдёт в том случае, если сконцентрироваться на конкретном намерении в точности тогда, когда генерируются случайные географические координаты? В этом — суть рандонавтинга.

Между моим устройством для рандонавтов и другими проектами похожей направленности есть несколько различий.

Во-первых, я расширил возможности моего устройства за счёт учёта времени. Оно не только выдаёт случайные географические координаты, но и указывает случайное время для путешествия к предложенному месту. В основе этого улучшения лежит идея о том, что, возможно, больше смысла будет в том, чтобы случайным образом выбирать некую точку и во времени, и в пространстве. В результате рандонавт может отправиться в определённое место, совершив путешествие в указанное время, что должно помочь выжать из идеи рандонавтинга всё что можно.

Во-вторых, мой проект отличается от других тем, как именно в нём выбираются координаты. Я использую для нахождения географических координат всего два случайных числа. В других реализациях имеются концепции «пустот» и «аттракторов», в которых используются статистические алгоритмы для определения соответствующих точек на карте. Аттракторы, в сущности, представляют собой скопления значений, представляющих географические координаты. А пустоты — это, наоборот, отсутствие таких скоплений. Я полагаю, что подобное только неоправданно всё усложняет.

Создаём аппаратный навигатор рандонавта - 2

Пустоты и аттракторы (источник [1])

Это — один из моих самых сложных проектов [6]. Вам, чтобы его воспроизвести, понадобится кое-какое «железо» и навыки программирования на Python. Я называю это устройство «Dujour» (в честь одного из персонажей «Матрицы [7]»). Вам, чтобы сделать себе такое же устройство, понадобится следующее:

  • 2 Raspberry Pi (или аналогичных одноплатных компьютера [8]).
  • 1 аппаратный генератор случайных чисел с интерфейсом USB. Я рекомендую либо OneRNG [9], либо TrueRNG [10].
  • LCD- или VFD-дисплей (я использовал дисплей Matrix Orbital VK204-25 [11]).
  • Аккаунт на Twilio [12], нужный для рассылки текстовых сообщений.
  • Гирлянда [13] из цветных светодиодов (ну, эта «железка» не такая уж и нужная, но как по мне, с ней устройство лучше выглядит).
  • Python-скрипты: rabbit.py [14], sendSMS.py [15], orbitalWrite.py [16] и restrngsever.py [17].

Вы, возможно, задаётесь вопросом о том, зачем использовать аппаратный генератор случайных чисел, если случайные числа вполне можно генерировать и программно. Это — хороший вопрос. В HRNG [18] для генерирования истинных случайных чисел используются квантовые физические процессы. А в программах применяются некие алгоритмы. Программы, на самом деле, генерируют так называемые псевдослучайные числа. Такие числа, в большинстве случаев, вполне устраивают тех, кто их использует, но числа, сгенерированные с помощью квантовых процессов, по-настоящему (как минимум — в теории) непредсказуемы. Кроме того, если верить в то, на чём основан рандонавтинг [19], то есть — во взаимодействие сознания и материи, то окажется, что есть исследование [5], результаты которого указывают на то, что умственные усилия влияют только на случайные числа, созданные с использованием квантовых процессов.

Некую разновидность моего проекта можно создать и с использованием всего одной платы Raspberry Pi, подключив HRNG к локальному USB-порту, но я предпочитаю применять отдельное устройство. Я много экспериментировал с генераторами случайных чисел и пришёл к выводу о полезности использования удалённого RNG-сервера, к которому могут обращаться несколько клиентских устройств.

Ниже приведена схема, демонстрирующая высокоуровневое представление процесса, на котором основан рандонавтинг. Главный скрипт носит имя rabbit.py, он работает на первой плате Raspberry Pi, которую я называю Dujour1. Когда его запускают, он (1) выполняет REST-запрос ко второму устройству — Dujour2 (к хосту аппаратного генератора случайных чисел) и получает от него (2) несколько случайных чисел с плавающей запятой. Эти числа используются (3) для выбора близлежащего места, которое можно исследовать, и для указания времени посещения этого места. Затем скрипт собирает (4) URL для сервиса Google Maps и отправляет его (5) на телефон в виде текстового сообщения с использованием службы Twilio.

Создаём аппаратный навигатор рандонавта - 3

Высокоуровневая схема проекта

Вот видеоклип, на котором можно увидеть работу моего устройства.

Навигатор рандонавта в действии

На плате Raspberry Pi, называемой Dujour1, нужно установить и настроить Linux [20]. К ней нужно подключить дисплей (вот [21] инструкции для Matrix Orbital VK204-25). На следующем снимке показано подключение моего дисплея к плате.

Создаём аппаратный навигатор рандонавта - 4

Подключение Matrix Orbital VK204-25 к Raspberry Pi

Я поместил Raspberry Pi и дисплей под стеклянный колпак и присоединил LED-гирлянду к выходам GPIO 5V и GND. Стеклянный колпак показался мне удобным «корпусом», в котором помещается всё что нужно. К тому же, мне нравится то, как всё это выглядит.

Для обеспечения работы скрипта rabbit.py нужен Python и следующие библиотеки:

  • math
  • numpy
  • subprocess
  • sys
  • time
  • json
  • urllib2

Если у вас при запуске скрипта появится ошибка, связанная с зависимостями, это значит, что вам понадобится установить недостающий модуль.

До запуска скрипта нужно задать несколько переменных. Все они находятся в разделе скрипта User Defined Variables. Вот описание некоторых из них:

  • loghandle: путь к текстовому файлу, в котором логируются все запуски скрипта
  • window_secs: максимальное число секунд, используемое при нахождении времени для посещения выбранного места.
  • meters_out: максимальное расстояние в метрах от текущего местоположения рандонавта, используемое при выборе места, которое ему нужно посетить.
  • latitude1, longitude1: текущие координаты, которые используются как начальная точка при поиске целевых координат.
  • lcd_addr: шестнадцатеричный адрес LCD-дисплея при использовании интерфейса I2C.
  • HWRNG: IP-адрес и порт удалённого HRNG-сервера в формате XXX.XXX.XXX.XXX:YYYY.

Проект зависит от нескольких внешних скриптов. sendSMS.py [15] используется для отправки текстовых сообщений с координатами. orbitalWrite.py [16] применяется для работы с дисплеем. Оба скрипта надо поместить в ту же папку на плате Dujour1, в которой находится скрипт rabbit.py. Обратите внимание на то, что мой скрипт рассчитан на работу с определённым дисплеем Matrix Orbital (VK204-25). Если вы решите использовать какой-то другой дисплей — вам понадобится соответствующим образом отредактировать код. В скрипте есть комментарии относительно участков кода, ответственных за взаимодействие с дисплеем.

Для обеспечения работы скрипта sendSMS.py [15] нужна пара переменных окружения, которые позволят ему пройти аутентификацию в службе Twilio: TWILIO_ACCOUNT_SID и TWILIO_AUTH_TOKEN. Вот [22] инструкция по настройке этих переменных. Кроме того, нужно установить вспомогательную Python-библиотеку Twilio [23].

На плате Raspberry Pi, которую я называю Dujour2, играющей роль сервера, надо тоже установить и настроить Linux [20]. Именно к этой плате подключается аппаратный генератор случайных чисел. Я использовал USB-устройство OneRNG, инструкции по его настройке можно найти здесь [24].

Ниже показан мой сервер.

Создаём аппаратный навигатор рандонавта - 5

HRNG-сервер, использующий OneRNG

После того, как первоначальная настройка сервера завершена, на нём надо запустить скрипт rngrestserver.py, который используется для передачи случайных чисел устройству Dujour1. Подробности о работе скрипта REST-сервера можно найти здесь [25].

Итоги

Если вы, пользуясь моим руководством, создали собственное устройство, это значит, что у вас теперь есть всё необходимое для рандонавтинга. Просто запустите из терминала скрипт ./rabbit.py, после чего на ваш телефон придёт сообщение со ссылкой на карту (то, что вы увидите после открытия ссылки, будет выглядеть примерно так, как показано ниже).

Создаём аппаратный навигатор рандонавта - 6

Место, найденное с помощью аппаратного генератора случайных чисел

Я, испытывая моё устройство, столкнулся с несколькими странными проявлениями синхронизма. Но, если даже ничего необычного и не произойдёт, рандонавтика, по крайней мере, может помочь вам увидеть что-то удивительное, расположенное совсем недалеко от вас, на что раньше вы не обращали внимания.

Возможно, я когда-нибудь сделаю особый навык для Amazon Alexa. Это позволило бы мне пользоваться моим рандонавтическим сервером с телефона.

А вы примеряли на себя костюм рандонавта?

Автор: ru_vds

Источник [26]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/news/361261

Ссылки в тексте:

[1] randonauting: https://itsandrom.medium.com/randonauting-for-dummies-how-to-hack-reality-with-your-phone-using-quantum-randomness-5ce82f66c10e

[2] статье: https://www.nytimes.com/2020/07/31/style/randonautica-app.html

[3] люди, которые верят: https://www.buzzfeed.com/daniellaemanuel/randonautica-freaky-coincidences

[4] видео: https://www.insider.com/new-randonautica-app-is-leading-tiktokers-to-some-unusual-discoveries-2020-7

[5] исследования: https://www.enigmaticdevices.com/journal-of-scientific-exploration-experiments-investigating-the-influence-of-intention-on-random-and-pseudorandom-events/

[6] проектов: https://www.enigmaticdevices.com/category/builds/

[7] Матрицы: https://www.imdb.com/title/tt0133093/

[8] одноплатных компьютера: https://en.wikipedia.org/wiki/Single-board_computer

[9] OneRNG: https://onerng.info

[10] TrueRNG: https://ubld.it/products/truerng-hardware-random-number-generator/

[11] Matrix Orbital VK204-25: https://www.matrixorbital.com/vk204-25

[12] Twilio: https://www.twilio.com/

[13] Гирлянда: https://www.amazon.com/Ariceleo-Operated-Christmas-Centerpiece-Decoration/dp/B07S3R6MKJ/ref=asc_df_B07S3R6MKJ/?tag=hyprod-20&linkCode=df0&hvadid=343187953117&hvpos=&hvnetw=g&hvrand=9999015230690609617&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9003674&hvtargid=pla-758677055267&psc=1&tag=&ref=&adgrpid=68535637349&hvpone=&hvptwo=&hvadid=343187953117&hvpos=&hvnetw=g&hvrand=9999015230690609617&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9003674&hvtargid=pla-758677055267

[14] rabbit.py: https://github.com/deckerEnigmatic/pythonRandonaut

[15] sendSMS.py: https://github.com/deckerEnigmatic/sendSMS

[16] orbitalWrite.py: https://github.com/deckerEnigmatic/pythonMatrixOrbital

[17] restrngsever.py: https://github.com/deckerEnigmatic/rngRESTServer

[18] HRNG: https://en.wikipedia.org/wiki/Hardware_random_number_generator

[19] рандонавтинг: https://itsandrom.medium.com/a-beginners-guide-to-randonauting-1dd505c3c5a9

[20] установить и настроить Linux: https://www.raspberrypi.org/documentation/installation/installing-images/

[21] вот: https://www.enigmaticdevices.com/connecting-a-matrix-orbital-display-to-a-raspberry-pi/

[22] Вот: https://www.twilio.com/docs/usage/secure-credentials

[23] Python-библиотеку Twilio: https://www.twilio.com/docs/libraries/python

[24] здесь: https://onerng.info/onerng/

[25] здесь: https://www.enigmaticdevices.com/getting-random-with-rest/

[26] Источник: https://habr.com/ru/post/540684/?utm_source=habrahabr&utm_medium=rss&utm_campaign=540684