Stationeers

Stationeers

53 个评价
Автоматическое поддержание температуры в помещении
由 AlexVJ 制作
Данное руководство описывает 2 способа как можно добиться автоматизации в поддержании оптимальных температур в небольших помещениях. Первый вариант описывает способ с помощью чипов. Второй вариант описывает способ с помощью микропроцессора.
2
   
奖励
收藏
已收藏
取消收藏
Оглавление
В начале своего пути у меня стояла задача. У меня есть семена. Мне нужно их выращивать с помощью гидропоники. Чтобы это сделать, я должен закачать в помещение углекислый газ, создать оптимальное давление в помещении, выкачивать кислород. Который выделяют растения, при сжигании СО2. Так же нужно сделать так, чтобы в этом помещении всегда была оптимальная температура. Ведь растения при фотосинтезе выделяют тепло. Но учитывая что моя база не имеет стабильного источника энергии. Вернее на данный момент времени я еще не смог добиться автоматизации солнечных панелей, поэтому на счету каждый вольт и каждая секунда. Чем дольше тянуть - тем быстрее семена могут пропасть. Поэтому надо действовать.
Я нашел чипы
В моем арсенале были Чипы ввода-вывода, Чипы арифметики и Чип памяти. Можно ли с помощью этих чипов сделать так, чтобы они регулировали температуру? Можно!

Для реализации потребуется:
  • Чип Чтения LOGIC READER
  • Чип Множественная запись BATCH WRITER 2 штуки
  • Чип Сравнения COMPARE UNIT 2 штуки
  • Чип памяти 2 штуки

Ну и сама система кондиционирования:
  • Газовый охладитель воздуха
  • Газовый датчик
  • Обогреватель
  • Несколько газовых труб
  • Несколько радиаторов

По моим скромных подсчетам, данная система будет потреблять:
  • Обогреватель от 5 до 1000 Вт
  • Газовый охладитель воздуха 100 Вт
  • Все чипы вместе около 50 Вт
Учитывая что во всей системе обогреватель и охладитель никогда не будут работать одновременно, это значит что расход электроэнергии будет:
  • При нагреве помещения около 1050 Вт
  • При охлаждении около 150 Вт

Естественно нужно учитывать, что данная система подойдет только для небольших комнат. Все-таки для больших квадратных метров нужно нечто мощнее. Например тот же кондиционер. Но у него потребление может доходить до 6000 Вт. А это уже много. По крайне мере сейчас.
Визуализация чипов
Визуально схема должна выглядеть так. Конечно стоит учитывать, что одного радиатора может не хватать и система просто не будет справляться с охлаждением. Тогда в данном случае можно увеличить количество радиаторов. Но не стоит слишком увлекаться. Конечно расположение чипов вообще не принципиально, как и расположение датчика, обогревателя и охладителя. Главное чтобы схема была подключена и все приборы могли друг друга идентифицировать в цепи.
Логика подключения чипов

Газовый датчик считывает температуру и передает в Чип чтения LOGIC READER.

Чипы сравнения COMPARE UNIT:
  • Первый чип называем Минимальная температура (Temperature Minimum или TMin)
  • Второй чип называем наоборот Максимальная температура (Temperature Maximum или TMax)

И подключаем их к чипам памяти. Чип памяти называем аналогично чипам сравнения COMPARE UNIT
  • Первый чип памяти называем TMin
  • Второй чип памяти называем TMax

А что по температурам?
ВАЖНО! Скафандр показывает градусы Цельсия. А чипы понимают в Кельвинах!
  • В чипе памяти Tmax указываем 303
  • В чипе памяти Tmin указываем 293
303 Кельвина - 30 градусов Цельсия
293 Кельвина - 20 градусов Цельсия

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

Далее подключаем чипы сравнения COMPARE UNIT TMax и TMin к чипу чтения LOGIC READER.
На первом чипе COMPARE UNIT Tmax ставим Greater
На втором чипе COMPARE UNIT Tmin ставим Less


Теперь нужно подключить газовый охладитель и обогреватель к чипам Множественная запись BATCH WRITER. Чтобы это было проще:
  • Один чип Множественной записи BATCH WRITER назовем охлаждение (Cold)
  • Второй чип Множественной записи BATCH WRITER назовем нагревание (Hot)
    И у каждого чипа укажем режим ON

И что из себя представляет логика?
- газовый датчик передает данные температуры в чип чтения
- чип чтения отправляет данные температуры в 2 чипа сравнения
- чипы сравнения сравнивают из чипов памяти данные температуры с цифрами в памяти
- Если температуры ниже или выше, чипы множественной записи включают или выключают приборы.

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

Нет предела совершенству!

А что на счет микропроцессора? Ну давай начнем с того, чтобы реализовать это, нужно:
  • Микропроцессор
  • Компьютер
  • Материнская плата к компьютеру а именно Программатор
  • Сокет
  • И самое главное рабочий скрипт

    Но это еще пол беды. Чтобы все это сделать (Я молчу про знания программирования ic10). Нужно это все скрафтить. А для этого нужно:

    Микропроцессор
    - Слиток золота•10 г
    - Слиток электрума•5 г
    - Слиток стали•4 г
    - Слиток припоя•2 г

    Сокет
    - Слиток меди•10 г
    - ​Слиток стали•4 г
    ​- Слиток припоя•2 г

    Материнская плата
    - Слиток золота•5г
    ​- Слиток серебра•5г

    Компьютер
    Слиток меди•10 г
    ​Слиток железа•5 г
    ​Слиток золота•5 г

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

    Что мы делаем? Выкидываем все чипы в мусорку. Больше они нам не нужны. Схема подключения должны выглядеть так:


    Светодиодный дисплей?
    Да! Учитывая что мы программируем. Я решил добавить дисплей. Зачем он? Он будет показывать температуру в помещении. Но как я говорил ранее в разделе чипов. Техника не умеет работать с градусами Цельсия. Она понимает только в Кельвинах. Но мы напишем код, который будет делать перевод из Кельвина в градусы Цельсия.

    И так система кондиционирования состоит:
    • Газовый охладитель воздуха
    • Газовый датчик
    • Обогреватель
    • Несколько газовых труб
    • Несколько радиаторов
    • Сокет
    • Микропроцессор
    • Светодиодный дисплей

    По расходу электроэнергии:
    • Микропроцессор 2.5 Вт
    • Сокет 50 Вт
    • Светодиодный дисплей 50 Вт (Не обязательно)
    • Компьютер 200 Вт (Но его можно выключить и держать постоянно включенным не нужно)
    • Обогреватель от 5 - 1000 Вт
    • Газовый охладитель воздуха 100 Вт
Кот ДаВинчи
define GasSensor -1252983604
define WallHeater 24258244
define WallCooler -739292323
define disp -815193061 # small display
define disp2 -53151617 # medium display
define disp3 -1949054743 # big display

alias GasSensor d0
alias WallHeater d1
alias WallCooler d2
alias disp d3 #display port

alias on r0
move on 1

alias off r4
move off 0

#r1 Temperature
temp:# Formula Kelvin to C
l r1 d0 Temperature
sub r1 r1 273
s d3 Setting r1
blt r1 20 hot # temp On Heater
bgt r1 30 cold # temp On Cooler
bgt r1 23 alloff # temp Turn Off all
yield
j temp

hot:
s d1 On on
s d2 On off
j temp

cold:
s d2 On on
s d1 On off
j temp

alloff:
s d1 On off
s d2 On off
j temp

А можно по проще?

d0 - Это газовый сенсор
d1 - Это обогреватель
d2 - Это Газовый охладитель воздуха
d3 - Это дисплей
Эти штуки нужно выбрать на сокете


А как выставить свои градусы?

23 строчка - число 20 - обозначает температуру, когда должен включится обогреватель
24 строчка - число 30 - обозначает температуру, когда должно включится охлаждение
25 строчка - число 23 обозначает, когда все должно быть выключено
Важно! В данном случае указаны температуры в градусах Цельсия! Так как в коде уже указана формула перевода из Кельвинов В Цельсии

А как работает данная логика с температурами?
Очень просто! От 23 градусов до 29. Все приборы отключаются.

А что по дисплею?
Код умеет работать со всеми типами дисплеев. Главное нужный дисплей выбрать на сокете на d3. (берем отвертку в руки и нажимаем на d3).
Подытожим
Не знаю кому как, а работать с кодом как по мне проще и удобнее, чем с чипами. Все-таки микропроцессор дает возможность реализовывать почти любые задачи. А чипы не могут выстраивать сложную логику. Вернее могут, но не все. Плюс, чипов понадобится огромное количество. Ведь чем сложнее логика - тем больше чипов. А чем больше чипов - тем больше расход энергии. Короче код более гибкий в исполнении. В данном руководстве, если обратить внимание на расход энергии, то мы видим, что расход энергии почти одинаковый. Конечно я допускаю какие-нибудь погрешности в расчетах. Но все же :) По крайне мере у меня все работает.
Короче надеюсь помог.

P.S. Постараюсь выложить еще несколько руководств с кодами
38 条留言
MORS096 4 月 29 日 上午 8:41 
Немного доработал код теперь при повышении температуры он не будет её сбрасывать чуть чуть а будет сбрасывать до оптимальной температуры, но теперь оптимальную температуру надо ещё выставлять в цикле охлаждения.

(это мой первый опыт с кодингом в игре строго не судите, может там можно попроще ,но как могу)
В прошлый не влезло
MORS096 4 月 29 日 上午 8:41 
define GasSensor -1252983604
define WallHeater 24258244
define WallCooler -739292323
define disp -815193061 # small display
define disp2 -53151617 # medium display
define disp3 -1949054743 # big display

alias GasSensor d0
alias WallHeater d1
alias WallCooler d2
alias disp d3 #display port

alias on r0
move on 1

alias off r4
move off 0

#r1 Temperature
temp:# Formula Kelvin to C
l r1 d0 Temperature
sub r1 r1 273
s d3 Setting r1
blt r1 20 hot # temp On Heater
bgt r1 30 cold # temp On Cooler
bgt r1 23 alloff # temp Turn Off all
j temp

hot:
s d1 On on
s d2 On off
j temp

cold:
s d2 On on
s d1 On off
l r1 d0 Temperature
sub r1 r1 273
s d3 Setting r1
blt r1 23 alloff
j cold

alloff:
s d1 On off
s d2 On off
j temp
АНаJIbНЫЙ ПИPАT 3 月 28 日 上午 1:23 
хорошо, спасибо большое тебе QWARZ. Не думал что мне тут так быстро ответят и помогут так ещё и скрин скинут! Локальный hero)
QWARZ 3 月 25 日 下午 7:10 
верхний ряд с силовым кабелем это кабель электро питания, ну и не забудь, что охладителям в обязательном порядке для работы нужно подключение трубы с теплоносителем
на регуляторе или чипе памяти температуру нужно задавать в кельвинах(градус цельсия +273; так для 25 град. цельсия = 298 кельвинов)
в результате схема работает по принципу поддержания заданной температуры
QWARZ 3 月 25 日 下午 7:10 
правый чип - массовый чип вывода: в качестве источника данных вибираешь чип сравнения, в качестве вывода - охладители или нагреватели в зависимости от того что тебе нужно на планете, в качестве типа вывода - "on"(включение/отключение)
https://images.steamusercontent.com/ugc/2920730822742080/234F1DF5CAA3BDF1F97E8E59F1E52E575721211D/?imw=5000&imh=5000&ima=fit&impolicy=Letterbox&imcolor=%23000000&letterbox=false
QWARZ 3 月 25 日 下午 7:09 
АНаJIbНЫЙ ПИPАT, тогда просто воспользуйся схемой, что я скинул в скрине ниже: самый левый чип чтения в нем настрой источник-газовый датчик, вывод даннных-температура; средний чип - чип сравнения: источник данных 1 - чип чтения, источник данных 2 - регулятор(или вместо регулятора можно использовать чип памяти), тип сравнения - "greater"(больше) это если используешь охдадители, либо "less"(меньше) если будешь использовать нагреватели;
АНаJIbНЫЙ ПИPАT 3 月 25 日 上午 10:39 
так же пробовал писать define wallheater2 (хэш) и к нему через alias присвоение к d4 и так же с d5 (wallheater3) соответствено, тоже не воркнуло. (мб написал бред, но все что у меня есть так это этот шаблон и идеи как заставить этот шаблон работать без каких либо знаний)
АНаJIbНЫЙ ПИPАT 3 月 25 日 上午 10:39 
QWARZ, я как раз таки и присваивал в коде wallheater дополнительно к d4 и d5 и прописал в hot\cold\alloff d4 и d5, и назначил отверткой разные охладители, но первый вариант не работает, либо я что-то не так сделал :)
и я назначал отдельно через доп строки типа : alias wallheater d1 и ниже тоже самое но вместо d1 d4 и далее ещё одна строчка но с d5.
QWARZ 3 月 24 日 下午 7:15 
АНаJIbНЫЙ ПИPАT
https://images.steamusercontent.com/ugc/2920730822742080/234F1DF5CAA3BDF1F97E8E59F1E52E575721211D/?imw=5000&imh=5000&ima=fit&impolicy=Letterbox&imcolor=%23000000&letterbox=false

можно создать схему еще проще(вместо регулятора можно использовать чип памяти, служит для настройки температуры срабатывания охладителя или нагревателя), мне не встречались планеты где одновременно был бы необходим и нагреватель и охладитель
QWARZ 3 月 24 日 下午 6:40 
АНаJIbНЫЙ ПИPАT , можно сделать код с присваиванием нескольких кулеров, но для этого придется модернизировать код, а как это сделать я не знаю, как я уже говорил программирование в этой игре реализовано ужасно: 1 вариант - оставшимся выходам d4 и d5 по аналогии назначить охладители, в этом случае можно суммарно будет использовать 3 охладителя; 2 вариант заменить вывод сигнала вместо d2 на выход через хеш код в этом случае число охладителей будет неограничено, но как это сделать мне не хватает знаний