Перейти к содержимому
  • 0
Examnes

Как загрузить данные в робота?

Вопрос

У меня такая задумка - робот чтобы программу любого размера загрузить можно было в него но чтобы диска жёсткого в нем не было.

Собственно идея состоит в том чтобы в роботе был только eeprom и оперативная память. И робот как то извне загружает данные в память а потом их выполняет. Но единственное я не знаю как их в него передать - в мане вроде написано что робот не может взаимодействовать с другими компонентами напрямую.
Может быть можно передать в него код через метаданные блоков или что то такое?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

9 минут назад, Examnes сказал:

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
8 минут назад, eu_tomat сказал:

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

 

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

Да, идея мне ясна, но только какую информацию извне может получить робот минимальной комплектации? Желательно чтобы пропускная способность была бы повыше. Я почитал Robot API и кажется робот может проверить лишь наличие или отсутствие блока или сверить его с имеющимся у него. При наилучшем исходе размер канала всего лишь 4 бита. Можно ли как то передать роботу без всего много информации быстро?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, Examnes сказал:

какую информацию извне может получить робот минимальной комплектации?

В минимальной комплектации робот может получить информацию количестве предметов в каждом из слотов своего инвентаря. Если в какие-то слоты положить заранее заданные предметы, робот сможет сравнить другие предметы с этими своего рода эталонами. Также робот может определять наличие блока над, под роботом и перед собой, а также сравнивать их с предметами в инвентаре. Может забирать предметы из сундуков, также сравнивая их с имеющимся во внутреннем инвентаре предметами. Скорость получения информации таким способом будет, разумеется, очень низкой. Её можно увеличить, если разработать эффективные способы кодирования информации.

 

11 минуту назад, Examnes сказал:

Можно ли как то передать роботу без всего много информации быстро?

Способ передачи информации через переименование робота на наковальне довольно быстр.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, eu_tomat сказал:

В минимальной комплектации робот может получить информацию количестве предметов в каждом из слотов своего инвентаря. Если в какие-то слоты положить заранее заданные предметы, робот сможет сравнить другие предметы с этими своего рода эталонами. Также робот может определять наличие блока над, под роботом и перед собой, а также сравнивать их с предметами в инвентаре. Может забирать предметы из сундуков, также сравнивая их с имеющимся во внутреннем инвентаре предметами. Скорость получения информации таким способом будет, разумеется, очень низкой. Её можно увеличить, если разработать эффективные способы кодирования информации.

 

Способ передачи информации через переименование робота на наковальне довольно быстр.

Что вы подразумеваете под переименованием на наковальне? разве там нет ограничения на 30 символов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
16 минут назад, Examnes сказал:

Что вы подразумеваете под переименованием на наковальне?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, eu_tomat сказал:

 

Нет, это я видел. Но тут переименование используется как конфигурация. Я же хочу загрузить программу целиком в оперативку. К сожалению переименование не сильно поможет ведь размер имени составляет только 30 символов. Если бы можно было как то передавать в робота данные быстрее чем 10 байт в секунду (16 слотов в каждом по 64 блока = 80 бит или 10 байт) это было бы замечательно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, Examnes сказал:

Но тут переименование используется как конфигурация. Я же хочу загрузить программу целиком в оперативку.

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

 

3 минуты назад, Examnes сказал:

К сожалению переименование не сильно поможет ведь размер имени составляет только 30 символов.

Хорошо. А сколько символов могут сильно помочь? Каково минимальное значение?

 

10 минут назад, Examnes сказал:

Если бы можно было как то передавать в робота данные быстрее чем 10 байт в секунду (16 слотов в каждом по 64 блока = 80 бит или 10 байт) это было бы замечательно.

Самая дешёвая плата для робота — красная плата первого уровня позволит принимать чуть менее 80 байт в секунду.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А почему не рассматривается вариант беспроводной платы 1 лвл? В 1.7.5 её пофиксили. Да дистанция загрузки программы 16 метров, да 1 канал, зато можно загрузить программу размеры которой чуть меньше ОЗУ в роботе. Лично я так делал, когда не хотел давать никому свой код. Правда работает до первой перезагрузки.

Можно усложнить и загружать программу через интернет карту.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, Asior сказал:

А почему не рассматривается вариант беспроводной платы 1 лвл? В 1.7.5 её пофиксили.

Кстати, да. Она лишь чуть дороже красной платы 1 уровня.

 

@Examnes А какова конечная цель? В чём смысл этой затеи? Предположим, появится у нас робот, принимающий данные, вообще не имея каких-либо плат и улучшений. Что это даст? Ради какой цели требуется такая экономия? Возможно, решая эту задачу в комплексе, удастся сэкономить на чём-то другом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
17 минут назад, eu_tomat сказал:

Кстати, да. Она лишь чуть дороже красной платы 1 уровня.

 

@Examnes А какова конечная цель? В чём смысл этой затеи? Предположим, появится у нас робот, принимающий данные, вообще не имея каких-либо плат и улучшений. Что это даст? Ради какой цели требуется такая экономия? Возможно, решая эту задачу в комплексе, удастся сэкономить на чём-то другом?

Не ставить в робота дисковод - решил проблему: буду ставить заранее записанный жесткий диск это дешевле чем думать. Я просто думал мало ли есть какая то лайзейка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, Examnes сказал:

Я просто думал мало ли есть какая то лайзейка.

Эээ, я ничего не понял. Мы тут как бы накидали неплохую кучу вариантов, некоторые уже даже проверенные и реализованные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
54 минуты назад, Asior сказал:

Эээ, я ничего не понял. Мы тут как бы накидали неплохую кучу вариантов, некоторые уже даже проверенные и реализованные.

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

 

1 час назад, Examnes сказал:

Не ставить в робота дисковод - решил проблему: буду ставить заранее записанный жесткий диск это дешевле чем думать.

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

 

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

 

1 час назад, Examnes сказал:

Я просто думал мало ли есть какая то лайзейка.

Универсальной лазейки не существует. В том-то и смысл игры, чтобы искать оптимальную лазейку под конкретную задачу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...