Ядерный реактор холодного синтеза. Хаос. ООП. Описание.

Тема предыдущего поста заинтересовала некоторых граждан, и поэтому, решил выложить подробности создания ядерного реактора холодного синтеза Stark Industries с блек дж...

с ООП и нелинейными динамическими системами ;)

Ядерный реактор холодного синтеза. Хаос. ООП. Описание. Arduino, Дуговой реактор, Stark Industries, Lorentz oscillator, Lorentz System, Хаос, Led ring, Длиннопост, Гифка

На этот раз решил запилить фото немного лучшего качества чем предыдущем посте :)


На чем все собрано:

Головка от видика - 1 шт. (Привет поколению 00);

Стеклянная параллелепипедная форма от ароматической свечи - 1 шт;

Светодиодное кольцо на 12 В - 1 шт;

Arduino nano - 1 шт;

MOSFET IRF520 - 1 шт;

Блок питания 12 В - 1 шт;

USB шнурок - 1 шт.


Для начала необходимо подпилить светодиодное кольцо по внутреннему радиусу, чтобы оно садилось в посадочное место на головке видика. На удивление, садится как влитое. В этом нам поможет наждачная бумага.

Светодиодное кольцо досталось на 12 Вольт, но если вы возьмете на 5В будет только лучше и систему целиком можно будет запитать от одного мобильного зарядника на 5В. Но без мосфета итак не обойтись ибо нагрузка всего LED кольца на 1 пин будет слишком большой.

В схеме подключения я думаю никто не нуждается, ибо всего 2 провода нужно подключить от ардуины к мосфету. Подключение напряжениея питания платы мосфета и нагрузки тоже не сложное и представляет собой 2 провода с блока питания на входе и 2 провода LED кольца на выходе:

Ядерный реактор холодного синтеза. Хаос. ООП. Описание. Arduino, Дуговой реактор, Stark Industries, Lorentz oscillator, Lorentz System, Хаос, Led ring, Длиннопост, Гифка

Не забываем объединять GND Aeduino и мосфет модуля.

На данном этапе все просто.

Принцип работы модуля заключается в том, чтобы коммутировать напряжение нагрузки в зависимости от наличия напряжения на пине SIG. Грубо говоря, когда там появляется +5 вольт с Arduino - модуль запитывает LED кольцо внешним источником питания (12В).

На этом, вопрос по железу завершен. Выглядит все после сборки так:

Ядерный реактор холодного синтеза. Хаос. ООП. Описание. Arduino, Дуговой реактор, Stark Industries, Lorentz oscillator, Lorentz System, Хаос, Led ring, Длиннопост, Гифка

Чтобы заставить проект работать достаточно загрузить стандартны скетч Fade или Blink из примеров Arduino IDE и заШИМить ногу к которой подключен модуль мосфета, но это было бы слишком просто :)

Как вам идея немного уразнообразить скучное и однообразное мигание LED кольца теорией нелинейных динамических систем и приемами объектно ориентированного программирования? Ведь мы же хотим эффекта нестабилных химических реакций холодного ядерного синтеза, а не просто так, и чтобы длительность и период каждого мерцания было неповторимым и уникальным.

Для целей получения уникальных значений которые мы потом превратим в яркость светодиодов воспользуемся широко популярной в узких кругах динамической системой Лоренца. Почитать о ней можно, например, тут.

Этот генератор хаоса имеет весьма странный аттрактор:

Ядерный реактор холодного синтеза. Хаос. ООП. Описание. Arduino, Дуговой реактор, Stark Industries, Lorentz oscillator, Lorentz System, Хаос, Led ring, Длиннопост, Гифка

В общем, если не вдаваться в подробности, теория нелинейных динамических систем гласит, что линии странного аттрактора никогда не пересекутся при достаточной точности вычислительной системы (Количестве знаков после запятой). Это значит, что в любой момент времени система выдаст 3 значения (х, y, z) которые не встречались и не встретятся в такой комбинации больше никогда. Если же это произойдет при каких-то условиях, то тогда можно говорить о длинной, но периодичной природе системы. Эта тема является предметом споров профильных ученых и рассматривать мы ее конечно же не будем.

Для получение этих значений (х, y, z) необходимо записать уравнение системы Лоренца в понятной для ардуины и IDE форме.

Таким образом система из такой (дифференциальная форма):

Ядерный реактор холодного синтеза. Хаос. ООП. Описание. Arduino, Дуговой реактор, Stark Industries, Lorentz oscillator, Lorentz System, Хаос, Led ring, Длиннопост, Гифка

Превратилась в такую (разностная форма):

Ядерный реактор холодного синтеза. Хаос. ООП. Описание. Arduino, Дуговой реактор, Stark Industries, Lorentz oscillator, Lorentz System, Хаос, Led ring, Длиннопост, Гифка

Теперь, ардуина сможет решать это уравнение циклически и на каждом цикле скармливать результаты предыдущего цикла этому же уравнению, а наша задача, в промежутке между циклами выхватить эти уникальные решения (dx, dy, dz) для своих коварных целей. Все вроде просто. Но, нужно решить 3 вопроса.

1. Запустить систему с правильными начальными условиями, так как при неправильных система будет генерировать что угодно - от линии с синусоидой до сигнала бесконечной амплитуды.

2. Иметь возможность менять параметры системы(систем) в любой момент времени.

3. Масштабировать систему на множество потребителей. Например, мы хотим мигать не одним или тремя LED кольцами, а бесконечным множеством колец, и при этом чтобы все они мигали с разной интенсивностью. Не писать же нам over9000 уравнений? Никакой памяти не хватит, да и не практично оно как-то.


Для решения этих вопросов воспользуемся методами ООП. Таким образом, уместив всего одно уравнение в класс, мы сможем насоздавать "сколько угодно" уникальных генераторов хаоса которые будут представлены в виде объектов с соответствующими плюшками.


Написанный код с подробными комментариями выложен тут.


Рабочая обстановочка.

Давайте посмотрим что же сгенерировала нам ардуина за несколько секунд:

Ядерный реактор холодного синтеза. Хаос. ООП. Описание. Arduino, Дуговой реактор, Stark Industries, Lorentz oscillator, Lorentz System, Хаос, Led ring, Длиннопост, Гифка

вроде все как должно быть. Аттрактор типичный.

Теперь посмотрим какими значениями будем устанавливать яркость LED кольца, учитывая что выбрана координата х и она не должна быть меньше 0 (для этого мы возьмем ее модуль):

Ядерный реактор холодного синтеза. Хаос. ООП. Описание. Arduino, Дуговой реактор, Stark Industries, Lorentz oscillator, Lorentz System, Хаос, Led ring, Длиннопост, Гифка

Как видим, модуль сигнала координаты х весьма плавно изменяет свои значения обеспечивая тем самым плавность нарастания и спадания интенсивности свечения нашего LED кольца, а амплитуда и периодичность ее скачков всегда разная, тем самым обеспечивается всегда разная скорость/стабильность протекания реакций холодного ядерного синтеза.


В статике, рабочий процесс выглядит так:

Ядерный реактор холодного синтеза. Хаос. ООП. Описание. Arduino, Дуговой реактор, Stark Industries, Lorentz oscillator, Lorentz System, Хаос, Led ring, Длиннопост, Гифка

И так -  ПУСК! - 5 кВт!

Ядерный реактор холодного синтеза. Хаос. ООП. Описание. Arduino, Дуговой реактор, Stark Industries, Lorentz oscillator, Lorentz System, Хаос, Led ring, Длиннопост, Гифка

И на средней мощности - 800 кВт!

Ядерный реактор холодного синтеза. Хаос. ООП. Описание. Arduino, Дуговой реактор, Stark Industries, Lorentz oscillator, Lorentz System, Хаос, Led ring, Длиннопост, Гифка

Дальше было страшно разгонять ядерный реактор ибо свет в доме напротив начал мигать и оставить квартал без электричества не хотелось ;)


Небольшая гифка

Ядерный реактор холодного синтеза. Хаос. ООП. Описание. Arduino, Дуговой реактор, Stark Industries, Lorentz oscillator, Lorentz System, Хаос, Led ring, Длиннопост, Гифка

Таким вот получился мой ядерный реактор холодного синтеза Stark Industries с ООП и нелинейными динамическими системами. Теперь он будет украшать рабочий стол.


Оригинальная идея:

Ядерный реактор холодного синтеза. Хаос. ООП. Описание. Arduino, Дуговой реактор, Stark Industries, Lorentz oscillator, Lorentz System, Хаос, Led ring, Длиннопост, Гифка

На конец моя котейка которой очень интересны мнения тролей. И которая любит читать про ООП, например тут.

Ядерный реактор холодного синтеза. Хаос. ООП. Описание. Arduino, Дуговой реактор, Stark Industries, Lorentz oscillator, Lorentz System, Хаос, Led ring, Длиннопост, Гифка

Для вас трудился Siegurd, надеюсь пост будет полезен начинающим и не только ардуинщикам! На "идеальность, оптимальность, сексуальность" кода и платформы не претендую.

Баянометр выдавал какую-то стимпанковскую и скайримовскую 0_о дичь)

PS: Пользуясь случаем поздравляю всех пикабушниц с 8 Марта! :)

Arduino & Pi

1.4K постов20.6K подписчиков

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу