11 ноября, 2016

Minecraft, цикл заряд-разряд, RS-Latch, project red, bibliocraft

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

В модах к майну есть генераторы, которые имеют долгое время разгона и выхода на расчетную мощность. Но для постоянной работы может быть недостаточно ресурсов, либо нет потребителей и хранилищ. Если запускать и тормозить генераторы слишком часто, то они будут работать на меньшей эффективности. поэтому идеальный вариант:
  • Генератор включается и заполняет хранилище энергии на 80-90% (фаза зарядки), после чего выключается.
  • Хранилище опустошается до 10-20% энергии (фаза разрядки), после чего генератор включается.
Для этого нам подходит такая штука как RS-Latch , к примеру из проджект реда.
Суть в том что у нее есть 2 входа и 2 выхода. И эта штука помнит с какой стороны пришел сигнал последний раз.




При подаче сигнала слева, загорается верхняя лампочка и сингал уходит наверх.

При отключении сигнала слева и подачи сигнала справа, загорается нижняя лампочка и сигнал уходит вниз.

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


Если подать сигнал и слева и справа - сигнал не будет отдаваться ни вверх, ни вниз.

Конкретно проджектредовский RS-Latch имеет 2 режима работы, которые переключаются местной отверткой Shift+Right Click. Круглый режим отдает сигнал с мощностью 15 в ту сторону, откуда он пришел. Режим змейкой этого не делает. Конкретно для нашей задачи пофиг, но может где-то будет важно.

Для тестового стенда нам еще понадобится генератор редстоун сигнала нужной мощности. Самый простой вариант - использовать книжные полки из мода библиокрафт. Если на них поставить книжку Redstone: Volume I, то в зависимости от положения книжки на полке, будет выдаваться соответствующий редстоун сигнал. Первая строка - мощность от 0 до 7 слева направо, вторая строка от 8 до 15.

Я собрал небольшой тестовый стенд:

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

Наша задача сделать так, чтобы RS-Latch давал сигнал на включение генератора и зарядку хранилища, если сигнал меньше или равен 2 и отключал генератор, если сигнал от хранилища больше или равен 14.

Поэтому дальше у нас стоят два компаратора и две книжные полки с сигналами 14 и 2.

Левый компаратор принимает сигнал со стороны IN и сравнивает его с сигналом со стороны POS. В нашем случае сигнал с мощностью 7 сравнивается с сигналом мощностью 14. Если входной сигнал меньше 14, то выходного сигнала не будет. Это видно по потухшей лампочке со стороны OUT.

Правый компаратор входящий сигнал сравнивает с сигналом мощностью 2. 7 больше или равно 2, поэтому сигнал есть, хоть и не столь заметный, потому что этот компаратор отдает сигнал той же мощности, какой принимает. Это видно по горящей лампочке со стороны OUT.

Поскольку справа нам нужно получить условие меньше или равно 2, а не больше или равно, то мы ставим инвертер сигнала, который в проджект реде называется NOT Gate.

Ну и остался наш RS-Latch. Когда хранилище заполняется и сигнал от него становится больше или равен 14, то выходной сигнал переключается наверх и вниз сигнал не отдается. Генератор выключается.

Когда сигнал падает до 2, то сигнал приходит справа и включает генератор.


P.S. Если кто-то будет повторять схемку, имейте ввиду, генератор сигнала из книжки неочень. Если переставлять книжку на полке, то мы ее вынимаем и сигнал в это время падает до нуля. То есть становится меньше 2 и запускает цикл зарядки. И да, если вы захотите это полечить тем, что поставить 2 книжки, то так это работать тоже не будет. При наличии двух книг на полке, запоминается уровень сигнала от первой поставленной и он не будет меняться до тех пор, пока все книжки не будут вынуты из книжной полки.

Комментариев нет:

Отправить комментарий