Схемы из красного камня
Схемы из красного камня (редстоун цепи, или, иногда, просто редстоун - от англ. redstone circuits) - аналог электрических цепей реального мира. Позволяют управлять механизмами, реагировать на изменения переключателей и выполнять любые[1] логические преобразования. В этой статье описаны свойства красного камня и основные принципы создания схем.
Система обозначений
Схематичные изображения в данной статье сделаны при помощи симуляторов красного камня MCRedstoneSim и Circuit Simulator. Основные обозначения:
- пустая земля
- один блок на земле
- два блока, блок на блоке (под блоками земля)
- красный провод (на земле)
- красный факел (на земле)
- красный провод (на блоке)
- красный факел (на блоке)
- красный провод под блоком
- красный факел под блоком
- красный факел над проводом
- мост: провод на блоке над проводом
- рычаг на земле или сбоку блока
- кнопка сбоку блока
- нажимная пластина на земле
Вступление
Красный камень - материал, добываемый железной или алмазной киркой из красной руды в количестве 4-5 единиц на блок. Если Вы ещё не знакомы со схемами из красного камня, рекомендуется испытывать на практике приводимые здесь факты - так Вы лучше сможете понять основные принципы. В этом случае Вам понадобится ровная площадка, некоторое количество полных непрозрачных блоков (земля отлично подойдёт), палки для факелов и, разумеется, красная пыль - половины стопки будет достаточно.
Помимо добытой из красной руды пыли для создания схем требуются факелы и, иногда, повторители:
Ингредиенты | Процесс | Результат | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Красная пыль + Палка |
|
Красный факел | |||||||||||
Камень + Красный факел + Красная пыль |
|
Красный повторитель |
Эта статья может использоваться как руководство по изучению красного камня для новичков, так и в качестве справки для уже умеющих с ним работать - выберите то, что нужно Вам.
В этой статье приведены логические обоснования некоторых схем. Если хотите, можете их пропустить.
Физические свойства
Красная пыль при установке в игровом мире представлена в виде красного провода - нетвёрдого блока, который можно ставить только на верх других блоков, причем они должны быть полными и непрозрачными. Красный провод разрушается с одного удара или попадания жидкости, его можно подобрать и снова установить. Два рядом находящихся участка красного провода объединяются в цепь. Цепи можно как угодно разветвлять и соединять.
Два участка красной пыли, расположенных на соседних блоках, которые различаются по высоте на 1, объединятся в непрерывный участок провода. Но, если поставить между ними полный блок, объединения не произойдет. Неполные блоки (например, таблички и плиты) не мешают соединению. Грядка тоже не мешает соединению, а вот затоптанная земля - мешает. Есть два особых случая: стекло, в отличие от остальных полных блоков, не препятствует объединению и прохождению сигнала, в то время как светящийся камень визуально разделяет провод, но сигнал все равно может пройти.
Красный факел по физическим свойствам практически идентичен обычному - он может быть установлен сверху или сбоку любого полного непрозрачного блока. Единственное отличие заключается в яркости излучаемого света - 7 против 14.
Красный повторитель, в отличие от проводов и факелов, твёрдый блок.
Провода не излучают свет (только меняют текстуру), а свет факелов и повторителей недостаточен для препятствия спауну враждебных мобов, будьте осторожны и следите за освещением.
Механизмы
Для управления схемами без добавления/убирания блоков используются «устройства ввода»:
- Рычаг. Ставится на блок сверху или сбоку, а с 12w24a (1.3.1) может быть закреплён и на нижней стороне. Имеет два положения - включен и выключен, - между которыми переключается щелчком игрока. После установки выключен.
- Кнопка. Устанавливается только сбоку блока. Существует в двух вариантах - каменном и деревянном. Каменная активируется только щелчком игрока, деревянная может быть включена стрелой. При активации каменная кнопка включается на 1 секунду, деревянная - на 1.6 секунды.
- Нажимная пластина. Только напольная. Включается при нажатии. Деревянная включается, если на неё наступить или бросить предмет, каменная - только если наступить. С 12w23a (1.3.1) деревянная пластина реагирует на стрелы.
- Нажимные рельсы. Рельсы с нажимной пластиной. Работает как нажимная пластина, но реагирует на проезжающие вагонетки (при большой скорости вагонетки или лагах может и не среагировать).
- Натяжной датчик. Устройство, появившееся в предварительной версии 12w22a (добавлено в 1.3.1). Нужно установить два датчика друг напротив друга и соединить нитью. Если игрок, моб, предмет, сфера опыта, стрела или сущности падающих блоков (песок, ТНТ...) касается нити, или же нить удаляют без использования ножниц, оба крюка подают сигнал.
Красный камень позволяет управлять различными блоками в игровом мире - это «устройства вывода». По реакции их можно разделить на 2 группы:
- Двери, люк, ворота, поршни, электрические рельсы и лампа при подведении активного провода меняют своё состояния и сохраняют его, пока сигнал не будет убран.
- Раздатчик, музыкальный блок и ТНТ однократно включаются, если рядом есть активный провод. Чтобы активировать блок повторно (не относится к ТНТ, разумеется), нужно убрать сигнал и подать его снова.
Подключение
Активные блоки
Красная пыль может быть в одном из двух состояний - включена (1, +, true) и выключена (0, -, false). Вообще говоря, любой полный непрозрачный блок тоже может быть «заряжен» («активирован») и включать соседние механизмы. К заряженным блокам относятся:
- красный факел;
- блок над красным факелом;
- красный провод, по которому идет сигнал;
- блок, на котором находится активный провод;
- блок, к которому напрямую подведен провод или повторитель;
- блок, который занимает переключатель;
- блок, к которому прикреплен переключатель.
Следует помнить, что, например, рычаг на блоке земли занимает отдельный блок, а не является «дополнительной частью» блока земли. Точно так же, красный провод, лежащий на земле - отдельный блок на одну клетку выше земли.
Кроме того, существует также и некоторое различие в «заряженности» блока. Блок будет «сильно заряжен», если его активирует красный факел (снизу), повторитель или переключатель. Если блок заряжен только проводом, то он будет «слабо заряжен». Единственное различие между «сильно» и «слабо» заряженным блоками заключается в том, что «сильно» заряженный блок может активировать красный провод, примыкающий к любой своей стороне, а «слабо» заряженный - нет (см. пример справа).
Основное свойство красных факелов
Это свойство лежит в основе любого сложного механизма. Без его понимания у Вас вряд ли получится создать сколько-нибудь полезную схему.
Заряженный блок выключает факел на любой своей стороне.
На практике это означает, что если подвести к (твёрдому, непрозрачному) блоку включенный провод, факелы на сторонах и вершине блока погаснут. Данное свойство работает с активацией не только проводом, но и любым другим указанным выше способом.
Затухание сигнала
Сигнал в проводах затухает - через 15 блоков от источника сигнал будет потерян. Для передачи сигнала более чем на 15 блоков используются повторители (см. далее). Если провод разветвлён, сигнал идет в каждую сторону независимо друг от друга. Если какой-то участок провода подключен сразу к нескольким источникам, его заряд будет рассчитан по расстоянию до ближайшего источника, остальные будут проигнорированы: заряды не суммируются.
Чем меньше заряд на проводе (чем дальше от источника), тем более тусклый он имеет цвет. Это может создавать проблему определения, есть ли сигнал на далёких от источника участках. Помните, что над включённым проводом идет дымок (дым не появляется при минимальных настройках количества частиц).
Кстати говоря, в электрических рельсах сигнал тоже затухает, только ещё быстрее - дальность передачи уже 9 блоков.
Красные повторители
Красные повторители выполняют три функции:
- Ретранслятор. Он может «усиливать» сигнал до изначального уровня, передавая его дальше по цепи на 15 блоков. Таким образом, повторители могут использоваться для передачи сигнала на расстояния, больше 15 блоков.
- Диод. Повторитель замечателен тем, что имеет строго определенные вход и выход, поэтому его можно использовать в качестве диода - элемента, пропускающего сигнал только в одну сторону.
- Элемент задержки. Повторитель передаёт сигнал со входа на выход с определённой задержкой от 0.1 до 0.4 секунды, что упрощает создание таймеров. Для смены задержки щёлкните ПКМ по повторителю. Задержка будет меняться таким образом: 0.1 - 0.2 - 0.3 - 0.4 - 0.1.
Кроме того, благодаря факту, что повторитель активируется только блоком позади него и активирует только блок перед собой, он может считаться «изолированной» версией красного провода, что иногда применяется в компактных схемах.
В 12w42a (1.4) появилась возможность заблокировать повторитель. Для этого нужно подключить к стороне данного повторителя еще один включенный повторитель. Повторитель в заблокированном состоянии не реагирует на изменения сигнала на входе, иначе говоря, удерживает состояние на момент блокировки. Как только блокировка снимается, выход повторителя снова приходит в соответствие со входом.
Основные логические элементы
Логические вентили (или гейты) - конструкции, осуществляющие логические операции над сигналами. Вентили принимают сигнал(ы) с одного или нескольких входов и возвращает на выход. Они используются для обработки поступающих сигналов и реагирования только в определенных случаях. Внимательно изучите их все: многие из них Вам будут нужны при создании собственных схем. Недостаточно просто выучить расположение элементов, чтобы нормально ими пользоваться, нужно понять, как они работают.
Вентиль отрицания - NOT
Вентиль NOT (инвертор) возвращает сигнал, противоположный полученному. Это реализация логического НЕ.
Таблица истинности:
a | ¬a |
---|---|
0 | 1 |
1 | 0 |
До обновления 1.2 этот вентиль применялся при управлении двойными дверьми, так как створки двойной двери на одинаковый сигнал реагировали противоположным образом.
Два вентиля NOT, установленные на линию подряд, называются повторителем. Повторитель возвращает такой же сигнал, какой и принял ( ¬¬a = a ) и пропускает сигнал только в одну сторону. До появления красных повторителей, такие повторители были единственным способом передать сигнал более чем на 15 блоков.
Вентиль дизъюнкции - 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 |
---|---|---|
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) - схемы, циклично меняющие своё состояние. Чтобы выключить генератор, достаточно подать на любой из его управляющих проводов постоянный сигнал, то есть просто подключить рычаг. Стоит отметить, что при перезапуске мира включенные генераторы в некоторых случаях могут «застыть» в положении, в котором они были на момент выключения. Чтобы их запустить, достаточно обновить любой блок вплотную к ним, например, поставить рядом факел. Таймеры обновляются и работают, только если ближе 10 чанков в том же измерении есть игроки.
Таймеры на основе инверторов
Простейший и первейший вид таймеров - кольцо из нечетного числа инверторов (вентилей NOT). Минимальное число инверторов - 5, при меньшем цепь перегорит, то есть полностью выключится - если Вам незнакомо это понятие, попробуйте замкнуть инвертор сам на себя.
Улучшенный вариант с использованием повторителей
Повторитель в режиме "0.2" обеспечивает задержку, достаточную для того, чтобы замкнутая цепь даже из 1 инвертора не перегорала. Это очень удобный, компактный и настраиваемый (добавлением повторителей) генератор. Этот вариант рекомендуется для использования в большинстве случаев.
Таймер из повторителей
Тактовый генератор можно собрать и из нескольких повторителей, например, из двух. Однако такой генератор весьма неудобен: для запуска нужно рядом быстро включить и выключить рычаг (или поставить и сразу же убрать факел), кроме того, этот вид генератора очень нестабилен и его повторный запуск может оказаться сложным делом.
Можно сделать большое кольцо из повторителей, оно будет работать стабильней. Любой из проводов на скриншоте может использоваться и как вход, и как выход. Установив повторители на контактах, можно определить, какие будут входами, а какие выходами (несвоевременный сигнал извне может нарушить или остановить работу такого таймера).
Железнодорожный таймер
Таймеры на основе железной дороги просты в постройке и настройке, но имеют и некоторые недостатки, в частности, они занимают много места и для их постройки нужно золото. Эти тактовые генераторы состоят из небольшого ж/д кольца с одним или несколькими электрическими и нажимными рельсами (минимум по одному участку каждого типа). Стоит запустить по такому кольцу вагонетку, и она начнёт стабильно вращаться, периодически проезжая по детекторам. Есть два пути настройки такого генератора: изменение длины кольца или изменение скорости прохождения вагонетки по кольцу, например, введение «горок», которые будут замедлять вагонетку, или дополнительных ускорителей, которые будут уменьшать задержку между импульсами на выходе.
Пульсар
Принцип действия пульсара - факел при включении выключает сам себя и выдает нестабильную серию импульсов. Так как в этой конструкции 4 факела, когда один из них перегорает, начинает мигать второй, и так далее. Если подключить выходы к факелам, можно получить генератор случайных последовательностей, а если к красной пыли - очень быстрый тактовый генератор (см. скриншот справа).
"Предметный" таймер
Используя свойство выброшенных вещей исчезать через строго определённый промежуток времени - 5 минут, - можно построить высокоточный таймер, дающий задержку в четверть игровых суток. Для этого нужно установить раздатчик и деревянную нажимную пластину так, чтобы при потере сигнала с плиты раздатчик бы срабатывал. Такая система, в отличие от всех остальных, всегда будет выдавать задержку между импульсами в 5 минут вне зависимости от лагов.
Будьте осторожны, за 5 минут можно уйти от таймера достаточно далеко, чтобы чанк с ним перестал обсчитываться.
Триггеры
Триггер - это система, которая может хранить своё состояние и менять его по сигналам извне.
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 с для кнопки) плюс суммарная задержка линии повторителей. Повторители, направленные к выходу, используются только как диоды.
Двусторонний повторитель
Эта схема работает как повторитель, но, в отличие от обычных повторителей, она пропускает сигнал в обе стороны. Это может пригодиться, если нужно или можно использовать один провод для связи в обе стороны.
Заключение
В данной статье были рассмотрены многие основные схемы из красного камня. Приведённые здесь варианты строения не являются единственно правильными - почти всегда существуют другие варианты схем, иногда более компактные и менее ресурсоёмкие. О многих других схемах и вариантах строения можно прочитать, например, в английской версии этой статьи.
Если Вы разобрались с принципами работы этих элементов - Вы можете считать, что знаете, как работает красный камень. Удачи!