Autor: Rodrigo Bermedo
Competencia: Desarrollo de software (nivel 1)
Palabras claves:NXC, NXT, Lego, programacion
Descripcion de la actividad
Esta fue la segunda actividad que se desarrollo en el curso de Programacion de Robots de la carrera de Ingenieria Civil Informatica de la Universidad Catolica de Temuco. En esta actividad nuestro trabajo fue programar el Robot lego NXT para que deambulara a ciegas sobre una superficie delimitada, donde unos bloques de madera representan pilares que el robot debe destruir cada vez que el sensor de tacto fuera activado. El objetivo de esto era recopilar la informacion de cuantos pilares destruyo teniendo en cuenta que el robot solo diponia de 5 "bombas".
Pseudocódigo:
Activar sensor de tacto
Se encienden los motoresciclo infinito
{
Si (el sensor de tacto es activado)
{
reversa durante 1/2 segundo
sonido de la explosión
espera durante 2 segundos
enciende motores
Gira durante un tiempo aleatorio
contador +1
}
Si (contador = 5)
{
se apagan los motores
se detienen todas lass tareas
}
}
Codigo Fuente
int contador = 0;
task main()
{
SetSensorTouch(IN_1); // Activar sensor de tacto
OnFwd (OUT_AC,80); // Se encienden los motores
while (TRUE)
{
If (SENSOR_1==1) // Si el sensor de tacto es
{ // activado
tiempo = Random (2200)+350; // realizar la las ordenes indicadas
OnRev(OUT_AC,70); // reversa durante 1/2 segundo
Wait (500);
PlayTone (10,1000); // sonido de la explosión
Off (OUT_AC);
Wait (2000); // Espera durante 2 segundos
OnFwd (OUT_AC,70); // Enciende motores
OnRev(OUT_C,70); // Gira durante un tiempo
Wait (tiempo); // aleatorio
OnFwd(OUT_AC,70);
contador++;
}
If (contador==5) // Si el sensor de tacto es
{ // activado 5 veces el robot
Off (OUT_AC); // debe detenerse y emitir
PlayTone (2000, 1000); // un sonido de aviso.
}
StopAllTasks();
}
SetSensorTouch(IN_1); // Activar sensor de tacto
OnFwd (OUT_AC,80); // Se encienden los motores
while (TRUE)
{
If (SENSOR_1==1) // Si el sensor de tacto es
{ // activado
tiempo = Random (2200)+350; // realizar la las ordenes indicadas
OnRev(OUT_AC,70); // reversa durante 1/2 segundo
Wait (500);
PlayTone (10,1000); // sonido de la explosión
Off (OUT_AC);
Wait (2000); // Espera durante 2 segundos
OnFwd (OUT_AC,70); // Enciende motores
OnRev(OUT_C,70); // Gira durante un tiempo
Wait (tiempo); // aleatorio
OnFwd(OUT_AC,70);
contador++;
}
If (contador==5) // Si el sensor de tacto es
{ // activado 5 veces el robot
Off (OUT_AC); // debe detenerse y emitir
PlayTone (2000, 1000); // un sonido de aviso.
}
StopAllTasks();
}
}
Video de la Actividad
Conclusion
en esta actividad aprendimos a utilizar el sensor de tacto que viene incluido en el kit lego NXT tambien aprendimos algunos de los comando basicos del lengueje de programacion NXC como fueron las sentencias "While", "if", entre otras.
No hay comentarios:
Publicar un comentario