Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Dirigido a:
Grupo de investigación
Abril 2011
Definición de Robot
• Palabra Checa Robota: Trabajos forzados
• Robótica: Ciencia de los robots
• Áreas de la robótica: Mecánica, electrónica,
informática, inteligencia artificial, ingeniería
de control, autómatas programables.
Botón de confirmación
USB
OPCIONES
¾My Files
NXT Files
Sound Files
Software Files
¾NXT Program
¾View
¾Bluetooth
¾Settings
¾Try Me
CONEXIÓN CON EL
COMPUTADOR
MINDSTORMS NXT Driver v1.01 CD
MINDSTORMS NXT Driver v1.02 Ejecutable
ENTORNO DE
PROGRAMACIÓN
BRICX COMMAND CENTER
Firmware
Entorno de desarrollo Opciones de
manejo del ladrillo
Menú principal
Opciones de
manejo de archivos Editor de código
Controles del NXT
Detener ejecución
Envío del programa
Compilación del código
Ejecución del programa
BrickPiano
Enviar mensajes Conectar
Control Analizando Desconectar
Control remoto
directo el ladrillo
Apagar
Diagnóstico BrickJostick Analizador el ladrillo
configurable
Mapa de
memoria
Controles del NXT
Direct Control Diagnostics
Controles del NXT (Watching the brick)
Common NXT
Controles del NXT
Brick Piano Brick Jostick Remote
Controles del NXT
Configurable Watch Messages
Controles del NXT
Map Memory
Selección del lenguaje de programación
Edit -> Preferences.. ->Compiler
EL LENGUAJE
NXC
NOT EXACTLY C
Aspectos básicos del lenguaje
• Basado en la sintaxis del lenguaje C
• Lenguaje estructurado y concurrente
• Tarea (task) como rutina principal
• Limitación de números enteros con signo
• El programa termina cuando no hay mas
lineas de código para ejecutar
• Referencia a las Entradas: IN_1, IN_2, IN_3, IN_4
• Referencia a las Salidas: OUT_A, OUT_B, OUT_C
OUT_AB, OUT_AC, OUT_BC, OUT_ABC
Salidas
Control de Motores
• Funciones básicas:
– Rotar, Rotar en reversa, Detener, Liberar
Instrucción:
OnFwd(<Salidas>, <Velocidad>);
OnRev(<Salidas>, <Velocidad>);
Off(<Salidas>);
Float(<Salidas>);
Velocidad = 0 - 100
Ej: OnRev(OUT_AC, 100);
Entradas
Inicialización de Sensores
• Inicialización
Instrucciónes:
SetSensorTouch(<Entrada>);
SetSensorLight(< Entrada >);
SetSensorSound(< Entrada >);
SetSensorTemperature(< Entrada >);
* SetSensorLowspeed(< Entrada >);
Ej: SetSensorLight(IN_2);
Entradas
Lectura de Sensores
Referencia:
SENSOR_<N>
Ej: SENSOR_3
Instrucción:
Sensor(<Entrada>)
Ej: Sensor( IN_4)
Instrucción. Caso del sensor Ultrasónico:
SensorUS(<Entrada>)
Declaración de variables
• Variables finales?
#define <indentificador>
• Tipos de variables
bool 8 bit unsigned
byte, unsigned char 8 bit unsigned
char 8 bit signed
unsigned int 16 bit unsigned
short, int 16 bit signed
unsigned long 32 bit unsigned
long 32 bit signed
string Array of byte
struct User-defined structure types
Arrays Arrays of any type
Declaración de variables
• Sintaxis
<tipo> <identificador>;
Ejemplo:
»int aaa = 50;
»int bbb,ccc;
»int values[];
Estructuras de control
• Condicional if
if (<Condición>) { <Sentencias> }
if (<Condición>) { <Sentencias> } else { <Sentencias> }
Operadores para las condiciones
• = = igual que
• < menor que
• <= menor o igual que
• > mayor que
• >= mayor o igual que
• != distinto de
Estructuras de control
• Repetitiva while
while (<Condición>) { <Sentencias> }
• Repetitiva do – while
do { <Sentencias> } while (<Condición>) ;
• Espera
until (<condición>);
Ejemplo de un robot sigue linea
con 2 sensores
#define UMBRAL 55
task main()
{
SetSensorLight(IN_1); //colocamos un sensor de luz en el puerto 1 y 2
SetSensorLight(IN_2);
while (true)
{
OnFwd(OUT_AC,80); // Tenemos 2 motores conectados en A y C
until(SENSOR_1 <= UMBRAL || SENSOR_2 <= UMBRAL);
if(SENSOR_1 <= UMBRAL)
{
Float(OUT_A);
until(SENSOR_1 > UMBRAL);
}
else if(SENSOR_2 <= UMBRAL)
{
Float(OUT_C);
until(SENSOR_2 > UMBRAL);
}
}
}
¿PREGUNTAS?
DENNIS MARTINEZ CROVO
dennis.m.c@hotmail.com
GRACIAS !