Прочитал в интернете недавно про такую штуку как машина сновидений. Грубо говоря, это картонный вращающийся цилиндр вокруг источника света, с прорезями, создающий мерцание частотой 8-13 Гц. Оптический эффект от этого мерцания вызывает резонанс в мозгу, в результате чего от просмотра бликов у человека едет крыша, возникают интересные "галюны".
Подробнее читаем здесь: https://ru.wikipedia.org/wiki/Машина_сновидений
Пошарив по разным статьям, выяснил, что для изготовления этого прибора совсем необязательно делать механический каркас: можно обойтись лишь одной лампочкой, которая мигает с нужной частотой. Например, светодиодом.
Осторожно, девайс может вызвать приступ эпилепсии! Если станет плохо, ответственности не несу!
Итак, чтобы изготовить трип-девайс из подручных средств, нам понадобятся:
1. Arduino или Raspberry Pi (или любую другую плату для самоделкиных). В данном случае ардуино
2. Три разноцветных светодиода или один RGB-LED. У меня в DIY-комплекте, заказанном из Китая, как раз оказался RGB-светодиод, поэтому я решил воспользоваться именно им
3. Устройство для преломления, чтобы создавать на стенах красивые цветовые картинки и усилить "наркоманский" эффект. Я использовал в качестве преломлятеля хрустальный стакан с резным узором.
4. Кнопка для переключения частот (8-13 Гц), дабы настраивать сеанс "под свой вкус". У меня хорошей кнопки не оказалось, поэтому я взял вместо неё датчик обхода препятствий. На него не надо нажимать пальцем, а достаточно лишь провести рукой на близком расстоянии.
5. [Опционально] источник питания для контроллера, ради портативности.
6. [Опционально] увеличительное стекло, лупа. Поможет делать другие прикольные узоры на стенах и потолке.
Итак, в нашей программе мы будем случайно, через random(), подбирать нужный цвет и зажигать в этот цвет наш светодиод. Или несколько таковых (путём эффекта сложения цветов). Я сначала пробовал подбирать рандомный цвет сразу для трёх составляющих, но потом решил вызывать random() только один раз за проход цикла, дабы чуточку увеличить производительность. В остальные цвета просто поступает предыдущее рандом-значение, поэтому эффект случайности и хаотичности полностью сохраняется.
Исходник скетча для Arduino:
// периоды свечения/затухания светодиодов; // соответствуют частотам от 8 до 13 Гц int periods[] = {62, 56, 50, 45, 42, 38}; // светодиоды к аналоговым выводам, кнопку - к цифровому int r = A0; int g = A1; int b = A2; int button = 13; byte selected_period_index = 0; // 1 период int selected_period = 62; // 1 период boolean pressed = false; // кнопка была нажата boolean tmp_pressed = false; // сохранённые значения цветов byte last_r = 0; byte last_g = 0; byte last_b = 0; void setup() { randomSeed(0); pinMode(button, INPUT); pinMode(r, OUTPUT); pinMode(g, OUTPUT); pinMode(b, OUTPUT); } void changePeriod() { if (selected_period_index < 5) selected_period_index++; else selected_period_index = 0; selected_period = periods[selected_period_index]; } void color_enable() { // переставляем цвета местами и добавляем // на красный цвет рандом last_b = last_g; last_g = last_r; last_r = random(50, 255); // минимальное значение 50 нужно, // чтобы избегать появления тусклых цветов analogWrite(r, last_r); analogWrite(g, last_g); analogWrite(b, last_b); } void color_disable() { analogWrite(r, 0); analogWrite(g, 0); analogWrite(b, 0); } void loop() { color_enable(); // 1, 2, 3 - ёлочка, гори! // если кнопка была нажата, меняем частоту мерцания tmp_pressed = (digitalRead(button) == HIGH); if (pressed && !tmp_pressed) changePeriod(); pressed = tmp_pressed; delay(selected_period); color_disable(); delay(selected_period); }
После загрузки программы и тестирования откладываем девайс до наступления полной темноты. Ночью перед его включением посоветую подобрать какой-нибудь годной музыки. Буквально вчера тестировал эту хрень в полной тишине, сегодня надо будет врубить музыку. Кстати, в моей комнате есть зеркало, поэтому усиление эффекта происходило и с его помощью.
Варианты эксплуатации:
1. Либо с открытыми глазами смотрим на стены и потолок (можно использовать линзы/лупу для ещё более прикольных узоров)
2. Или закрываем глаза и смотрим прямо на источник света.
Вот так выглядит моя самодельная хрень: https://ii-net.tk/ii/ii-point.php?q=/x/file/dream-arduino.jpg
Данный суперпростой девайс, собранный из г***а и палок, можно использовать как помощь с осознанными сновидениями, как средство релаксации или просто в качестве легальной, безвредной наркоты.
Прошу комментариев/вопросов, если кому-то стало интересно.