Upload
jox1106
View
163
Download
2
Embed Size (px)
Citation preview
INTRODUCCIÓN A LA PROGRAMACIÓN
Comportamientos.
Un comportamiento es cualquier cosa que su robot hace: encendido de un motor
único es una conducta, moviéndose adelante es un comportamiento, el
seguimiento de una línea es un comportamiento, navegar por un laberinto es un
comportamiento.
Hay tres tipos principales de comportamientos que tienen que ver con: conductas
básicas, comportamientos simples, y comportamientos complejos.
Comportamientos básicos.
Ejemplo: Activar el Motor puerto 3 a
la potencia media. En el nivel más
básico, todo en un programa debe
ser dividido en pequeñas conductas
que el robot es capaz de entender y
llevar a cabo directamente.
En ROBOTC, estos son
comportamientos del tamaño de
declaraciones individuales, como
encender un solo motor, o restablecer un temporizador.
Comportamientos simples.
Ejemplo: Se desplaza hacia adelante por 2 segundos.
Tareas importantes, como moverse hacia adelante por una cierta cantidad de
tiempo. Estos son quizás los comportamientos más útiles que pensar, ya que son
lo suficientemente grandes que se pueden describir acciones útiles con ellos, pero
lo suficientemente pequeño que usted puede programar fácilmente desde básicos
RobotC comandos.
Comportamientos complejos.
Ejemplo: Seguir una ruta definida a través de un laberinto entero.
Estos son comportamientos a los más altos niveles, tales como navegar en un
laberinto entero. Aunque puede parecer complicado, una bonita propiedad de
comportamientos complejos es que son siempre compuestos de pequeños
comportamientos. Si usted observa un comportamiento complejo, siempre se
puede romper en comportamientos cada vez más pequeños hasta que, finalmente,
llegar a reconocer algo.
Comportamiento básico.
Este código convierte el motor izquierdo a media potencia
Comportamiento simple.
Este código hace que el robot vaya hacia delante durante 2 segundos a potencia media.
Comportamiento complejo.
Este código hace que el robot se mueva en una esquina.
Composición y Análisis.
Quizás la idea más importante en los comportamientos es que se puede construir
o romper en otros comportamientos. Comportamientos complejos, como ir a través
de un laberinto, siempre puede estar roto en pequeños comportamientos, los
comportamientos más simples. Estos a su vez pueden dividirse más y más hasta
llegar a comportamientos simples o básicos que reconocen y se puede programar.
Al mirar hacia atrás en el camino de las conductas que se rompió, también se
puede ver cómo el más pequeño comportamiento debe ser programado de
manera que se combinan de nuevo juntos, y producir un mayor comportamiento.
De esta manera, el análisis de los mapas de un comportamiento complejo a cabo
las piezas que deben a programar y le permite programarlos, y ponerlos juntos
para construir el producto final.
Paso a paso.
1. Comience con un comportamiento gran escala que resuelve el problema.
2. Dividirlo en partes más pequeñas. A continuación, romper las piezas más
pequeñas abajo también.
3. Repita hasta que haya conductas que son lo suficientemente pequeñas que
ROBOTC pueda entender.
A veces puede ser difícil determinar si un comportamiento es "simple" o
"complejo". Algunos programas son tan complejos que necesitan múltiples capas
de comportamientos simples antes de que lleguen los básicos.
"Básico", "Simple" y "Complejo" son categorías de conductas que tienen por objeto
ayudarlo a pensar acerca de la estructura de los programas. Son puntos de
referencia en el mundo de los comportamientos. Utilice estas distinciones para
ayudarle, pero no se preocupe si su "complejo" comportamiento de repente se
convierte en un "simple" parte de su próximo programa... sólo debes elegir el
punto de referencia eso es más útil de lo que usted necesita.
Comportamiento Programación basada en el Lenguaje Natural ROBOTC
El Lenguaje Natural ROBOTC está diseñado para bajar la barrera de entrada en la
sintaxis basada en programación mediante la combinación de múltiples
comportamientos básicos en comandos individuales. En otras palabras, los
programadores pueden escribir sus programas en el "comportamiento simple"
nivel, sin tener que preocuparse acerca de cada comportamiento básico. Los
nombres de estos nuevos comandos también están diseñados para ser más
intuitiva y más fácil de recordar.
El código del ejemplo siguiente hace que el robot para realizar el mismo complejo
comportamiento exacto como antes (vuelta de la esquina), pero varias líneas más
cortas y se puede entender más fácilmente
Muchos comandos adicionales están
disponibles en el lenguaje natural de lo
que parece en este código de ejemplo.
Comportamientos comunes tales como el
seguimiento de línea, en movimiento
recto, esperando a que los valores de
sensor en particular, el control remoto y
otros están disponibles. Para obtener
más información, haga referencia al
documento ROBOTC lenguaje natural o
la Ayuda integrada ROBOTC.
En ROBOTC, el lenguaje natural se puede activar mediante la selección en
Platform type.
Pseudocódigo y diagramas de flujo.
El pseudocódigo es una notación abreviada para la programación que utiliza una
combinación de estructuras de programación informales y descripciones verbales
de código. Se pone énfasis en la expresión de la conducta o resultado de cada
porción de código en lugar de la sintaxis estrictamente correcta (sí todavía tiene
que ser razonable, sin embargo).
En general, se usa pseudocódigo para delinear un programa antes de traducirlo a
la sintaxis correcta.
Esto ayuda en la planificación inicial de un programa, mediante la creación del
marco lógico y la secuencia del código. Un beneficio adicional es que debido a que
pseudocódigo no tiene necesidad de utilizar una sintaxis específica, que puede ser
traducido en diferentes lenguajes de programación y es por lo tanto algo universal.
Se captura la lógica y el flujo de una solución sin la mayor parte de las reglas de
sintaxis estrictas.
A continuación se muestra algunos pseudocódigo escrito para un programa que se
mueve todo el tiempo que un sensor de contacto no es presionado, pero se
detiene y gira a la derecha si su sonar detecta un objeto a menos de 20 pulgadas
de distancia.
Algunas sintaxis intactas.
El uso de un bucle while que en el pseudocódigo es apropiado porque las maneras de leer un bucle while es muy similar a la manera en que se utiliza en el programa.
Descripciones. No hay órdenes motoras actuales en esta sección del código, pero el pseudocódigo sugiere que los comandos pertenecen y lo que necesitan para llevar a cabo.
Este ejemplo de pseudocódigo incluye elementos tanto de lenguaje de
programación y el lenguaje Inglés. Las llaves se usan como una ayuda visual para
que las porciones de código que necesitan ser colocadas cuando finalmente se
escriban en la sintaxis completa y adecuada.
Pseudocódigo y diagramas de flujo.
Diagramas de flujo son una representación visual del flujo del programa. Un
diagrama de flujo que normalmente utiliza una combinación de bloques y flechas
para representar acciones y la secuencia. Los bloques suelen representar
acciones. El orden en que se producen las acciones se muestra con flechas que
apuntan a la declaración de estado de cuenta. A veces un bloque habrá varias
flechas que salen de él, lo que representa un paso en el que se debe una decisión
tomada sobre qué camino seguir.
Inicio y Fin. Los símbolos se representan como
rectángulos redondeados, por lo general contiene la
palabra "Start" o "Stop", pero puede ser más específico
como "Robot Power Off" o "Stop All Motors".
Las acciones se representan como rectángulos y actúan
como comandos básicos. Ejemplos: "wait1Msec (1000)",
"incremento LineCount por 1 ", o" motores a toda
máquina".
Bloques de decisión se representan como rombos.
Estos suelen contener preguntas sí / no. Los bloques de
decisión tienen dos o más flechas que salen de ellos, en
representación de los diferentes caminos que se pueden
seguir, en función del resultado de la decisión.
Las flechas siempre deben estar etiquetadas en
consecuencia.
A la derecha está el diagrama de flujo de un
programa que le indica a un robot a correr hacia
adelante, siempre y cuando su sensor de toque
no está presionado. Cuando el sensor táctil se
pulsa la parada de los motores y el programa
finaliza.
Para leer el diagrama de flujo:
• Comience en la pantalla "Start" del bloque y siga la flecha hacia abajo a la
"decisión" de bloque.
• El bloque de decisión comprueba el estado del sensor de toque contra dos
resultados posibles: el sensor de contacto es presionado o no.
• Si el sensor de contacto no es presionado, el programa sigue el "No" de flecha
para el bloque de acción de la derecha, que le dice a los motores a correr hacia
adelante. La flecha que sale del bloque que apunta hacia arriba y alrededor, y
termina de nuevo en el bloque de decisión. Esto forma un bucle
• El bucle puede terminar repetir muchas veces, siempre que el sensor táctil
permanece sin prensar.
• Si el sensor de contacto es presionado, el programa sigue el "Sí" de flecha y
detiene los motores, a continuación, finaliza el programa.
Pensando en programar, Programador y Robot
En esta lección, usted aprenderá sobre las funciones del programador y el robot, y
como los dos deben trabajar juntos con el fin de lograr sus objetivos.
Los robots están obligados a realizar tareas útiles. Cada uno está diseñado para
resolver un problema específico, de una manera específica.
Robotic Tractor.
Problema: Maneje con
seguridad a través de un
campo que puede contener
obstáculos.
Solución: Mover hacia el
destino, haciendo pequeños
desvíos si se detectan
cualquier obstáculo.
Robot Laberinto
Problema: Atraviesa el
laberinto.
Solución: Moverse a lo largo de
una trayectoria predeterminada
en segmentos cronometrados.
Echemos un vistazo más de cerca el robot Laberinto. ¿Cómo encontrar su camino
a través del laberinto?
¿Cómo sabe cómo hacerlo?
Problema---------------------???????-------------------Objetivo alcanzado
Creación de un robot con éxito hace falta un esfuerzo de equipo entre los
humanos y las máquinas.
Papel del Robot
El robot sigue las instrucciones que se dan, por lo tanto llevar a cabo el plan.
El papel del programador.
El programador humano identifica la tarea y planea una solución, entonces le explica al
robot lo que tiene que hacer para alcanzar la meta.
El humano y el robot realizan las tareas juntos al dividir las responsabilidades.
El programador humano debe llegar con el plan y la transmitirá al robot. El robot
debe seguir el plan.
Porque los seres humanos y los robots no suelen hablar el mismo idioma, un
lenguaje especial debe ser utilizado para traducir las instrucciones necesarias de
humano a robot. Estos lenguajes de humano a robot se llaman lenguajes de
programación. Instrucciones escritas en ellos se llaman programas. ROBOTC es
sólo uno de los muchos lenguajes de programación tales que los seres humanos
utilizamos para hablar con las máquinas.
Fin de la sección.
Los humanos y los robots se comunican mediante el uso de lenguajes de
programación tales como ROBOTC. Un ser humano que escribe un programa que
se llama programador. La tarea del programador es identificar el problema de que
el robot debe resolver, crear un plan para resolverlo, y convertir ese plan en un
programa que el robot pueda entender. El robot se ejecutará el programa y siga
las instrucciones para realizar la tarea.
Un robot sólo puede seguir su programa. ¡No puede pensar por sí mismo! Del
mismo modo que no puede ser más fuerte de lo que se construye, el robot no
puede ser más inteligente que el programa que un programador humano dio.
Usted, como programador, será responsable de planificar y describir al robot
exactamente lo que tiene que hacer para cumplir con su tarea.
Pensando en la programación (planificación y comportamientos).
En esta lección, usted aprenderá cómo pensar en términos de
"comportamientos" te puede ayudar a ver la lógica detrás de las acciones de
su robot, y romper un gran plan en partes prácticas.
Los comportamientos son una manera conveniente de hablar de lo que es un
robot que hace y lo que debe hacer. Moverse, girar, buscando un obstáculo...
estos son todos los comportamientos.
a) b)
a) Comportamiento complejo
Algunos comportamientos son grandes, al igual que "resolver el laberinto."
b) Comportamiento básico o simples.
Algunos comportamientos son pequeños, como "ir hacia adelante durante 3
segundos." Comportamientos grandes son en realidad un conjunto de estos más
pequeños.
Cuando se inicie la programación, también debe empezar a pensar en las
acciones del robot en términos de comportamientos. Recordemos que como
programador, sus principales responsabilidades son:
• En primer lugar, para llegar a un plan para el robot para llegar a la meta.
• En segundo lugar, traducir ese plan en un programa que el robot puede seguir.
El plan será simplemente la secuencia de comportamientos que el robot tiene que
seguir. El programa serán aquellos comportamientos traducidos al lenguaje de
programación.
1. examine problema
Para encontrar una solución, comenzar por examinar
el problema. Aquí, el problema es conseguir desde el
punto de partida (1) para el objetivo (2).
2. solución
Tratar de ver lo que el robot tiene que
hacer, en un nivel alto, para lograr el
objetivo.
Visto que el robot siga la ruta que se
muestra en el lado izquierdo, por ejemplo,
podría resolver el problema.
Usted acaba de identificar el primer comportamiento que necesitas. Anótelo.
3. Romper solución en pequeñas comportamientos
Ahora, empezar a tratar de romper ese comportamiento en partes más pequeñas.
Siguiendo este camino implica mover hacia adelante y luego girar, entonces
moverse hacia adelante por una distancia diferente, a continuación, girar la otra
manera, y así sucesivamente.
Cada una de estas acciones más
pequeñas es también un
comportamiento.
Escríbalas abajo también.
Asegúrese de que usted los
mantiene en la secuencia correcta.
4. Romper en pedazos aún más pequeños
Si a continuación se descomponen estos
comportamientos en pedazos aún más
pequeños, tendrás comportamientos
cada vez más pequeños, con más y más
detalle. Lleve un registro de ellos sobre la
marcha.
Finalmente, se llega a comandos que se
pueden expresar directamente en el lenguaje de programación.
Por ejemplo, ROBOTC tiene un comando para encender un motor. Al llegar a una
conducta que dice para encender un motor, puede dejar de romper hacia abajo
porque es más listo de traducir.
Paso a paso.
1. Comience con un comportamiento a gran escala que resuelve el problema.
2. Dividirlo en partes más pequeñas. A continuación, romper las piezas más
pequeñas abajo también.
3. Repita hasta que haya conductas que son lo suficientemente pequeños que
ROBOTC pueda entender.
Cuando todas las piezas han llegado a un nivel de detalle que se puede trabajar
con ROBOTC - como las de los "ROBOTC comportamientos listos " lista de arriba
- echar un vistazo a la lista que ha hecho. Estos comportamientos, en el orden y la
forma que lo has especificado, son el plan de que el robot debe seguir para lograr
el objetivo.
Debido a que estos pasos se siguen escribiendo en Inglés, que debería ser
relativamente fácil para el programador humano pueda entender.
A medida que el programador se vuelve más
experimentado, la organización de los
comportamientos en Inglés comenzará a
incluir técnicas importantes del lenguaje de
programación en sí, como if-else y loops.
Este lenguaje híbrido, a medio camino entre
el Inglés y el lenguaje de programación, se
llama pseudocódigo.
Es una herramienta importante para ayudar a
mantener los programas más grandes
comprensibles.
Pseudocódigo simple.
Su lista de comportamientos para llevar a cabo en un orden específico son una forma
sencilla de pseudocódigo.
Más tarde pseudocódigo.
A medida que sus habilidades de programación crecer, su pseudocódigo incluirá una
lógica más compleja.
Pero todavía tienen el mismo propósito: ayudar a encontrar y expresar los
comportamientos del robot sencillo necesarios en Inglés.
Espacio en blanco
Espacio en blanco es el uso de espacios, tabuladores y líneas en blanco para
organizar visualmente el código. Los programadores usan espacios en blanco, ya
que puede agrupar código en partes sensibles, legibles sin afectar a cómo el
código es leído por una máquina. Por ejemplo, un programa que ejecute un robot
hacia delante durante 2 segundos, y luego hacia atrás durante 4 segundos, se
vería así cualquiera de los siguientes:
Ambos programas realizan lo mismo, sin embargo, la segunda utiliza un espacio
en blanco para organizar el código para separar el programa dos comportamientos
principales: avanza y se mueve en sentido inverso. En este caso, los saltos de
línea (retorno) se utiliza para segmentar las tareas verticalmente. Horizontales
espacios en blanco y tabuladores como espacios también son importantes. A
continuación, el espacio en blanco se utiliza en forma de muescas para indicar que
las líneas están dentro de la cual las estructuras de control (task main, while loop,
if-else).
Palabras reservadas.
Motores.
Control del motor y algunos comandos de ajuste.
motor[output] = power;
Esto convierte a la referencia de salida VEX motor encendido o apagado y al
mismo tiempo establece su nivel de potencia.
El VEX tiene 8 salidas de motor: port1, Port2... hasta port8. El VEX admite
encendido a niveles de -127 (hacia atrás) a 127 (hacia delante). A nivel de
potencia de 0 hará que los motores se detengan.
bMotorReflected[output] = 1; (or 0;)
Cuando se establece igual a uno, este código se invierte la rotación del motor se
hace referencia. Una vez establecido, el motor de referencia se invertirá para todo
el programa (o hasta que bMotorReflected [ ] se fija igual a cero).
Esto es útil cuando se trabaja con motores que están montados en direcciones
opuestas, lo que permite al programador utilizar el mismo nivel de potencia para
cada motor.
Hay dos ajustes: 0 es normal, y 1 es inverso. Usted puede utilizar el "verdadero"
para 1 y "falso" por 0.
Sincronización.
El VEX permite el uso de comandos de espera para insertar retrasos en su
programa. También es compatible con los temporizadores, que funcionan como
cronómetros, sino que cuentan el tiempo, y se puede restablecer cuando desee
iniciar o reiniciar el tiempo de seguimiento transcurrido.
wait1Msec(wait_time);
Este código hará que el robot que espere un determinado número de milisegundos
antes de ejecutar la siguiente instrucción en un programa. "wait_time" es un valor
entero (donde 1 = 1/1.000 de un segundo). Máximo tiempo de espera es 32768, o
32,768 segundos.
wait10Msec(wait_time);
Este código hará que el robot que espere un determinado número de centésimas
de segundo antes de ejecutar la siguiente instrucción en un programa. "Wait_time"
es un valor entero (donde 1 = 1/100th de un segundo). Máximo tiempo_espera es
32768, o 327,68 segundos.
time1[timer];
Este código devuelve el valor actual del temporizador de referencia como un
número entero. La resolución de "tiempo1" es en milisegundos (1 = 1/1.000 de
segundo).
La cantidad máxima de tiempo que se puede hacer referencia es 32,768 segundos
(~ 1/2 minuto). El VEX tiene 4 temporizadores internos: T1, T2, T3 y T4
time10[timer];
Este código devuelve el valor actual del temporizador de referencia como un
número entero. La resolución de "tiempo10" está en centésimas de segundo (1 =
1/100th de un segundo).
La cantidad máxima de tiempo que se puede hacer referencia es 327,68 segundos
(~ 5,5 minutos). El VEX tiene 4 temporizadores internos: T1, T2, T3 y T4
time100[timer];
Este código devuelve el valor actual del temporizador de referencia como un
número entero. La resolución de "time100" es en décimas de segundo (1 = 1/100
de un segundo).
La cantidad máxima de tiempo que se puede hacer referencia es 3276,8 segundos
(~ 54 minutos). El VEX tiene 4 temporizadores internos: T1, T2, T3 y T4.
ClearTimer(timer);
Esto restablece el temporizador hace referencia de nuevo a cero segundos. El
VEX tiene 4 temporizadores internos: T1, T2, T3 y T4.
SensorValue(sensor_input)
SensorValue se utiliza para hacer referencia al valor entero del puerto sensor
especificado.
Los valores se corresponden con el tipo de sensor configurado para ese puerto.
El VEX tiene 16 entradas analógicas / digitales: in1, in2... a in16.
Sonidos.
El VEX puede reproducir sonidos y tonos utilizando un altavoz externo
piezoeléctrico conectado a un puerto del motor.
PlayTone(frequency, duration);
Esto reproduce un sonido a través del altavoz interno VEX a una frecuencia
específica (1 = 1 hertz) durante un período específico (1 = 1/100th de un
segundo).
Radio Control.
ROBOTC te permite controlar tu robot mediante la entrada del transmisor de radio
control.
bVexAutonomousMode
Cambia el valor a 0 para activar el radio o 1 para la radio con discapacidad
(autónomos modo). También puede utilizar el "true" para 1 y "false" por 0.
vexRT[joystick_channel]
Este comando recupera el valor del canal especificado que se transmite.
Si el receptor de RF está conectado a Rx 1, aplican los siguientes valores:
Si el receptor de RF está conectado a Rx 2, los valores siguientes:
Misceláneo.
Varios comandos útiles que no son parte de la lengua estándar C srand(seed);
Define el valor entero de la "seed" que se utiliza en el comando random() para
generar un número aleatorio. Este comando es opcional cuando se usa el
comando random(), y hará que la misma secuencia de números que se genera
cada vez que se ejecuta el programa.
random(value);
Genera un número aleatorio entre 0 y el número especificado en su paréntesis.
Estructuras de Control
Las estructuras del programa de control en ROBOTC habilitar un programa para
controlar su flujo fuera de la parte superior de la moda típica de fondo.
task main(){}
Crea una tarea llamada "main" necesaria en cada programa. task main es
responsable de la ejecución del código dentro de un programa.
while(condition){}
Se usa para repetir {una sección de código} mientras se mantiene en cierto (la
condición) true. Un bucle while infinito puede ser creado para asegurar que la
condición se cumple siempre, por ejemplo, "1 == 1" o "true".
if(condition){}/else{}
Con este comando, el programa verificará la (condición) dentro del paréntesis de
la declaración if y luego ejecutara uno de los dos conjuntos del código. Si la
(condición) es verdadera, el código dentro de las llaves declaración if será
ejecutado. Si la (condición) es falsa, el código dentro de las llaves de la
declaración else se llevará a cabo en su lugar. La condición else no es necesaria
para utilizar una sentencia if.
Tipos de datos.
Los diferentes tipos de información requieren diferentes tipos de variables para
retenerlos.
int
Este tipo de datos se utiliza para almacenar valores enteros que van -32768 a
32768
El código anterior también se puede escribir:
bool
Este tipo de datos se utiliza para almacenar valores booleanos de cualquiera 1
(cierto) o 0 (también falso)
char
Este tipo de datos se utiliza para almacenar un solo carácter ASCII, especificado
entre un conjunto de comillas simples.
Comentarios.
Comentando un programa que consiste en utilizar un texto descriptivo para
explicar porciones de código. El compilador y el robot ignoran los comentarios
cuando se ejecuta el programa, lo que permite al programador dejar notas
importantes en formato no-code, justo al lado del código del programa en sí. Esto
se considera un estilo de programación muy buena, ya que reduce el potencial de
confusión más tarde cuando otra persona (o incluso usted) puede necesitar leer el
código.
Hay dos formas de marcar una sección de texto como comentario en lugar de
código normal:
A continuación se muestra un ejemplo de un programa con comentarios de una o
varias líneas. El texto como comentario se vuelve verde.
"Comentando" Código
Los comentarios también a veces se usa para temporalmente "desactivar" el
código de un programa sin eliminarlo. En el siguiente programa, el programador
tiene código se ejecute directamente y luego girar a la derecha. Sin embargo, con
el fin de probar sólo la primera parte del programa, el programador hace el
segundo comportamiento en un comentario, de modo que el robot lo ignora.
Cuando el programador se realiza probando el primer comportamiento, él / ella va
a quitar las marcas de comentario / / para volver a habilitar el segundo
comportamiento en el programa.
Mensajes de error en ROBOTC.
ROBOTC tiene un compilador integrado que analiza sus programas para
identificar los errores de sintaxis, errores de capitalización y ortografía, y la
ineficiencia del código (como las variables utilizadas). El compilador se ejecuta
cada vez que se descarga el código para el robot y cuando usted decide compilar
el programa desde el menú Robot en ROBOTC.
Notificaciones relativas a los errores, advertencias e información importante sobre
el compilador encuentra se muestran en la pantalla de visualización de errores de
la interfaz ROBOTC.
Los errores muestran informes en pantalla el número de errores en el código, así
como sus tipos. Haciendo doble un mensaje del compilador en la pantalla de error
resaltará la línea correspondiente del código del programa. Dependiendo del tipo
de error, ROBOTC sólo será capaz de seleccionar la ubicación aproximada. Por
ejemplo, en el ejemplo anterior la falta punto y coma es en la línea 7 pero
ROBOTC destacará línea 8.
ROBOTC genera tres tipos de mensajes del compilador: errores, advertencias e
información:
Errores:
Ha habido un problema en el programa que le ha impedido compilar. Estos son
por lo general las palabras mal escritas, punto y coma que faltan, y la sintaxis
incorrecta. Los errores se indican con una X roja
Advertencias:
Había un pequeño problema con el programa, pero el compilador fue capaz de
solucionar o ignorarla. Estos suelen ser incorrectas capitalizaciones o bucles
vacíos infinitos. Las advertencias se indican con una X amarilla
Información:
ROBOTC generará mensajes de información cuando se piensa que han declarado
funciones o variables que no se utilizan en el programa. Estos mensajes le
informará acerca de la programación ineficiente. Los mensajes de información se
indican con una X blanca
Mensajes de error comunes.
Los mensajes de error para evitar que su programa se compile y cargue a su
robot. Debe corregir cualquier y todos los mensajes de error en su programa antes
de descargarlo en el robot. Además, los mensajes de error pueden tener un efecto
"onda", los errores en el inicio de su programa puede provocar errores posteriores
en el código. Debido a esto, se recomienda hacer una corrección de errores en el
comienzo de su primer programa, volver a compilar el código y corregir cualquier
error.
La mayoría de los mensajes de error se deben a errores ortográficos y palabras
reservadas sintaxis incorrecta. Muchos de estos errores se pueden evitar
arrastrando los comandos de la biblioteca de funciones en sus programas RobotC.
En el siguiente ejemplo, la T en la tarea principal se escribe con mayúscula,
causando múltiples errores posteriores y las advertencias que aparezcan en la
pantalla de visualización de errores.
En situaciones como éstas, se recomienda que intente corregir el primer error en
el programa antes de continuar. El primer mensaje de error dice "** Error **:
Undefined variable 'Task'. "short" assumed. Cuando las palabras "Underfined
variable "aparecen en pantalla los errores en la pantalla, indica que ROBOTC no
reconoce la palabra especificada, y el hecho de que la tarea es de color negro en
lugar de azul al igual que otras palabras reservadas RobotC también indica que
ROBOTC no lo reconoce.
Para corregir este error, deberá cambiar la mayúscula T con t minúscula en la
tarea, y volver a compilar el código. El compilador reevaluar su código y generar
un nuevo conjunto de notificaciones.
Mensajes de error comunes.
El siguiente ejemplo contiene dos errores de sintaxis: missing curly braced { en la
línea 2 y un semicolon que falta en la línea 6. Una vez más, usted debe tratar de
corregir el primer error en el programa antes de continuar.
El primer mensaje de error aparece en la línea 4, que dice "** Error **: Se espera->
'{'. Encontrado 'int' ". Cuando la palabra "Expected->" aparece en la pantalla de
visualización de errores, por lo general indica que una parte de la sintaxis no se
encuentra. En este caso, se espera que encontrar la llave que falta
inmediatamente después de la tarea main (), pero no encontró la palabra
reservada int en lugar. Para corregir este error, se debe añadir la llave de apertura
en la línea 2 y luego volver a compilar el código.
Después de volver a compilar el código, cualquier error en la pantalla. Puntos y
comas que faltan también mostrará un "Expected->" mensaje de error de estilo,
pero observe que el error de la falta punto y coma en la línea 6 aparece en la línea
7. Esto se debe a que el compilador ignora los espacios en blanco (líneas en
blanco, espacios y tabuladores), pero se espera un punto y coma antes de que se
encontró con el comando wait. Para corregir este error, se debe añadir un punto y
coma después de la orden forward.
En el ejemplo de abajo, el compilador ROBOTC no reconoce los comandos
forward, wait o stop. Los mensajes de error que comienzan con "** Error **:
“Undefined procedure" indican que ROBOTC no reconoce el comando.
Hay dos causas principales de este error:
1. El comando está mal escrito.
2. La plataforma correcta Tipo ROBOTC no está seleccionada.
Para corregir este error:
1. Compruebe que la ortografía y uso de mayúsculas es correcta.
2. Compruebe que tiene el adecuado tipo de plataforma seleccionada. Si está
utilizando comandos de lenguaje natural, debe tener el tipo de lenguaje Plataforma
Natural seleccionado.
Los mensajes de advertencia comunes.
Los mensajes de advertencia se utilizan para que le notifique acerca de la
programación posible y errores lógicos en el programa. Con los mensajes de
advertencia, el compilador es capaz de solucionar los problemas o ignorar lo que
no impedirá que su programa de compilar o descargar a tu robot.
Una ocurrencia común de mensajes de advertencia son bucles infinitos vacíos en
el código. En el siguiente ejemplo, el bucle infinito se crea, sin código incrustado
dentro del bucle para que deje de repetir siempre. Esto se considera una
advertencia, en lugar de un error, debido a que es un código válido y puede utilizar
de manera intencionada por un programador.
El mensaje de advertencia le informará de que hubo un error de programación
causado por un bucle infinito: "* Warning *: Posible error de programación. Bucle
infinito (salto incondicional a sí mismo) detectado".
Si se crea un bucle infinito era su intención, no es necesario para corregir este
mensaje. Si no fuera intencional, puede:
1. Incluya el código dentro de las llaves del bucle while, para que se repita.
2. Cambiar la condición del bucle, mientras que, de modo que no se repite
siempre.
En el siguiente ejemplo, los comandos forward y stop están mal capitalizados. El
compilador ROBOTC es capaz de sustituir en las formas correctas de los
comandos, sino que utiliza los mensajes de advertencia para notificarle de la
sustitución. Tenga en cuenta que no corrige la capitalización en el código, sólo lo
envía al robot. Una vez más, el mensaje de advertencia real que informar acerca
de la sustitución:
"*Warning *: Sustituyendo variable similar 'forward' para 'Forward'. Revisar la
ortografía y mayúsculas. "
Los mensajes de información comunes.
Los mensajes de información no impedirá que su programa se compile o
descargue a tu robot.
Sólo se le notificará en cuanto a posibles ineficiencias en el código.
El caso más común de mensajes de información son las variables utilizadas en el
código. En el siguiente ejemplo, la variable entera speed se crea y se inicializa,
pero nunca realmente es utilizada en el programa. Esto se indica en la pantalla
con errores en la pantalla el mensaje: "" speed "está escrito pero no tiene
referencias de lectura".
No es necesario corregir este mensaje, pero se puede de dos formas:
1. Elimine el código en la línea número 4, borrando la variable.
2. Llamar a speed variable en el comando forward en la línea 6, en lugar del
número entero 63.
Manejo de otros mensajes de error.
Aprender a programar robots no es fácil, no es diferente que el aprendizaje de una
lengua extranjera. En este documento se explica cómo manejar algunos de los
errores más comunes y los mensajes de error que puede encontrar, pero es
posible que encuentre otros. Dicho esto, he aquí algunas reglas generales para
hacer frente a todos los mensajes de error.
• Determinar si el mensaje es un error, una advertencia, o simplemente
información. El mensaje no puede incluso requerir un trabajo adicional.
• Lea el mensaje de error en busca de pistas. Los mensajes de error no son
siempre lo más intuitivo, pero siempre contienen alguna información sobre lo que
el compilador encuentra.
• Cuando el programa contiene múltiples errores, corregirlos uno a la vez, volver a
compilar el código después de cada revisión. El efecto onda puede hacer que
parezca que hay errores, incluso si el resto de su programa es perfecto.
• Pseudocódigo, Asegúrese de tener un plan en su lugar antes de intentar escribir
un programa complejo. De esa manera usted puede resolver la lógica en primer
lugar, sin tener que preocuparse por ello y la sintaxis, la ortografía y las
mayúsculas al mismo tiempo.
Programación en ROBOTC. Reglas ROBOTC
En esta lección, usted aprenderá las reglas básicas para escribir programas
RobotC.
ROBOTC es un lenguaje de programación basado en texto.
Comandos al robot se escriben primero en forma de texto en la pantalla. Entonces
se procesan por el compilador ROBOTC en un archivo de lenguaje de máquina
que el robot pueda entender. Finalmente, se cargan en el robot, en donde se
puede ejecutar.
Programa Código: Comandos al
robot escrito como el texto.
Texto escrito como parte de un programa que se llama código. Al escribir código
como se escribe texto normal. Tenga en cuenta que la capitalización es importante
para el equipo. Sustitución de una letra minúscula con una letra mayúscula (o una
letra mayúscula con una letra minúscula) hará que el robot se confunda.
Capitalización: Capitalización (prestando
atención a MAYÚSCULAS vs minúsculas)
es importante en ROBOTC.
Si capitalizar la "T" en la tarea, ROBOTC
ya no reconoce este comando.
A medida que escribe, ROBOTC a tratar de ayudar al colorear las palabras que
reconoce. Si una palabra aparece en un color diferente, significa ROBOTC lo
reconoce como una palabra importante en el lenguaje de programación.
Código de colores: RobotC
colorea automáticamente las
palabras clave que reconoce.
Compare esto correctamente
capitalizado "task" de comandos
con la versión incorrecta capitalizado en el ejemplo anterior. El correcto se
reconoce como un comando y se vuelve azul.
Ahora, vamos a ver algunas de las partes importantes del código del programa en
sí.
Las declaraciones son las instrucciones para el robot. El tipo más básico de la
declaración en ROBOTC simplemente le da una orden al robot. El motor [port3] =
127; declaración en el programa de ejemplo que ha descargado es una
declaración simple que da una orden. Se instruye al motor conectado al puerto 3
del motor para encender a plena potencia.
Mención simple: Un comando sencillo para
el robot. Esta instrucción indica el robot para
encender el motor conectado al puerto 3 del
motor a plena potencia.
Mención simple (2): Esto también es una
declaración simple. Le dice al robot que
espere 3000 milisegundos (3 segundos).
Las instrucciones se ejecutan en orden lo más rápidamente que el robot es capaz
de llegar a ellos. La ejecución de este programa en el robot enciende el motor,
entonces espera a 3000 milisegundos (3 segundos) con el motor aún en marcha, y
luego termina.
Secuencia: Las declaraciones se ejecutan
en el orden de lectura (de izquierda a
derecha y de arriba a abajo). Tan pronto
como un comando está completo, el
siguiente se ejecute. Estas dos
declaraciones que el motor se encienda
(primer comando). El robot comienza
inmediatamente una espera de tres
segundos (segunda orden), mientras que
los motores permanecen encendidos.
End: Cuando se ejecuta el programa de
declaraciones y alcanza el símbolo } en la
tarea principal, paran los motores y los
fines del programa.
¿Cómo sabemos que ROBOTC motor [port3] = 127 y wait1msec [3000] fueron dos
comandos separados. ¿Fue porque apareció en dos líneas diferentes? No. Los
espacios y saltos de línea de ROBOTC sólo se utilizan para separar las palabras
entre sí en varios comandos. Los espacios, tabuladores y líneas no afectan a la
forma en que se interpreta un programa por la máquina.
Los espacios en blanco: Los
espacios, tabuladores y saltos
de línea son por lo general poco
importante para ROBOTC y el
robot. A veces se necesita para
separar las palabras de varios
comandos.
¿Así que por qué están en líneas separadas? Para el programador. Los lenguajes
de programación están diseñados para los seres humanos y las máquinas para
comunicarse. Con espacios, tabuladores y líneas ayuda a los programadores
humanos leer el código con más facilidad. Hacer buen uso de espacio en su
programa es un hábito muy bueno para su propio bien.
Sin espacios en blanco: Para
ROBOTC, este programa es el mismo
que el último. Para el programador
humano, sin embargo, esto es cerca de
galimatías. El espacio en blanco se
utiliza para hacer que los programas legibles para los humanos.
Pero ¿qué pasa con ROBOTC? ¿Cómo lo sabía cuando una declaración terminó y
comenzó el otro? Sabía por punto y coma (;) al final de cada línea. Cada sentencia
termina con un punto y coma. Es como el punto al final de una oración.
Punto y coma: Al igual que en
períodos de una frase Inglés, punto
y coma marca el final de cada
declaración ROBOTC.
Control.
Las declaraciones son órdenes para el robot. Cada sentencia termina con un
punto y coma para que ROBOTC pueda identificar. Cada instrucción se escribe
normalmente en su propia línea para hacer más fácil para los seres humanos a
leer.
Instrucciones se ejecutan en el orden de lectura, de izquierda a derecha y de
arriba a abajo. Cada instrucción se ejecuta tan pronto como el anterior es
completada. Cuando no hay declaraciones más, el programa termina.
ROBOTC utiliza puntuación mucho más que Inglés. La puntuación en lenguajes de
programación se utiliza generalmente para separar áreas importantes de código
de la otra. La mayoría de puntuación ROBOTC viene en pares.
Pares de puntuación, como los paréntesis y corchetes en estos dos estados, se
usan para delimitar las zonas especiales de código. Cada par puntuacion consiste
en un signo de puntuacion de apertura y cierre de una marca de puntuacion. La
pareja puntuacion designa la zona comprendida entre los que tienen un significado
especial para el comando que forman parte.
Par Puntuación: Los corchetes []
El código escrito entre los corchetes del
comando del motor indica que el motor del
comando debe utilizar. En este caso, es el
motor en el puerto 3.
Par Puntuación: Los paréntesis ()
El código escrito entre los paréntesis de la
orden wait1Msec decirle cuántos
milisegundos debe esperar antes de
comenzar un nuevo comando. En este
caso, se espera 3000 milisegundos, o tres
segundos.
Vinculados signos de puntuación (como corchetes y paréntesis) se utilizan
siempre juntos. Rodean específicas partes importantes de una declaración para
diferenciarse.
Comandos diferentes hacen uso de diferentes tipos de puntuacion emparejado. El
comando motor utiliza corchetes y el comando wait1Msec usa paréntesis. Esto es
sólo la forma en que los comandos se establezcan. Usted tendrá que acordarse de
usar la puntuación correcta con los comandos de la derecha o del plan.
Declaraciones simples hacen el trabajo en ROBOTC, pero las estructuras de
control de hacen el pensamiento.
Control structures (o sentencias de control) son fragmentos de código que
controlan el flujo de órdenes del programa, en lugar de dar órdenes directas al
robot.
Declaraciones simples sólo se puede ejecutar una tras otra en orden. Sin
embargo, las estructuras de control permiten que el programa para elegir el orden
en que las sentencias se ejecutan. Por ejemplo, una estructura de control puede
indicar al programa que elegir entre dos grupos diferentes de declaraciones y sólo
se ejecuta uno de ellos.
A veces, las estructuras de control repite un grupo de instrucciones una y otra vez.
Una estructura de control importante es task main. Cada programa ROBOTC
incluye una sección especial llamada task main. Esta estructura de control
determina que el código del robot se ejecuta como parte del programa principal.
Estructura de control: task main. La
estructura de control task main dirige el
programa con el cuerpo principal del
código. Al hacer clic en el botón Inicio
en ROBOTC o encender el robot, el
programa pasa inmediatamente a la
tarea principal y se ejecuta el código que encuentra allí. Las llaves izquierda y derecha {}
pertenecen a la estructura de la tarea principal. Rodean los comandos que se ejecutan en
el programa.
Estructura de control: bucle
while. El bucle while repite el
código entre las llaves {},
siempre y cuando se cumplan
ciertas condiciones.
Normalmente, los estados se
ejecuten sólo una vez. Pero con un bucle while, se les puede decir a repetir una y otra vez
durante todo el tiempo que quieras
Control structures, como task main determinan qué líneas de código se ejecute y
especificar cuándo se ejecutan. Ellos controlan el orden en que se ejecutan los
comandos en su programa. Las estructuras de control permiten al robot tomar
decisiones y responder inteligentemente a su entorno.
Los lenguajes de programación están destinados a ser leídos por los seres
humanos y las máquinas. A veces, un programador necesita escribir una nota para
otros lectores humanos para ayudarles a entender lo que hace el código.
ROBOTC permite observaciones que se hicieron para este propósito.
Los comentarios son texto que el programa ignora. Un comentario puede contener
notas, mensajes y símbolos que pueden ayudar a un ser humano, pero no tendría
sentido para el robot. ROBOTC simplemente salta sobre ellos.
Los comentarios aparecen en verde en ROBOTC.
Comentarios: línea / / Single Cualquier
sección de texto que sigue a una / / (dos
caracteres de barra hacia adelante) en una
línea se considera como un comentario.
Cualquier texto a la izquierda de la / / se trata
como código normal.
Comentarios: / * Cualquier longitud * / Un
comentario puede ser creado en ROBOTC
utilizando otro tipo de puntuacion vinculado,
que comienza con / * y termina con * / Este
tipo de comentario puede abarcar varias
líneas, así que asegúrese de incluir tanto la
apertura y cierre de las marcas
Fin de la sección.
Lo que acabamos de ver son algunas de las características principales del
lenguaje ROBOTC. El código se introduce como texto, que se basa declaraciones.
Las declaraciones se utilizan para emitir órdenes a los robots. Las estructuras de
control que decidir sentencias que se ejecutarán en qué momento. Puntuación,
tanto individual como puntos y comas y vinculado como paréntesis, se utiliza para
apartar una parte importante de los comandos.
Una serie de características en el código ROBOTC están diseñados para ayudar a
los humanos, más que el robot.
Comentarios permiten a los programadores dejar notas para sí mismos y los
demás. Los espacios en blanco como tabulaciones y espacios ayuda a mantener
tu código organizado y legible.