Схемы из красного камня (от англ. Redstone Circuits) — аналоги электрических цепей реального мира. Позволяют управлять механизмами, реагировать на изменения переключателей и выполнять любые[1] логические преобразования. В этой статье описаны свойства красного камня и основные принципы создания схем.
Схематичные изображения в данной статье сделаны при помощи симуляторов красного камня MCRedstoneSim и Circuit Simulator. Основные обозначения:
— пустая земля
— один блок на земле
— два блока, блок на блоке (под блоками земля)
— красный провод (на земле)
— красный факел (на земле)
— красный провод (на блоке)
— красный факел (на блоке)
— красный провод под блоком
— красный факел под блоком
— красный факел над проводом
— мост: провод на блоке над проводом
— рычаг на земле или сбоку блока
— кнопка сбоку блока
— нажимная пластина на земле
Красный камень — материал, добываемый железной, алмазной или незеритовой киркой из красной руды в количестве 4-5 единиц на блок (если кирка не зачарована на Удачу). Если вы ещё не знакомы со схемами из красного камня, рекомендуется испытывать на практике приводимые здесь факты — так вы лучше сможете понять основные принципы. В этом случае вам понадобится ровная площадка, некоторое количество полных непрозрачных блоков, красная пыль, красные блоки, красные факелы, красные повторители и красные компараторы.
Ингредиенты | Рецепты крафта | Результат |
---|---|---|
Красная пыль + Палка | Красный факел | |
Красный факел + Красная пыль + Камень | Красный повторитель | |
Красный факел + Кварц Нижнего мира + Камень | Компаратор |
Красная пыль при установке в игровом мире представлена в виде красного провода — нетвёрдого блока, который можно ставить только на верх других блоков, причем они должны быть полными и непрозрачными. Красный провод разрушается от одного удара или попадания жидкости, его можно подобрать и снова установить. Два рядом находящихся участка красного провода объединяются в цепь. Цепи можно как угодно разветвлять и соединять.
Два участка красной пыли, расположенных на соседних блоках, которые различаются по высоте на 1, объединятся в непрерывный участок провода. Но, если поставить между ними полный блок, объединения не произойдет. Неполные блоки (например, таблички и плиты) не мешают соединению. Грядка тоже не мешает соединению, а вот затоптанная земля — мешает. Есть два особых случая: стекло, в отличие от остальных полных блоков, не препятствует объединению и прохождению сигнала, в то время как светящийся камень визуально разделяет провод, но сигнал все равно может пройти.
Красный факел по физическим свойствам практически идентичен обычному — он может быть установлен сверху или сбоку любого полного непрозрачного блока. Единственное отличие заключается в яркости излучаемого света — 7 против 14.
Красный повторитель, в отличие от проводов и факелов, твёрдый блок.
Провода не излучают свет (только меняют текстуру), а свет факелов и повторителей недостаточен для препятствия спауну враждебных мобов, поэтому будьте осторожны и следите за освещением.
Для управления схемами без добавления/удаления блоков используются переключатели:
Красный камень позволяет управлять различными блоками в игровом мире — это «устройства вывода». По реакции их можно разделить на 2 группы:
Красная пыль может быть в одном из двух состояний — включена (1, +, true) и выключена (0, -, false). Вообще говоря, любой полный непрозрачный блок тоже может быть «заряжен» («активирован») и включать соседние механизмы. К заряженным блокам относятся:
Следует помнить, что, например, рычаг на блоке земли занимает отдельный блок, а не является «дополнительной частью» блока земли. Точно так же, красный провод, лежащий на земле — отдельный блок на один блок выше земли.
Кроме того, существует некоторое различие в «заряженности» блока. Блок будет «сильно заряжен», если его активирует красный факел (снизу), повторитель или переключатель. Если блок заряжен только проводом, то он будет «слабо заряжен». Единственное различие между «сильно» и «слабо» заряженными блоками заключается в том, что «сильно» заряженный блок может активировать красный провод, примыкающий к любой его стороне, а «слабо» заряженный — нет (см. пример справа).
Это свойство лежит в основе любого сложного механизма. Без его понимания сложно построить многие схемы.
Заряженный блок выключает факел на любой своей стороне.
На практике это означает, что если подвести к (твёрдому, непрозрачному) блоку включенный провод, факелы на сторонах и вершине блока погаснут. Данное свойство работает с активацией не только проводом, но и любым другим указанным выше способом.
Сигнал в проводах затухает — через 16 блоков от источника сигнал будет потерян. Для передачи сигнала более чем на 15 блоков используются повторители (см. далее). Если провод разветвлён, сигнал идет в каждую сторону независимо друг от друга. Если какой-то участок провода подключен сразу к нескольким источникам, его заряд будет рассчитан по расстоянию до ближайшего источника, остальные будут проигнорированы: заряды не суммируются.
Чем меньше заряд на проводе (чем дальше от источника), тем более тусклый он имеет цвет. Это может создавать проблему определения, есть ли сигнал на далёких от источника участках. Помните, что над включённым проводом идет дымок (дым не появляется при минимальных настройках количества частиц).
В электрических рельсах сигнал тоже затухает, только ещё быстрее — дальность передачи уже 10 блоков.
Красные повторители выполняют три функции:
Кроме того, благодаря факту, что повторитель активируется только блоком позади него и активирует только блок перед собой, он может считаться «изолированной» версией красного провода, что иногда применяется в компактных схемах.
В 12w42a (1.4) появилась возможность заблокировать повторитель. Для этого нужно подключить к стороне данного повторителя ещё один включенный повторитель. Повторитель в заблокированном состоянии не реагирует на изменения сигнала на входе, иначе говоря, удерживает состояние на момент блокировки. Как только блокировка снимается, выход повторителя снова приходит в соответствие со входом.
Компаратор имеет две основные функции:
/testfor
. Для обновления показания потребуется ещё раз подать сигнал на командный блок.Логические вентили (или гейты) — конструкции, осуществляющие логические операции над сигналами. Вентили принимают сигнал(ы) с одного или нескольких входов и возвращает на выход. Они используются для обработки поступающих сигналов и реагирования только в определённых случаях. Внимательно изучите их все: многие из них вам будут нужны при создании собственных схем. Недостаточно просто выучить расположение элементов, чтобы нормально ими пользоваться, желательно понять, как они работают.
Вентиль NOT (инвертор) возвращает сигнал, противоположный полученному. Это реализация логического НЕ.
Таблица истинности:
a | ¬a |
---|---|
0 | 1 |
1 | 0 |
До обновления 1.2 этот вентиль применялся при управлении двойными дверьми, так как створки двойной двери на одинаковый сигнал реагировали противоположным образом.
Вентиль 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 |
a | b | a ⊽ b |
---|---|---|
0 | 0 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 0 |
Вентиль AND (логическое И) возвращает 1, если на всех входах 1.
Формула: a ∧ b = ¬ (¬a ∨ ¬b)
Таблица истинности:
a | b | a ∧ b |
---|---|---|
0 | 0 | 0 |
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 1 |
a | b | a ⊼ b |
---|---|---|
0 | 0 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
Формула вентиля:
¬[ ¬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) положении.
Другой способ реализовать такую систему — установить Т-триггер и кнопки вместо рычагов.
a | b | a ≡ b |
---|---|---|
0 | 0 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 1 |
Этот вентиль возвращает 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 секунды; далее просто «такт», если не указано иначе).
Повторитель, установленный с задержкой в два такта, обеспечивает минимальную задержку, достаточную для того, чтобы замкнутая цепь даже из 1 инвертора не перегорала. Это очень удобный, компактный и настраиваемый (добавлением повторителей) генератор. Этот вариант рекомендуется для использования в большинстве случаев.
Тактовый генератор можно собрать и из нескольких повторителей, например, из двух. Однако такой генератор весьма неудобен: для запуска нужно рядом быстро включить и выключить рычаг (или поставить и сразу же убрать факел), кроме того, этот вид генератора очень нестабилен и его повторный запуск может оказаться сложным делом. Наиболее простой запуск такого таймера — установить рядом с ним красный факел на уже заряженный красным камнем блок.
Можно сделать большое кольцо из повторителей, оно будет работать стабильней. Любой из проводов на скриншоте может использоваться и как вход, и как выход. Установив повторители на контактах, можно определить, какие будут входами, а какие выходами (несвоевременный сигнал извне может нарушить или остановить работу такого таймера). Количество повторителей определяет задержку таймера.
Можно создать сеть таймеров. Различают два типа таких сетей:
1. Таймеры имеют одинаковую задержку и могут передавать сигнал друг другу.
Достоинства
Недостатки
2. Каждый таймер соединён при помощи повторителя с другим, с задержкой, вдвое меньше предыдущего таймера. Связь между таймерами односторонняя.
Достоинства
Недостатки
Таймеры на основе железной дороги просты в постройке и настройке, но имеют и некоторые недостатки: они занимают много места, для их постройки нужно золото. Эти тактовые генераторы состоят из небольшого железнодорожного кольца с одним или несколькими электрическими и нажимными рельсами (минимум по одному участку каждого типа). Стоит запустить по такому кольцу вагонетку, и она начнёт стабильно вращаться, периодически проезжая по детекторам. Есть два пути настройки такого генератора: изменение длины кольца или изменение скорости прохождения вагонетки по кольцу, например, введение наклонных рельс, которые будут замедлять вагонетку, или дополнительных энергорельс, которые будут уменьшать задержку между импульсами на выходе.
Заменив в схеме флип-флопа средний ускоритель на третьи нажимные рельсы и связав все три выхода воедино, можно получить однократный таймер, он же линия поддержки сигнала, при достаточно высокой длительности отличающаяся компактностью и дешевизной.
Хорошее применение железнодорожного таймера — срезка тыкв и арбузов. Поскольку в ней чередуются ростки и участки, на которых вырастает урожай, тянуть красный провод пришлось бы вдвое длиннее (на то же количество поршней). Достаточно экономичная автоферма состоит из 4 канав длиной 8 блоков, по которым текут 4 течения воды, каждое следующее на 1 блок ниже предыдущего. Каждая канава окружена 2 грядками шириной в 1 блок, итого на каждом берегу каждой канавы получается 4 стебля и 4 места для урожая. Чтобы сэкономить энергорельсы, железная дорога проведена на одной высоте, а вагонетка с сундуком (так у неё больше инерция). Таким образом, на самой верхней паре грядок вагонетка проходит под поршнями-срезателями, затем на двух следующих проходит за задней стороной, а на самой нижней паре проходит по верху блоков, лежащих на поршнях. В сумме система потребует 32 поршня и столько же нажимных рельсов, можно добавить ещё по одному на самом верху и внизу (работающие вдоль канавы, а не поперёк). Продукцию, разумеется, уносит течение. Ещё больше можно сэкономить, расположив рельсы между двумя аналогичными канавами, чтобы одни нажимные рельсы активировали два поршня над обеими канавами.
Принцип действия пульсара — факел при включении выключает сам себя и выдает нестабильную серию импульсов. Так как в этой конструкции 4 факела, когда один из них перегорает, начинает мигать второй, и так далее. Если подключить выходы к факелам, можно получить генератор случайных последовательностей, а если к красной пыли — очень быстрый тактовый генератор (см. скриншот справа).
Используя свойство выброшенных вещей исчезать через строго определённый промежуток времени — 5 минут, — можно построить высокоточный таймер, дающий задержку в четверть игровых суток. Для этого нужно установить раздатчик и деревянную нажимную пластину так, чтобы при потере сигнала с плиты раздатчик бы срабатывал. Такая система, в отличие от всех остальных, всегда будет выдавать задержку между импульсами в 5 минут вне зависимости от падения производительности.
Будьте осторожны, за 5 минут можно уйти от таймера достаточно далеко, чтобы чанк с ним перестал обсчитываться.
Используя свойство воронок передавать вещи друг другу, можно создать клок-генератор с задержкой в 0,4 секунды или 8 тактов. Для этого нужно присоединить воронку к другой воронке, удерживая клавишу ⇧ Shift поставить воронку на боковую сторону блока, затем уничтожить блок и проделать тоже самое, установив воронку на «выход» другой воронки. После проделанного нужно установить компаратор к любой из воронок. Напоследок следует загрузить любой предмет в любую воронку и, если всё проделано правильно, генератор начнёт свою работу.
Таймер можно остановить, просто подключив к воронке рычаг и включив его.
Также на воронках можно соорудить таймер с долгим периодом. Период срабатывания зависит от количества загруженных в воронку предметов. При максимальной загрузке воронки (5 стаков по 64 единицы) один такт будет длиться около 128 секунд. Причём, увеличивая количество воронок (минимальное их количество — 4шт), можно делать задержку сколь угодно большой. Основан таймер на определении компаратором наличия в воронке предмета и предотвращении передачи этого предмета дальше, пока он весь не переместится в текущую воронку.
Можно сделать таймер и на двух воронках. Для этого с одной стороны (верхняя сторона тоже считается) поставьте блок красного камня и два поршня, а с другой — два компаратора, уперев их в инверторы. Инвертор левой воронки подключите к правому поршню, и наоборот. Красный блок будет блокировать одну из воронок до тех пор, пока вторая не опустеет, после чего инвертор второй воронки включится и поршнем переставит блок от первой воронки ко второй воронке (поршень тут же втянется обратно, так как та воронка перестанет быть пустой).
Если убрать один из инверторов, а соответствующий поршень приводить в действие входным сигналом, то получится линия поддержания сигнала. Выход, соответственно, снимается с освободившегося компаратора (куда вместо инвертора подключается повторитель).
Такие таймеры основаны на конечном времени задержки компаратора. В основе таких таймеров лежит компаратор с замкнутым выходом на боковой вход. Можно выделить три основных подкатегории:
Такой таймер наиболее компактен и дёшев, и позволяет достигать частоты генерации более 5 тактов в секунду. На задний вход компаратора в режиме вычитания подается постоянный сигнал с рычага (перед входом компаратора можно установить повторитель, на частоту это не повлияет). Выход компаратора замыкается по кратчайшему пути.
Достоинства
Недостатки
Если в цепь обратной связи включить один или несколько повторителей, то частоту генерации можно регулировать. Максимальная частота генерации с одним повторителем ограничена двумя тактами в секунду. В отличие от предыдущего таймера приемник сигнала может быть расположен на расстоянии не менее 2 блоков (это минимальное расстояние задается архитектурой расположения проводов).
Достоинства
Недостатки
Если входной сигнал проходит от источника до компаратора хотя бы 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, а абсолютная продолжительность сигнала будет расти с ростом периода.
2. Таймер на слизи — из-за особенностей майнкрафта при активации поршня и отключении его, он ходит вперёд и назад с огромной скоростью. Если подключить к этой системе блок красного камня, то можно легко вывести сигнал. Могут быть и различные вариации подобных механизмов, но суть остаётся той же.
Триггер — это система, которая может хранить своё состояние и менять его по сигналам извне.
Это простейшая запоминающая ячейка, которую можно реализовать в Minecraft. Она работает на следующем принципе: кольцо из двух[2] инверторов может находиться в двух состояниях, причём переключается между ними только по сигналу «извне». Любой участок провода можно использовать и для управления, и для принятия сигнала.
Таблица истинности:
A (t) | B (t) | A (t+1) | B (t+1) |
---|---|---|---|
0 | 0 | Не меняется. | Не меняется. |
1 | 0 | 1 | 0 |
0 | 1 | 0 | 1 |
1 | 1 | Пульсирует. | Пульсирует. |
Триггер с условием NAND, по сути, представляет собой предыдущий триггер с инверторами на входах и выходах. Пока оба входа выключены, оба выхода включены. Когда один из входов включается, соответствующий выход (находящийся рядом с ним) гаснет. Включение обоих входов сразу не меняет состояние выходов. При выключении входов на выходы снова подается сигнал.
Таблица истинности:
I1 | I2 | O1 | O2 |
---|---|---|---|
0 | 0 | 1 | 1 |
1 | 0 | 0 | 1 |
0 | 1 | 1 | 0 |
1 | 1 | Не меняется | Не меняется |
T-триггер при получении сигнала на входе меняет состояние выхода на противоположное. Другими словами, если на входе установить кнопку, через Т-триггер она будет работать как рычаг. Этот вид триггеров часто используется в счетчиках и других сложных схемах.
Т-триггер на выбрасывателях. Из-за особенностей обновления блоков поставленные соплами друг к другу выбрасыватели при одновременной активации могут передавать предмет только в одном направлении, поэтому, определив, из какого из них передача не идёт, нужно развернуть его и вернуть предмет через воронки.
В этом виде памяти информация сохраняется не в виде электрического сигнала, а в положении блока. Входы управляют обычными поршнями, которые двигают полный блок, либо перекрывающий, либо не перекрывающий сигнал от постоянного источника.
Таблица истинности:
A | A` | O |
---|---|---|
0 | 0 | Не меняется |
1 | 0 | 1 |
0 | 1 | 0 |
1 | 1 | Не определено |
На скриншоте левый вход — A, правый — A`, посередине между ними выход O.
Эта схема при нажатии одной из кнопок перемещает блок в строго определённое положение. Применение этому виду «памяти» придумать сложно, потому что он не имеет электрического выхода, но, возможно, он будет Вам интересен.
Если заменить лёд на скриншоте блоком красного камня, то возможно получить значение ячейки.
Как видно, каждая кнопка управляет сразу двумя соседними группами поршней. Провода с кнопкой не должны соединяться. В случае, если этого условия добиться невозможно, можно использовать красные повторители.
В случае передачи сигнала вверх нижний факел гаснет и отключает стоящий над ним блок, который перестаёт гасить стоящий на нём факел и т. д. При передаче вниз верхний факел гаснет и зажигает следующий факел. Тот включается и меняет состояние следующего факела и т. д.
Также можно устанавливать плиты таким образом, чтобы они занимали «верх» блока и на них провода, чередуя их по вертикали: плита занимающая верх блока, на ней провод, справа от блока с проводом плита занимающая верх блока, на ней провод, слева от блока с проводом плита занимающая верх блока, на ней провод, и так далее. При этом сигнал будет передаваться только вверх.
Начиная с 1.2, красная пыль может быть помещена на светящемся камне, что позволяет создать ещё один вариант вертикальной передачи сигнала, отличающийся мгновенной реакцией (факелы дают задержку). Сигнал по этому типу вертикального ретранслятора будет передаваться только вверх.
Такая схема выдает короткий импульс, если сигнал на входе появляется (на верхних иллюстрациях — слева) или исчезает (на верхних иллюстрациях — справа), в зависимости от конструкции. Это означает, что при включении рычага импульс выдаст левая схема, а при выключении — правая. Бывает полезна, например, в случае, когда нужно выполнить некоторую последовательность действий при потере сигнала.
Разность задержки повторителей определяет длительность исходящего импульса, а также то, в каком режиме будет работать детектор: если задержка повторителя у факела меньше, чем у провода, тогда это будет «восходящий» детектор (определяет нарастание сигнала), если наоборот — то «нисходящий» (определяет спад сигнала). Если задержки равны, схема не будет работать.
Также детектор фронта можно сделать с помощью компаратора, включенного в режиме вычитания сигнала (нижние иллюстрации).
Многие механизмы с использованием поршней требуют включения в одном порядке, а выключения — в обратном. Инвертированный переключатель (англ. ABBA Switch) позволяет решить этот вопрос: при включении сначала сигнал будет подан на A, потом на B, при выключении же сигнал сначала пропадет с B, потом с A, что и отражено в названии (A->B, B->A). Вместо красной пыли по углам можно просто поставить полные блоки.
Данная схема применяется для того, чтобы увеличить продолжительность сигнала (например, от кнопки). Длительность выходного сигнала составляет длительность исходного сигнала (1 с для каменной кнопки и 1.6 с для деревянной кнопки) плюс суммарная задержка линии повторителей. Повторители, направленные к выходу, используются только как диоды.
См. п. «долгий таймер на воронках».
Основная идея использования схемы поддержки сигнала с использованием компараторов — подать на замкнутый круг из компараторов сигнал и уменьшать с течением времени силу сигнала в круге на единицу или больше, тем самым уменьшая/увеличивая время поддержки сигнала.
В данной схеме сигнал в круге меняется одним компаратором в круге, который находится в режиме вычитания и на который подается сбоку ненулевой сигнал. Ненулевой сигнал, подаваемый сбоку на компаратор в режиме вычитания, создается с помощью компаратора, подключенного к сундуку, в котором находятся предметы.
В данной схеме сигнал в круге меняется из-за затухания сигнала проводов. Чем длиннее провод, идущий от компаратора к компаратору, тем сильнее будет затухание сигнала. Если длина провода, идущего от компаратора к компаратору, будет равна одному блоку, то затухание сигнала происходить не будет.
Эта схема работает как повторитель, но, в отличие от обычных повторителей, она пропускает сигнал в обе стороны. Это может пригодиться, если нужно или можно использовать один провод для связи в обе стороны.
Эта схема подает сигнал на выход при подаче сигнала на оба свои входа, но, когда в активированном состоянии убрать сигнал с входа B, оставив сигнал на входе A, сигнал на выходе остаётся до тех пор, пока не убрать сигнал с входа A.
Это схема из постоянного сигнала генерирует один короткий, на повторителе стоит задержка 3 такта. Может быть полезна когда схема срабатывает только на выключение, но необходим рычаг. (В случае если нужно много генераторов сигнала и один постоянный, будет проще использовать один Т-Триггер, а остальные подключить напрямую)
Всего 8 поршнями можно обработать весьма изрядное поле. Поршень требует железа и красной пыли, поэтому большое количество поршней, срезающих, например, тростник, на ранней стадии игры может быть достаточно дорогим. Для решения этой проблемы применяется невозможность поршней сдвигать некоторые блоки: строится квадрат из четырёх рядов булыжника, в начале каждого ряда устанавливается поршень-срезатель, направленный вовнутрь (или наружу, главное, чтобы получились все 4 стороны), а в начале и конце ставятся блоки-стопоры и ещё четыре поршня-толкателя, аналогично генератору произвольной последовательности.
Над квадратом устанавливается ещё одна рамка, на которой выкладывается красная пыль и устанавливаются повторители таким образом, чтобы не только правильно активировать по очереди поршни-толкатели (так, чтобы квадрат с поршнями-срезателями последовательно двигался по всему кольцу), но и сами поршни-срезатели активировались по очереди в той стенке, которую никто в этот момент не двигает. В зависимости от того, какой именно поршень-срезатель проходит под каждой из линий красной пыли, он или выдвинется вовнутрь, или наружу, или попытается двигаться вдоль самой стенки (по ходу или против хода её нормального движения). В последних двух случаях систему бы разворотило, если бы не блоки-стопоры, придерживающие как стенки, так и блоки-толкатели.
В результате и внутри, и снаружи кольца над каждой грядкой периодически высовывается поршень. В системе чередуются состояния «поршни наружу», когда все 4 срезают с наружных грядок, «поршни вдоль», когда они не высовываются из-за невозможности выдвинуться, «поршни вовнутрь» и снова «поршни вдоль», но уже в другую сторону. Поэтому каждая из 8 грядок подвергается быстрому срезанию проехавшим мимо неё от начала до конца поршнем, после чего длительной паузе (пока этот поршень проходит остальные 3 состояния). Если что-то растёт прямо под этим кольцом, то можно добавить и пятый поршень, направленный вниз. Это ещё больше увеличит обрабатываемую площадь.
Основой системы является люк, который открывается на время, достаточное для падения одной вагонетки на рельсы.
Сначала необходимо определиться с высотой строения. В среднем на один блок приходится полторы вагонетки. На самый нижний блок только одна. В данном примере высота строения будет 8 блоков.
Далее необходимо установить рельсы и запитать их, а также установить люк на месте, где будут находиться вагонетки.
Под блоком с люком нужно разместить красный факел (люк открывается).
Далее нужно разместить красную пыль и повторитель с максимальной задержкой. За повторителем и над ним нужно поставить блоки. На верхний блок нужно разместить красный факел. После этого люк становится закрытым по умолчанию.
На блоке за повторителем следует разместить кнопку (в качестве управляющего сигнала можно подвести сигнал с отдаленной кнопки). На блоке выше нужно разместить красную пыль.
Теперь под люком можно разместить рельсы. Важно разместить их на 2 блока ниже люка и под наклоном в ту сторону, куда должна поехать вагонетка.
На данном этапе необходимо достроить рельсы (в данном случае это круг). Теперь можно сделать стопку из вагонеток, как изображено на иллюстрации. При высоте строения 8 блоков помещается 11 вагонеток.
В итоге, конструкция выглядит так:
Для получения вагонетки, необходимо нажать на кнопку.
В данной статье были рассмотрены многие основные схемы из красного камня. Приведённые здесь варианты строения не являются единственно правильными — почти всегда существуют другие варианты схем, иногда более компактные и менее ресурсоёмкие. О многих других схемах и вариантах строения можно прочитать, например, в английской версии этой статьи.
Если вы разобрались с принципами работы этих элементов — вы можете считать, что знаете, как работает красный камень. Удачи!