Programación de legos mindstorm nxt.
Descripción del Lenguaje a Utilizar.
Actualmente se pueden usar diversos tipos de lenguajes de programación orientada a objetos para la programación de los legos mindstorm.
Para el desarrollo de este trabajo se selecciono el lenguaje de programación C#, la cual es un herramienta de propósito general orientado a objetos.
Seutilizo la librería BramNxtSharp la cual contiene dos dll los que son Bram.NxtSharp y Bram.Utilities los cuales nos permiten comunicarnos con el nxt.
Configuración Inicial del Bluetooth.
Existen varios tipos de comunicación bluetooth: Pc a NXT, teléfono celular a NXT, Nxt a Nxt, PDA a Nxt. Para éste trabajo se implementando el tipo de comunicación Pc a NXT.
Paso 1:
Paso 2:Paso 3:
Paso 4:
Paso 5:
Paso 6:
Paso 7:
La contraseña usada para este ejemplo es nxt1
Paso 8:
En este paso se escribe en el nxt la contraseña rápidamente para que sea encontrada y establezca la conexión.
Paso 9:
Paso 10:
Paso 11:
PROGRAMACIÓN DE MOTORES
En el siguiente programa se muestra como se crean los motores, cuales sonlos parámetros que debe contener la aplicación para una comunicación efectiva, como también los métodos para realizar movimientos en línea recta y giros. El tiempo de espera por parte del sistema es fundamental para realizar efectivamente cualquier movimiento.
using System;
using System.Collections.Generic;
using System.Text;
using Bram.NxtSharp;
using Bram.Utilities;
namespace Motores{
class Motores
{
NxtBrick ladrillo = new NxtBrick();
NxtMotor MotorA = new NxtMotor();
NxtMotor MotorB = new NxtMotor();
public void Iniciar()
{
ladrillo.COMPortName = "COM3";
MotorA.Brick = ladrillo;
MotorA.Port = NxtMotorPort.PortA;
ladrillo.MotorA = MotorA;MotorB.Brick = ladrillo;
MotorB.Port = NxtMotorPort.PortB;
ladrillo.MotorB = MotorB;
ladrillo.AutoPoll = true;
ladrillo.Connect();
ladrillo.StartPolling();
avanzar(80, 3600);
System.Threading.Thread.Sleep(2000);
Giro(40, 700);
System.Threading.Thread.Sleep(2000);avanzar(80, 3600);
}
private void avanzar(int velocidad, int grados)
{
MotorA.Turn(velocidad, grados);
MotorB.Turn(velocidad, grados);
}
private void Giro(int velocidad, int grados)
{
MotorA.Turn(velocidad, grados);
MotorB.Turn(velocidad*-1, grados);
}
}
}PROGRAMACIÓN DE SENSORES
En la programación de sensores, el tiempo de espera por parte del sistema es fundamental para el óptimo desempeño de los sensores, de lo contrario puede afectar el resultado notablemente.
Es importante tomar en cuenta el nivel de baterías, puesto que esto también puede afectar su desempeño.
PROGRAMACIÓN DE SENSOR DE TACTO
Programa Ejemplo:En la siguiente aplicación se muestra la creación y el uso de los sensores de tacto.
Al ejecutar el programa los motores inician el recorrido de avance, al ser el sensor de tacto, este debe realizar un movimiento de retroceso y giro para nuevamente avanzar. Esto varia de acuerdo a la posición en que se encuentren los sensores, el frontal retrocede y gira, el de la parte trasera avanza ygira para nuevamente iniciar el recorrido.
using System;
using System.Collections.Generic;
using System.Text;
using Bram.NxtSharp;
using Bram.Utilities;
namespace S_Tacto
{
class S_Tacto
{
/* Se crean objetos de la clase NxtBrick*/
NxtBrick brick = new NxtBrick();
NxtMotor MotorA = new NxtMotor();
NxtMotor MotorB = new NxtMotor();...
Regístrate para leer el documento completo.