Guide to Integrated Circuits: различия между версиями

Материал из Chaotic Onyx
Перейти к навигацииПерейти к поиску
(→‎Основы, часть I, аппаратура, пространство и сложность.: Исправил помарку, кучу. Помарок. **особенно много помарок**, **орфография**, **грамматика**. **надеюсь на снятие кляпа**. 🐸🥂😎)
Метки: правка с мобильного устройства правка из мобильной версии
 
(не показано 165 промежуточных версий 14 участников)
Строка 1: Строка 1:
{{TG}}
+
{{Заготовка}}
= Основы [[Файл:Intergrated_printer.png]] =
 
[[Файл:IntPrinterHUD.jpg|frame| Интерфейс принтера для печатных плат. Сверху - количество материала и информация об апгрейдах, в середине - категории.]]
 
И так, для того чтобы начать создавать какие-либо кремниевые изделия и заставить их делать за вас всю работу, рекомендуется напечатать в [[Guide to Research and Development|отделе исследований]] такую вещь как '''Integrated Circuits Printer''' [[Файл:Intergrated_printer.png]], а так-же опционально:
 
*[[Файл:Upgrade_disc.png]] (''Advanced Designs upgrade disc'') Диск на продвинутые электросхемы
 
*[[Файл:Circuitclone_disc.png]] (''Circuit Cloner upgrade disc'') Диск на возможность печати готового устройства из кода
 
Вставляете их в принтер, и вам открываются новые возможности.
 
== Необходимые инструменты ==
 
Для нормальной работы любому человеку необходимы инструменты. Они размещены во вкладке ''Tools''.
 
* '''Прокладчик проводов''' (''Circuit Wirer'') [[Файл:Tool_wirer.png]] - самый главный инструмент, служит для соединения / разьединения разьемов на печатных платах. Кликни по нему, чтобы изменить режим работы.
 
* '''Устройство для отладки''' (''Circuit Debugger'') [[Файл:Tools_debugger.png]] - служит для выставления постоянного значения в переменной. Может так-же использоваться для проверки работы вашего творения путем создания импульса на разьем.
 
* '''Анализатор''' (''Circuit Analyzer'') [[Файл:Tools_codeanalyzer.png ‎]] - сканирует ваше готовое рабочее творение и генерирует код, который можно сохранить себе на память и использовать в следующих раундах.
 
== Корпуса [[Файл:Int_frame.png]] ==
 
Вот ты уже наштамповал себе целый отсек инструментов, плат и прочей херни. Куда же это все ставить? Для этих целей и придумали различные корпуса.
 
=== Виды корпусов ===
 
{| class="wikitable" style="text-align:center; background:#FFFFE0;" width="100%"
 
! style="background:#CCCCCC;" colspan="2" | Корпус
 
! style="background:#CCCCCC;" | Описание
 
! style="background:#CCCCCC;" | Стоимость
 
! style="background:#CCCCCC;" | Внутреннее пространство
 
! style="background:#CCCCCC;" | Сложность
 
|-
 
|[[Файл:Small_electronic_shell.png]]||Electronic Assembly
 
|Самый маленький корпус из всех.||2.5 ед.
 
|25 ед.||75 ед.
 
|-
 
|[[Файл:Medium_electronic_shell.png]]||Electronic Mechanism
 
|Средний корпус.||5 ед.
 
|50 ед.||150 ед.
 
|-
 
|[[Файл:Large_electronic_shell.png]]||Electronic Machine
 
|Большой корпус.||10 ед.
 
|100 ед.||300 ед.
 
|-
 
|[[Файл:Drone_electronic_shell.png]]||Electronic Drone
 
|Корпус, который может передвигаться.||7.5 ед.
 
|75 ед.||225 ед.
 
|-
 
|}
 
  
== Сборка и настройка [[Файл:Disassembled_assembly.png]] ==
+
{{Ingame}}
Для того, чтобы вставлять платы в корпус, его нужно сначала открыть ломом [[Файл:crowbar.png]]
 
  
В меню корпуса вы увидите список действий с платой: Name | [Rename] | [Scan with Debugger] | [Remove] | [Move to bottom]
+
= Интегральные платы[[Файл:Intergrated_printer.png]] =
  
*Активатор с пометкой '''<PULSE OUT>''' создает импульс при выполнении указанных в схеме условий.
+
<b>Дисклеймер:</b> Интегральные схемы довольно сложны для восприятия “не-инженерного” ума. А для максимальной эффективности требуется несколько часов для поиска и прогона оптимального количества функций (компонентов) и их связей, в данном руководстве мы постараемся затронуть легкий к восприятию для всех людей способ организации производства интегральных схем.
  
*Активатор с пометкой '''<PULSE IN>''' служит для активации интегральной схемы (Например, в сумматоре при импульсе на вход ''compute'' происходит суммирование входов).  
+
Теперь отдел Исследования и Разработок может порадовать Вас системой автоматического сканирования органических форм жизни на наличие ранений, датчиками здоровья, которые могут передавать видео в режиме онлайн, автоматическими турелями, системами автоматизированного уничтожения или просто… Шприц? Действительно, Вы хотите запихнуть ШПРИЦ в проспекты нового отдела? Совсем поехавшие идиоты?! Ты уволен! Это не Вам, [ВСТАВЬТЕ НАЗВАНИЕ ВАШЕЙ ДОЛЖНОСТИ]. Да, ты, бери вещи и на выход. Впрочем, можно сделать все, что придет вам в голову при помощи новой СИСТЕМЫ ИНТЕГРАЛЬНЫХ СХЕМ™. Несмотря на то, что с первого взгляда они могут показаться трудными к использованию предметами, на самом деле все довольно просто, вдобавок наши инженеры всегда продолжают улучшать интерфейсы для облегчения работы с интегральными схемами, что не скажешь на другие филиалы, которые… Впрочем не важно. Что-ж… Начнем!
  
* Так-же на саму пометку '''<PULSE IN>''' можно создать импульс с помощью [[Файл:Tools_debugger.png]]
+
Дисклеймер: предыдущие утверждение о том, что разработку таких схем очень простая - наглая ложь. Конечно, для “простых” схем это легко, но когда Вы начнете создавать более продвинутые схемы Вам понадобиться немного школьной математики, возможно даже высшей (вузовской) математики, и, конечно же, знание возможностей из смежных отраслей станции (химия, ксенобиология, даже знания из отдела СБ). Впрочем, даже на взгляд опытного “интегральщика” простые схемы могут очень сильно удивить незнакомого со спецификой интегральных схем человека. Будьте готовы к непредвиденным последствиям.
  
*Используя '''Отладчик'''[[Файл:Tools_debugger.png]] можно задавать переменным постоянные значения. Для этого нужно посмотреть тип переменной, который указан в самом начале (прим. <NUM>), выбрать его в Отладчике, далее ввести значение и кликнуть им по пустому окончанию (null).
 
  
=== Переменные ===
+
== Инструменты ==
 +
'''Integrated Circuit Printer''' - Ваше все, тут создаются основы для Ваших схем, получаются компоненты, создаются инструменты для сопряжения компонентов.
  
*Переменные с типом '''<NUM>''' могут содержать только '''числовое значение'''.
+
'''Circuit Wirer''' - используется для создания связей между компонентами в интегральной схеме (печатается в Integrated Circuit Printer).
  
*Переменные с типом '''<REF>''' могут содержать только '''имя обьекта''' (прим. Bol Onovich).
+
'''Circuit Debugger''' - позволяет выставлять значения в переменные, активировать пины уровня сигнала (печатается в Integrated Circuit Printer).
  
*Переменные с типом '''<TEXT>''' могут содержать только '''текстовую строку'''.
+
'''Батарея''' - используется для питание интегральной схемы. Без питания - нет работы интегральной схемы.
  
*Переменные с типом '''<BOOL>''' могут содержать значения '''true''' или '''false'''
+
<b>Опционально:</b>
  
*Переменные с типом '''<ANY>''' могут содержать '''любые значения'''
+
'''Circuit Analyzer''' - позволяет скопировать код интегральной схемы для последующего использования в других схем. '''РУССКИЙ ТЕКСТ НЕ ПЕРЕНОСИТСЯ'''
  
= Интегральные схемы [[Файл:Icircuit_memory16.png]] =
+
'''Circuit Detailer''' - инструмент покраски схемы в выбранной цвет, говорят, что такая интегралка на 20 процентов лучше работает, но это слухи.
Собственно то, из чего ты и будешь собирать свою армию дронов-убийц. Подразделяются на категории, о которых ниже.
+
 
== Power / Passive - Генераторы энергии ==
+
'''Отвертка''' - используется для того, чтобы закрыть внутренности интегральной схемы от глаз пользователя этой схемы.
{| class="wikitable" style="text-align:center; background:#FFFFE0;" width="100%"
+
 
! style="background:#CCCCCC;" colspan="2" | Интегральная схема
+
Включенный '''сварочный аппарат''' - при использования на закрытой схеме может заваривает крышку и не позволяет открывать ее отверткой, также при повреждения интегралки ее можно починить этим инструментом.
! style="background:#CCCCCC;" | Описание
+
 
! style="background:#CCCCCC;" | Стоимость изготовления
+
'''Разводной Ключ (wrench)''' - используется для закрепление интегралки на пол.
! style="background:#CCCCCC;" | Сложность
+
 
! style="background:#CCCCCC;" | Активатор
+
Руководство рассчитано на то, что у Вас есть хотя бы обязательные инструменты.
! style="background:#CCCCCC;" | Входы
+
 
! style="background:#CCCCCC;" | Выходы
+
== Основы, часть I, аппаратура, пространство и сложность. ==
|-
+
Интегральная схема - дом компонентов. Без интегральной схемы - нет машины. Также интегральной схеме необходим источник питания - батарейка, для питания компонентов. Отдел РнД имеет доступ к протолату и зарядникам, поэтому проблем с питанием нет. Если Вы работаете в отделе, где не можете изготовить батареи, то попытайтесь поискать их на объекте или попросить у ученых. Также существует еще две важные переменные:
|[[File:Icircuit_solarcell.png]]||Tiny Photovoltatic Cell
+
 
|Микрофотоэлемент. Служит для генерации 1W энергии в секунду при наличии освещения.||0.1 ед.
+
'''Space''' - пространство максимальное занимаемое компонентами в схеме, Вы не можете вставить больше компонентов по пространству (в сумме), чем указанное в данной переменной
|1 ед.|| ---
+
 
| --- || ---
+
'''Complexity''' - максимальная “сложность” схемы, Вы не можете вставить больше компонентов по сложности (в сумме), чем указанное в данной переменной.
|-
+
 
|[[File:Icircuit_led.png]]||Starter
+
Почти каждый компонент вставляемый в интегральную схему имеет 1 “пространство”, также у компонента есть “сложность”, которая зависит от того, сколько функций выполняет данный компонен. Например: кнопка выполняет одно действие - замкнуть цепь активации при нажатии, и поэтому она имеет 1 “сложность”, но интегрированный гипо-инжектор имеет функции инжектирования, высасывания реагентов в что-то и перемещение реагентов внутри схемы - 20 “сложности”.
|Стартер. При включении или восстановлении питания устройства посылает электрический импульс.||0.1 ед.
+
 
|1 ед.||pulse out
+
Основная задача схемодела заключается в наборе “фич” схемы за наименьшее количество “сложности” и “пространства”. Количества “пространства” и “сложности” зависит от типа корпуса интегральных схем:
| --- || ---
+
 
|-
+
* '''Сборки''' имеют малый размер, позволяют носить себя в кармане, имеют 25 пространства и 75 сложности
|[[File:Icircuit_teslalarge.png]]||Large Tesla Power Relay
+
* '''Устройства''' имеют очень маленький размер, имеют 25 / 2 пространства и 75 / 2 сложности.
|Большой тесла-передатчик. Берет энергию 2kW из самого ближайшего APC для беспроводной зарядки устройства.||0.4 ед.
+
* '''Механизмы''' имеют средний размер, имеют 50 пространства и 150 сложности
|15 ед.|| ---
+
* '''Машины''' имеют большой размер, имеют 100 пространства и 300 сложности.
| --- || ---
+
* '''Дроны''' имеют большой размер, имеют 75 пространства и 225 сложности, единственные корпуса, которые могут перемещаться независимо от оператора.
|-
+
* '''Настенные устройства''' в зависимости от названия имеют разный размер и сложность, можно ставить на стены.
|[[File:Icircuit_teslalarge.png]]||Tesla Power Relay
+
 
|Тесла-передатчик. Берет энергию 250W из самого ближайшего APC для беспроводной зарядки устройства.||0.2 ед.
+
Простые по сложности схемы (фонарик, переводчик) стоит вставлять в корпуса типа '''сборки'''.
|7 ед.|| ---
+
 
| --- || ---
+
Более сложные, например устройства для выкачки крови обычно '''механизмы'''.
|-
+
 
|[[File:Icircuit_fuelcell.png]]||Fuel Cell
+
Cамые мощные устройства (по типу механизма получения ключа XOR encryption) - '''машины'''.
|Топливная ячейка. Может генерировать энергию из плазмы, углерода, сварочного топлива, этанола и даже крови.|| 0.1 ед.
+
 
|4 ед.|| ---
+
'''Дроны''' - более нишевые устройства, но открывают огромные возможности благодаря возможности перемещения.
| --- ||<NUM> volume used
+
 
----
+
Также у всех видов корпусов есть подтипы, они ничем не отличаются, кроме того как они выглядят.
<REF> self reference
+
 
|-
+
== Основы, часть II, Компоненты, Pin’ы и значения данных. ==
|}
+
 
 +
'''Компоненты''' являются той частью машины, которые и делает всю работу. В них содержится логика работы от пассивной зарядки схемы до выстрела энергооружием по цели. Как было сказано в первой части, у каждого компонента есть занимаемое пространство и сложность, эти характеристики можно увидеть осмотрев компонент.
 +
 
 +
Компоненты печатаются из принтера интегральных схем. Множество “крутых” компонентов заблокировано, для того, чтобы их разблокировать требуется вставить диск, изученный в РнД. Компоненты можно переработать в металл, используя принтер интегральных схем, также Вы сможете переработать и корпус полный компонентами тем же способом. После переработки компонентов, Вы можете также переработать корпус.
 +
 
 +
Компоненты “общаются” между собой при помощи '''пинов'''. Пины подключаются друг к другу при помощи '''circuit wirer''', включая пины внутри компонента, и с другими компонентами, также используются для передачи информации через сигналы.
 +
 
 +
Вкратце, это артерии и вены Ваших машин.
 +
 
 +
Существуют три типа пинов:
 +
 
 +
[[Файл:Pins_metadata.png]]
 +
 
 +
<span style="color: green">Входные данные</span> хранят информацию о том, как или над чем должен работать компонент, к примеру, какое количество реагентов надо вколоть в человека, или сколько энергии передать.
 +
 
 +
<span style="color: blue">Выходные данные</span> хранят информацию, которая выводится после выполнения программы компонента.
 +
 
 +
<span style="color: red">Сигналы</span> говорят, когда выполнять программу компонента, и что делать при определенных случаях, чаще всего компонент содержит два сигнала: выполнить программу, выполнить программы после завершения данной программы.
 +
 
 +
У некоторых компонентов могут отсутствовать входные, выходные данные, сигналы или сразу все три. Пассивные компоненты такие как реле, не имеют пинов вообще и работают как только внутренние условия для работы удовлетворяются.
 +
 
 +
Пины различаются по переменным.
 +
 
 +
'''Переменные''':
 +
 
 +
Используя Отладчик можно задавать переменным постоянные значения. Используйте его, чтобы выбрать тип переменной.
 +
 
 +
Переменные с типом <NUM> могут содержать только числовое значение.
 +
 
 +
Переменные с типом <INDEX> могут содержать только положительные целые числа
 +
 
 +
Переменные с типом <COLOR> могут содержать только HEX (закодированный шестнадцатеричный цвет) (прим. #A9A9A9 - серый).
 +
 
 +
Переменные с типом <REF> могут содержать только имя объекта (прим. Ivan Ivanov).
 +
 
 +
Переменные с типом <TEXT> могут содержать только текстовую строку.
 +
 
 +
Переменные с типом <LIST> могут содержать только список с различными переменными.
 +
 
 +
Переменные с типом <BOOL> могут содержать значения true или false. Их также можно задать числовым значением.
 +
 
 +
Переменные с типом <ANY> могут содержать любые значения.
 +
 
 +
Существуют компоненты, которые переводят один тип переменной на другой, например конвертер '''“number to text”''' принимает на вход '''число''', а на выходе выводит число как '''текстовую строку'''.
 +
 
 +
Вы можете увидеть переменные рядом с именем пина, как и другие важные вещи:
 +
 
 +
[[Файл:Pins_data.png]]
 +
 
 +
Как Вы уже знаете, Вы можете привязать два пина между собой используя '''circuit wirer''', также Вы можете при помощи этого инструмента отвязать, для этого переключите его в режим '''unwire''', нажав на инструмент и прожав на '''название сопряженного pin'а''' и '''название pin'а''', к которому он подключен.
 +
 
 +
== Основы, часть III - сигналы. ==
 +
Как было сказано ранее - сигналы говорят, как и когда выполнять программу компонента. Это единственный способ заставить компонент сделать хоть что-то (если это не пассивные компоненты), так как даже если у Вас есть значения входных данных, то Вы все равно не сможете их использовать пока компонент не получит сигнал на использования данных. Существует два типа сигналов: PULSE_IN (вход) и PULSE_OUT (выход)
 +
PULSE_IN выступает в роли “приемника”. Когда он получают команду от приемника, запускается назначенную ему функция, если установлена, к примеру, “pulse in”, то запускается единственная функция компонента. В примере с компонентом light, “toggle light” включает или выключает свет от компонента, когда данный сигнал получает команду.
 +
PULSE_OUT выступает в роли “передатчика”. Он НЕ получают команду от приемника, но может быть активирован через функцию компонента после ее завершения. К примеру, компонент “reagent pump” имеет сигнал “on transfer”, который активируется при успешной передачи реагентов в интегральную схему, и который при активации подаст сигнал всем подключенным PULSE_INам на активацию их функций. PULSE_OUT не могут быть подключены к другому PULSE_OUT.
 +
 
 +
Понимание работы сигналов является краеугольным камнем работы с интегральными схемами. В пример можно привести то, что компонент “button” имеет сигнал “on pressed”, который может быть подключен к компоненту “light”, пину “toggle light”, используя circuit wirer, который активирует функцию “light” и будет светить, до тех пор, пока у интегральной схемы есть ток, что позволяет пользователю интегральной схемы включать и выключать свечение интегральной схемы по нажатию кнопки. Вы также можете присоединить множество сигналов к одному сигналу, к примеру с той же кнопкой, Вы помимо активации функции света, можете связать сигнал с сигналом “play sound”, компоненты “beeper”, которая будет проигрывать звук, который был назначен ее в переменной (смотри список переменных в описание компонента). Это заставит машину помимо включения света проигрывать звук.
 +
 
 +
== Основы, часть IV, управление потоком. ==
 +
Управление потоком - термин, используемый в сфере разработки языков программирования для определения в какой последовательности запускается код. Данный принцип применим и в интегральных схемах. Хороший менеджмент сопряжения очень важен для больших и/или сложных схем.
 +
 
 +
У нас есть несколько компонентов для управлением потоком, а именно для разбора входного сигнала на несколько сигналов, использование таймеров для того, чтобы все было использована в нужный момент (лучше если логика схемы не будет зависеть от этого из-за проблемы [https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D0%B5_%D0%B3%D0%BE%D0%BD%D0%BA%D0%B8 состояние гонки] ([https://en.wikipedia.org/wiki/Race_condition race condition])), также многие схемы уже есть заложенный функционал для исполнения функций после выполнения логики компонента (пример: on get coordinates на картинки ниже).
 +
 
 +
Вот пример того как выглядит такое состояние:
 +
 
 +
[[Файл:Race_condition.png]]
 +
 
 +
Когда кнопка нажимается, то она отправляет сигнал на исполнение логики GPS, затем сразу же отправляет сигнал на логику экранов, если логика GPS не успеет поставить полученные значение в салатовые и синие переменные до того, когда логика кнопки дойдет до вызова логик экранов, то экраны отобразят неверные значения.
 +
 
 +
= Создание простой интегральной схемы: шаг за шагом. =
 +
 
 +
Чтобы собрать всю информацию вместе давайте шаг за шагом создадим простой фонарик. Для этого мы возьмем корпус, батарею, мини-солнечную батарея, световую плату, кнопку.
 +
 
 +
Напечатайте необходимые предметы (батарейка в протолате) в интегральном принтере плат (Integrated Circuit Printer), для корпуса возьмите assembly type-a
 +
 
 +
[[Файл:Kushnya.png]]
 +
 
 +
Как только напечатайте эти предметы, вставьте все в корпус.
 +
 
 +
Как только Вы возьмете сборку в руку, или используете предметы, у Вас будут два варианта взаимодействия, внутренний интерфейс (слева) и внешний (справа)
 +
 
 +
[[Файл:Kushnya1.png]]
 +
 
 +
Обратите внимание на параметры пространство и сложность. Обратили? Забудьте.
 +
 
 +
Чтобы заставить схему работать, нам необходимо соединить канал сигнала кнопки с каналом сигнала света.
 +
 
 +
Приступим!
 +
 
 +
Возьмите в руки Integrated Wirer, подвяжите провод на pin’е “on pressed”
 +
 
 +
[[Файл:Kushnya2.png]]
 +
 
 +
Затем перейдите в компонент “light” (также при успехе Вы заметите сообщение в чате “You attach a data wire to button’s on pressed data channel”), потом соедините на “toggle light”
 +
 
 +
[[Файл:Kushnya3.png]]
 +
 
 +
Если у Вас получается так:
 +
 
 +
[[Файл:Int_pin_connection_suc.png]]
 +
 
 +
то продолжайте, у Вас уже почти получилось.
 +
 
 +
Вы присоединили два канала и теперь Ваша интегральная схема готова к работе.
 +
 
 +
[[Файл:Kushnya4.png]]
 +
 
 +
Осталось только закрыть корпус интегралки отверткой.
 +
 
 +
[[Файл:Kushnya5.png]]
 +
 
 +
Наша интегральная схема полностью завершена и работоспособна, зайдите в темную комнату и нажмите на кнопку. Поздравляю, бегите в бар за шампанским чтобы отметить свои первые шаги в карьере интегральщика!
 +
 
 +
До:
 +
 
 +
[[Файл:fin.png]]
 +
 
 +
После:
 +
 
 +
[[Файл:fin1.png]]
 +
 
 +
* “Да, будет свет!” © Бог.
 +
 
 +
Ну вот и все. Дальше вы можете делать все что пожелает ваша душа, замените ligth на advanced light, поэкспериментируйте с дебаггером (Circuit Debugger) и этим компонентом.
 +
 
 +
И это только снег с поверхности айсберга интегральных схем - есть возможность создать портативную зарядку энергетического оружия, устройство, которое будет переводить еду в реагенты и будет питать Вас ими, переводчики, которые позволят людям говорить не знаю языка друг друга, единственное ограничение интегральных схем - Ваше воображения*
 +
 
 +
\* если, конечно, нет компонентов для реализации, но инженеры с ЦК с радостью разработают для Вас любые компоненты.
 +
 
 +
Добро пожаловать в интегральные схемы, господа.
 +
 
 +
= Полезные советы =
 +
 
 +
* Tiny photovoltaic cell отлично подходит для питания простых схем.
 +
 
 +
* Starter компонент отлично подходит для загрузки базовой информации по работе с интегралкой.
 +
 
 +
* Вы можете сделать n-секундный тикер из n-секундного таймера и стартера, замкнув таймер вход и выход таймера на себя и подключив стартер ко входу таймера.
 +
 
 +
* Маленькие экраны показывают информацию только при осмотре, обычные экраны отображают информацию при осмотре и если Вы держите корпус. Большой в радиусе 1 метра.
 +
 
 +
* Не забывайте что почти любая деятельность на станции может быть автоматизированна с помощью интегральных схем. Главное обладать достаточной фантазией и навыками.
 +
 
 +
* Здесь пригодится больше простой математики, чем алгебры и тригонометрии. Теория групп и теория автоматизации содержит паттерны для решения большинства проблем с интегральными схемами, они не сложные, изучите их.
 +
 
 +
* Система интегральных схем позволяет опытным инженерам создавать убер-схемы для массового уничтожения космонавтов. ПОЖАЛУЙСТА, НЕ ИСПОЛЬЗУЙТЕ ИХ!!!! Мы любим схемы, они приносят нам всем веселья, не заставляйте инженеров с ЦК уничтожать платы из-за Ваших действий. Пожалуйста?

Текущая версия от 20:15, 12 мая 2023

В разработке…


Jobeng.png
Данная статья помечена как неоконченная. Это означает, что статья находится на доработке, поэтому является неверной или неактуальной.

Вы можете помочь проекту Onyxyeye@256x256.png Onyx и сообществу Animus-logo.png SS13 в целом — зайдите на наш Bus Mainframes.gif Портал сообщества.


Доступно из игры


Внимание! Материал, изложенный ниже, доступен для прочтения в виде книги Book2.png «Guide to Integrated Circuits» играющим на серверах SS13 нашего проекта.
Librarycomputer.gif

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

Интегральные платыIntergrated printer.png

Дисклеймер: Интегральные схемы довольно сложны для восприятия “не-инженерного” ума. А для максимальной эффективности требуется несколько часов для поиска и прогона оптимального количества функций (компонентов) и их связей, в данном руководстве мы постараемся затронуть легкий к восприятию для всех людей способ организации производства интегральных схем.

Теперь отдел Исследования и Разработок может порадовать Вас системой автоматического сканирования органических форм жизни на наличие ранений, датчиками здоровья, которые могут передавать видео в режиме онлайн, автоматическими турелями, системами автоматизированного уничтожения или просто… Шприц? Действительно, Вы хотите запихнуть ШПРИЦ в проспекты нового отдела? Совсем поехавшие идиоты?! Ты уволен! Это не Вам, [ВСТАВЬТЕ НАЗВАНИЕ ВАШЕЙ ДОЛЖНОСТИ]. Да, ты, бери вещи и на выход. Впрочем, можно сделать все, что придет вам в голову при помощи новой СИСТЕМЫ ИНТЕГРАЛЬНЫХ СХЕМ™. Несмотря на то, что с первого взгляда они могут показаться трудными к использованию предметами, на самом деле все довольно просто, вдобавок наши инженеры всегда продолжают улучшать интерфейсы для облегчения работы с интегральными схемами, что не скажешь на другие филиалы, которые… Впрочем не важно. Что-ж… Начнем!

Дисклеймер: предыдущие утверждение о том, что разработку таких схем очень простая - наглая ложь. Конечно, для “простых” схем это легко, но когда Вы начнете создавать более продвинутые схемы Вам понадобиться немного школьной математики, возможно даже высшей (вузовской) математики, и, конечно же, знание возможностей из смежных отраслей станции (химия, ксенобиология, даже знания из отдела СБ). Впрочем, даже на взгляд опытного “интегральщика” простые схемы могут очень сильно удивить незнакомого со спецификой интегральных схем человека. Будьте готовы к непредвиденным последствиям.


Инструменты

Integrated Circuit Printer - Ваше все, тут создаются основы для Ваших схем, получаются компоненты, создаются инструменты для сопряжения компонентов.

Circuit Wirer - используется для создания связей между компонентами в интегральной схеме (печатается в Integrated Circuit Printer).

Circuit Debugger - позволяет выставлять значения в переменные, активировать пины уровня сигнала (печатается в Integrated Circuit Printer).

Батарея - используется для питание интегральной схемы. Без питания - нет работы интегральной схемы.

Опционально:

Circuit Analyzer - позволяет скопировать код интегральной схемы для последующего использования в других схем. РУССКИЙ ТЕКСТ НЕ ПЕРЕНОСИТСЯ

Circuit Detailer - инструмент покраски схемы в выбранной цвет, говорят, что такая интегралка на 20 процентов лучше работает, но это слухи.

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

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

Разводной Ключ (wrench) - используется для закрепление интегралки на пол.

Руководство рассчитано на то, что у Вас есть хотя бы обязательные инструменты.

Основы, часть I, аппаратура, пространство и сложность.

Интегральная схема - дом компонентов. Без интегральной схемы - нет машины. Также интегральной схеме необходим источник питания - батарейка, для питания компонентов. Отдел РнД имеет доступ к протолату и зарядникам, поэтому проблем с питанием нет. Если Вы работаете в отделе, где не можете изготовить батареи, то попытайтесь поискать их на объекте или попросить у ученых. Также существует еще две важные переменные:

Space - пространство максимальное занимаемое компонентами в схеме, Вы не можете вставить больше компонентов по пространству (в сумме), чем указанное в данной переменной

Complexity - максимальная “сложность” схемы, Вы не можете вставить больше компонентов по сложности (в сумме), чем указанное в данной переменной.

Почти каждый компонент вставляемый в интегральную схему имеет 1 “пространство”, также у компонента есть “сложность”, которая зависит от того, сколько функций выполняет данный компонен. Например: кнопка выполняет одно действие - замкнуть цепь активации при нажатии, и поэтому она имеет 1 “сложность”, но интегрированный гипо-инжектор имеет функции инжектирования, высасывания реагентов в что-то и перемещение реагентов внутри схемы - 20 “сложности”.

Основная задача схемодела заключается в наборе “фич” схемы за наименьшее количество “сложности” и “пространства”. Количества “пространства” и “сложности” зависит от типа корпуса интегральных схем:

  • Сборки имеют малый размер, позволяют носить себя в кармане, имеют 25 пространства и 75 сложности
  • Устройства имеют очень маленький размер, имеют 25 / 2 пространства и 75 / 2 сложности.
  • Механизмы имеют средний размер, имеют 50 пространства и 150 сложности
  • Машины имеют большой размер, имеют 100 пространства и 300 сложности.
  • Дроны имеют большой размер, имеют 75 пространства и 225 сложности, единственные корпуса, которые могут перемещаться независимо от оператора.
  • Настенные устройства в зависимости от названия имеют разный размер и сложность, можно ставить на стены.

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

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

Cамые мощные устройства (по типу механизма получения ключа XOR encryption) - машины.

Дроны - более нишевые устройства, но открывают огромные возможности благодаря возможности перемещения.

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

Основы, часть II, Компоненты, Pin’ы и значения данных.

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

Компоненты печатаются из принтера интегральных схем. Множество “крутых” компонентов заблокировано, для того, чтобы их разблокировать требуется вставить диск, изученный в РнД. Компоненты можно переработать в металл, используя принтер интегральных схем, также Вы сможете переработать и корпус полный компонентами тем же способом. После переработки компонентов, Вы можете также переработать корпус.

Компоненты “общаются” между собой при помощи пинов. Пины подключаются друг к другу при помощи circuit wirer, включая пины внутри компонента, и с другими компонентами, также используются для передачи информации через сигналы.

Вкратце, это артерии и вены Ваших машин.

Существуют три типа пинов:

Pins metadata.png

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

Выходные данные хранят информацию, которая выводится после выполнения программы компонента.

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

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

Пины различаются по переменным.

Переменные:

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

Переменные с типом <NUM> могут содержать только числовое значение.

Переменные с типом <INDEX> могут содержать только положительные целые числа

Переменные с типом <COLOR> могут содержать только HEX (закодированный шестнадцатеричный цвет) (прим. #A9A9A9 - серый).

Переменные с типом <REF> могут содержать только имя объекта (прим. Ivan Ivanov).

Переменные с типом <TEXT> могут содержать только текстовую строку.

Переменные с типом <LIST> могут содержать только список с различными переменными.

Переменные с типом <BOOL> могут содержать значения true или false. Их также можно задать числовым значением.

Переменные с типом <ANY> могут содержать любые значения.

Существуют компоненты, которые переводят один тип переменной на другой, например конвертер “number to text” принимает на вход число, а на выходе выводит число как текстовую строку.

Вы можете увидеть переменные рядом с именем пина, как и другие важные вещи:

Pins data.png

Как Вы уже знаете, Вы можете привязать два пина между собой используя circuit wirer, также Вы можете при помощи этого инструмента отвязать, для этого переключите его в режим unwire, нажав на инструмент и прожав на название сопряженного pin'а и название pin'а, к которому он подключен.

Основы, часть III - сигналы.

Как было сказано ранее - сигналы говорят, как и когда выполнять программу компонента. Это единственный способ заставить компонент сделать хоть что-то (если это не пассивные компоненты), так как даже если у Вас есть значения входных данных, то Вы все равно не сможете их использовать пока компонент не получит сигнал на использования данных. Существует два типа сигналов: PULSE_IN (вход) и PULSE_OUT (выход) PULSE_IN выступает в роли “приемника”. Когда он получают команду от приемника, запускается назначенную ему функция, если установлена, к примеру, “pulse in”, то запускается единственная функция компонента. В примере с компонентом light, “toggle light” включает или выключает свет от компонента, когда данный сигнал получает команду. PULSE_OUT выступает в роли “передатчика”. Он НЕ получают команду от приемника, но может быть активирован через функцию компонента после ее завершения. К примеру, компонент “reagent pump” имеет сигнал “on transfer”, который активируется при успешной передачи реагентов в интегральную схему, и который при активации подаст сигнал всем подключенным PULSE_INам на активацию их функций. PULSE_OUT не могут быть подключены к другому PULSE_OUT.

Понимание работы сигналов является краеугольным камнем работы с интегральными схемами. В пример можно привести то, что компонент “button” имеет сигнал “on pressed”, который может быть подключен к компоненту “light”, пину “toggle light”, используя circuit wirer, который активирует функцию “light” и будет светить, до тех пор, пока у интегральной схемы есть ток, что позволяет пользователю интегральной схемы включать и выключать свечение интегральной схемы по нажатию кнопки. Вы также можете присоединить множество сигналов к одному сигналу, к примеру с той же кнопкой, Вы помимо активации функции света, можете связать сигнал с сигналом “play sound”, компоненты “beeper”, которая будет проигрывать звук, который был назначен ее в переменной (смотри список переменных в описание компонента). Это заставит машину помимо включения света проигрывать звук.

Основы, часть IV, управление потоком.

Управление потоком - термин, используемый в сфере разработки языков программирования для определения в какой последовательности запускается код. Данный принцип применим и в интегральных схемах. Хороший менеджмент сопряжения очень важен для больших и/или сложных схем.

У нас есть несколько компонентов для управлением потоком, а именно для разбора входного сигнала на несколько сигналов, использование таймеров для того, чтобы все было использована в нужный момент (лучше если логика схемы не будет зависеть от этого из-за проблемы состояние гонки (race condition)), также многие схемы уже есть заложенный функционал для исполнения функций после выполнения логики компонента (пример: on get coordinates на картинки ниже).

Вот пример того как выглядит такое состояние:

Race condition.png

Когда кнопка нажимается, то она отправляет сигнал на исполнение логики GPS, затем сразу же отправляет сигнал на логику экранов, если логика GPS не успеет поставить полученные значение в салатовые и синие переменные до того, когда логика кнопки дойдет до вызова логик экранов, то экраны отобразят неверные значения.

Создание простой интегральной схемы: шаг за шагом.

Чтобы собрать всю информацию вместе давайте шаг за шагом создадим простой фонарик. Для этого мы возьмем корпус, батарею, мини-солнечную батарея, световую плату, кнопку.

Напечатайте необходимые предметы (батарейка в протолате) в интегральном принтере плат (Integrated Circuit Printer), для корпуса возьмите assembly type-a

Kushnya.png

Как только напечатайте эти предметы, вставьте все в корпус.

Как только Вы возьмете сборку в руку, или используете предметы, у Вас будут два варианта взаимодействия, внутренний интерфейс (слева) и внешний (справа)

Kushnya1.png

Обратите внимание на параметры пространство и сложность. Обратили? Забудьте.

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

Приступим!

Возьмите в руки Integrated Wirer, подвяжите провод на pin’е “on pressed”

Kushnya2.png

Затем перейдите в компонент “light” (также при успехе Вы заметите сообщение в чате “You attach a data wire to button’s on pressed data channel”), потом соедините на “toggle light”

Kushnya3.png

Если у Вас получается так:

Int pin connection suc.png

то продолжайте, у Вас уже почти получилось.

Вы присоединили два канала и теперь Ваша интегральная схема готова к работе.

Kushnya4.png

Осталось только закрыть корпус интегралки отверткой.

Kushnya5.png

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

До:

Fin.png

После:

Fin1.png

  • “Да, будет свет!” © Бог.

Ну вот и все. Дальше вы можете делать все что пожелает ваша душа, замените ligth на advanced light, поэкспериментируйте с дебаггером (Circuit Debugger) и этим компонентом.

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

\* если, конечно, нет компонентов для реализации, но инженеры с ЦК с радостью разработают для Вас любые компоненты.

Добро пожаловать в интегральные схемы, господа.

Полезные советы

  • Tiny photovoltaic cell отлично подходит для питания простых схем.
  • Starter компонент отлично подходит для загрузки базовой информации по работе с интегралкой.
  • Вы можете сделать n-секундный тикер из n-секундного таймера и стартера, замкнув таймер вход и выход таймера на себя и подключив стартер ко входу таймера.
  • Маленькие экраны показывают информацию только при осмотре, обычные экраны отображают информацию при осмотре и если Вы держите корпус. Большой в радиусе 1 метра.
  • Не забывайте что почти любая деятельность на станции может быть автоматизированна с помощью интегральных схем. Главное обладать достаточной фантазией и навыками.
  • Здесь пригодится больше простой математики, чем алгебры и тригонометрии. Теория групп и теория автоматизации содержит паттерны для решения большинства проблем с интегральными схемами, они не сложные, изучите их.
  • Система интегральных схем позволяет опытным инженерам создавать убер-схемы для массового уничтожения космонавтов. ПОЖАЛУЙСТА, НЕ ИСПОЛЬЗУЙТЕ ИХ!!!! Мы любим схемы, они приносят нам всем веселья, не заставляйте инженеров с ЦК уничтожать платы из-за Ваших действий. Пожалуйста?