Stationeers

Stationeers

评价数不足
Автоматизация добычи руды с помощью робота
由 AlexVJ 制作
Давно я не выкладывал руководства по Стационерам. Представляю вам руководство по автоматизации добычи руды с помощью робота. Уверен не я один страдал с этой автоматизацией и особенно с этим роботом. На протяжении длительного времени у него были большие проблемы и куча багов. Это руководство подробное и оно на момент публикации рабочее! Наслаждайтесь и не забудьте поставить рейтинг, чтобы его увидело как можно больше людей! Всем добра!
   
奖励
收藏
已收藏
取消收藏
Что понадобится?
Склад
1 штука


Создается в Принтер электроники
Рецепт: Слиток золота•50 г​ Слиток электрума•50 г​ Слиток стали•20 г Слиток припоя•10 г


Транспортная труба

Создаете столько, сколько вам нужно
Создаётся в Автолат
Рецепт: Слиток железа•3 г


Транспортная труба Приёмник
1 шт.




ЖК Дисплеи (Консоль)
5шт.


Создается в Принтер электроники
Рецент: Слиток меди•5 г​ Слиток золота•3 г​ Слиток железа•2 г


Бот-шахтёр
1шт.


Создаётся в Принтер электроники 2 уровня
Рецепт: Слиток стали•22 г ​Слиток электрума•15 г​ Слиток астролоя•10 г Слиток константана•8 г Слиток инвара•7 г ​Слиток меди•5 г Слиток золота•5 г


Логический передатчик (Чип связи)
1шт.


Создаётся: Принтер электроники
Рецепт: Слиток кремния•5 г ​Слиток электрума•3 г​ Слиток золота•2 г Слиток меди•1 г

Логический переключатель
1шт.


Создаётся в Принтер электроники
Рецепт: Слиток меди•1 г​Слиток золота•1 г

Сокет
1шт.


Создаётся в Принтер электроники
Рецепт: Слиток меди•10 г​ Слиток стали•4 г ​Слиток припоя•2 г


Микропроцессор
2шт.


Создаётся в Принтер электроники
Рецепт: Слиток меди•10 г​Слиток стали•4 г​Слиток припоя•2 г


Планшет
1шт.


Выдается в начале игры.


Карта GPS
1шт.


Создаётся в Принтер электроники
Рецепт: Слиток меди•5 г​Слиток золота•5 г​Слиток железа•1 г


Материнская плата (Программатор)
1шт.


Создаётся в Принтер электроники
Рецепт: Слиток золота•5г​Слиток серебра•5г
Визуализация логики


Если вы использовали мое руководство по метеостанции то рекомендую подключить эту реализацию кода.
На картинке наглядно описана схема логики. У робота есть точка на базе, где он ожидает. Эта точка расположена в отдельном помещении. У этого помещения есть дверь, которая открывается когда роботу нужно поехать добывать руду и закрывается, когда робот заехал в помещение. Робот заезжает по двум причинам: Садится батарейка или приближается шторм.

В помещении есть:

  • 3 дисплея, которые показывают координаты, где робот находится сейчас.
  • 1 дисплей показывает статус робота
  • 1 дисплей показывает состояние заряда батареи у робота

Режимы работы робота:
0 (None) - ничего не делает
1 (Follow) - берёт целью ближайшего персонажа и двигается напрямую к нему
2 (MoveToTarget) - двигается прямо в заданные координаты
3 (Roam) - ищет руду, и добывает её до заполнения контейнера
4 (Unload) - выгружает содержимое контейнера
5 (PathToTarget) - ищет путь в указанные координаты
6 (StorageFull) - контейнер заполнен

Переключатель:

Нужен, чтобы принудительно вызвать робота на базу и не бегать за ним
Как всё подключить, чтобы работало
Мы берем 2 микропроцессора.

1 микропроцессор пустой - мы вставляем в робота.

2 микропроцессор - мы пишем на нем всю логику работы (код). Его вставляем в сокет

Логический передатчик - к нему мы подключаем нашего робота


Дисплеи
Всего нам нужно 5 дисплев. Каждый дисплей можно переименовать, чтобы было проще при назначении и понимании какой за что отвечает.

Я решил переименовать так:
1 Дисплей отвечает за координаты X
2 Дисплей отвечает за координаты Y
3 Дисплей отвечает за координаты Z
4 Дисплей отвечает режим работы робота
5 Дисплей показывает уровень заряда батареи у робота


Сокет
На сокете вы выставляем все нужные устройства и настраиваем их:

D0 - Выставляем логический передатчик

D1 - Выставляем Дисплей по X координатам

D2 - Выставляем Дисплей по Y координатам

D3 - Выставляем Дисплей по Z координатам

D4 - Выставляем Дисплей режимов робота

D5- Выставляем Дисплей заряда батареи робота
Код
alias robot d0
alias LedX d1
alias LedY d2
alias LedZ d3
alias LedMode d4
alias LedCharge d5
define LevelHome 1220484876
define Meteo 1997212478
define Doors 1736080881
alias mode r1
alias charge r2

#Waiting point at the base
define HOMEX -8
define HOMEY 0
define HOMEZ 9

#unloading place
define UNLOADX -16
define UNLOADY 0
define UNLOADZ 14

#mine ore
define MINEX -21
define MINEY -1
define MINEZ -9

#robot mode
define NONE 0
define FOLLOW 1
define MOVE 2
define MINE 3
define UNLOAD 4
define PATH 5
define FULL 6

s LedCharge Color 0
s LedCharge Mode 1
s LedMode Color 6
sb Doors Open 0

start:
yield
l r0 robot On
bnez r0 mining
j start

mining:
sb Doors Open 1
s robot TargetX MINEX
s robot TargetY MINEY
s robot TargetZ MINEZ
jal travel
lb r0 LevelHome Setting 0
bnez r0 home
lb r0 Meteo NextWeatherEventTime 0
bgtz r0 home
l r0 robot MineablesInVicinity
beqz r0 home
s robot Mode MINE

miningwait:
yield
jal display
lb r0 LevelHome Setting 0
bnez r0 home
lb r0 Meteo NextWeatherEventTime 0
bgtz r0 home
beq mode MINE miningwait
bne mode FULL mining

unload:
s robot TargetX UNLOADX
s robot TargetY UNLOADY
s robot TargetZ UNLOADZ
jal travel
s robot Mode UNLOAD

unloadwait:
yield
jal display
beq mode UNLOAD unloadwait
blt charge 0.2 home
lb r0 LevelHome Setting 0
bnez r0 home
lb r0 Meteo NextWeatherEventTime 0
bgtz r0 home
j start

travel:
push ra
s robot Mode MOVE

wait:
yield
jal display
blt charge 0.2 home
l mode robot Mode
beq mode MOVE wait
pop ra
j ra

display:
l r0 robot PositionX
s LedX Setting r0
l r0 robot PositionY
s robot TargetY r0
s LedY Setting r0
l r0 robot PositionZ
s LedZ Setting r0
l mode robot Mode
s LedMode Setting mode
ls charge robot 0 ChargeRatio
s LedCharge Setting charge
j ra

home:
s robot TargetX HOMEX
s robot TargetY HOMEY
s robot TargetZ HOMEZ
jal travel
s robot On 0
sb LevelHome Open 0
sb Doors Open 0
j start
Как работает код

P.S.
Когда будете выбирать координаты, старайтесь, чтобы у робота был прямой путь и не было препядствий. В противном случае но может застрять. Он же робот)
4 条留言
Golden Dragon 10 月 11 日 上午 7:15 
Проблема в том, что беспроводной акб ну очень маленький :( даже тот что "большой".
С атомной батарейкой не сравнить.
А сейчас по идее можно менять батарейку в роботе через AiMEE
bykovdm 4 月 15 日 上午 10:22 
Можно немного упростить и оптимизировать работу робота.

Вставляем в робота аккумулятор с беспроводной зарядкой. Ставим антенну зарядки вблизи точки разгрузки и в точке парковки. Таким образом робот станет практически автономным, не требующим смены аккумулятора. Кроме того, он будет немного заряжаться всякий раз при разгрузке. В целом можно совместить разгрузку, укрытие и зарядку в одном месте.
Kot_3adrot 2024 年 10 月 29 日 上午 4:43 
Здравствуйте, уважаемый Алекс! Ваши руководства сделаны неплохо, но возможно вы бы хотели усовершенствоваться в этом деле? Я бы хотел пригласить вас на свой Discord-сервер, посвящённый деятелям сообщества Steam. В основном, люди на сервере рекламируют свои работы, общаются, делятся опытом.
Если вам интересно, то примите, пожалуйста, мою заявку в друзья, и я вас приглашу
AlexVJ  [作者] 2024 年 9 月 17 日 下午 12:00 
Заметил одну особенность. Время от времени робот едет на точку и сразу возвращается на базу. Как я понял причина в том, что якобы на точке сбора ресурсов, нечего больше собирать (хотя это странно, так как он собирает ресы фактически из ничего) и нужно переназначить координаты. Можно хоть на + - 1 поставить. Но лучше выбрать сразу место, где будет прям много ресурсов а не голая пустыня. Короче либо это особенность игры либо нужна будет доработка логики