Подробный гайд по редстоуну

Материал из Minecraft Wiki
Перейти к: навигация, поиск

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

Содержание

[править] Основы

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

Итак, два основных элемента, используемых для создания редстоун цепей - красный порошок и красный факел.

Красный порошок выполняет функцию провода, а красный факел - функцию источника питания.

Провода и факелы могут находиться в двух состояниях: включен и выключен.

Если факел или провод горит - он включён, если нет - выключен.

Факел, находясь на смежном с проводом блоке, "зажигает" его:

Redstone1.jpg

Факел можно установить и на блок:

Обратите внимание, что факел занимает клетку и на полу, поэтому разместить провод прямо под факелом не получится, поэтому мы размещаем его на следующей клетке

Redstone2.jpg

Заметьте, что такой вариант зажигать провод не будет:

Redstone3.jpg

Факел на вершине блока будет зажигать только провода, находящиеся в одной плоскости с ним:

Redstone4.jpg

Если к блоку, на вершине которого установлен факел, подвести включённый провод, то он активирует этот блок и факел тухнет:

Redstone5.jpg

Как видите, то же самое происходит с факелом, расположенным на любой стороне "активированного" блока, не только на вершине, и этот факел перестаёт подавать энергию проводам:

Redstone6.jpg

Отсюда выводим важное свойство:

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

Провода можно также разветвлять:

Redstone7.jpg

"Зажигать" провода и факелы можно также с помощью рычагов, кнопок и нажимных пластин.

Рычаг может переключаться между значениями 1 и 0 (включён и выключен)

Кнопка при нажатии передаёт значение 1 и переключается обратно на 0

Нажимная пластина передает значение 1 пока она нажата, если она не нажата, она передаёт 0

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

Рычаг, присоединённый к проводу, во включённом состоянии зажжёт его:

Redstone8.jpg

Рычаг, присоединённый напрямую к блоку с факелом, "активирует" блок и, соответственно, потушит факел:

Redstone9.jpg

Необязательно устанавливать факел наверх, его можно закрепить на любой стороне блока

Потушить рычагом факел можно и подсоединив его к проводу, который подключен к блоку с факелом:

Redstone10.jpg

Горящий провод на вершине блока потушит факел на стороне этого блока:

Redstone11.jpg

[править] Основы алгебры логики в редстоун цепях

Как видно из всего выше перечисленного элементарными логическими операциями для редстоун цепей являются

  • инверсия (¬a; не a; not(a)) (выключение факела включенным проводом)
a 0 1
¬a 1 0
  • дизъюнкция (a+b; а или b; or(a,b)) (провод включен, если хотя бы один из воздействующих на него входов включен)
a 0 0 1 1
b 0 1 0 1
a+b 0 1 1 1

Все остальные логические операции [1] основаны на комбинациях этих двух. Для их построения используются также некоторые законы:

¬¬a=a (двойная инверсия)

a*a=a

a+a=a

a* ¬a=0

a+ ¬a=1

a*1=a

a*0=0

a+1=1

a+0=a

a+a*b=a (закон поглощения)

¬(a*b) = ¬a+ ¬b (инверсия конъюнкции есть сложение инверсий)

¬(a+b) = ¬a* ¬b (инверсия дизъюнкции есть умножение инверсий)

Например операция конъюнкции строится так:

а*b= ¬¬(a*b)= ¬(¬a+ ¬b)

Для построения сложных цепей с большим количеством входов и/или выходов удобно воспользоваться построением совершенной ДНФ (методом Квайна). Например нам нужна некоторая схема, которая на основе трех входов дает на выходе такие значения:

a 0 0 0 0 1 1 1 1
b 0 0 1 1 0 0 1 1
c 0 1 0 1 0 1 0 1
f(a,b,c) 0 1 1 0 0 0 1 0

Для нахождения функции f(a,b,c) выберем из таблицы все столбцы, в которых она принимает значение 1 (второй, третий и седьмой).

f(a,b,c) будет равна сумме произведений a, b и c по соответствующим столбцам: если какой-либо из входов в этом столбце равен 1, то в произведение войдет его истинное значение (a, b или c), если 0, то в произведение войдет его инверсия (¬a, ¬b или ¬c)

f(a,b,c)= (¬a* ¬b *c)+(¬a*b* ¬c)+(a*b* ¬c) (слагаемые соответсвуют второму, третьему и седьмому столбцу)

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

f(a,b,c)= (¬a* ¬b *c)+(¬a*b* ¬c)+(a*b* ¬c)= (¬a* ¬b *c)+(b* ¬c)*(¬a+a)= (¬a* ¬b *c)+(b* ¬c)

или так:

f(a,b,c)= (¬a* ¬b *c)+(¬a*b* ¬c)+(a*b* ¬c)= ¬a*(¬b*c+b* ¬c)+(a*b* ¬c)= ¬a*xor(b,c)+(a*b* ¬c)[2]

[править] Гейты

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

[править] NOT Gate

NOT(a)= ¬a

Данный гейт также называют инвертор, он выводит аутпут, противоположный инпуту.

То есть принимая значение 1, он выводит 0, и наоборот.

Redstone13.jpg

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

Redstone14.jpg

[править] OR Gate

OR(a,b,c)= ¬¬(a+b+c)

Этот гейт выводит аутпут 1, когда хотя бы один из инпутов равен 1

Redstone15.jpg

NOR(a,b,c)= ¬(a+b+c)

Redstone16.jpg

[править] AND Gate

AND(a,b)= ¬(¬a+ ¬b)=a*b

Этот гейт выводит аутпут 1, когда оба инпута равны 1

Redstone17.jpg

Чуть изменив конструкцию показанного выше AND-гейта, можно получить бесконечно масштабируемый гейт на большее количество входов.
Если перед входами модернизированного И-элемента поставить инверторы, то можно получить распознаватель определенного набора входных сигналов (на рисунке (справа) гейт cрабатывает при подаче на вход набора данных {0;0;1;1}).
4-and.png

NAND(a,b)= ¬a+ ¬b=¬(a*b)

Redstone18.jpg

[править] XOR/XNOR Gate

XOR(a,b)= ¬(¬a+ ¬(¬a+ ¬b))+ ¬(¬b+ ¬(¬a+ ¬b))

Этот гейт выводит аутпут 1, когда инпуты НЕ равны друг другу.

Redstone19.jpg

Можно также использовать инвертер, чтобы аутпут выводил 1, когда инпуты РАВНЫ друг другу.

XNOR(a,b)= ¬[¬(¬a+ ¬(¬a+ ¬b))+ ¬(¬a+ ¬(¬a+ ¬b))]

Redstone20.jpg

[править] RS NOR Latch (RS-триггер)

Простейшая запоминающая конструкция. Когда инпут "Input" включается, аутпут будет оставаться включённым, пока не будет задействован инпут "Reset", даже если вернуть значение 0 инпуту "Input"

Redstone21.jpg

Фишка здесь в том, что при включении инпута "Input", включается факел-перехватчик сигнала, который держит факел инпута "Input" включённым, пока факел-перехватчик не будет выключен инпутом "Reset".

Можно объяснить по-другому: замкнутая система из двух инвертеров стабильна и находится в одном из двух положений. (Инверторы могут быть включены двумя способами). Если подать ток на активный инвертор (выключить его) - система изменит свое положение на другое - это вход Input. Если подать ток на другой инвертер, система снова сменит свое состояние, т.е. вернется в первое положение - это работа входа Reset.

Примечание. Вместо рычага для Reset нужно использовать кнопку (это связано с тем, что сама конструкция RS-триггера содержит баг, из-за которого нельзя подавать сигнал на оба входа одновременно).

[править] Перекидные выключатели

Схема для контроля объекта с нескольких точек.

Perekid.png

Может пригодится для освещения "проходных" помещений на время пребывания в них, или для закрытия за собой железных или потайных дверей. Задумка заключается в том, чтобы изменение напряжения на любом выключателе вела к изменению напряжения на "нагрузке", в данном случае - поршне. Примечание: Собственно схема тождественна схеме XOR

[править] Вариант с одним переключателем

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

Button-controlled trigger.png

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

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


Также существует более простая и компактная схема для триггера 1-in-1-out

Ультракомпактный одновходовый триггер - схема


1-in-flip-flop.png

[править] RS NAND Latch

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

Redstone22.jpg

[править] Тактовые генераторы (Clock Generators)

Эти конструкции просто по очереди включают/выключают факелы бесконечно. Для этого нужно просто сделать замкнутую цепочку из инвертеров. Самая быстрая стабильная цепочка это 5 инвертеров (на скриншоте). Если делать их меньше, то цепь просто "перегорит". Чтобы сделать задержку между миганиями больше, просто ставьте больше инвертеров. Инвертеров должно быть нечетное количество.

[править] Семифазный

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

Redstone23.jpg

[править] Трехфазный с регулируемой задержкой

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

Clock generator1.png

[править] Пульсар

Также, можно создать сверхбыстрый вариант Clock generator'a. Смысл его действия основан на том, что поданый красным факелом ток сразу же возвращается на блок откуда был подан. Это позволяет достичь максимальной скорости пульсирования. Что эффективно в совокупности, например, с Раздатчиком. Самый надежный вариант этой конструкции состоит из 4х красных факелов, 5 редстоуна и 5 токопроводимых блоков (напр. булыжника). Поставьте 1 токопроводимый блок. С 4 сторон на него установите красные факелы. Сверху каждого факела нужно поставить также по блоку. Середина между ними должна быть пуста. Сверху на все 5 блоков положите редстоун. Готово:
Вид сбоку (с раздатчиком)
Clockgener2.png
Вид сверху:
Clockgener3.png
Ну вот и всё. В принципе редстоун элементарен, главное разобраться в основах.


[править] Компактный горизонтальный повторитель.

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

StmcCGcompactHOR.png

[править] Компактный вертикальный повторитель.

StmcCGcompactVERT.png

Удобен для встраивания в тонкие стены. Снимать ток можно как с факела слева так и с пыли справа. Минимальная задержка, при которой факел не перегорает - 0 на одном повторителе и 1 на другом. Принцип работы основан на том факте, что повторитель, как и факел "активирует" не только пыль, но и блоки. Которые в свою очередь позволяют передать сигнал в сторону без использования дополнительных конструкций

St redstone activated block.png

[править] Модификаторы поведения

[править] Замедленная кнопка

Цель - сделать кнопку, которая включена дольше времени, чем обычная, а затем так же автоматически выключалась. Реализация очень простая. Используются повторители в качестве диодов (чтобы не получалось циклов)

St button slowering.png

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

[править] Односторонняя линия задержки

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

Необходимые материалы:

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

Устройство:

Выключено.
Включено.

[править] Смотрите также

Практическое применение редстоуна
Справка по элементам схем из красного камня
Подробный курс видео-обучения всем технологиям редстоуна.

[править] Примечания

    • конъюнкция (a*b; a и b; and(a,b))
    • строгая дизъюнкция (сложение по модулю 2) (a xor b; либо a либо b; xor(a,b))
    • операции nor(a,b), nand(a,b), xnor(a,b) являются инверсиями соответсвующих операций
    a 0 0 1 1
    b 0 1 0 1
    a*b 0 0 0 1
    xor(a,b) 0 1 1 0
  1. действительно, применяя метод дизъюнкции к таблице истинности для xor имеем: xor(a,b)= ¬a*b+b* ¬a
Личные инструменты
Пространства имён
Варианты
Действия
Minecraft Wiki
Инструменты
На других языках