Найти в Дзене
BlueprintMan || Factorio

Как сделать цифровой 7-сегментный дисплей на комбинаторах в Factorio 2.0 без модов. Подробный гайд и чертеж.

Здесь я подробно покажу и расскажу вам, как сделать вот такой 7-сегментный цифровой дисплей для ваших задач в Factorio. Если вы хотите полностью понять как он работает, рекомендую сначала изучить логические комбинаторы в этой игре. Вперед к ракете!

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

Чертеж этого дисплея находится в конце после гайда.

Гайд

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

Далее заходим в меню любой лампы и ставим галочку "Использовать цвета" и выбираем "Цветовая окраска". Тем самым мы говорим лампе, что подавая на нее сигнал с цветом (квадрат разукрашенный в какой-либо цвет) она будет гореть именно им. Сам сигнал с цветом подадим в самом конце.

Теперь жмем по этой лампе Shift+ПКМ, зажимаем Shift+ЛКМ и водим курсором по всем лампам, копируя эту настройку на них всех.

-3

Отлично, теперь будет немного сложнее. Немного теории.

Смотрим на первый рисунок ниже. Мы разделяем все лампы на 7 сегментов (не зря дисплей называется 7-сегментный). При выводе каждой цифры работают лишь несколько из них, это мы и будем напрямую контролировать в комбинаторах в дальнейшем.

Теперь рассматриваем второй рисунок. Три лампы, которые расположены и отмечены справа зеленым будут гореть при любой цифре, независимо от нее. Значит их можно не контролировать и оставить гореть всегда. Остаются лампы расположенные в левой части дисплея и отмеченные оранжевым. Верхняя не будет работать только если горит цифра 1, средняя если горит 1 или 7, а нижняя если горит 1, 4 и 7. Им мы соответственно присвоим сигналы Z, W и Y (сигнал X будет занят самой цифрой которую нужно вывести).

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

Любой сигнал (кроме занятых) > -1

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

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

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

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

-8

Ставим под лампой 13 сравнивающих, 2 арифметических и 2 постоянных комбинатора как на скриншоте.

-9

Теперь соединяем все ВХОДЫ сравнивающих(!) комбинаторов КРАСНЫМ проводом. По нему у нас будет вход сигнала с цифрой которую нужно вывести.

-10

А также все ВЫХОДЫ сравнивающих(!) комбинаторов ЗЕЛЕНЫМ проводом. А по нему соответственно будут выходить сигналы нужных сегментов, которые должны загореться.

-11

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

У нас осталось три комбинатора сверху, они служат для настройки тех трех ламп, которые у нас оставлены под сигналы Z, W и Y. В них ставим следующие настройки:

Если вы все сделали правильно, это будет выглядеть примерно так:

-14

Соединив ВЫХОД левого верхнего комбинатора ЗЕЛЕНЫМ проводом с дисплеем, должен загореться ноль.

-15

Надеюсь вы еще не устали, потому что всю основную муть мы сделали, осталось просто подавать сигнал цифры и цвета.

Теперь разбираемся с вот этими двумя арифметическими комбинаторами, как раз они и будут отвечать за подачу сигналов.

-16

Выбираем левый арифметический комбинатор, и ставим в него настройки как на скриншоте. Мы просто будем подавать сигнал A, вычитать из него 0 (то есть, ничего не делать с ним) и на выходе получать сигнал X равный A.

-17

Подключаем его ВЫХОД КРАСНЫМ проводом к ВХОДУ сравнивающего комбинатора слева. Также подключаем КРАСНЫМ проводом правый постоянный комбинатор к его ВХОДУ.

-18

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

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

Теперь подключаем ЗЕЛЕНЫМ проводом его ВЫХОД к ВЫХОДУ сравнивающего комбинатора слева, как на второй картинке ниже. Также ЗЕЛЕНЫМ проводом подключаем нижний постоянный комбинатор к его ВХОДУ.

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

-20

Ваш дисплей должен загореться другим цветом.

-21

Все готово, теперь подав на правый комбинатор сигнал A с мощностью от 0 до 9 вы получите на вашем дисплее соответственную цифру.

-22
-23

Теперь у вас есть готовый цифровой 7-сегментный дисплей. Как я и говорил в начале, как соединить несколько дисплеев для вывода количества ресурсов я покажу в следующей статье.

Чертеж

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

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

Вперед к ракете!