Esta guía está escrita para personas sin experiencia o conocimiento en programación.. Trabajar con IC10 puede resultar bastante desalentador para alguien nuevo. Afortunadamente, Una vez que te acostumbras a pensar en las cosas de forma sistemática., manera paso a paso, conseguir que los chips hagan lo que quieres que hagan es sorprendentemente intuitivo. Esta guía tiene como objetivo llevarlo a ese punto..
Configuración
Para empezar a trabajar con IC10, necesitarás algún equipo básico:
- Computadora
- Placa base del editor IC
- Carcasa de circuito integrado
- chip IC10 (colocar dentro de la vivienda)
El puerto de datos de la carcasa del IC debe estar conectado al puerto de datos de la computadora., y ambos deben estar encendidos. Por simplicidad, Simplemente los conecto todos juntos en una red separada.. Puede separar una red del resto de su base colocando un controlador de energía en el medio..
Si ambos están correctamente conectados y encendidos, Verá el menú desplegable en la parte superior izquierda de la pantalla de la computadora que dice «Carcasa de circuito integrado» o como sea que hayas etiquetado la vivienda.
Tenga en cuenta los otros dos botones: «Importar» y «Exportar». El código que escribe en la computadora se almacena por separado y NO se transfiere automáticamente al chip IC10 que se encuentra actualmente en la carcasa.. Al hacer clic en «Importar» cargará el código del chip en su computadora, sobrescribiendo lo que tienes en el editor. Al hacer clic en «Exportar» escribirá el código de su computadora en el chip.
No olvides presionar Exportar cuando hayas terminado de modificar tu código..
Finalmente, haga clic en «Editar» botón en la parte inferior derecha de la pantalla para abrir el editor de código.
Lo esencial
Profundicemos directamente en las cosas.
No te preocupes por todos los botones por ahora.. Para entender el código, comencemos con su estructura.
El código está escrito como una serie de líneas., uno tras otro. Tenga en cuenta los números de línea en el lado izquierdo de la pantalla.. Se lee de arriba a abajo. Tenga siempre en cuenta que eso es exactamente lo que hace también la computadora.. Primero lee la línea 0 y hace lo que esa línea le dice que haga, luego pasa a la siguiente línea y hace lo que esa línea le dice que haga.
A veces, una línea le indicará a la computadora que saltar a una línea diferente en lugar de la siguiente. La computadora luego leerá la línea a la que saltó., haz lo que dice, luego pasa a la siguiente línea, y así sucesivamente y así sucesivamente.
En caso de duda, siempre comienza en la línea 0, y avance lentamente a través de su programa línea por línea. Sigue el hilo de pensamiento de la computadora y siempre podrás descubrir tus errores.
Tenga en cuenta que algunas palabras están en diferentes colores.. Cada uno de estos colores significa algo especial.. Son una excelente manera de ayudarte a comprender cómo la computadora interpreta lo que has escrito..
- Las palabras amarillas son funciones. Le dicen a la computadora que realice una acción específica.. A menudo necesitarás darle a una función alguna información adicional., o argumentos.
- Las palabras blancas son nombres. Estos le ayudan a recordar qué función ha asignado a varios dispositivos y registros..
- Las palabras verdes son puertos del dispositivo. Corresponden a conexiones específicas en el IC10. alojamiento, y es cómo se conecta el chip a otras cosas en la red, como sensores, calentadores y refrigeradores, etcétera.
- Las palabras naranjas son variables del dispositivo. Corresponden a datos específicos que un dispositivo recopila o utiliza., y difieren de un dispositivo a otro. Por ejemplo, puedes editar Horizontal y Vertical en paneles solares para controlar hacia dónde se enfrentan, mientras puedas leer Temperatura y Presión de sensores de gas.
- Las palabras azules son registros. Funcionan como memoria temporal, Lugares para almacenar números con los que estás trabajando actualmente.. Por ejemplo, cuando cargas la temperatura desde un sensor de gas, Primero deberás almacenarlo en un registro si quieres compararlo con otra cosa..
- Las palabras verde azulado son valores. Son números simples y significan lo que parecen significar..
- Las palabras moradas son etiquetas. En lugar de decirle a una computadora que salte a una línea específica, podemos decirle que salte a una etiqueta en su lugar. Esto nos ayuda enormemente a organizar nuestro código dando nombres a partes específicas del mismo..
- Las palabras rojas son errores.. La mayor parte del tiempo, ingresaste algo mal. Sin embargo, A veces el editor no reconoce las etiquetas correctamente..
Finalmente, tenga en cuenta los tres botones en la parte superior derecha del editor. Estas son listas de referencias que pueden ayudarle cuando no esté seguro de en qué orden escribir sus argumentos, por ejemplo..
El más importante es «F», que es una lista de funciones y los argumentos que toman.
Dispositivos
Cuando conecta una carcasa IC10 a una red, no reconoce automáticamente otros dispositivos en la red. Para poder hablar con ellos en tu código, debe vincularlos a los puertos del dispositivo en la carcasa IC10.
Esto se hace sosteniendo un destornillador y ajustando los tornillos en la carcasa.. Cuando pasas el cursor sobre cada tornillo, puede ver el nombre del dispositivo al que el puerto está conectado actualmente, y a cuál cambiarás si vuelves a hacer clic en el tornillo.
Tenga en cuenta que si ha cambiado el nombre de los puertos del dispositivo en su código con la función de alias, Verás el nombre del puerto cuando pases el cursor sobre él.. Similarmente, si ha cambiado el nombre de sus dispositivos con el etiquetador, Verá el nuevo nombre del dispositivo cuando esté ajustando los puertos..
Código Parte I
A lo largo de esta sección, Me referiré al script de ejemplo publicado arriba., y solo ese. Los números de línea y las etiquetas de las secciones siempre serán los mismos.. Este script controla un conjunto de refrigeradores de pared líquidos para mantener la temperatura entre 20 grados centígrados y 25 grados centígrados.
Comencemos desde arriba y avancemos línea por línea..
0. alias Sensor d0
El alias La función simplemente asigna un nombre a algo como un dispositivo o un registro.. Sin embargo es una de las funciones más útiles que puedes utilizar ya que ayuda mucho a la organización..
En este caso, le estamos asignando el nombre «Sensor» a d0. Recuerda el apartado anterior sobre dispositivos? D0 es el dispositivo que está conectado a la parte superior izquierda de la carcasa del IC. En este caso, le estamos dando el apodo al dispositivo conectado a esa ranura «Sensor».
Tenga en cuenta que el alias en realidad no cambia el nombre del dispositivo que está conectado a la ranura. Debes usar manualmente una etiquetadora para hacer eso.. Alias es exclusivamente para uso dentro del código que estás escribiendo..
1. también conocido como CurrTemp r0
Otro uso de un alias. Sin embargo, estamos asignando un nombre a un registro. Piense en una caja registradora como un bloc de notas. Almacena información para uso temporal.. En este caso, Lo vamos a utilizar para almacenar la temperatura que obtenemos del sensor., y así lo llamamos «Temp actual», o temperatura actual.
2. alias MaxTemp r1 3. alias MinTemp r2 4. alias SetOn r3 5. alias SetOff r4
en estas lineas, Estamos asignando algunos nombres más a los registros que usaremos en el programa.. Estas son las temperaturas máximas y mínimas que queremos en la habitación, y los valores que necesitamos almacenar en un dispositivo para indicarle que se encienda y apague.
6. agregar temperatura máxima 273 25
Aquí obtenemos las primeras matemáticas reales del programa.. Vamos a desglosarlo. Aunque primero, echemos un vistazo a la descripción de la función. agregar en la guía de referencia del propio editor.
Si eso parece confuso, no te preocupes. Es bastante simple una vez que lo desglosas..
añadir r? a ( r? | número ) b ( r? | número ) Registrarse = un + b.
La primera línea describe cómo usa la función en su código.. En este caso, tu escribes «agregar» primero. Luego especificas el registro. (r?). Luego especificas un, y finalmente, usted especifica b.
El primer registro que especifica es la ubicación donde desea almacenar el resultado.. Recuerda que los registros son blocs de notas donde almacenas información. El resultado de sumar dos números es útil., pero si quieres usarlo, necesitas guardarlo en algún lugar- generalmente un registro.
a(r? | número) significa que «a» puede ser un registro o un número. Si especifica un registro, agregar tomará el número almacenado en el registro. Lo mismo ocurre con «b».
Recuerde que los registros son blocs de notas que almacenan información. La mayor parte del tiempo, Los registros almacenarán un número.. Entonces si te registras 4 almacena el número 15, y regístrate 5 almacena el número 3, entonces:
añadir r0 r4 r5
Esto significa que desea sumar el número en r4 al número en r5 y almacenar el resultado en r0. Después de esta línea, r0 contendrá el número 18.
Similarmente:
añadir r0 r4 6
Esto significa que desea sumar el número en r4 al número 6 y almacenar el resultado en r0. Después de esta línea, r0 contendrá el número 21.
En el código de ejemplo, usamos:
6. agregar temperatura máxima 273 25
Esto significa que queremos agregar 273 a 25, y almacenar el resultado en «Temperatura máxima». Recuerda de antes (en linea 2) que le pusimos alias «Temperatura máxima» a r1. Por eso, esta línea simplemente agrega 273 a 25 y lo almacena en el registro r1.
Esta es la temperatura máxima que queremos que sea- 273 + 25 grados Kelvin, o aproximadamente 25 grados centígrados.
7. agregar temperatura mínima 273 20 8. agregar SetOn 0 1 9. agregar compensación 0 0
Igual que arriba. Estamos almacenando nuestra temperatura mínima de 20 grados Celsius en el registro r2, almacenando el número 1 en el registro r3, y almacenar el número 0 en el registro r4.
Hasta ahora, muy bueno. Acabamos de configurar los números básicos que necesitamos..
Código Parte II
10. principal:
Esta línea es una etiqueta. En las siguientes líneas de código, si queremos volver a esta ubicación, en lugar de decirle a la computadora la línea específica a la que queremos saltar, simplemente podemos decirle que salte a «principal» en cambio.
11. l Temperatura del sensor CurrTemp
Esta es nuestra primera línea con dos alias., pero no te confundas. Es una instrucción simple.
Lo que hace la computadora es:
- busca el dispositivo «Sensor», cuál fue el alias que le dimos a d0 en la línea 0.
- obtener el valor «Temperatura» del sensor.
- Almacenar el valor en el registro. «Temp actual», cual fue el alias que le dimos a r0 en la linea 1.
Después de esta línea, la temperatura actual que muestra nuestro sensor de gas se recopilará y almacenará en r0, o TempActual.
12. bgt CurrTemp MaxTemp sobretemperatura
bgt es un rama función, corto para rama (si) más que.
La palabra clave es «si». Si el primer argumento es mayor que el segundo argumento, luego la computadora saltará al lugar que usted especifique.
En este caso: si CurrTemp es mayor que MaxTemp- es decir, si la temperatura que leemos del sensor es mayor que la temperatura máxima que queremos, cual es 25 grados centígrados- entonces queremos que la computadora salte directamente a la sección llamada «sobretemperatura».
De lo contrario, si CurrTemp no es mayor que MaxTemp, la computadora no saltará a «sobretemperatura» y en su lugar simplemente pasa a la siguiente línea.
13. blt CurrTemp MinTemp subtemp
blt es otra función de rama, corto para rama (si) menos que.
Es el mismo trato que bgt., excepto con menos que en lugar de mayor que.
Entonces en este caso, si CurrTemp es menor que MinTemp- si nuestra temperatura actual en el sensor es inferior a la temperatura mínima de 20 grados centígrados que queremos- luego vamos directo a «subtemperatura». De lo contrario simplemente pasamos a la siguiente línea..
14. j mano
Esta es una de las líneas más importantes de todo el programa..
bastante simple, «j» le dice a la computadora que saltar a otra línea específica en el programa.
Ya que queremos controlar la temperatura de nuestra habitación., no podemos ejecutarlo solo una vez- el programa necesita seguir repitiéndose una y otra vez. Cada vez que se repite, queremos que compruebe la temperatura, y luego encender y apagar los refrigeradores según sea necesario.
Entonces, cuando lleguemos al final del programa, Le decimos que salte al principio..
En este caso, le decimos que regrese a «principal», que fue etiquetado en línea 10, al comienzo de esta sección de la guía. Toda esta parte de bucle del programa se llama bucle principal.
Llegaremos aquí si la temperatura no es superior. 25 grados ni por debajo 20 grados centígrados- felizmente en el medio. En este caso, queremos empezar desde arriba y comprobar la temperatura nuevamente, entonces volvemos a la línea 10 y reinicia el programa desde ese punto.
Código Parte III
15. sobretemperatura:
esta es la etiqueta «sobretemperatura». Recuerde que si la temperatura que recopilamos del sensor en el circuito principal fue mayor que 25 grados centígrados, Le dijimos a la computadora que saltara aquí..
alguien -1369060582 Activado Activado
Esta es otra función que parece complicada pero en realidad es bastante simple..
alguien es una función que conjuntos variables en un lote de dispositivos en la red.
Por ejemplo, si quisiéramos decirle a todos los paneles solares de una red que giren hacia una altura vertical específica, usaríamos esta función.
En este caso, queremos decirle a todos los refrigeradores de pared líquidos de la red que se enciendan, ya que la temperatura es mayor que la temperatura máxima que queremos.
-1369060582 es el hachís prefabricado de enfriadores de pared líquidos. El hash identifica el tipo del dispositivo, no es un objeto individual. Puede hacer clic en el hash prefabricado de color azul para copiarlo en su portapapeles., y pegarlo en el editor de esa manera en lugar de memorizarlo y escribirlo.
Entonces lo que estamos diciendo con alguien es que queremos hacer algo con cada dispositivo de este tipo en particular.
Específicamente, queremos escribir el valor del registro «Sedal» hacia «En» variable en el dispositivo.
Básicamente, para encender y apagar un dispositivo, necesitamos escribir los valores «1» y «0» respectivamente a su «En» variable. El alguien La función es una manera fácil de hacerlo en un lote completo de dispositivos con un chip IC10 sin tener que usar escritores lógicos por lotes..
Esto puede resultar un poco confuso, porque escribiremos en la misma variable de «En» en el dispositivo más adelante en el subtemperatura sección.
Así son las cosas. No hay un separado «Apagado» variable para escribir si queremos apagarlo. En cambio, solo tenemos activado = 0 para apagado, y encendido = 1 para en.
Así, después de esta línea, habremos encendido todos los refrigeradores líquidos de pared de la red.
j mano
Una vez más, Necesitamos monitorear la temperatura ya que cambia continuamente., no solo una vez. Como antes, saltamos de nuevo al inicio de principal, para que podamos leer la temperatura una vez más, y comenzar el ciclo desde el principio.
18. subtemperatura: 19. alguien -1369060582 En compensación 20. j mano
Esto ya debería resultarte familiar.
llegamos a subtemperatura cuando la temperatura es inferior 20 grados centígrados. En este caso, queremos girar apagado todos nuestros refrigeradores. Así, en lugar de escribir SetOn (que tiene el valor de 1) a nuestros refrigeradores de pared, escribimos SetOff (que tiene el valor de 0).
Y finalmente, saltamos de nuevo a el principal de nuevo, comenzando el ciclo de nuevo.
Análisis
Ahora que sabemos qué hace cada línea individual, ¿Qué hace realmente el programa en su conjunto??
Comencemos con una habitación que hace demasiado calor., decir 30 grados centígrados, y ejecute todo el programa para ver qué hace.
Al principio, el programa configura sus alias y números básicos (o constantes). Esa parte sucede normalmente..
Ahora llegamos a la línea 11. Dado que la habitación es 30 grados centígrados, el sensor leerá 303 grados Kelvin, y por lo tanto el programa cargará el valor de 303 en CurrTemp.
Ahora llegamos a la línea 12. El programa compara CurrTemp con MaxTemp: 303 a 298. Desde 303 es mayor que 298, nos ramificamos (o saltar) sobrecalentar.
Ahora estamos en línea 15 (sobretemperatura), y pasamos a la línea 16. Configuramos todos los refrigeradores de pared para que se enciendan., y luego pasar a la siguiente línea.
Ahora estamos en línea 17. Volvemos a principal, cual es la linea 10, y pasar a la línea 11.
Mientras tanto, la habitación se ha enfriado un poco- digamos a 27 grados centígrados.
Una vez más, el programa carga la temperatura en CurrTemp, cual es 300.
Desde 300 sigue siendo mayor que 298, salta a sobretemperatura nuevamente, y enciende todos los refrigeradores de pared.
Tenga en cuenta que durante todo este tiempo, los refrigeradores de pared todavía estaban encendidos! No había nada que les dijera que se apagaran., y encenderlos mientras ya están encendidos no hace nada.
Después, volvemos al inicio del bucle principal.
Ahora supongamos que la habitación se ha enfriado aún más., esta vez para 24 grados centígrados.
El programa vuelve a cargar la temperatura., que es ahora 297.
Esto no es mayor que 298! Entonces el programa hace no saltar a sobretemperatura.
En cambio, va a la linea 13, y lo compara con MinTemp- 293.
297 también es no inferior a 293, y así el programa pasa a la línea 14, y comienza el bucle principal de nuevo.
Tenga en cuenta una vez más que los refrigeradores siguen encendidos durante todo este tiempo..
Supongamos que la habitación finalmente se ha enfriado a 19 grados centígrados.
Una vez más cargamos la temperatura., cual es 292.
Esto no es mayor que 298, y así no saltemos a sobretemperatura.
Sin embargo, esto es inferior a 293, y entonces saltamos a la subtemperatura.
Ahora en linea 19, Finalmente apagamos todos los refrigeradores y volvemos al inicio del bucle principal..
Básicamente, este programa mantiene la habitación en un rango entre 20 y 25 grados centígrados. si se acabó 25, lo enfriará hasta que alcance 20. Una vez que golpea 20, no comenzará a enfriarse nuevamente hasta que la temperatura suba 25 una vez más.
Puede comprobar que comprende cómo funciona el programa comenzando con una cámara fría en 20 grados centígrados que naturalmente se están calentando, y siguiendo los pasos que hicimos en esta sección.
Finalmente, Puedes verificar aún más tu comprensión comenzando con una habitación que ya terminó. 30 grados centígrados, pero en lugar de calentarse naturalmente, naturalmente hace más frío hasta 0 grados centígrados.
Organización
Hasta ahora, Hemos aprendido a leer y comprender el código desde la perspectiva de la computadora., y algunas funciones básicas, y como usarlos.
Sin embargo, Lo más importante que hay que entender es la estructura del programa..
Casi cada vez, tendrás el bucle principal. Durante este bucle, Leerás datos de varios sensores y máquinas.. Entonces, basado en los datos que recopila, puedes decidir hacer cosas diferentes, usando las diversas declaraciones de rama, y tal vez usar declaraciones de la tienda para hacer que otros dispositivos hagan algo. Al final de todo, volverás al inicio del bucle principal.
La mayoría de los programas en Stationeers estarán estructurados así.. Por ejemplo, con un programa de seguimiento solar, Su bucle principal se utilizará para obtener los ángulos verticales y horizontales del sol a partir de sensores de luz diurna.. Luego harás algunos cálculos sobre los ángulos., y use la función de almacenamiento por lotes para escribir en las variables horizontales y verticales en todos los paneles solares de la red..
El resto es descubrir qué cargas y escrituras usar., qué funciones matemáticas necesitas, cuando y como sucursal, y luego mantener todo ordenado y legible.
Eso es todo lo que estamos compartiendo hoy para este Papeleros guía. Esta guía fue originalmente creada y escrita por por qué el cínico. En caso de que no actualicemos esta guía, puede encontrar la última actualización siguiendo este enlace.
Hola,
Estaba buscando un ejemplo detallado y explicado de código ic., y el tuyo lo encuentro muy claro! Gracias por tomarse el tiempo para hacer esto..
gran tutorial!
Gracias! Muy detallado y claro.