Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?
03/05/2012 #1


Problema con codigo en VB
Hola buenas, os comento. Tengo una placa electrónica para mover un brazo robotico(http://www.roboticapy.com/imagenes/figure5.gif), el problema viene que e creado el programa y cuando pulso la tecla A o la Z solo me mueve el servo de la salida RB0,pero si pulso las teclas asociadas a cada salida no funciona RB1(S-X), RB2(D-C), RB3(F-V), RB4(G-B). Os dejo el código fuente y haber si me podéis hechar una mano en donde fallo. Muchas Gracias.

04/05/2012 #2


40 visitas y 0 respuestas y nadie puede ayudarme.
04/05/2012 #3


Un problema que veo en tu código por ejemplo en el Command1_KeyPress es que tienes un End Sub después de la comparación de la letra Z, ese End Sub debería ir en vez del End Function que tienes mas abajo. Raro que no te haya dado el error al ejecutarlo.

El otro punto que no se si es porque así lo quieres, la tecla d y la c te van a funcionar solo si has presionado el botón de desconectar (Command3) y al haber hecho la desconexión ya no vas a poder mandar nada al puerto, te recomendaría pasar todas las comparaciones de letras que tienes en los CommandX_KeyPress más bien a Form_KeyPress para que funcionen en la forma cuando tenga el Foco y no si has presionado un botón en especial y en esta parte de la forma revises si está conectado el puerto antes de tratar de mandar algo a él.

Con esto asumo que te debería funcionar siempre y cuando los string que mandas al puerto serial sean los correctos y te los reconozca el Pic.

Espero haberte ayudado.
04/05/2012 #4
Moderador

Avatar de D@rkbytes

Umbrella7 dijo: Ver Mensaje
Hola buenas, os comento. Tengo una placa electrónica para mover un brazo robotico(http://www.roboticapy.com/imagenes/figure5.gif), el problema viene que e creado el programa y cuando pulso la tecla A o la Z solo me mueve el servo de la salida RB0,pero si pulso las teclas asociadas a cada salida no funciona RB1(S-X), RB2(D-C), RB3(F-V), RB4(G-B). Os dejo el código fuente y haber si me podéis hechar una mano en donde fallo. Muchas Gracias.
Saludos.
Revisa las modificaciones que realize a tu código.
Que por cierto fueron varias.

Espero que con eso te funcione lo que deseas realizar,
ya que como no adjuntaste el código del receptor, no lo pude probar.

PD. No es necesario que dentro del proyecto, adjuntes la DLL ni el OCX.
Ya que las personas que te puedan ayudar con VB6, los deben de tener.

Suerte y hasta luego.
Archivos Adjuntos
Tipo de Archivo: zip código.zip (84,6 KB (Kilobytes), 11 visitas)
05/05/2012 #5


Darkbytes con tu código puedo mover cualquier servo de las salidas del pic (RB0, RB1, RB2, RB3, RB4), es decir controlar el brazo robotico con el teclado como si fuese un joystic?


PD: Igualmente te dejo una tabla de las teclas y lo que hará cada una.

Ademas por cierto veo un error en el codigo que me dejastes amigo.

Private Sub Command1_Click()
Dim Puerto$
Puerto = Text1.Text
If Not IsNumeric(Puerto) Then
MsgBox "El puerto " & Puerto & " No es un puerto válido."
Text1.Text = 1
Exit Sub
End If

MSComm1.CommPort = Puerto 'configura el com con el numero que está en el textbox1
On Error GoTo COMM_Error
MSComm1.PortOpen = True 'abre el com
Command1.Enabled = False <--------Aquí se cierra el puerto
Command3.Enabled = True
Conectado = True
Me.SetFocus

COMM_Error:
If Err.Number <> 0 Then
Conectado = False
MsgBox Err.Description, vbCritical, "Error No. " & Err.Number
Command1.Enabled = True
Command3.Enabled = False
Err.Clear
Exit Sub
End If
End Sub
Imágenes Adjuntas
Tipo de Archivo: png tabla.png (9,2 KB (Kilobytes), 8 visitas)
05/05/2012 #6
Moderador

Avatar de D@rkbytes

Umbrella7 dijo: Ver Mensaje
Darkbytes con tu código puedo mover cualquier servo de las salidas del pic (RB0, RB1, RB2, RB3, RB4), es decir controlar el brazo robotico con el teclado como si fuese un joystic?


PD: Igualmente te dejo una tabla de las teclas y lo que hará cada una.

Ademas por cierto veo un error en el codigo que me dejastes amigo.
Saludos.
Antes que nada quiero aclarar que no es mi código, es el que tu adjuntaste.
Yo solamente le hice unas modificaciones.

Donde mencionas que se cierra el puerto, no lo cierra, ni es un error, al contrario, lo evita.
Lo que se hace al deshabilitar el Command1, es que se evite que se pueda volver a presionar,
cuando el puerto este abierto, pero no cierra la comunicación con el puerto.
No es lo mismo el evento Click que la propiedad Enabled
Para cerrar la comunicación con el puerto se hace con MSComm1.PortOpen = False

Y si, si se pueden controlar los puertos de un PIC con un programa de VB6,
o un PIC puede controlar un programa de VB6.

;************************************************* ***************
Me puse a buscar información acerca de como controlar un joystick con VB6
y si hay manera, utilizando funciones especificas con las API de Windows.
Pero así como lo estas haciendo con el teclado también se puede.

Si requieres más información acerca de una interfaz en VB6, mira este enlace.
[Aporte] Interfaz RS232 PIC PC (Proyecto Completo VB6)
Tiene varios ejemplos usando el puerto serial de la PC.

Suerte y hasta luego.
07/05/2012 #7


Darkbytes es cierto respecto al código esta bien lo que me habías puesto, no me había dado cuenta mucho de las funciones. Perdóname...

Y sobre el código que me has modificado, muchas gracias. Me ha servido.

*Lo que como podría controlar el brazo con un joystick usando las API de windows, estaría interesado. Es que estuve mirando y no encontré nada al respecto y sobre todo ejemplos de control de un joystick en un brazo.
07/05/2012 #8
Moderador

Avatar de D@rkbytes

Umbrella7 dijo: Ver Mensaje
Darkbytes es cierto respecto al código esta bien lo que me habías puesto, no me había dado cuenta mucho de las funciones. Perdóname...
No te preocupes, también fue mi error por no comentar el código.
Es que me supuse que conocías sobre las propiedades y eventos de los controles.

Umbrella7 dijo: Ver Mensaje
Y sobre el código que me has modificado, muchas gracias. Me ha servido.
Me parece muy bien que te haya servido.

Umbrella7 dijo: Ver Mensaje
*Lo que como podría controlar el brazo con un joystick usando las API de windows, estaría interesado. Es que estuve mirando y no encontré nada al respecto y sobre todo ejemplos de control de un joystick en un brazo.
OK. Pues mira, estos archivos que te adjunto, los tenía en un CD de respaldo.
Alguna vez los baje de sabe donde y ya no recuerdo bien porque.
Solo sé que fue hace muuuucho tiempo y nunca los llegue a usar.
Me parece que fue cuando empezaba con VB6 y tenia un joystick de 4 botones.
Espero que te puedan servir, y haber que utilidad les puedes dar en tu proyecto.

Saludos.
Archivos Adjuntos
Tipo de Archivo: rar VB6 Joystick Keyboard & Mouse.rar (8,2 KB (Kilobytes), 7 visitas)
Tipo de Archivo: rar VB6 Joystick Position.rar (3,5 KB (Kilobytes), 6 visitas)
07/05/2012 #9


Darkbytes si que se las funciones y eventos, el problema que lo mire tan deprisa que no me di cuenta.

Respecto a los ejemplos muchas gracias pero e estado mirándolo, pero me es difícil ajustar mi código dentro de esos ejemplos por el poco tiempo que tengo...
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.