Para dar formato para la impresión, haga clic aquí .
Práctico Cricket programación de referenciaInformación generalEl Cricket práctico está programado en un lenguaje llamado "Logo Cricket", que es una versión simplificada de la potente y fácil de aprender el lenguaje Logo.Cricket Logo tiene las siguientes características:
Cricket Logo Screen![]() El área de texto en la parte inferior izquierda es el "Centro de Comando". Declaraciones escritas en esta ventana se transmiten inmediatamente al Cricket y luego ejecutados. En la imagen de la pantalla, la primitiva pitido se muestra. Este comando hace que el Cricket para que emita un pitido corto. El área de texto a la derecha es para los programas, y la etiqueta es "Logo Programas de Cricket." En Cricket Logo, procedimientos individuales se definen utilizando para y final de sintaxis. En la pantalla de ejemplo anterior, el procedimiento de demostración se enciende el motor A durante dos segundos, emite un pitido, y luego invierte la dirección del motor (para la próxima vez que esté encendida). El área de texto de una línea en la parte superior izquierda de la ventana es el "Run This" de línea. Cuando se descargan programas, cualquier declaración escrito en esta área se llevará a cabo cuando se pulsa el botón de la Cricket Run / Stop. Que normalmente poner el nombre del procedimiento que desea ejecutar aquí. Para descargar los programas, haga clic en el botón "Descargar". Esto hace que todos los procedimientos escritos en el área de procedimientos que se descargan en el Cricket. A continuación, ejecute el programa presionando el botón Run / Stop en el Cricket. En este ejemplo, la demostración a continuación, se ejecuta el procedimiento. Después de la descarga, también puede ejecutar un programa escribiendo su nombre en el Centro de Mando. Pulsa la tecla de retorno y el Cricket se ejecutará el código en esa línea. MotorsEl Cricket tiene dos motores, que se denominan "A" y "B" Un LED bicolor indica el estado de cada motor.Comandos de motor se utilizan seleccionando en primer lugar el motor (usando una, b, o ab, ) y luego diciéndole qué hacer (por ejemplo, en , fuera , rd , etc).
Tiempo y sonidoEl momento y el sonido primitivas son útiles para hacer que el Cricket para hacer algo por un período de tiempo.TimingCon la espera primitiva, se puede hacer que el Cricket para "no hacer nada", provocando de este modo por una cierta cantidad de tiempo para pasar. Mientras que el grillo al ralentí de esta manera, los motores se pueden dejar, así que, por ejemplo:ab, en espera de 20 offa su vez, los motores durante dos segundos. Esto es equivalente a: ab, enciendepor 20También hay un contador de tiempo de funcionamiento libre, que realiza un seguimiento del tiempo transcurrido, incluso cuando el grillo está haciendo otras cosas. Dos primitivas están disponibles para el uso del temporizador: iniciarcron , que restablece el contador a cero, y el contador de tiempo , que depende del valor actual del temporizador. La siguiente tabla resume los espera , temporizador , y Re-inicializa primitivas.
SonidoEl Cricket tiene un zumbador piezo incorporado que puede ser utilizado para reproducir tonos simples. Hay dos primitivas para hacer sonido: pitido , lo que genera un pitido corto de longitud y de paso fijo, y nota , que tiene duración y tono entradas:
Por favor, tenga en cuenta que hay dos valores diferentes de referencia para temporización: 0,1 unidades de segunda, que se utilizan en espera , encender por , y nota , y 0.004 unidades de segunda, que se utilizan en el temporizador . El pitido comando es equivalente a nota 63 1 . SensoresEl Cricket tiene dos puertos de sensor, llamado "A" y "B" Varios dispositivos puede ser conectado a estos puertos de sensores, incluyendo:
Estructuras de ControlCricket Logo compatible con una pequeña pero útil conjunto de formas de control. Estos consisten en estructuras de bucle, condicionales, una forma ocupado: espere y primitivas para la terminación temprana de la ejecución del procedimiento.Información generalLa siguiente tabla resume las estructuras de control de Cricket Logo:
EjemplosEl siguiente procedimiento hace que el motor de una salida de voltear hacia atrás y adelante diez veces:a flippy repetir 10 [a, encender por 10 rd] finAquí hay dos maneras de hacer la tapa del motor A un lado a otro de forma continua: a Flippy-forever-1 bucle [a, enciendepor 10 rd] fin a Flippy-forever-2 una, enciendepor 10 rd flippy-forever-2 finEl segundo método, que evita el uso de la bucle de la forma, es más eficiente, porque el compilador reconoce como la recursión de cola y optimiza como un GOTO. El siguiente procedimiento se enciende el motor A, espera a que el interruptor B para ser presionado, y luego se apaga el motor: a en-espera-off una, en esperahasta [switchb] off finEl siguiente procedimiento a prueba en varias ocasiones el estado de conmutador B. Si se pulsa, el motor se hace para seguir en la dirección "thisway". Si no se pulsa el interruptor, el motor va en la dirección opuesta: para cambiar-controles-dirección
una, en
lazo [
ifelse switchb [thisway] [thatway]
]
fin
NúmerosEl Cricket tiene un sistema de números de 16 bits. Las cifras pueden variar -32,768-32.767.Todos los operadores aritméticos deben estar separados por un espacio en cada lado. Por lo tanto la expresión 3 + 4 es no válido.Utilice 3 + 4 . Las reglas normales de precedencia expresión se no utilizados por el compilador. En cambio, los operadores se evalúan en el orden en que van apareciendo de izquierda a derecha. Por lo tanto: 3 + 4 * 5evalúa a 35, ya que el compilador actúa por primera vez en la 3 + 4 y luego multiplica el resultado por 5. Los paréntesis se pueden aplicar liberalmente para obtener expresiones para evaluar cómo los piensa. Por ejemplo: (3 + (4 * 5))produce 23. En la siguiente tabla se muestran los operadores establecidos en Cricket Logo:
Los procedimientos, entradas y salidasDefiniciónUn procedimiento se define mediante el que la palabra clave, seguido por el nombre del procedimiento, seguido por el cuerpo del procedimiento, seguido por el final de palabras clave. Por ejemplo, el siguiente define el procedimiento de flash , lo que convierte el motor de una salida de encendido y apagado 10 veces:a parpadear repetir 10 [a, enciendepor 5 esperar 5] fin EntradasLos procedimientos pueden ser definidos para aceptar entradas, que luego se convierten en variables locales dentro del procedimiento. Esto se hace utilizando el carácter de dos puntos " : "como se muestra a continuación. En este ejemplo, el flash de procedimiento se da una entrada, que se utiliza entonces como el contador en la repetición de bucle:Entonces uno puede utilizar este procedimiento con (por ejemplo) de flash 5 , flash de 10 , flash de 20 , etca parpadear: n repetir: n [a, enciendepor 5 esperar 5] fin Aquí un ejemplo de un procedimiento con dos entradas: No hay límite incorporada a la cantidad de entradas de un solo procedimiento puede tener.a parpadear: tiempos: retraso repetir: veces [a, enciendepor: retardo de espera: demora] fin SalidasLos procedimientos pueden devolver valores con la salida primitiva. En el siguiente ejemplo, el detectar procedimiento devuelve un valor de 0, 1, o 2 dependiendo del valor de sensor de A:La variable global temp se define. En la detectan , una lectura de sensor A se carga en temp . Si la lectura es menor que 30, entonces un 1 se devuelve. Si no la lectura de menos de 30, entonces la próxima prueba ejecuta, y si la lectura es entonces menos de 50, se devuelve un 2. Si esta prueba falla, entonces un 3 se devuelve.mundial [temp] para detectar settemp sensora si la temperatura <30 1="" 2="" 3="" fin="" la="" pre="" salida="" si="" temperatura="">30> Se debe tener cuidado para asegurar que si un procedimiento a veces produce una salida, que siempre lo hace. En un procedimiento que es capaz de producir una salida, el grillo se estrellará si una ruta de ejecución que no produce una salida se viaja. Variables globalesLas variables globales se crean utilizando el [global lista de variables ] Directiva al inicio del buffer procedimientos. Por ejemplo,globales [gatos perros]crea dos variables globales, llamados gatos y perros . Además, dos de fijación mundiales primitivas, setcats y setdogs , se crean instancias. Por lo tanto, después de que se proporciona la directiva global, se puede decir setcats 3para ajustar el valor de los gatos a 3, y setcats gatos + 1para incrementar el valor de los gatos . Las variables globales se almacenan en la memoria RAM, por lo que sus contenidos se pierden cuando el Grillo se apaga. Para guardar los datos cuando el grillo está apagado, por favor, utilice el registro de datos y las funciones de reproducción, o las funciones de matriz global. Ambos almacenan datos en la memoria no volátil del Cricket. Matrices globalesArrays globales se crean utilizando el array primitiva al comienzo de la ventana de procedimientos. Por ejemplo,array [encaje 10 clacks 15]crea dos arrays, uno con nombre clics , que puede contener 10 números y otro llamado clacks , que puede contener 15 números. Elementos de la matriz se accede mediante el aget primitivo y escriben utilizando la aset primitiva:
No hay ninguna comprobación de errores para evitar que las matrices de rebasamiento de sus límites. Las matrices se almacenan de forma consecutiva en la memoria como el orden en que se definen, por lo que (siguiendo con el ejemplo) si hizo un aset clics 10 17 usted desea realmente estar escribiendo un 17 en el primer elemento de clacks (ya que los valores de índice de clics deben correr desde 0 al 9, ambos inclusive). Los valores del array se almacenan en la memoria no volátil del Cricket, por lo que su contenido se conservan incluso cuando el grillo se apaga. Registro de datos y ReproducciónHay una sola matriz global para el almacenamiento de datos que contiene números de 2500.
Para transferir datos al ordenador, utilice el software Cricket Logo standard. En el menú "Cricket", hay una opción "Cargar datos." Con ello se abre un cuadro de diálogo que le permite recuperar los datos desde el Cricket y luego guardarlo en un archivo de texto.Este archivo de texto se puede importar a una hoja de cálculo para el análisis y la representación gráfica.tomar-datos inicia-ad repeat 2500 [registro sensora esperar 10] fin Tenga en cuenta que no hay ninguna comprobación de errores para prevenir contra grabación demasiados puntos de datos y con ello invadiendo el búfer de datos. Tenga en cuenta que los valores registrados se almacenan como valores de 8 bits (0 a 255); si intenta grabar un número superior a 255, sólo el byte inferior (resto de la división por 256) se registrarán. La recursividadEl Cricket admite la recursividad, es decir, los procedimientos que se definen en términos de sí mismos.Por ejemplo, la definición matemática de la función factorial es que el factorial de n es igual a n veces el factorial de (n - 1) , con el factorial de 1 siendo 1. Esta idea se puede expresar en Logo Cricket como: Para probar esto, descargue el procedimiento a continuación, escriba en el centro de mando del Cricket:de hecho: n si n = 1 [salida 1] salida n * hecho: n - 1 fin repita hecho 3 [BIP esperar 1]Deberá escuchar seis pitidos, ya que el factorial de 3 es 6. Tenga en cuenta que la memoria para hacer el seguimiento de las llamadas recursivas durante la ejecución es bastante pequeño, y limitado a unas seis llamadas profundas. Si los desbordamientos de pila, el grillo se detiene y emite cinco veces. "Recursión de cola" es un caso especial de la recursión cuando la última instrucción en el extremo de un procedimiento es la llamada recursiva. El Cricket soporta recursión de cola, la conversión de la llamada recursiva en una instrucción goto, y evitar el problema de profundidad de la pila se acaba de mencionar. El procedimiento siguiente ilustra el uso correcto de la recursión de cola, creando un bucle infinito: a pitar-forever beep espere 1 bip-forever fin Multi-tareaEl Cricket es compatible con una forma limitada de la multitarea. Además de la rosca convencional de ejecución, el Cricket puede tener una "tarea de fondo." Esta tarea comprueba repetidamente una condición. Cuando esta condición se convierte en verdad, la tarea interrumpe la actividad de primer plano y procesa su acción especial. Cuando la acción de la tarea en segundo plano termina, la ejecución continúa donde lo dejó en la actividad de primer plano.La tarea de fondo se pone en marcha usando el cuando primitivo. Por ejemplo, considere la siguiente línea de código: En este ejemplo, la tarea de fondo está buscando la condición switcha . Cuando esto se hace realidad (por ejemplo, se pulsa un interruptor conectado al puerto del sensor A), a continuación, se ejecuta la acción, y los pitidos de Cricket. Al mismo tiempo, el Cricket ejecuta un bucle infinito, el motor que gira A en un segundo medio y luego revertir su dirección.cuando [switcha] [beep] bucle [a, enciendepor 5 ª](Esta línea puede ser escrito en el centro de mando del Cricket para probarlo.) Tenga en cuenta algunos detalles sobre cómo está sucediendo:
Comunicación por infrarrojosInformación generalLos grillos pueden enviar señales de infrarrojos entre sí utilizando el enviar primitiva y recibirlos mediante el ir primitivo. Losinfrarrojos informes primitivos el último valor recibido. Una primitiva tercera, nuevoIR? , reporta cierto cuando un byte de IR se ha recibido pero aún no recuperado.Como ejemplo, considere el siguiente par de procedimientos. El primer procedimiento, llamado emisor , se ejecutará en uno de críquet, y generar números que se envían a un segundo Cricket. Aquí, el remitente procedimiento envía aleatoriamente un 0, 1, o 2: La expresión aleatoria 3% produce un 0, 1, o 2, usando el operador de resto-después de la división. Este valor se envía mediante el envío primitiva. Entonces el procedimiento emite un pitido y espera 3 segundos antes de enviar un nuevo número.al remitente enviar al azar 3% beep espere 30 remitente fin En un segundo Cricket, un procedimiento receptor, doit , recibirá estos números y, o bien activar el motor A, B del motor, o ambos motores en función del valor que obtiene: a doit esperahasta [nuevoIR?] si IR = 0 [a, enciendepor 10] si IR = 1 [b, enciendepor 10] si IR = 2 [ab, enciendepor 10] doit fin AdvertenciasTenga en cuenta que el sistema de Cricket utiliza valores de 128 a 134 para operaciones de bajo nivel entre grillos. Así que lo mejor es no enviar deliberadamente esos valores alrededor, porque grillos que están sentados inactivo (encendido, pero no ejecutan un programa) interpretarán esos códigos y posiblemente sobrescribir su memoria.El BotónCuando el grillo está inactivo, al pulsar su botón hace que se comience la ejecución de la línea remota de arranque 1 en la pantalla Logo Cricket.Cuando el grillo se está ejecutando un programa, al pulsar el botón hace que se detenga. Volver a Cricket Inicio Comandos del sistema
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
domingo, 28 de septiembre de 2014
programación para super cricket
Suscribirse a:
Entradas (Atom)
