Guide to Integrated Circuits: различия между версиями
Keofox (обсуждение | вклад) |
(→Основы, часть I, аппаратура, пространство и сложность.: Исправил помарку, кучу. Помарок. **особенно много помарок**, **орфография**, **грамматика**. **надеюсь на снятие кляпа**. 🐸🥂😎) Метки: правка с мобильного устройства правка из мобильной версии |
||
(не показаны 122 промежуточные версии 14 участников) | |||
Строка 1: | Строка 1: | ||
− | {{ | + | {{Заготовка}} |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | {{Ingame}} | |
− | |||
− | |||
− | { | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | = | + | = Интегральные платы[[Файл:Intergrated_printer.png]] = |
− | |||
− | + | <b>Дисклеймер:</b> Интегральные схемы довольно сложны для восприятия “не-инженерного” ума. А для максимальной эффективности требуется несколько часов для поиска и прогона оптимального количества функций (компонентов) и их связей, в данном руководстве мы постараемся затронуть легкий к восприятию для всех людей способ организации производства интегральных схем. | |
− | + | Теперь отдел Исследования и Разработок может порадовать Вас системой автоматического сканирования органических форм жизни на наличие ранений, датчиками здоровья, которые могут передавать видео в режиме онлайн, автоматическими турелями, системами автоматизированного уничтожения или просто… Шприц? Действительно, Вы хотите запихнуть ШПРИЦ в проспекты нового отдела? Совсем поехавшие идиоты?! Ты уволен! Это не Вам, [ВСТАВЬТЕ НАЗВАНИЕ ВАШЕЙ ДОЛЖНОСТИ]. Да, ты, бери вещи и на выход. Впрочем, можно сделать все, что придет вам в голову при помощи новой СИСТЕМЫ ИНТЕГРАЛЬНЫХ СХЕМ™. Несмотря на то, что с первого взгляда они могут показаться трудными к использованию предметами, на самом деле все довольно просто, вдобавок наши инженеры всегда продолжают улучшать интерфейсы для облегчения работы с интегральными схемами, что не скажешь на другие филиалы, которые… Впрочем не важно. Что-ж… Начнем! | |
− | + | Дисклеймер: предыдущие утверждение о том, что разработку таких схем очень простая - наглая ложь. Конечно, для “простых” схем это легко, но когда Вы начнете создавать более продвинутые схемы Вам понадобиться немного школьной математики, возможно даже высшей (вузовской) математики, и, конечно же, знание возможностей из смежных отраслей станции (химия, ксенобиология, даже знания из отдела СБ). Впрочем, даже на взгляд опытного “интегральщика” простые схемы могут очень сильно удивить незнакомого со спецификой интегральных схем человека. Будьте готовы к непредвиденным последствиям. | |
− | |||
− | + | == Инструменты == | |
+ | '''Integrated Circuit Printer''' - Ваше все, тут создаются основы для Ваших схем, получаются компоненты, создаются инструменты для сопряжения компонентов. | ||
− | + | '''Circuit Wirer''' - используется для создания связей между компонентами в интегральной схеме (печатается в Integrated Circuit Printer). | |
− | + | '''Circuit Debugger''' - позволяет выставлять значения в переменные, активировать пины уровня сигнала (печатается в Integrated Circuit Printer). | |
− | + | '''Батарея''' - используется для питание интегральной схемы. Без питания - нет работы интегральной схемы. | |
− | + | <b>Опционально:</b> | |
− | + | '''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]] | ||
+ | |||
+ | <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
В разработке… |
Данная статья помечена как неоконченная. Это означает, что статья находится на доработке, поэтому является неверной или неактуальной. Вы можете помочь проекту Onyx и сообществу SS13 в целом — зайдите на наш Портал сообщества. |
Доступно из игры |
Внимание! Материал, изложенный ниже, доступен для прочтения в виде книги «Guide to Integrated Circuits» играющим на серверах SS13 нашего проекта. Постарайтесь не размещать ниже этой плашки информацию, которая не должна быть доступна персонажам внутри игры (см. OOC в IC). |
Интегральные платы
Дисклеймер: Интегральные схемы довольно сложны для восприятия “не-инженерного” ума. А для максимальной эффективности требуется несколько часов для поиска и прогона оптимального количества функций (компонентов) и их связей, в данном руководстве мы постараемся затронуть легкий к восприятию для всех людей способ организации производства интегральных схем.
Теперь отдел Исследования и Разработок может порадовать Вас системой автоматического сканирования органических форм жизни на наличие ранений, датчиками здоровья, которые могут передавать видео в режиме онлайн, автоматическими турелями, системами автоматизированного уничтожения или просто… Шприц? Действительно, Вы хотите запихнуть ШПРИЦ в проспекты нового отдела? Совсем поехавшие идиоты?! Ты уволен! Это не Вам, [ВСТАВЬТЕ НАЗВАНИЕ ВАШЕЙ ДОЛЖНОСТИ]. Да, ты, бери вещи и на выход. Впрочем, можно сделать все, что придет вам в голову при помощи новой СИСТЕМЫ ИНТЕГРАЛЬНЫХ СХЕМ™. Несмотря на то, что с первого взгляда они могут показаться трудными к использованию предметами, на самом деле все довольно просто, вдобавок наши инженеры всегда продолжают улучшать интерфейсы для облегчения работы с интегральными схемами, что не скажешь на другие филиалы, которые… Впрочем не важно. Что-ж… Начнем!
Дисклеймер: предыдущие утверждение о том, что разработку таких схем очень простая - наглая ложь. Конечно, для “простых” схем это легко, но когда Вы начнете создавать более продвинутые схемы Вам понадобиться немного школьной математики, возможно даже высшей (вузовской) математики, и, конечно же, знание возможностей из смежных отраслей станции (химия, ксенобиология, даже знания из отдела СБ). Впрочем, даже на взгляд опытного “интегральщика” простые схемы могут очень сильно удивить незнакомого со спецификой интегральных схем человека. Будьте готовы к непредвиденным последствиям.
Инструменты
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, включая пины внутри компонента, и с другими компонентами, также используются для передачи информации через сигналы.
Вкратце, это артерии и вены Ваших машин.
Существуют три типа пинов:
Входные данные хранят информацию о том, как или над чем должен работать компонент, к примеру, какое количество реагентов надо вколоть в человека, или сколько энергии передать.
Выходные данные хранят информацию, которая выводится после выполнения программы компонента.
Сигналы говорят, когда выполнять программу компонента, и что делать при определенных случаях, чаще всего компонент содержит два сигнала: выполнить программу, выполнить программы после завершения данной программы.
У некоторых компонентов могут отсутствовать входные, выходные данные, сигналы или сразу все три. Пассивные компоненты такие как реле, не имеют пинов вообще и работают как только внутренние условия для работы удовлетворяются.
Пины различаются по переменным.
Переменные:
Используя Отладчик можно задавать переменным постоянные значения. Используйте его, чтобы выбрать тип переменной.
Переменные с типом <NUM> могут содержать только числовое значение.
Переменные с типом <INDEX> могут содержать только положительные целые числа
Переменные с типом <COLOR> могут содержать только HEX (закодированный шестнадцатеричный цвет) (прим. #A9A9A9 - серый).
Переменные с типом <REF> могут содержать только имя объекта (прим. Ivan Ivanov).
Переменные с типом <TEXT> могут содержать только текстовую строку.
Переменные с типом <LIST> могут содержать только список с различными переменными.
Переменные с типом <BOOL> могут содержать значения true или false. Их также можно задать числовым значением.
Переменные с типом <ANY> могут содержать любые значения.
Существуют компоненты, которые переводят один тип переменной на другой, например конвертер “number to text” принимает на вход число, а на выходе выводит число как текстовую строку.
Вы можете увидеть переменные рядом с именем пина, как и другие важные вещи:
Как Вы уже знаете, Вы можете привязать два пина между собой используя 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 на картинки ниже).
Вот пример того как выглядит такое состояние:
Когда кнопка нажимается, то она отправляет сигнал на исполнение логики GPS, затем сразу же отправляет сигнал на логику экранов, если логика GPS не успеет поставить полученные значение в салатовые и синие переменные до того, когда логика кнопки дойдет до вызова логик экранов, то экраны отобразят неверные значения.
Создание простой интегральной схемы: шаг за шагом.
Чтобы собрать всю информацию вместе давайте шаг за шагом создадим простой фонарик. Для этого мы возьмем корпус, батарею, мини-солнечную батарея, световую плату, кнопку.
Напечатайте необходимые предметы (батарейка в протолате) в интегральном принтере плат (Integrated Circuit Printer), для корпуса возьмите assembly type-a
Как только напечатайте эти предметы, вставьте все в корпус.
Как только Вы возьмете сборку в руку, или используете предметы, у Вас будут два варианта взаимодействия, внутренний интерфейс (слева) и внешний (справа)
Обратите внимание на параметры пространство и сложность. Обратили? Забудьте.
Чтобы заставить схему работать, нам необходимо соединить канал сигнала кнопки с каналом сигнала света.
Приступим!
Возьмите в руки Integrated Wirer, подвяжите провод на pin’е “on pressed”
Затем перейдите в компонент “light” (также при успехе Вы заметите сообщение в чате “You attach a data wire to button’s on pressed data channel”), потом соедините на “toggle light”
Если у Вас получается так:
то продолжайте, у Вас уже почти получилось.
Вы присоединили два канала и теперь Ваша интегральная схема готова к работе.
Осталось только закрыть корпус интегралки отверткой.
Наша интегральная схема полностью завершена и работоспособна, зайдите в темную комнату и нажмите на кнопку. Поздравляю, бегите в бар за шампанским чтобы отметить свои первые шаги в карьере интегральщика!
До:
После:
- “Да, будет свет!” © Бог.
Ну вот и все. Дальше вы можете делать все что пожелает ваша душа, замените ligth на advanced light, поэкспериментируйте с дебаггером (Circuit Debugger) и этим компонентом.
И это только снег с поверхности айсберга интегральных схем - есть возможность создать портативную зарядку энергетического оружия, устройство, которое будет переводить еду в реагенты и будет питать Вас ими, переводчики, которые позволят людям говорить не знаю языка друг друга, единственное ограничение интегральных схем - Ваше воображения*
\* если, конечно, нет компонентов для реализации, но инженеры с ЦК с радостью разработают для Вас любые компоненты.
Добро пожаловать в интегральные схемы, господа.
Полезные советы
- Tiny photovoltaic cell отлично подходит для питания простых схем.
- Starter компонент отлично подходит для загрузки базовой информации по работе с интегралкой.
- Вы можете сделать n-секундный тикер из n-секундного таймера и стартера, замкнув таймер вход и выход таймера на себя и подключив стартер ко входу таймера.
- Маленькие экраны показывают информацию только при осмотре, обычные экраны отображают информацию при осмотре и если Вы держите корпус. Большой в радиусе 1 метра.
- Не забывайте что почти любая деятельность на станции может быть автоматизированна с помощью интегральных схем. Главное обладать достаточной фантазией и навыками.
- Здесь пригодится больше простой математики, чем алгебры и тригонометрии. Теория групп и теория автоматизации содержит паттерны для решения большинства проблем с интегральными схемами, они не сложные, изучите их.
- Система интегральных схем позволяет опытным инженерам создавать убер-схемы для массового уничтожения космонавтов. ПОЖАЛУЙСТА, НЕ ИСПОЛЬЗУЙТЕ ИХ!!!! Мы любим схемы, они приносят нам всем веселья, не заставляйте инженеров с ЦК уничтожать платы из-за Ваших действий. Пожалуйста?