Programación Robot Mindstorm NXT (Lanzador-Bateador) Parte 2

Este proyecto ha sido realizado por Juan José Hernández Muñoz y José Abelardo Blas Bolaños.
En esta segunda parte del trabajo os vamos a enseñar como se ha codificado el robot NXT y como por motivos de comodidad y funcionalidad lo hemos anclado a unas tablas para evitar su movimiento involuntario.
El código:
// LANZADOR – BATEADOR
/*Proyecto creado por Juan Jose Hernandez Munioz y Jose Abelardo Blas Bolanios
Fecha finalizacion: 27/02/2014
*/
#pragma config(Sensor, S4, Sonar, sensorSONAR)
/* Codigo generado automaticamente por ‘ROBOTC’ configuration wizard */
// Programa principal
task main()
{
//Funcionan siempre los motores del lanzador
motor[motorB]=-50;
motor[motorC]=-50;
while (true)
{
if (SensorValue(S4)<=40)
{
motor[motorA]=100; // El if es una condicion para detectar la distancia
wait1Msec(250); // y cuando sea menor o igual a 40 cm entra en el if y
PlaySound (soundLowBuzzShort); // mueve el motor A para batear la bola, emite un sonido y
motor[motorA]=-30; // despues devuelve el brazo a su posicion de espera.
wait1Msec(750);
motor[motorA]=0;
}
else
{
motor[motorA]=0; // Mientras el sensor no detecte nada se queda parado el motor A
}
}
}
 
Este código está en un  lenguaje de programación parecido a «C» pero con las variables y palabras reservadas del robot de LEGO.
Ha sido más difícil de lo que parece debido a que hay que escribir exactamente la palabra que necesitamos para las variables y definir los tiempos exactos y la variable de Ultrasonido para que utilice la posición concreta de límite para que al pasar esa «barrera» funcione nuestro bateador.
Aquí adjunto unas fotografías del proyecto ya terminado.
DSC_0014 DSC_0015
 
Aquí tenemos un vídeo de su funcionamiento.