Логические вентили

Эту статью нужно срочно переписать!
Вы можете помочь, исправив и дополнив еë:
| |

Статья не соответствует многочисленным рекомендациям руководства по стилю и уступает по качеству оформления ряду других статей. Желательно выведение информации о типах схем в отдельные статьи. |


**Схемы из красного камня** (от англ. *Redstone Circuits*) — аналоги электрических цепей реального мира. Позволяют управлять механизмами, реагировать на изменения переключателей и выполнять любые[1] логические преобразования. В этой статье описаны свойства красного камня и основные принципы создания схем.



## Система обозначений

Схематичные изображения в данной статье сделаны при помощи симуляторов красного камня MCRedstoneSim и Circuit Simulator. Основные обозначения:

— пустая земля

— один блок на земле

— два блока, блок на блоке (под блоками земля)

— красный провод (на земле)

— красный факел (на земле)

— красный провод (на блоке)

— красный факел (на блоке)

— красный провод под блоком

— красный факел под блоком

— красный факел над проводом

— мост: провод на блоке над проводом

— рычаг на земле или сбоку блока

— кнопка сбоку блока

— нажимная пластина на земле


## Вступление

Красный камень — материал, добываемый железной, алмазной или незеритовой киркой из красной руды в количестве 4-5 единиц на блок (если кирка не зачарована на Удачу). Если вы ещё не знакомы со схемами из красного камня, рекомендуется испытывать на практике приводимые здесь факты — так вы лучше сможете понять основные принципы. В этом случае вам понадобится ровная площадка, некоторое количество полных непрозрачных блоков, красная пыль, красные блоки, красные факелы, красные повторители и красные компараторы.

Ингредиенты | Рецепты крафта | Результат |
---|---|---|

Красная пыль + Палка |
Красный факел
| |

Красный факел + Красная пыль + Камень |
Красный повторитель
| |

Красный факел + Кварц Нижнего мира + Камень |
Компаратор
|


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

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

## Физические свойства

Красная пыль при установке в игровом мире представлена в виде красного провода — нетвёрдого блока, который можно ставить только на верх других блоков, причем они должны быть полными и непрозрачными. Красный провод разрушается от одного удара или попадания жидкости, его можно подобрать и снова установить. Два рядом находящихся участка красного провода объединяются в цепь. Цепи можно как угодно разветвлять и соединять.

Два участка красной пыли, расположенных на соседних блоках, которые различаются по высоте на 1, объединятся в непрерывный участок провода. Но, если поставить между ними **полный** блок, объединения не произойдет. Неполные блоки (например, таблички и плиты) не мешают соединению. Грядка тоже не мешает соединению, а вот затоптанная земля — мешает. Есть два особых случая: стекло, в отличие от остальных полных блоков, не препятствует объединению и прохождению сигнала, в то время как светящийся камень визуально разделяет провод, но сигнал все равно может пройти.

Красный факел по физическим свойствам практически идентичен обычному — он может быть установлен сверху или сбоку любого полного непрозрачного блока. Единственное отличие заключается в яркости излучаемого света — 7 против 14.

Красный повторитель, в отличие от проводов и факелов, твёрдый блок.

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

## Механизмы

Для управления схемами без добавления/удаления блоков используются переключатели:

- Рычаг. Ставится на блок сверху или сбоку, а с 12w24a (1.3.1) может быть закреплён и на нижней стороне. Имеет два положения — включен и выключен, — между которыми переключается щелчком игрока. После установки выключен.
- Кнопка. Устанавливается сбоку блока, а с версии 14w04a (1.8) может быть установлена на нижнюю и верхнюю сторону блока. Существует в девяти вариантах — каменном и в восьми — деревянных. Каменная активируется только щелчком игрока, деревянные могут быть включены ещё и стрелой. При активации каменная кнопка включается на 1 секунду, деревянная — на 1.6 секунды.
- Нажимная пластина. Только напольная. Включается при нажатии. Деревянная включается, если на неё наступить или бросить предмет, каменная — только если наступить. С 12w23a (1.3.1) деревянная пластина реагирует на стрелы.
- Утяжелённая нажимная пластина. Существует в железном и золотом вариантах. Подобна обычной, но реагирует только на предметы, и выдает сигнал, зависящий от количества предметов на ней.
- Нажимные рельсы. Рельсы с нажимной пластиной. Работает как нажимная пластина, но реагирует на проезжающие вагонетки (при большой скорости вагонетки или низкой производительности может и не среагировать).
- Натяжной датчик. Нужно установить два датчика друг напротив друга и соединить нитью. Если игрок, моб, предмет, сфера опыта, стрела или сущности падающих блоков (песок, ТНТ…) касается нити, или же нить удаляют без использования ножниц, оба крюка подают сигнал. Если обрезать нить ножницами, датчик не среагирует
- Датчик дневного света. Регистрирует силу света от солнца и подает пропорциональный сигнал. Можно переключить в «ночной» режим, тогда он будет регистрировать темноту
- Сундук-ловушка. Подает сигнал, если кто-то его открывает. Сила сигнала зависит от количества игроков, смотрящих в сундук.
**Мишень**(англ.*Target*) — это блок, обеспечивающий временный сигнал красного камня при попадании в него какого-либо снаряда. Чем ближе попадёт снаряд к центру тем сильнее будет сигнал.

Красный камень позволяет управлять различными блоками в игровом мире — это **«устройства вывода»**. По реакции их можно разделить на 2 группы:

- Двери, люк, ворота, поршни, электрические и активирующие рельсы, лампа и загрузочная воронка при подведении активного провода меняют своё состояния и сохраняют его, пока сигнал не будет убран.
- Раздатчик, выбрасыватель, музыкальный блок, ТНТ и командный блок
**однократно**включаются, если рядом есть активный провод. Чтобы активировать блок повторно (не относится к ТНТ, разумеется), нужно убрать сигнал и подать его снова.

## Подключение

### Активные блоки

Красная пыль может быть в одном из двух состояний — включена (1, +, true) и выключена (0, -, false). Вообще говоря, любой полный непрозрачный блок тоже может быть «заряжен» («активирован») и включать соседние механизмы. К заряженным блокам относятся:

- красный факел;
- блок над красным факелом;
- блок, на котором находится активный провод;
- блок, к которому
*напрямую*подведен провод или повторитель; - блок, который занимает переключатель;
- блок, к которому прикреплен переключатель.

Следует помнить, что, например, рычаг на блоке земли занимает отдельный блок, а не является «дополнительной частью» блока земли. Точно так же, красный провод, лежащий на земле — отдельный блок на один блок выше земли.

Кроме того, существует некоторое различие в «заряженности» блока. Блок будет «сильно заряжен», если его активирует красный факел (снизу), повторитель, компаратор или переключатель. Если блок заряжен только проводом, то он будет «слабо заряжен». Единственное различие между «сильно» и «слабо» заряженными блоками заключается в том, что «сильно» заряженный блок может активировать красный провод, примыкающий к любой его стороне, а «слабо» заряженный — нет (см. пример справа).

### Основное свойство красных факелов

Это свойство лежит в основе любого сложного механизма. Без его понимания сложно построить многие схемы.

**Заряженный блок выключает факел на любой своей стороне.**

На практике это означает, что если подвести к (твёрдому, непрозрачному) блоку включенный провод, факелы на сторонах и вершине блока погаснут. Данное свойство работает с активацией не только проводом, но и любым другим указанным выше способом.

### Затухание сигнала

Сигнал в проводах затухает — через 16 блоков от источника сигнал будет потерян. Для передачи сигнала более чем на 15 блоков используются повторители (см. далее). Если провод разветвлён, сигнал идет в каждую сторону независимо друг от друга. Если какой-то участок провода подключен сразу к нескольким источникам, его заряд будет рассчитан по расстоянию до ближайшего источника, остальные будут проигнорированы: заряды не суммируются.

Чем меньше заряд на проводе (чем дальше от источника), тем более тусклый он имеет цвет. Это может создавать проблему определения, есть ли сигнал на далёких от источника участках. Помните, что над включённым проводом идет дымок *(дым не появляется при минимальных настройках количества частиц)*.

В электрических рельсах сигнал тоже затухает, только ещё быстрее — дальность передачи уже 10 блоков.

## Красный повторитель

Красные повторители выполняют три функции:

- Ретранслятор. Он может «усиливать» сигнал до изначального уровня, передавая его дальше по цепи на 15 блоков. Таким образом, повторители могут использоваться для передачи сигнала на расстояния, больше 15 блоков.
- Диод. Повторитель замечателен тем, что имеет строго определённые вход и выход, поэтому его можно использовать в качестве диода — элемента, пропускающего сигнал только в одну сторону.
- Элемент задержки. Повторитель передаёт сигнал со входа на выход с определённой задержкой от 0.1 до 0.4 секунды, что упрощает создание таймеров. Для смены задержки щёлкните ПКМ по повторителю. Задержка будет меняться таким образом: 0.1 — 0.2 — 0.3 — 0.4 — 0.1.

Кроме того, благодаря факту, что повторитель активируется только блоком позади него и активирует только блок перед собой, он может считаться «изолированной» версией красного провода, что иногда применяется в компактных схемах.

В 12w42a (1.4) появилась возможность *заблокировать* повторитель. Для этого нужно подключить к стороне данного повторителя ещё один включенный повторитель. Повторитель в заблокированном состоянии не реагирует на изменения сигнала на входе, иначе говоря, удерживает состояние на момент блокировки. Как только блокировка снимается, выход повторителя снова приходит в соответствие со входом.

## Компаратор

Компаратор имеет две основные функции:

- Компаратор может оперировать с сигналами, подведенными сзади (A) и сбоку (B). Если есть два сигнала сбоку, выбирается наиболее сильный. Результат зависит от режима работы (переключается щелчком ПКМ, отображается передним факелом):
- В первом режиме (сравнение) выход будет равен сигналу A, если A >= B, и 0, если A < B.
- Во втором режиме (вычитание) выход будет равен разности сигналов A−B, если A > B, и 0, если A =< B.

- Компаратор позволяет снимать особые данные с некоторых блоков, если они расположены прямо за ним:
- Заполненность контейнеров (сундуки, печи, раздатчики, вагонетки с сундуком и т. п.).
- Количество игроков, соответствующих введенной в командный блок команде
`/testfor`

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


## Основные логические элементы

**Логические вентили** (или **гейты**) — конструкции, осуществляющие логические операции над сигналами. Вентили принимают сигнал(ы) с одного или нескольких входов и возвращает на выход. Они используются для обработки поступающих сигналов и реагирования только в определённых случаях. Внимательно изучите их все: многие из них вам будут нужны при создании собственных схем. Недостаточно просто выучить расположение элементов, чтобы нормально ими пользоваться, желательно понять, как они работают.


### Вентиль отрицания — NOT

Вентиль NOT (**инвертор**) возвращает сигнал, **противоположный** полученному. Это реализация логического НЕ.

Таблица истинности:

a | ¬a |
---|---|

0 | 1 |

1 | 0 |


До обновления 1.2 этот вентиль применялся при управлении двойными дверьми, так как створки двойной двери на одинаковый сигнал реагировали противоположным образом.



Два вентиля NOT, установленные на линию подряд, называются **повторителем**. Повторитель возвращает такой же сигнал, какой и принял (¬¬a = a) и пропускает сигнал только в одну сторону. До появления красных повторителей, такие повторители были единственным способом передать сигнал дальше.


### Вентиль дизъюнкции — OR

Вентиль OR (логическое ИЛИ) возвращает 1, если **хотя бы на одном** из входов **1**. Обычно необходимости в отдельном вентиле нет, достаточно просто объединить провода. Однако провод пропустит сигнал в обе стороны — если вам это мешает, то можно использовать вентиль.

Формула для случая с отдельным вентилем: a ∨ b ∨ c = ¬¬(a ∨ b ∨ c)

Таблицы истинности:

Трёхвариантная


a | b | c | a ∨ b ∨ c |
---|---|---|---|

0 | 0 | 0 | 0 |

0 | 0 | 1 | 1 |

0 | 1 | 0 | 1 |

0 | 1 | 1 | 1 |

1 | 0 | 0 | 1 |

1 | 0 | 1 | 1 |

1 | 1 | 0 | 1 |

1 | 1 | 1 | 1 |


Двухвариантная


a | b | a ∨ b |
---|---|---|

0 | 0 | 0 |

1 | 0 | 1 |

0 | 1 | 1 |

1 | 1 | 1 |


### Вентиль отрицания дизъюнкции — NOR

Можно изменить схему и не использовать инвертор, тогда результат будет противоположный — это вентиль NOR. Он возвратит 1, если **на всех** входах **0**.

Формула: a ⊽ b = ¬(a ∨ b)

*Такая операция называется стрелкой Пирса.*

Таблица истинности:


a | b | a ⊽ b |
---|---|---|

0 | 0 | 1 |

1 | 0 | 0 |

0 | 1 | 0 |

1 | 1 | 0 |



### Вентиль конъюнкции — AND

Вентиль AND (логическое И) возвращает 1, если на **всех** входах **1**.

Формула: a ∧ b = ¬ (¬a ∨ ¬b)

Таблица истинности:


a | b | a ∧ b |
---|---|---|

0 | 0 | 0 |

1 | 0 | 0 |

0 | 1 | 0 |

1 | 1 | 1 |





### Вентиль отрицания конъюнкции — NAND

Если убрать факел на выходе схемы AND, получится вентиль NAND. Он выдаст 1 если **хотя бы на одном** из входов **0**.

Формула: a ⊼ b = ¬(a ∧ b) = ¬a ∨ ¬b

*Такая операция называется штрихом Шеффера.*

Таблица истинности:


a | b | a ⊼ b |
---|---|---|

0 | 0 | 1 |

1 | 0 | 1 |

0 | 1 | 1 |

1 | 1 | 0 |



### Вентиль строгой дизъюнкции — XOR

Вентиль XOR (исключающее ИЛИ, сумма Жегалкина) возвращает 1, если **только на одном** из входов **1**. То есть, если входные значения были **разные**.

Формула вентиля:

¬[ ¬a ∨ (a ∧ b) ] ∨ ¬[¬b ∨ (a ∧ b) ] = ¬[ (¬a ∨ (a ∧ b)) ∧ (¬b ∨ (a ∧ b)) ] = ¬((¬a ∨ b) ∧ (¬b ∨ a)) = ¬(¬a ∨ b) ∨ ¬(a ∨ ¬b) = a ∧ ¬b ∨ ¬a ∧ b = a ⊻ b


Таблица истинности:


a | b | a ⊻ b |
---|---|---|

0 | 0 | 0 |

1 | 0 | 1 |

0 | 1 | 1 |

1 | 1 | 0 |


Этот и следующий вентили могут применяться для управления различными дверьми (в том числе поршневыми), если нужно иметь возможность открыть и закрыть дверь с обеих сторон от неё. Для этого с обеих сторон устанавливаются рычаги, подведённые к управляющей цепи двери через XOR или XNOR. Тогда дверь откроется, если рычаги в одинаковом (XNOR) или разном (XOR) положении.

Другой способ реализовать такую систему — установить Т-триггер и кнопки вместо рычагов.


### Вентиль отрицания строгой дизъюнкции — XNOR

Вентиль XNOR вернет 1, если на входах сигналы **одинаковые**. Этот вентиль получается из XOR добавлением инвертора на выходе.

Таблица истинности:


a | b | a ≡ b |
---|---|---|

0 | 0 | 1 |

1 | 0 | 0 |

0 | 1 | 0 |

1 | 1 | 1 |



### Вентиль импликации — IMPLIES

Этот вентиль возвращает 1, если есть сигнал на B и/или нет сигнала на A. Иначе говоря, 0 будет возвращён, только если A=1 и B=0.

Таблица истинности:


a | b | a → b |
---|---|---|

0 | 0 | 1 |

1 | 0 | 0 |

0 | 1 | 1 |

1 | 1 | 1 |


## Таймеры

**Таймеры**, или **тактовые генераторы** (от англ. *clock generator*) — схемы, циклично меняющие своё состояние. Чтобы выключить генератор, достаточно подать на любой из его управляющих проводов постоянный сигнал, то есть просто подключить рычаг. Стоит отметить, что до официального релиза при перезапуске мира включенные генераторы в некоторых случаях могли «застыть» в положении, в котором они были на момент выключения. Чтобы их запустить, достаточно обновить любой блок вплотную к ним, например, поставить рядом факел. Таймеры обновляются и работают, только если ближе дистанции прорисовки, в том же измерении есть игроки.

Выражение «*N*-тактовый таймер» означает, что таймер выдает сигнал длиной в *N* краснокаменных тактов (это единица времени в *Minecraft*, соответствующая 0,1 секунды; далее просто «такт», если не указано иначе).

### Таймеры на основе инверторов

Простейший и первейший вид таймеров — кольцо из нечетного числа инверторов (вентилей NOT). Каждый инвертор дает задержку в 1 такт.

Если постараться, то можно сделать таймер из четного числа инверторов.

Минимальное число инверторов — 4, при меньшем цепь перегорит, то есть полностью выключится.

#### Улучшенный вариант с использованием повторителей

Повторитель, установленный с задержкой в два такта, обеспечивает минимальную задержку, достаточную для того, чтобы замкнутая цепь даже из 1 инвертора не перегорала. Это очень удобный, компактный и настраиваемый (добавлением повторителей) генератор. Этот вариант рекомендуется для использования в большинстве случаев.

### Таймер из повторителей

Тактовый генератор можно собрать и из нескольких повторителей, например, из двух. Однако такой генератор весьма неудобен: для запуска нужно рядом быстро включить и выключить рычаг (или поставить и сразу же убрать факел), кроме того, этот вид генератора очень нестабилен и его повторный запуск может оказаться сложным делом. Наиболее простой запуск такого таймера — установить рядом с ним красный факел на уже заряженный красным камнем блок.

Можно сделать большое кольцо из повторителей, оно будет работать стабильней. Любой из проводов на скриншоте может использоваться и как вход, и как выход. Установив повторители на контактах, можно определить, какие будут входами, а какие выходами (несвоевременный сигнал извне может нарушить или остановить работу такого таймера). Количество повторителей определяет задержку таймера.

Можно создать сеть таймеров. Различают два типа таких сетей:

1. Таймеры имеют одинаковую задержку и могут передавать сигнал друг другу.

**Достоинства **

- При разрыве цепочки в любом таймере некоторая его часть будет продолжать функционировать за счёт другого таймера. После устранения разрыва таймер продолжит работу как обычно.

**Недостатки **

- Задержки во всех таймерах сети должны быть одинаковыми. Если хотя бы в одном таймере задержка будет отличатся от других, сигнал в сети станет постоянным. Это делает сеть уязвимой к грифингу.
- Работа сети может быть нарушена сигналом извне хотя бы к одному таймеру.

2. Каждый таймер соединён при помощи повторителя с другим, с задержкой, вдвое меньше предыдущего таймера. Связь между таймерами односторонняя.

**Достоинства **

- При разрыве цепочки в таймере, поддерживаемом другим таймером, функционирование некоторой части повреждённого таймера продолжается. После устранения разрыва таймер продолжит работу как обычно.
- У таймеров разные задержки.

**Недостатки **

- Задержки в таймерах должны различаться в два раза, причём таймер с большей задержкой должен быть соединён с таймером с меньшей задержкой. Нарушение этого правила приводит к тому, что сигнал в сети станет постоянным. Это делает сеть уязвимой к грифингу.
- Задержки в повторителях между таймерами должны быть одинаковыми (рекомендуемая задержка — 1).
- Каждый таймер поддерживается только предыдущим. Повреждённый таймер хоть и продолжит работать в некоторых местах, но перестанет поддерживать другой таймер. Таймер с самой большой задержкой вообще ничем не поддерживается.
- Если подать на один таймер сигнал извне, то его работа и работа поддерживаемого им таймеров может нарушиться. Если будет нарушена работа таймера с самой большой задержкой, вся сеть может перестать работать правильно.

### Железнодорожный таймер

Таймеры на основе железной дороги просты в постройке и настройке, но имеют и некоторые недостатки: они занимают много места, для их постройки нужно золото. Эти тактовые генераторы состоят из небольшого железнодорожного кольца с одним или несколькими электрическими и нажимными рельсами (минимум по одному участку каждого типа). Стоит запустить по такому кольцу вагонетку, и она начнёт стабильно вращаться, периодически проезжая по детекторам. Есть два пути настройки такого генератора: изменение длины кольца или изменение скорости прохождения вагонетки по кольцу, например, введение наклонных рельс, которые будут замедлять вагонетку, или дополнительных энергорельс, которые будут уменьшать задержку между импульсами на выходе.

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

Хорошее применение железнодорожного таймера — срезка тыкв и арбузов. Поскольку в ней чередуются ростки и участки, на которых вырастает урожай, тянуть красный провод пришлось бы вдвое длиннее (на то же количество поршней). Достаточно экономичная автоферма состоит из 4 канав длиной 8 блоков, по которым текут 4 течения воды, каждое следующее на 1 блок ниже предыдущего. Каждая канава окружена 2 грядками шириной в 1 блок, итого на каждом берегу каждой канавы получается 4 стебля и 4 места для урожая. Чтобы сэкономить энергорельсы, железная дорога проведена на одной высоте, а вагонетка с сундуком (так у неё больше инерция). Таким образом, на самой верхней паре грядок вагонетка проходит под поршнями-срезателями, затем на двух следующих проходит за задней стороной, а на самой нижней паре проходит по верху блоков, лежащих на поршнях. В сумме система потребует 32 поршня и столько же нажимных рельсов, можно добавить ещё по одному на самом верху и внизу (работающие вдоль канавы, а не поперёк). Продукцию, разумеется, уносит течение. Ещё больше можно сэкономить, расположив рельсы между двумя аналогичными канавами, чтобы одни нажимные рельсы активировали два поршня над обеими канавами.

### Пульсар

Принцип действия пульсара — факел при включении выключает сам себя и выдает нестабильную серию импульсов. Так как в этой конструкции 4 факела, когда один из них перегорает, начинает мигать второй, и так далее. Если подключить выходы к факелам, можно получить генератор случайных последовательностей, а если к красной пыли — очень быстрый тактовый генератор (см. скриншот справа).

### «Предметный» таймер

Используя свойство выброшенных вещей исчезать через строго определённый промежуток времени — 5 минут, — можно построить высокоточный таймер, дающий задержку в четверть игровых суток. Для этого нужно установить раздатчик и деревянную нажимную пластину так, чтобы при потере сигнала с плиты раздатчик бы срабатывал. Такая система, в отличие от всех остальных, всегда будет выдавать задержку между импульсами в 5 минут вне зависимости от падения производительности.

Будьте осторожны, за 5 минут можно уйти от таймера достаточно далеко, чтобы чанк с ним **перестал обсчитываться**.

### Таймеры на воронках

#### Быстрый таймер

Используя свойство воронок передавать вещи друг другу, можно создать клок-генератор с задержкой в 0,4 секунды или 8 тактов. Для этого нужно присоединить воронку к другой воронке, удерживая клавишу `⇧ Shift` поставить воронку на боковую сторону блока, затем уничтожить блок и проделать тоже самое, установив воронку на «выход» другой воронки. После проделанного нужно установить компаратор к любой из воронок. Напоследок следует загрузить любой предмет в любую воронку и, если всё проделано правильно, генератор начнёт свою работу.

Таймер можно остановить, просто подключив к воронке рычаг и включив его.

#### Долгий таймер

Также на воронках можно соорудить таймер с долгим периодом. Период срабатывания зависит от количества загруженных в воронку предметов. При максимальной загрузке воронки (5 стаков по 64 единицы) один такт будет длиться около 128 секунд. Причём, увеличивая количество воронок (минимальное их количество — 4шт), можно делать задержку сколь угодно большой. Основан таймер на определении компаратором наличия в воронке предмета и предотвращении передачи этого предмета дальше, пока он весь не переместится в текущую воронку.

Можно сделать таймер и на двух воронках. Для этого с одной стороны (верхняя сторона тоже считается) поставьте блок красного камня и два поршня, а с другой — два компаратора, уперев их в инверторы. Инвертор левой воронки подключите к правому поршню, и наоборот. Красный блок будет блокировать одну из воронок до тех пор, пока вторая не опустеет, после чего инвертор второй воронки включится и поршнем переставит блок от первой воронки ко второй воронке (поршень тут же втянется обратно, так как та воронка перестанет быть пустой).

Если убрать один из инверторов, а соответствующий поршень приводить в действие входным сигналом, то получится линия поддержания сигнала. Выход, соответственно, снимается с освободившегося компаратора (куда вместо инвертора подключается повторитель).

### Таймеры на основе компаратора

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

#### 1. Без повторителя

Такой таймер наиболее компактен и дёшев, и позволяет достигать частоты генерации более 5 тактов в секунду. На задний вход компаратора в режиме вычитания подается постоянный сигнал с рычага (перед **входом** компаратора можно установить повторитель, на частоту это не повлияет). Выход компаратора замыкается по кратчайшему пути.

**Достоинства **

- Высокая частота генерации.

**Недостатки **

- От выхода компаратора до приемника сигнала должно быть не более 3 блоков.(Это объясняется тем что от выхода компаратора до его бокового входа сигнал проходит минимум 3 блока, а следовательно на выходе будет слабый сигнал, полностью затухающий при прохождении трёх блоков)

#### 2. С повторителем, в режиме вычитания

Если в цепь обратной связи включить один или несколько повторителей, то частоту генерации можно регулировать. Максимальная частота генерации с одним повторителем ограничена двумя тактами в секунду. В отличие от предыдущего таймера приемник сигнала может быть расположен на расстоянии не менее 2 блоков (это минимальное расстояние задается архитектурой расположения проводов).

**Достоинства **

- Регулируемая частота генерации.

**Недостатки **

- Необходимо больше деталей.
- Меньшая частота генерации.

#### 3. С повторителем, в режиме сравнения

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

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

### Без бокового входа, с высокой скважностью

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

### Таймеры без повторителей и компараторов

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

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

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

### Таймер на основе датчика дневного света

Такой таймер выдает короткий импульс один раз в сутки (20 минут) и основан на детекторе фронта сигнала. Для более частого включения (10 минут) можно использовать одновременно оба варианта.

### Постройка долгих таймеров

Постройка долгих (и очень долгих) таймеров основывается на подключении к тактовому генератору T-триггера, к которому подключен T-триггер и т. д.. Если тактовый генератор имеет период t, то если к нему подключить T-триггер, то на выходе триггера будет период равен уже 2*t. Если к первому триггеру подключить ещё один T-триггер, то на выходе нового триггера будет период 4*t и т. д. Если же имеется n Т-триггеров, подключенных друг к другу и самый первый подключен к тактовому генератору с периодом t, то на выходе последнего триггера будет период (2^n)*t. Данная конструкция схемы позволяет сэкономить место (и порой даже ресурсы) при постройке очень долгих таймеров. Для постройки таймеров, срабатывающих раз в несколько суток имеет смысл в качестве тактового генератора использовать датчик дневного света с подключенным к 15 блоку красного провода от него детектором фронта сигнала.

### Таймер на основе липкого поршня

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

### Таймеры на основе конъюнкции нескольких «подтаймеров»

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

#### Модель

Должно быть 3 последовательности дискретных таймеров с периодами t1, t2, t3 тактов каждый и они должны проходить через оператор, который выдает энергию только тогда, когда на входе все три таймера выдают сигнал (См.выше). Получающийся период T не может быть меньше любых из трех периодов на входе. Так же можно заметить что в случае, если t1, t2, t3 не содержат общих множителей (например простые числа), то T=t1*t2*t3 (Рис. 1). Аналогично выглядит модель для непрерывных функций (Рис. 2).

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

Наконец, если сигналы имеют разные продолжительности (например Вы работаете с одинаковыми *базами* сигнала), то подобных артефактов будет ещё больше, что может оказаться нежелательным в конечной установке.

#### Сборка установки

Постройка может быть произведена из любых таймеров. Например, установка из нескольких замкнутых повторителей дает возможность сделать одинаковое время сигнала. При включении такой схемы подведите провода от всех подтаймеров и дайте короткий сигнал, например поставив и быстро сбив факел. Такой способ позволяет включить подтаймеры синхронно, что очень желательно в силу описанных выше причин. В случае, если например, подтаймеры сделаны на основе компаратора, то база сигнала для всех таймеров будет равна 0.5, а абсолютная продолжительность сигнала будет расти с ростом периода.

#### Примечания

- Если на выходе необходима последовательность нескоррелированных сигналов, можно объединять по такой же схеме источники случайного сигнала. Источник случайного сигнал представляет собой простейшее устройство из выбрасывателя, воронки и компаратора. Например 3 выбрасывателя работающих на вероятность 1/9 после объединения дают вероятность 1/(9*9*9)=1/729. Таким образом, запитав случайные источники простым таймером с периодом 1 секунда, на выходе Вы получите последовательность со случайными промежутками времени, с математическим ожиданием 729 секунд и Гауссовым распределением.
- Если для простой матрицы последовательных повторителей период растет линейно, то при правильном подборе входных данных, период конъюкционного таймера растет по закону близкому к экспоненциальному. Таким образом, такой таймер наиболее эффективен при стремлении получить большие и очень большие времена задержки.
- На скриншоте и схеме, все подтаймеры, вообще говоря начинают работать как бы с середины. Это привносит некоторую целочисленную разность в фазе. Означает это лишь, то, что выходной сигнал тоже сдвинут по фазе, при этом его форма остается неизменной. Если Вас такой сдвиг в фазе не устраивает, располагайте повторители в одну линию.

### Таймеры на наблюдателях

**Таймер нулевого тика**— система из двух наблюдателей, направленных друг на друга. Из-за постоянного обновления друг друга создаётся сигнал с задних сторон обоих наблюдателей. Остановить этот таймер можно только сломав один из наблюдателей.

2. **Таймер на слизи** — из-за особенностей майнкрафта при активации поршня и отключении его, он ходит вперёд и назад с огромной скоростью. Если подключить к этой системе блок красного камня, то можно легко вывести сигнал.
Могут быть и различные вариации подобных механизмов, но суть остаётся той же.



## Триггеры

**Триггер** — это система, которая может хранить своё состояние и менять его по сигналам извне.

### RS NOR триггер

Это простейшая запоминающая ячейка, которую можно реализовать в Minecraft. Она работает на следующем принципе: кольцо из двух[2] инверторов может находиться в двух состояниях, причём переключается между ними только по сигналу «извне». Любой участок провода можно использовать и для управления, и для принятия сигнала.

Таблица истинности:


A (t) | B (t) | A (t+1) | B (t+1) |
---|---|---|---|

0 | 0 | Не меняется. | Не меняется. |

1 | 0 | 1 | 0 |

0 | 1 | 0 | 1 |

1 | 1 | Пульсирует. | Пульсирует. |



### RS NAND триггер

Триггер с условием NAND, по сути, представляет собой предыдущий триггер с инверторами на входах и выходах. Пока оба входа выключены, оба выхода включены. Когда один из входов включается, соответствующий выход (находящийся рядом с ним) гаснет. Включение обоих входов сразу не меняет состояние выходов. При выключении входов на выходы снова подается сигнал.

Таблица истинности:


I1 | I2 | O1 | O2 |
---|---|---|---|

0 | 0 | 1 | 1 |

1 | 0 | 0 | 1 |

0 | 1 | 1 | 0 |

1 | 1 | Не меняется | Не меняется |


### T-триггер

T-триггер при получении сигнала на входе меняет состояние выхода на противоположное. Другими словами, если на входе установить кнопку, через Т-триггер она будет работать как рычаг. Этот вид триггеров часто используется в счетчиках и других сложных схемах.

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


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

### Поршневые запоминающие устройства

#### «Электрический» вариант

В этом виде памяти информация сохраняется не в виде электрического сигнала, а в положении блока. Входы управляют **обычными** поршнями, которые двигают **полный** блок, либо перекрывающий, либо не перекрывающий сигнал от постоянного источника.

Таблица истинности:


A | A` | O |
---|---|---|

0 | 0 | Не меняется |

1 | 0 | 1 |

0 | 1 | 0 |

1 | 1 | Не определено |


На скриншоте левый вход — **A**, правый — **A`**, посередине между ними выход **O**.

#### Механический вариант

Эта схема при нажатии одной из кнопок перемещает блок в строго определённое положение. Применение этому виду «памяти» придумать сложно, потому что он не имеет электрического выхода, но, возможно, он будет Вам интересен.

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

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

## Другие схемы

### Переключатель

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

С одной стороны к блоку подводится красный провод (активен, когда блок активен), а с другой на него ставится красный факел (по сути, получается инвертор) с идущим от него проводом (активен, когда блок неактивен). Рычаг использовать необязательно — например, вместо него можно подвести красный провод.

### Вертикальная передача сигнала

Для передачи сигнала вверх или вниз достаточно построить обычную винтовую лестницу и пустить по ней красный провод, но существуют и более компактные варианты проводки. Фактически, это цепочки из инверторов, установленных вертикально. Если факелов чётное число, то сигнал выйдет неизменным, если нечётное, то сменится на противоположный.

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

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

Начиная с 1.2, красная пыль может быть помещена на светящемся камне, что позволяет создать ещё один вариант вертикальной передачи сигнала, отличающийся мгновенной реакцией (факелы дают задержку). Сигнал по этому типу вертикального ретранслятора будет передаваться только вверх.

### Мост

Мост позволяет создавать намного более компактные пересечения перпендикулярных цепей из красной пыли. Однако, обе пересекающиеся линии должны иметь строго определённое направление сигнала, кроме того, мост добавляет задержку минимум в 0,1 с.

### Детектор фронта сигнала

Такая схема выдает короткий импульс, если сигнал на входе появляется (на верхних иллюстрациях — слева) или исчезает (на верхних иллюстрациях — справа), в зависимости от конструкции. Это означает, что при включении рычага импульс выдаст левая схема, а при выключении — правая. Бывает полезна, например, в случае, когда нужно выполнить некоторую последовательность действий при потере сигнала.

Разность задержки повторителей определяет длительность исходящего импульса, а также то, в каком режиме будет работать детектор: если задержка повторителя у факела меньше, чем у провода, тогда это будет «восходящий» детектор (определяет нарастание сигнала), если наоборот — то «нисходящий» (определяет спад сигнала). Если задержки равны, схема не будет работать.

Также детектор фронта можно сделать с помощью компаратора, включенного в режиме вычитания сигнала (нижние иллюстрации).

### Инвертированный переключатель

Многие механизмы с использованием поршней требуют включения в одном порядке, а выключения — в обратном. Инвертированный переключатель *(англ. ABBA Switch)* позволяет решить этот вопрос: при включении сначала сигнал будет подан на A, потом на B, при выключении же сигнал сначала пропадет с B, потом с A, что и отражено в названии (A->B, B->A). Вместо красной пыли по углам можно просто поставить полные блоки.

### Линии поддержки сигнала

#### С использованием повторителей

Данная схема применяется для того, чтобы увеличить продолжительность сигнала (например, от кнопки). Длительность выходного сигнала составляет длительность исходного сигнала (1 с для каменной кнопки и 1.6 с для деревянной кнопки) плюс суммарная задержка линии повторителей. Повторители, направленные к выходу, используются только как диоды.

#### С использованием воронок

См. п. «долгий таймер на воронках».

#### С использованием компараторов

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

##### В режиме вычитания

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

##### С использованием затухания сигнала

В данной схеме сигнал в круге меняется из-за затухания сигнала проводов. Чем длиннее провод, идущий от компаратора к компаратору, тем сильнее будет затухание сигнала. Если длина провода, идущего от компаратора к компаратору, будет равна одному блоку, то затухание сигнала происходить не будет.

### Двусторонний повторитель

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

### Тиристор

Эта схема подает сигнал на выход при подаче сигнала на оба свои входа, но, когда в активированном состоянии убрать сигнал с входа B, оставив сигнал на входе A, сигнал на выходе остаётся до тех пор, пока не убрать сигнал с входа A.

### Генератор короткого сигнала

Это схема из постоянного сигнала генерирует один короткий, на повторителе стоит задержка 3 такта. Может быть полезна когда схема срабатывает только на выключение, но необходим рычаг. (В случае если нужно много генераторов сигнала и один постоянный, будет проще использовать один Т-Триггер, а остальные подключить напрямую)

#### Экономичная срезалка урожая

Всего 8 поршнями можно обработать весьма изрядное поле. Поршень требует железа и красной пыли, поэтому большое количество поршней, срезающих, например, тростник, на ранней стадии игры может быть достаточно дорогим. Для решения этой проблемы применяется невозможность поршней сдвигать некоторые блоки: строится квадрат из четырёх рядов булыжника, в начале каждого ряда устанавливается поршень-срезатель, направленный вовнутрь (или наружу, главное, чтобы получились все 4 стороны), а в начале и конце ставятся блоки-стопоры и ещё четыре поршня-толкателя, аналогично генератору произвольной последовательности.

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

В результате и внутри, и снаружи кольца над каждой грядкой периодически высовывается поршень. В системе чередуются состояния «поршни наружу», когда все 4 срезают с наружных грядок, «поршни вдоль», когда они не высовываются из-за невозможности выдвинуться, «поршни вовнутрь» и снова «поршни вдоль», но уже в другую сторону. Поэтому каждая из 8 грядок подвергается быстрому срезанию проехавшим мимо неё от начала до конца поршнем, после чего длительной паузе (пока этот поршень проходит остальные 3 состояния). Если что-то растёт прямо под этим кольцом, то можно добавить и пятый поршень, направленный вниз. Это ещё больше увеличит обрабатываемую площадь.

### Система подачи вагонеток

Основой системы является люк, который открывается на время, достаточное для падения одной вагонетки на рельсы.

- Инструкция по созданию

- Шаг 1

Сначала необходимо определиться с высотой строения. В среднем на один блок приходится полторы вагонетки. На самый нижний блок только одна. В данном примере высота строения будет 8 блоков.

- Шаг 2

Далее необходимо установить рельсы и запитать их, а также установить люк на месте, где будут находиться вагонетки.

- Шаг 3

Под блоком с люком нужно разместить красный факел (люк открывается).

- Шаг 4

Далее нужно разместить красную пыль и повторитель с максимальной задержкой. За повторителем и над ним нужно поставить блоки. На верхний блок нужно разместить красный факел. После этого люк становится закрытым по умолчанию.

- Шаг 5

На блоке за повторителем следует разместить кнопку (в качестве управляющего сигнала можно подвести сигнал с отдаленной кнопки). На блоке выше нужно разместить красную пыль.

- Шаг 6

Теперь под люком можно разместить рельсы. Важно разместить их на 2 блока ниже люка и под наклоном в ту сторону, куда должна поехать вагонетка.

- Шаг 7

На данном этапе необходимо достроить рельсы (в данном случае это круг). Теперь можно сделать стопку из вагонеток, как изображено на иллюстрации. При высоте строения 8 блоков помещается 11 вагонеток.

В итоге, конструкция выглядит так:

Для получения вагонетки, необходимо нажать на кнопку.

## Заключение

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

Если вы разобрались с принципами работы этих элементов — вы можете считать, что знаете, как работает красный камень. Удачи!