11/12/2006 22:06
El Bruno
Lego Mindstorm, problemas de diseño
Buenas,
entre tantos días de trabajo forzado, me viene bien volver cada tanto al Lego Mindstorm. He abandonado un poco a Robotics, después de renegar bastante para lograr que se entienda con el Lego, pero he trabajado mucho con los componentes de Nxt# - Midstorm for .Net que realmente ofrecen una interfaz muy amigable para interactuar con el Lego.
En esta nueva versión (Release 0.3) han solucionado un par de problemas de comunicación, ademas de incorporar nuevas interfaces para la brújula de Hitechnic y unos ejemplos muy buenos. Para mostrar como podemos dar nuestros primeros pasos con este juguete; si una imagen vale mas que mil palabras; un videito es algo así como una pila de imágenes al cuadrado.
Es por eso, que comenzaremos con algo simple como es conectarse al Lego y trabajar con uno de los motores del mismo (les recuerdo que tiene 3), para esto creamos un proyecto con 3 botones y dentro del mismo, agregamos el siguiente código:
1 Public Class Form1
2
3 Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
4 ' desconetamos la aplicacion del Lego
5 NxtBrick1.Disconnect()
6 End Sub
7
8 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
9 ' conectamos con el Lego
10 NxtBrick1.Connect()
11 End Sub
12
13 Private Sub btnAvanzar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAvanzar.Click
14 ' avance indefinido
15 NxtMotor1.Turn(75, 0)
16 End Sub
17
18 Private Sub btnRetroceder_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRetroceder.Click
19 ' retroceso indefinido
20 NxtMotor1.Turn(-75, 0)
21 End Sub
22
23 Private Sub btnFrenar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFrenar.Click
24 ' detenemos el motor
25 NxtMotor1.Coast()
26 End Sub
27
28 Private Sub NxtBrick1_Connected(ByVal sender As Object, ByVal e As System.EventArgs) Handles NxtBrick1.Connected
29 MsgBox("Conectado")
30 End Sub
31
32 Private Sub NxtBrick1_Disconnected(ByVal sender As Object, ByVal e As System.EventArgs) Handles NxtBrick1.Disconnected
33 'MsgBox("Desconectado")
34 End Sub
35
36 End Class
37
El funcionamiento es bastante simple, en los eventos Load() y FormClose() trabajamos con el componente NxtBrick que es el que nos permite conectarnos e interactuar con el Lego. Luego en cada uno de los botones, trabajamos con un NxtMotor que en este caso trabaja sobre la rueda derecha del Lego. Pero como dije antes, un video son mil palabras al cuadrado:
Si no pueden ver el video, click aquí.
Y para la próxima ... más !!!!
Saludos
El Bruno
Archivado en: Visual Studio,Lego Mindstorms / Microsoft Robotics
Comparte este post: