Opencomputers как сделать eeprom lua bios
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents
Или как собрать первый компьютер. Для запуска компьютера компьютера его нужно корректно собрать. В OpenComputers есть различные типы компьютеров, но мы начнем с самого простого и обычного.
Примечание: это пошаговая инструкция, которая позволит вам понять базовые принципы мода, так что она довольно длинная. Если вы никогда не собирали компьютер в реальной жизни или вы совсем не знаете этот мод, прочитайте ее всю.
Вначале вам понадобится системный блок. Этот блок будет содержать все компоненты, определяющие поведение собираемого компьютера.
Например, вам потребуется выбрать, какого уровня видеокарту вы будете использовать, нужна ли вам сетевая карта, плата на красном камне или даже карта отладки, если вы играете в творческом режиме.
Если вы попробуете запустите его сейчас, он скажет, что ему нужен процессор. Они бывают разных уровней - эта тенденция прослеживается во всем OpenComputers. Чем выше уровень процессора, тем больше компонентов он сможет использовать и тем быстрее он работает. Определитесь с уровнем процессора и поместите его в системный блок.
Затем вас попросят вставить планки памяти. Звуковой сигнал, подаваемый при попытке включения, будет другим: 1 длинный гудок и 1 короткий. Чем выше уровень планок памяти, тем больше памяти будет доступно для использования программами на вашем компьютере. Для запуска полной версии OpenOS требуется как минимум две планки памяти первого уровня, хотя упрощенная запустится и на одной.
Подчеркнем, что EEPROM нужен именно настроенный (configured). Создать EEPROM довольно просто. Но чтобы настроить, обычно используется компьютер, что сложновато в данной ситуации, поэтому будем использовать рецепт для крафта уже сконфигурированный EEPROM с "Lua BIOS". Обычно достаточно объеденить EEPROM и реководство на верстаке. Поместите настроенный EEPROM в ваш компьютер, и.
Ну что же. Это означает, что BIOS работает. Но не находит файловую систему, с которой бы он мог запускаться, - дискету или жесткий диск. Конкретно Lua BIOS хочет, чтобы на файловой системе в корневой директории был файл init.lua . Как и в случае с EEPROM, обычно для записи на файловую систему нужен компьютер. Как вы, скорее всего, догадались, нам нужно скрафтить дискету с операционной системой. Соедините пустую дискету и руководство на верстаке, и вы получите дискету с OpenOS.
Если вы использовали системный блок второго уровня, как на рисунках выше, вам некуда будет вставить дискету. Если вы будете использовать системный блок третьего уровня или творческий, вы сможете вставить дискету прямо в системный блок. В противном случае нужно установить дисковод рядом с системным блоком (или подключить с помощью кабеля). После вставки дискеты включите компьютер.
Он ожил! В любом случае, должен был. Если этого не произошло, значит, что-то пошло не так, и нужно искать ошибку с помощью анализатора. Но предпологая, что компьютер заработал, вы почти закончили. Самая сложная часть позади. Теперь осталось заставить его принимать ввод и выводить какой-то результат.
Чтобы компьютер мог выводить информацию, вы должны установить монитор и видеокарту.
Установите монитор рядом с системным блоком или, опять же, подключите его с помощью кабеля. После чего установите видеокарту по вашему выбору в системный блок. Теперь вы должны увидеть мигающий курсор на мониторе. Наконец, поставьте клавиатуру перед монитором или на одну из его сторон, чтобы получить возможность вводить текст с клавиатуры.
EEPROM — специальный чип с кодом, который вставляется в соответствующий слот в корпусе компьютера. Этот чип необходим всем типам компьютеров: компьютерам, серверам, планшетам, роботам и микроконтроллерам. Он содержит программу, которая выполняется сразу после старта компьютера. Например, стандартный чип Lua BIOS ищет файл init.lua и запускает его, загружая операционную систему OpenOS. Таким образом, EEPROM выполняет роль BIOS в настоящем компьютере.
Чипы с данными можно копировать при помощи верстака. Для этого необходимо положить два чипа в верстак — на выходе будут два чипа с одинаковыми данными. Если один чип пустой, копироваться будет чип с данными. Если оба чипа имеют данные — копироваться будет первый из них.
После загрузки компьютера, чип можно вынуть, или заменить другим. Например, для того, чтобы запрограммировать новый чип, используя этот же компьютер.
Для программирования чипа вы можете воспользоваться командами его API или программой flash.lua операционной системы OpenOS.
Объем данных, которые можно поместить на чип, имеет ограничение по размеру в 4 КБ (4096 байт).
Благодаря тому, что код загрузки компьютера (начиная с версии 1.4.2) не задан жестко модификацией, а вынесен в специльный чип, компьютеры получили способность загружаться не только с файловых систем OpenComputers, но и с других носителей информации. Например — с программы, переданной по сети, или с магнитной кассеты мода Computronics.
Чип EEPROM в корпусe стационарного компьютера
Содержание
Крафт [ ]
Lua BIOS [ ]
Это чип со стандартным кодом загрузки компьютера, который ищет файловую систему с файлом init.lua (файл операционной системы OpenOS).
Крафт [ ]
Название компонента: eeprom
- get(): string — возвращает код, содержащийся в чипе
- set(data:string) — помещает код, переданный в виде строки, в чип.
- getLabel(): string — возвращает метку чипа.
- setLabel(data:string) — устанавливает новую метку.
- getSize(): number — возвращает объем данных основного раздела на чипе.
- getDataSize(): number — возвращает объем данных в дополнительном разделе чипа.
- getData():string — возвращает дополнительные данные чипа (строку с адресом загрузочной файловой системы компьютера).
- setData(data:string) — перезаписывает дополнительные данные чипа заданной строкой.
- getChecksum(): string — возвращает уникальную контрольную сумму чипа.
- makeReadonly(checksum:string) — делает чип с указанной контрольной суммой доступным только для чтения. Процесс необратим.
EEPROM содержит 2 раздела, основной (4096 байт) и дополнительный (256 байт). Основной раздел по умолчанию предназначен основной код, дополнительный — это область модифицируемой памяти, например в чип EEPROM (Lua BIOS) в дополнительный раздел пишется адрес загрузочного диска с операционной системой.
OpenComputers — модификация с открытым исходным кодом. Она собирает в себе идеи ComputerCraft, Steve’s Carts и Modular Powersuits. Модификация добавляет в игру компьютеры, компоненты для их сборки и робототехнику. Программирование производится на языке Lua 5.2 или Lua 5.3
Содержание
Установка [ ]
- Установите Minecraft Forge. OpenComputers.
- Скопируйте файл в папку /mods .
Ключевые особенности [ ]
Надёжность [ ]
Ваши программы продолжат работать с того места, на котором остановились, когда чанк с компьютером был выгружен из памяти. Это особенно важно в одиночной игре и на серверах, где вы не можете контролировать загрузку чанков, а также при создании устройств на базе фреймов Redstone in Motion.
Важно: OpenComputers идет в комплекте с библиотекой Eris, которая содержит официальную реализацию Lua VM. Она уже включена в модификацию и работает на Windows, Mac OS X и Linux. Но её необходимо отдельно установить для работы сервера (установка автоматическая). Если библиотека будет отсутствовать в системе, модификация переключится на LuaJ. В этом режиме компьютеры не будут сохранять свое состояние при выгрузке чанка, а память не будет ограничена.
Модульность [ ]
Вы можете добавлять и удалять компоненты, например — платы расширения или жёсткие диски. Таким образом, вам нужно затратить меньше усилий, чтобы собрать первый компьютер. При этом значительно повышается гибкость системы. Вы можете собрать «чистый» сервер, то есть компьютер с сетевой платой, но без видеокарты. Или «рабочую станцию», которая будет иметь несколько видеокарт, планок памяти, сетевую и красную плату.
Ограниченность ресурсов [ ]
Кроме обычного ограничения размера диска, компьютеры имеют ограниченный размер оперативной памяти. Вы должны учитывать это при написании программ, иначе быстро «поймаете» ошибку переполнения памяти.
Это также уменьшает нагрузку модификации на игровой сервер. Модификация оптимизирует некоторые моменты для повышения производительности сервера: она не создает новый поток на каждую пользовательскую программу. Вместо этого используется ограниченное количество низко-приоритетных рабочих потоков для всех загруженных и работающих компьютеров. Также компьютеры вынуждены делать небольшие паузы в выполнении (по умолчанию — раз в секунду), чтобы избежать блокировки рабочим потоком. Если компьютер этого не сможет сделать, произойдет «крах системы».
Энергия [ ]
Компьютеры и большинство компонентов нуждаются в энергии для работы. Например, компьютеры и мониторы тратят фиксированное количество энергии за такт при работе/выводе изображения. При недостатке энергии произойдет выключение. Видеокарты тратят энергию на изменение изображения на присоединенном экране. Беспроводные сети потребляют энергию, посылая сигнал. Мощность сигнала влияет на количество затраченной энергии. Роботы тратят энергию, когда двигаются или совершают действия.
Модификация не имеет своих способов генерации энергии (за исключением апгрейдов для робота). Предполагается, что она используется вместе с другими модификациями. OpenComputers может конвертировать энергию из BuildCraft, IndustrialCraft², ThermalExpansion 3, Applied Energistics 2 и Universal Electricity. Если ни одна модификация из вышеперечисленных не будет установлена, энергия не будет потребляться.
Связь [ ]
В OpenComputers все устройства представлены в виде предметов или блоков — компонентов. То есть объектов, к которым можно обратиться из кода Lua.
Компоненты-блоки доступны из компьютеров с которыми они объединены в одну сеть. (Это похоже на то, как соединяются блоки в Applied Energistics.) К примеру, если установлен монитор, за ним вплотную дисковод, а за ним — компьютер, монитор будет доступен компьютеру. Самый простой способ соединить компоненты на расстоянии — использовать кабель.
Компоненты-предметы обычно доступны только тому компьютеру, в который они установлены. Исключения из правил: дискеты в дисководах и диски в RAID, которые работают как компонент-блок.
Конфигурация [ ]
Практически каждый аспект модификации может быть настроен при помощи файла конфигурации. Например, энергопотребление, скорость роботов, разрешение экранов и многое другое. Файл конфигурации содержит подробный комментарий к каждому параметру.
Блоки [ ]
Изображение | Название | Описание |
---|---|---|
Корпус компьютера | Базовый блок компьютера. Содержит слоты для остальных деталей: процессора, видеокарт, сетевых плат, памяти и жёстких дисков. |
Корпус уровнем выше содержит дополнительные слоты.
Кроме того серверная стойка работает как коммутатор и распределитель в одном блоке. Каждый слот стойки может быть настроен на работу с одной стороной блока. Это позволяет работать с внешними блоками, например — сетью красного камня.
Радиус, на котором сервера доступны через портативный терминал, настраивается в интерфейсе стойки и действует на все сервера в слотах.
В зависимости от уровня имеет разное разрешение (50x16/80x25/160x50) и глубину цвета (1/4/8). Мониторы уровня 2 и 3 имеют возможность взаимодействовать непосредственно мышью (без клавиатуры).
Монитор сам по себе не дает возможности набирать текст. Он только отображает информацию.
Голограмма содержит 48x32x48 монохромных (или 3-х цветных) «вокселей».
Их удобно использовать для накопления энергетических резервов или подзарядки роботов на месте.
Конвертирует энергию других модификаций в соотношении:
- BuildCraft MJ: 1:1.
- IndustrialCraft² EU: 2.5:1.
- Thermal Expansion RF: 10:1
- Universal Electricity Joules: 1:1.
С версии 1.2.1 компьютеры и серверные стойки могут использовать энергию без конвертера.
Также, коммутатор может служить посредником между сетью OpenComputers и ComputerCraft.
В последних версиях OpenComputers обрастает всякими загадочными вещами.
Игроки, которые только только освоились с предыдущей версией вдруг понимают, что надо изучать все заново.
"А пошло оно все!" - думают игроки, и уходят на версию 1.3.6, или переучиваются на ComputerCraft, который проще, и не требует непонятного.
А одна из самых загадочных - неведомый EEPROM.
Это такая мелкая хрень, без которой не работает ни один компьютер, или даже робот. Хорошо еще, что есть стандартный EEPROM который называется Lua BIOS. Он легко крафтится и заставляет работать компьютеры как и раньше.
Но найдем задачку посложнее, где Lua BIOS не поможет.
Попробуем собрать микроконтроллер, который будет управлять входными дверями.
1. План
Представим, как оно должно работать.
Слева от двери (если входить) - микроконтроллер.
Ради понтов, возьмем Микроконтроллер 2-ого уровня и поставим в него беспроводную сетевую плату. Кроме того добавим красную плату, чтобы управлять дверью.
1. Если контроллер принимает сигнал "open" - он открывает дверь.
2. Если примет сигнал "close" - он закрывает дверь.
3. Если примет посторонний сигнал - взрывает динамит. Дабы сокровища не достались хакерам.
Для управления задействуем любой комп, у которого тоже будет беспроводная плата (или точка доступа).
2. Крафтим контроллер
С этим проблем не возникнет. Потому, что я играю в креативе :P .
Открываем NEI и берем нужные детали. В последний слот положим пока пустой EEPROM. Потом поставим на него прошивку, а пока - не важно.
Нажимаем кнопку "Старт" и достаем готовый блок.
3. Готовим прошивку
Теперь, когда все готово, мы построили сокровищницу и скрафтили контроллер - осталось самое главное.
Программирование EEPROM'а отличается от программирования обычной программы.
Потому, что обычно, наши программы выполняются в OpenOS, которая заботливо загружает нужные библиотеки, предоставляет всякие удобные фичи и прочее.
Тем не менее писать мы будем именно в OpenOS. Запустим компьютер, напишем edit bios и введем следующие строки:
Дело в том, что большая часть библиотек, которые мы использовали - это библиотеки OpenOS. А значит мы не можем ими пользоваться в BIOS. Однако кое-что нам доступно.
Это библиотеки computer и component , и соответственно все установленные в целевом агрегате (микроконтроллер) компоненты.
Более чем достаточно для наших задач.
Вышеприведенный код делает следующее:
* ищет компонент с названием " redstone " и возвращает его прокси
* в вечном цикле посылает нулевой редстоун-импульс направо (side = 5), т.е. гасит сигнал
* ждет секунду (на самом деле - ожидает эвентов, то есть сигналов)
* посылает редстоун сигнал с силой 15 направо
* опять ждет секунду
Преследуем двоякую цель: во-первых проверить, что EEPROM вообще работает так про него написано на Вики. Кто его знает? А во-вторых: убедиться, что сторона 5 это именно та сторона, где дверь. А не какая-нибудь другая.
Нажмем Ctrl+S , чтобы сохраниться и Ctrl+W , чтобы закрыть редактор.
Вставим пустой EEPROM (еще один) в слот нашего компьютера, вместо лежащего там Lua BIOS. И напишем в консоль такую команду:
Программа flash предназначена для прошивки чипов. Флаг -q говорит ей, чтобы не задавала лишних вопросов, затем идет имя файла с нашим кодом (bios) и метка, которую программа шлепнет на чип (MCBios).
Все. Доставайте. Lua BIOS на место класть не обязательно, ибо этот слот нам еще потребуется. (Но не забудьте его вернуть, если будете перезагружать компьютер)
Чтобы заменить пустой EEPROM в контроллере на наш MCBios, надо положить контроллер и MCBios на верстак. При этом пустой чип вылетит, а новый встанет на его место.
Поставим контроллер на пол и протестируем.
После клика ПКМ на контроллере - замигала правая лампа. Значит все работает как нужно.
4. Теперь - серьезно
Извлеките чип с MCBios обратно (так же как и вставляли, только наоборот). Или приготовьте новый пустой чип. Главное - не запутайтесь в них.
Пишем клиент для контроллера. У меня он выглядит примерно так:
Все согласно плану.
Прошиваем чип, вставляем в контроллер, а контроллер ставим слева от дверей. Сзади к контроллеру осторожно прилаживаем запал.
Теперь открываем новый файл на компьютере: edit send
И пишем в него такой код:
Сохраняем, и закрываем. Это будет программка для тестирования контроллера.
5. Тест!
Пишем в консоль send open . Дверь открылась!
Пишем send close . Дверь закрылась!
Пишем send opeh
18 комментариев
Рекомендуемые комментарии
Полезные ресурсы
Голосование
Информация
О нас
У нас играют и пишут программы как новички так и опытные программисты. А самые продвинутые участники нашего коллектива даже разрабатывают собственные авторские моды и аддоны, ресурспаки, репозитории, мощнейшие библиотеки и операционные системы.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.
ProShow
Игрок
Всем привет!
Сегодня я поведаю вам о прекрасном моде - OpenComputers (OC)
Если вы достаточно прокачались, что бы спокойно вырабатывать 100 RF/tick без перебоя, то вам пора заняться этим модом. "Но что же мне делать за компом, если я не знаю программирования?" © Типичный игрок.
Легко и просто! За вас уже все сделали и можно спокойно пользоваться компьютерами и получать пользу от сего действа. А, собственно, зачем они нам?
- Возможность делать собственный интерьер. Т.е. в одном блоке можно поместить 16x16x16(256) маленьких блоков.
- Создание роботов, работающих за нас. Они могут строить, расфасовывать предметы, управлять фермой и многое другое.
А ещё они няшки. - Создание квадрокопетров
Часть I - Начало пользования.
Далее ставим монитор на системник с помощью Shift+ПКМ'а. Так же ставим клавиатуру на монитор. Где угодно. Теперь у нас должно быть так:
Теперь подключаем источник RF, а если нет такового используем EU через переходник.
Скрин 3
Рядом с преобразователем ставим источник EU впритык и не паримся далее.
Скрин 4
Теперь залезем в системник и офигеем.
Теперь нам надо сделать: EEPROM (Lua BIOS), Видеокарту 3 уровня, Жесткий диск 3 уровня, Оперативная память 3.5 уровня (желательно) x2, Дискета (делаем обычную и соединям с книгой OpenComputers), ЦП 3 уровня, Интернет-карта.
Скрин 6
Теперь можно включать наш компьютер с помощью кнопочки рядом с элементами. И клацаем ПКМ по монитору. Вот тут и будет твориться магия. Теперь пишем следующее:
Так мы сделаем нормальный размер экран, что бы можно было нормально читать текст.
Теперь установим на наш Жесткий диск (Далее HDD, хард) OpenOS. Стартовая Оперативная Система (Далее ОPа).
Пишем Y и жмем Enter. После срача нас спросят ещё раз, где мы так же пишем Y и жмем Enter. После рестарта (далее ребут) мы опять ставим размер экрана. Теперь нам надо установить MineOS, от ECS. Для этого нам и нужна была интернет карта. Пишем следующее:
Кстати, если вам впадлу выписывать код, можно просто выделить код, нажать Ctrl+C, а затем в системе нажать Insert. Если всё сделали правильно, всё должно выглядить так:
Скрин 7
После начнется скачивание файлов и вылезет это:
Скрин 8
Теперь жмем по кнопке "Select language". Тут выбираем Russian (что бы было удобнее), вместо "Full Instalation" выбираем "Install only must-have apps", дабы не засирать и так не большой хард (всего 4 мегабайта). Следующие 2 ползунка двигаем по желанию: Первая кнопка - скачать обои для рабочего стола, вторая кнопка - показывать подсказки на Английском. И жмем ОК. Далее клацаем ">", если интересно - читаем лицензионное соглашение
и клацаем "Принимаю". После установки следует перезагрузить компьютер, нажав "Перезагрузить". Теперь загружается ОРа и нам предлагают поставить защиту компьютера, что бы никто не могу загрузить вам вирус. Если пользоваться компьютером будете только вы, ставьте биометрическую, если вы и друг, то защиту паролем и сообщите пароль другу, а если вам плевать кто будет запускать комп, то без пароля. Если вы выбрали биометрическую - жмите ОК, а потом по отпечатку пальца, так компьютер запомнит что нужен именно ваш отпечаток руки. Если пароль, выберете пароль с другом и сообщите его другу.
Теперь у нас стоит ОРа и мы можем её настроить под себя. Для начала жмем на "Настройки", и выбираем "Разрешение экрана" и подбираем нужный нам размер. Всё зависит от кол-ва мониторов у вас, которые, кстати, можно соединять в один большой. Так же время от времени у нас на экране начнётся что-то такое:
Скрин 9
Не переживайте, это всего-навсего заставка, когда компьютер какое-то время бездействует. Что бы её закрыть, просто нажмите на неё.
Далее мы все настраиваем, как нам удобно с помощью верхнего меню. И продолжаем меня слушать.
Теперь нас интересует кнопка справа вверху "MineOS" так как мы будем её использовать постоянно. Одна из самых важных "Вернуться в shell" - это означает открыть командную строку, которая нас встретила в начале гайда. Далее из не понятных - разлогиниться, предположим что комп вам вырубать впадлу, но вы не хотите что бы кто-то трогал комп, для этого жмем по ней и нас будут просить ввести пароль и приложить пальчик к экрану, всё зависит от вашей системы защиты. Теперь заценим рабочий стол. Помимо клиента VK (реального) тут есть AppMarket в котором можно накачать приложения и обновить уже имеющиеся. Для начала скачаем 3DPrint для создания 3D моделей и их печати. Кстати, для экстренного завершения программы (или если нет кнопки выхода) нам надо зажать Ctrl+Alt+C.
Теперь ждите больше новых, маленьких гайдов!
!Всем пока!
Читайте также: