Это руководство написано для людей с нулевым опытом или знаниями в области программирования.. Работа с IC10 может оказаться довольно сложной для новичка.. К счастью, как только вы привыкнете думать о вещах систематически, поэтапный способ, заставить фишки делать то, что вы от них хотите, на удивление интуитивно понятно. Это руководство призвано привести вас к этому моменту..
Настраивать
Чтобы начать работать с IC10, вам понадобится базовое оборудование:
- Компьютер
- Материнская плата с редактором IC
- IC Корпус
- чип IC10 (место внутри корпуса)
Порт данных корпуса IC должен быть подключен к порту данных компьютера., и оба должны быть запитаны. Для простоты, Я просто соединяю их все в отдельную сеть.. Вы можете отделить сеть от остальной части вашей базы, поместив между ними контроллер питания..
Если оба правильно подключены и включены, вы увидите раскрывающийся список в левом верхнем углу экрана компьютера. “IC Корпус” или как вы обозначили жилье.
Обратите внимание на две другие кнопки: “Импорт” и “Экспорт”. Код, который вы пишете в компьютере, хранится отдельно и НЕ переносится автоматически на микросхему IC10, находящуюся в данный момент в корпусе.. Нажав на “Импорт” загрузит код с чипа в ваш компьютер, перезаписать то, что у вас есть в редакторе. Нажав на “Экспорт” запишет код с вашего компьютера на чип.
Не забудьте нажать «Экспорт», когда закончите настройку кода..
Окончательно, нажмите кнопку “Редактировать” кнопка в правом нижнем углу экрана, чтобы открыть редактор кода.
Основы
Давайте углубимся прямо в суть вещей.
Пока не беспокойтесь обо всех кнопках.. Чтобы понять код, начнем с его структуры.
Код записывается как серия строк, один за другим. Обратите внимание на номера строк в левой части экрана.. Читается сверху вниз. Всегда помните, что именно это и делает компьютер.. Сначала он читает строку 0 и делает то, что говорит эта строка, затем переходит к следующей строке и делает то, что говорит эта строка..
Иногда, линия сообщит компьютеру, что прыгать на другую строку вместо следующей. Затем компьютер прочитает строку, на которую он перешел., делай то, что он говорит, затем переходим к следующей строке, и так далее и так далее.
Когда сомневаешься, всегда начинать с строки 0, и медленно продвигайтесь по программе, строка за строкой.. Следите за ходом мыслей компьютера, и вы всегда сможете обнаружить свои ошибки..
Обратите внимание, что некоторые слова выделены разными цветами.. Каждый из этих цветов означает что-то особенное. Это отличный способ помочь вам понять, как компьютер интерпретирует то, что вы написали..
- Желтые слова функции. Они приказывают компьютеру выполнить определенное действие.. Часто вам нужно будет предоставить функции некоторую дополнительную информацию., или аргументы.
- Белые слова имена. Это поможет вам вспомнить, какую роль вы назначили различным устройствам и регистрам..
- Зеленые слова порты устройства. Они соответствуют конкретным соединениям на IC10. жилье, и как вы подключаете чип к другим вещам в сети, таким как датчики, нагреватели и охладители, и так далее.
- Оранжевые слова переменные устройства. Они соответствуют конкретным фрагментам информации, которую устройство собирает или использует., и они различаются от устройства к устройству. Например, ты можешь редактировать Горизонтальный и Вертикальный на солнечных батареях, чтобы контролировать, куда они смотрят, пока ты умеешь читать Температура и Давление от датчиков газа.
- Синие слова регистрирует. Они функционируют как временная память., места для хранения номеров, с которыми вы сейчас работаете. Например, при загрузке температуры с датчика газа, сначала вам нужно будет сохранить его в реестре, если вы хотите сравнить его с чем-то другим.
- Бирюзовые слова ценности. Это простые числа и означают то, что они означают..
- Фиолетовые слова этикетки. Вместо того, чтобы сообщать компьютеру перейти к определенной строке, мы можем указать ему вместо этого перейти к метке. Это очень помогает нам организовать наш код, давая имена определенным его частям..
- Красные слова — ошибки.. Большую часть времени, ты ввел что-то не так. Однако, иногда редактор не распознает метки должным образом.
Окончательно, обратите внимание на три кнопки в верхней правой части редактора. Это справочные списки, которые могут помочь вам, например, в том случае, если вы не уверены, в каком порядке записывать свои аргументы..
Самый важный из них “ж”, это список функций и аргументов, которые они принимают.
Устройства
При подключении корпуса IC10 к сети, он не распознает автоматически другие устройства в сети. Чтобы иметь возможность общаться с ними в вашем коде, вам необходимо подключить их к портам устройства на корпусе IC10.
Это делается путем удерживания отвертки и регулировки винтов на корпусе.. При наведении курсора на каждый винт, вы можете увидеть имя устройства, к которому в данный момент подключен порт, и на какой из них вы переключитесь, если еще раз нажать на винт.
Обратите внимание: если вы переименовали порты устройства в своем коде с помощью функции псевдонима, вы увидите имя порта, когда наведете на него курсор. Сходным образом, если вы переименовали свои устройства с помощью этикетировщика, вы увидите новое имя устройства при настройке портов.
Кодекс, часть I
На протяжении всего этого раздела, Я буду использовать пример сценария, опубликованный выше., и только этот. Номера строк и метки разделов всегда будут одинаковыми.. Этот скрипт управляет группой жидкостенных охладителей, поддерживая температуру в пределах 20 градусов Цельсия и 25 градусов Цельсия.
Давайте начнем с самого верха и будем двигаться вниз по строкам..
0. псевдоним Датчик d0
The псевдоним функция просто присваивает имя чему-то, например устройству или регистру.. Однако это одна из самых полезных функций, которые вы можете использовать, поскольку она очень помогает организации..
В этом случае, мы присваиваем имя “Датчик” до d0. Помните предыдущий раздел об устройствах? D0 — это устройство, подключенное к левому верхнему углу корпуса микросхемы.. В этом случае, мы даем устройству, подключенному к этому слоту, псевдоним “Датчик”.
Обратите внимание, что псевдоним фактически не переименовывает устройство, подключенное к слоту.. Для этого вам придется вручную использовать этикетировочную машину.. Псевдоним предназначен исключительно для использования внутри кода, который вы пишете..
1. он же CurrTemp r0
Другое использование псевдонима. Однако, мы присваиваем имя зарегистрироваться. Думайте о реестре как о блокноте. Хранит информацию для временного использования. В этом случае, мы собираемся использовать его для хранения температуры, которую мы получаем от датчика, и поэтому мы называем это “CurrTemp”, или текущая температура.
2. псевдоним MaxTemp r1 3. псевдоним MinTemp r2 4. псевдоним SetOn r3 5. псевдоним SetOff r4
В этих строках, присваиваем еще несколько названий регистрам, которые будем использовать в программе. Это максимальная и минимальная температура, которую мы хотим в комнате., и значения, которые нам нужно сохранить на устройстве, чтобы указать ему включаться и выключаться..
6. добавить МаксТемп 273 25
Здесь мы получаем первую настоящую математику в программе. Давайте разберемся. Но сначала, давайте посмотрим на описание функции добавить в собственном справочнике редактора.
Если это кажется запутанным, Не волнуйтесь. Это довольно просто, если разобраться.
добавить р? а ( р? | число ) б ( р? | число ) Зарегистрироваться = а + б.
Первая строка описывает, как вы используете функцию в своем коде.. В этом случае, ты печатаешь “добавлять” первый. Затем вы указываете регистр (р?). Затем вы указываете, и наконец, ты указываешь б.
Первый регистр, который вы указываете, — это место, где вы хотите сохранить результат.. Помните, что регистры — это блокноты, в которых вы храните информацию.. Результат сложения двух чисел полезен., но если ты хочешь использовать его, тебе нужно его где-то хранить- обычно регистр.
а(р? | число) означает, что “а” может быть либо регистром, либо числом. Если вы укажете регистр, добавлять возьмет номер, хранящийся в реестре. То же самое касается “б”.
Помните, что регистры — это блокноты, в которых хранится информация.. Большую часть времени, регистры будут хранить номер. Так что если зарегистрироваться 4 сохраняет номер 15, и зарегистрируйтесь 5 сохраняет номер 3, затем:
добавить r0 r4 r5
Это означает, что вы хотите добавить число в r4 к числу в r5 и сохранить результат в r0.. После этой строки, r0 будет содержать число 18.
Сходным образом:
добавить r0 r4 6
Это означает, что вы хотите добавить число в r4 к числу 6 и сохраните результат в r0. После этой строки, r0 будет содержать число 21.
В примере кода, мы использовали:
6. добавить МаксТемп 273 25
Это означает, что мы хотим добавить 273 к 25, и сохранить результат в “МаксТемп”. Помните из ранее (в соответствии 2) что мы использовали псевдонимы “МаксТемп” до r1. Следовательно, эта строка просто добавляет 273 к 25 и сохраняет его в регистре r1.
Это то, что мы хотим, чтобы наша максимальная температура была- 273 + 25 градусы Кельвина, или примерно 25 градусов Цельсия.
7. добавить минтемп 273 20 8. добавить SetOn 0 1 9. добавить SetOff 0 0
То же, что и выше. Мы сохраняем минимальную температуру 20 градусов Цельсия в регистр r2, сохранение номера 1 в регистр r3, и сохранение номера 0 в реестре r4.
До сих пор, так хорошо. Мы только что установили необходимые нам основные цифры..
Кодекс, часть II
10. основной:
Эта линия представляет собой этикетка. В следующих строках кода, если мы хотим вернуться в это место, вместо того, чтобы сообщать компьютеру конкретную строку, на которую мы хотим перейти, мы можем просто сказать ему перейти к “основной” вместо.
11. l Температура датчика CurrTemp
Это наша первая строка с двумя псевдонимами., но не путай. Это простая инструкция.
То, что делает компьютер,:
- Ищите устройство “Датчик”, это был псевдоним, который мы дали d0 в строке 0.
- Получить значение “Температура” от датчика.
- Сохраните значение в реестре “CurrTemp”, это был псевдоним, который мы дали r0 в строке 1.
После этой строки, текущая температура, которую отображает наш датчик газа, будет собрана и сохранена в r0., или CurrTemp.
12. bgt CurrTemp Превышение максимальной температуры
БГТ - это ветвь функция, сокращение от ветвь (если) больше, чем.
Ключевое слово “если”. Если первый аргумент больше второго аргумента, тогда компьютер перейдет в указанное вами место.
В этом случае: если CurrTemp больше MaxTemp- то есть, если температура, которую мы считываем с датчика, превышает максимальную температуру, которую мы хотим, который 25 градусы Цельсия- затем мы хотим, чтобы компьютер сразу перешел к разделу под названием “перегрев”.
В противном случае, если CurrTemp не больше MaxTemp, компьютер не переходит на “перегрев” и вместо этого просто перейти к следующей строке.
13. blt CurrTemp Пониженная температура MinTemp
blt — еще одна функция ветвления, сокращение от ветвь (если) меньше, чем.
Это то же самое, что и BGT, за исключением того, что меньше, а не больше, чем.
Так что в этом случае, если CurrTemp меньше MinTemp- если наша текущая температура на датчике ниже минимальной температуры 20 градусов Цельсия, которые мы хотим- тогда мы идем прямо к “пониженная температура”. В противном случае мы просто переходим к следующей строке.
14. Джей рука
Это одна из самых важных строк во всей программе..
Достаточно просто, “дж” сообщает компьютеру, что прыгать на другую конкретную строку в программе.
Поскольку мы хотим контролировать температуру в нашей комнате, мы не можем запустить его один раз- программа должна повторяться снова и снова. Каждый раз это повторяется, мы хотим, чтобы он проверял температуру, а затем включать и выключать кулеры по мере необходимости.
Итак, когда мы достигнем конца программы, мы говорим ему вернуться к началу.
В этом случае, мы говорим ему вернуться к “основной”, который был помечен в сети 10, в начале этого раздела руководства. Вся эта циклическая часть программы называется основной цикл.
Мы доберемся сюда, если температура не будет выше 25 градусов и не ниже 20 градусов Цельсия- счастливо между. В этом случае, мы хотим начать сверху и еще раз проверить температуру, поэтому мы возвращаемся к строке 10 и перезапустите программу с этого момента.
Кодекс, часть III
15. перегрев:
Это этикетка “перегрев”. Помните, что если температура, которую мы собрали с датчика в основном контуре, была выше, чем 25 градусов Цельсия, мы сказали компьютеру прыгнуть сюда.
сб -1369060582 Вкл.
Это еще одна функция, которая выглядит сложной, но на самом деле она довольно проста..
сб это функция, которая наборы переменные на партия устройств в сети.
Например, если бы мы хотели указать всем солнечным панелям в сети, чтобы они поворачивались на определенную вертикальную высоту, мы бы использовали эту функцию.
В этом случае, мы хотим сообщить всем настенным жидкостным охладителям в сети, чтобы они включились., поскольку температура превышает максимальную температуру, которую мы хотим.
-1369060582 это сборный хэш жидкостных настенных охладителей. Хэш идентифицирует тип устройства, не отдельный объект. Вы можете нажать на готовый хэш синего цвета, чтобы скопировать его в буфер обмена., и вставьте его в редактор таким образом, вместо того, чтобы запоминать и печатать.
Итак, что мы говорим с сб заключается в том, что мы хотим что-то сделать с каждым устройством этого конкретного типа.
Конкретно, мы хотим записать значение регистра “УстановитьВкл.” к “На” переменная на устройстве.
По сути, для включения и выключения устройства, нам нужно записать значения “1” и “0” соответственно своему “На” переменная. The сб Функция — это простой способ сделать это для целой партии устройств с чипом IC10 без необходимости использования логических средств записи пакетов..
Это может немного сбить с толку, потому что мы будем писать в ту же переменную “На” на устройстве позже в пониженная температура раздел.
Вот такие дела. отдельного нет “Выключенный” переменная для записи, если мы хотим ее отключить. Вместо, у нас просто Вкл = 0 на выезд, и Вкл = 1 на.
Таким образом, после этой строки, мы включим все настенные жидкостные охладители в сети.
Джей рука
Снова, нам нужно следить за температурой, поскольку она постоянно меняется, не один раз. Как и раньше, мы возвращаемся к началу основной, чтобы мы могли еще раз прочитать температуру, и начать цикл с начала.
18. пониженная температура: 19. сб -1369060582 При зачетеВыкл. 20. Джей рука
Это должно выглядеть уже знакомо.
Мы добираемся до пониженная температура когда температура ниже 20 градусов Цельсия. В этом случае, мы хотим повернуть выключенный все наши холодильники. Таким образом, вместо написания SetOn (который имеет значение 1) к нашим настенным холодильникам, пишем SetOff (который имеет значение 0).
И наконец, мы возвращаемся к главный снова, начать цикл сначала.
Анализ
Теперь, когда мы знаем, что делает каждая отдельная строка, что на самом деле делает программа в целом?
Начнем с комнаты, которая немного слишком теплая., сказать 30 градусов Цельсия, и пробежаться по всей программе, чтобы увидеть, что она делает.
В самом начале, программа устанавливает свои псевдонимы и базовые номера (или константы). Эта часть происходит как обычно.
Теперь мы добираемся до линии 11. Поскольку комната 30 градусов Цельсия, датчик будет читать 303 градусы Кельвина, и, следовательно, программа загрузит значение 303 в CurrTemp.
Теперь мы добираемся до линии 12. Программа сравнивает CurrTemp с MaxTemp.: 303 к 298. С 303 больше, чем 298, мы разветвляемся (или прыгать) перегревать.
Теперь мы на связи 15 (перегрев), и мы переходим к линии 16. Настраиваем все настенные кулеры на включение, а затем перейти к следующей строке.
Теперь мы на связи 17. Мы возвращаемся к главному, что такое линия 10, и переходим к строке 11.
В это время, комната немного остыла- скажем так 27 градусов Цельсия.
Снова, программа загружает температуру в CurrTemp, который 300.
С 300 все еще больше, чем 298, он снова перегревается, и включает все настенные кулеры.
Обратите внимание, что за все это время, настенные кулеры все еще были включены! Не было ничего, что говорило бы им выключиться, и включение их, когда они уже включены, ничего не дает.
После этого, мы возвращаемся к началу основного цикла.
Теперь предположим, что комната остыла еще сильнее., на этот раз, чтобы 24 градусов Цельсия.
Программа еще раз загружает температуру, что сейчас 297.
Это не выше, чем 298! Итак, программа делает нет перейти к перегреву.
Вместо, это переходит в линию 13, и сравнивает его с MinTemp- 293.
297 также нет ниже, чем 293, и поэтому программа переходит к строке 14, и запускает основной цикл заново.
Еще раз отметим, что все это время кулеры продолжают работать..
Предположим, комната наконец остыла до 19 градусов Цельсия.
Еще раз загружаем температуру, который 292.
Это не выше, чем 298, и чтобы не перескакивали с перегревом.
Однако это ниже, чем 293, и поэтому мы переходим к пониженной температуре.
Сейчас на линии 19, мы наконец выключаем все кулеры и возвращаемся к началу основного цикла.
По сути, эта программа поддерживает комнату в диапазоне между 20 и 25 градусов Цельсия. Если все закончилось 25, он будет охлаждать его, пока он не достигнет 20. Как только он ударит 20, он не начнет снова охлаждаться, пока температура не превысит 25 снова.
Вы можете убедиться, что понимаете принцип работы программы, начав с холодной комнаты под 20 градусов Цельсия, что естественным образом становится теплее, и выполняя шаги, которые мы выполнили в этом разделе.
Окончательно, вы можете дополнительно проверить свое понимание, начав с комнаты, которая закончилась. 30 градусов Цельсия, но вместо того, чтобы естественным образом потеплеть, естественно становится холоднее до 0 градусов Цельсия.
Организация
До сих пор, мы научились читать и понимать код с точки зрения компьютера, и некоторые основные функции, и как их использовать.
Однако, самое главное понять структуру программы.
Почти каждый раз, у вас будет основной цикл. Во время этого цикла, вы будете считывать данные с различных датчиков и машин. Затем, на основе данных, которые вы собираете, вы можете решить сделать разные вещи, используя различные операторы ветвления, и, возможно, использование операторов магазина, чтобы заставить другие устройства что-то делать. В конце всего, вы вернетесь к началу основного цикла.
Большинство программ в Stationeers будут построены следующим образом.. Например, с программой отслеживания солнечной активности, ваш основной цикл будет использоваться для получения вертикальных и горизонтальных углов солнца от датчиков дневного света.. Затем вы сделаете некоторые вычисления по углам, и используйте пакетную функцию сохранения для записи в переменные Horizontal и Vertical на всех солнечных панелях в сети..
Остальное - выяснить, что загружает и записывает, чтобы использовать., какие математические функции вам нужны, когда и как разветвляться, и затем сохраняя все в порядке и читабельности.
Это все, чем мы делимся сегодня для этого. Канцелярские товары гид. Это руководство было первоначально создано и написано почему циник. На случай, если нам не удастся обновить это руководство, вы можете найти последнее обновление, следуя этому связь.
Привет,
Я искал подробный и объясненный пример кода ic., и я нахожу твое очень ясным! Спасибо, что нашли время сделать это.
Отличный урок!
Спасибо! Очень подробно и понятно.