Scrap mechanic логические элементы

Обновлено: 08.07.2024

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

Crafting [ ]

Usage [ ]

Logic Gates in Scrap Mechanic act like real-world logic gates, allowing for simple and complex electrical engineering.

Logic Gates can be used to make creations ranging from simple two-button doors (as shown in the Handbook) to functioning computers. The Logic Gate block offers a selection of six gates: AND, OR and XOR as well as their inverses NAND, NOR and XNOR. The selected gate is displayed on the face of the block.

The connection path is critical on these blocks because they receive inputs and produce outputs. Inputs must be connected into a Logic Gate; outputs must be connected from the Logic Gate. Using two Logic Gate blocks as an example, connecting block two to block one means that the signal will be sent from block two to block one.

Advanced Use [ ]

  • Logic Gates can be looped together to create latches or flip-flops. This means that Logic Gates can form memory circuits, storing a state (1 or 0).
  • A Logic Gate has an output delay of 1 tick (0.025 sec).
  • If you are planning a really complicated build, you might want to use the Scrap Mechanic Logic Gate Simulator.

Overview [ ]

Logic Gates are used to process binary signals (1 - ON or 0 - OFF). Logic Gates can receive input from Buttons, Switches, Sensors, Timers and other Logic Gates. A Logic Gate processes one or more inputs to produce an output. The face of the Logic Gate indicates the state of its output: when the output of a Logic Gate is ON, the face of the block is illuminated.

Save/Load Behavior [ ]

This section is only going to be of interest if you are building a circuit with a persistent state - such as a memory circuit or a repeating timer. For circuits based on the state of switches, then even if the save/load state is wrong, it'll only last for a couple ticks anyway. In memory circuits, the surprising save/load behavior can manifest as the circuit being in an unexpected state when you reload or wildly flashing on reload. In timer circuits, it usually manifests as a single-tick "true" signal in the middle of what should be a long period of "false" signals (or the other way around).

You might think that when you exit the game and come back that the logic gate would be wiped to zero on re-load and then take on its proper state after its signals get a chance to pass through it. Or you might think that the logic gate would retain the state it had when you exited the game. That would make a lot of sense, but it's not now the game actually works. Logic Gates have a saved state they will be restored to when you re-load the game or re-load a game chunk (when you return to a creation from a long way away) and that saved state is not necessarily the state that it was in when you left it. The saved state of a logic gate (and a Switch, by the way), is the state it was in the last time it was taken off a lift, had connections added or removed, or when it was painted. Confusingly, this does not hold true for Timers, whose saved state is the state they were in when they were unloaded.

The act of placing a creation on a lift clears the saved state of all switches and logic gates, causing memory circuits to enter a glitched state. Taking creations off of the lift saves the state of all the logic gates and circuits on the creation. So, for example, if you have a simple memory circuit with a couple of buttons to toggle it on and off, then when you put it on the lift, it will be flashing wildly. If you then click a button while it's on the lift, then take it off the lift, that becomes its saved state. So, for example, if you switch it to the other state, exit the game and return, you will find it back in the state it was in when you took it off the lift.


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










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

В отличии от большей части гайдов по этой теме мы будем изучать азы с теории, а именно булевой алгебры, то есть в этой статье будет много (реально много) математики, но не страшной, ведь булева алгебра о "0" и "1", и следовательно складывать и умножать мы будем именно их. Ну что же, приступим.


Как видно из картинки: выполняет логическое умножение

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

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

Данный логический элемент выполняет логическое сложение, но с одним "НО", если сложить "1" и "1", то получится не "2" (а в двоичном виде: "10"), а "1". В остальном - это обычное сложение "0" и "1":

Ну и его обозначение + таблица истинности:

Из игры в этот раз скриншота не будет ( я ленивая задница тут всё довольно просто).

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

В Scrap Mechanic логические элементы могут иметь входов от 1 до какого-то большого предела (он реально большой и нас не интересует). И следовательно вышеприведённые формулы увеличиваются в размерах, например для 5-входовго логического И получим:
Аналогично это работает и с элементом ИЛИ.
Про элементы И-НЕ (NAND), ИЛИ-НЕ (NOR), а тем более ИСКЛЮЧАЮЩИЕ ИЛИ (XOR) мы поговорим чуть позже. Скажу одно, что первые 2 элемента являются лишь симбиозом И (ИЛИ) с элементом НЕ.

Я не буду рассматривать прям все, так как их довольно много. На булеву математику действуют все те же правила, что были изучены в 5 - 6 классах школы. Поэтому рассмотрим самую "экзотику", так как нормально редактора формул в Steam не предусмотрено - кину одной картинкой весь список формул:

Вот, это и есть основной багаж для проектирования различных механизмов, а точнее их расчёта =) (Да-да. Математика она везде).

После изучения азов можно приступить к первым расчётам =). Для этого используются таблицы истинности, а также такой приём как составление "совершенно дизъюнктивной (конъюктивной) нормальной функции" (СДНФ и СКНФ соответственно). Звучит страшно, соглашусь, но на самом деле всё просто.
На практике часто используют СДНФ, так как она составляется по лог. "1" на выходе. Чтобы не растягивать время сразу приведу пример:

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

Выход Y имеет некоторую зависимость от входов X0, X1, X2 (Пока даже я сам не знаю, так как Y был набран произвольно).

Составить СДНФ по этой таблице.

СДНФ составляется следующим образом: для каждой строки выписывается логическая функция "И" для строк таблицы, в которых "Y" равен "1" таким образом, что если Xn = 0, то данная переменная берётся с инверсией, в противном случае выписывается сама переменная:

Аналогичным образом нужно обсчитать и остальные строки таблицы, в которых Y = 1, а полученные промежуточные результаты сложить:

Далее можно упростить выражение, но делать мы этого не будем, так как это долго и нерационально, ведь есть более удобный метод упрощения полученной функции (карты Карно).

СКНФ рассматривать не будем, так как даже в универе мы ей не пользовались =).

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

Выглядит страшно, но как обычно всё просто. Карты Карно - это развёртка n-мерного куба, где n - число входов. Таким образом получаем некую таблицу, где есть комбинации входных переменных. Далее эта таблица заполняется согласно таблице истинности. После заполнения приходит время упрощения СДНФ: группируются все "1", при этом число "1" должно быть кратно двум, а группа должна представлять собой прямоугольник, также группы могут пересекаться. Группы надо формировать максимально большими. Также группа может состоять только из одной "1". В нашем случае всё не очень "радужно":

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

Таким образом, функция сократилась в несколько раз без лишних усилий =). Кстати X0 у нас вообще выпал, что нормально и даже хорошо =)

Ура. Настало время практики. Так как логического НЕ в игре нет заместо него можно использовать либо И-НЕ, либо ИЛИ-НЕ (с одним входом).
Данный этап фактически самый простой (главное в проводах не запутаться =) ), ведь тут наша задача по формуле подобрать логические элементы и собрать схему:

Ну и для пущей уверенности нарисуем схему по ГОСТ:

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

Таким образом, мы прошли путь от идеи (Условия) до построения простейшего комбинационного механизма в самой игре. У меня этот процесс обычно составляет минут 5 - 7 в зависимости от сложности задачи. Кстати сразу о некоторых вопросах, если нужно иметь много выходов, то для каждого выхода карта Карно составляется отдельно, следовательно и СДНФ тоже.

Особо недоверчивые могут проверить работоспособность последней схемы в Scrap Mechanic, благо она маленькая и простая =).

Александр Александров


Александр Александров

Дмитрий Кольцов

Александр Александров


Александр Александров ответил Дмитрию

Дмитрий Кольцов

Александр Александров


Александр Александров ответил Дмитрию

Дмитрий, сделать 2 отдельных режима последовательности движений) ща чекну

Виды интерактивных деталей

Подшипник - все, что вы поместите на подшипник будет вращаться.

Спортивный амортизатор - добавляет амортизацию и обеспечивает стабильность.

Off-Road амортизатор - добавляет амортизацию и обеспечивает стабильность.

Сиденье водителя - может поворачивать подключенные к нему подшипники налево и направо, а так-же управлять двигателями.

Сиденье пассажира - пускай Ваш друг катается рядом с Вами!

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

Электрический двигатель - двигатель с фиксированной скоростью и регулируемой мощностью.

Ускоритель - имеет достаточную мощность, чтобы поднимать предметы в воздух.

Контроллер - позволяет управлять подшипниками в заданном порядке.

Переключатель - во включенном виде активирует интерактивные детали.

Contents

Читайте также: