Mostrando entradas con la etiqueta VB6. Mostrar todas las entradas
Mostrando entradas con la etiqueta VB6. Mostrar todas las entradas

jueves, 18 de julio de 2013

Comunicación Serial, transmitiendo datos PIC a Visual Basic 6

Muy Buenas a todos y todas!!!

Después de actualizar a la versión 1.1 del programa CDLA, ahora le toca el turno al programa en Visual Basic 6 para controlar las locomotoras desde el PC.

Este programa ya transmitía datos desde el PC al PIC, ahora lo que quiero que haga es que lea el control manual y muestre en la pantalla del ordenador los datos que envía el microcontrolador.

Para esto he utilizado el objeto MSCOMM1 que ya trae Visual Basic 6 con la instrucción "MScomm1.input".

Intentare explicarlo un poco y espero que sea comprensible:

Enviando datos desde PIC a VB6

Los datos que se mandan desde el microcontrolador PIC son transmitidos a una velocidad de 9600 bauds y cada variable va separada por ",":


include "modedefs.bas"   'Activa el modo de comunicación

Masterout var portc.6

Serout portb.1, N9600, [#variable1,#variable2,#variable3,"AK"]

* La variable 1 es una variable tipo BYTE que va desde 0 a 255
* La variable 2 es una variable tipo BYTE que va desde 1 a 8
* La variable 3 es una variable tipo BIT que va desde 0 a 1

Con serialComunicator de Mecanique nos mostrará en pantalla los datos en el siguiente formato:

010AK 010AK 010AK.... (Variable1 = 0, Variable2 =1, Variable3 =0, AK)

12831AK 12831AK 12831AK... (Variable1 = 128, Variable2 =,3 Variable3 =1, AK)

Esta es la trama de datos que se envían desde el microcontrolador PIC y que tendremos que decodificar en VB6.


Obtención de datos en VB6

Ahora, ¿como extraemos de esa maraña de caracteres los datos que nos interesan?

Para obtener los datos tenemos la función .Input de MScomm. con el adquirimos los datos del cual luego iremos desgranando dato por dato.

La rutina que vamos a utilizar esta dentro de un timer como podemos ver en el siguiente ejemplo:


Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim dataIn, tdataIn, Vel, total As String
Dim C, T, N, X As Integer   'cantidad, tipo, numero, valor

Private Sub Command1_Click()
  Timer1.Enabled = True
  MSComm1.PortOpen = True
  Command1.Enabled = False
  Command2.Enabled = True
End Sub

Private Sub Command2_Click()
  Command1.Enabled = True
  Command2.Enabled = False
  Timer1.Enabled = False
  MSComm1.PortOpen = False
End Sub

Private Sub Form_Load()
  Timer1.Enabled = False
  Command1.Enabled = True
  Command2.Enabled = False
End Sub

Private Sub Timer1_Timer()

  dataIn = MSComm1.Input
  If dataIn <> "" Then ' Si no es un texto vacio entonces...
    tdataIn = Len(dataIn)
    
    If tdataIn = 7 And Right(dataIn, 2) = "AK" Then
      Text2.Text = (Right(dataIn, 2))
      Text1.Text = dataIn
    
      Vel = Mid$(dataIn, 1, 3)
      total = ""
      For X = 1 To Len(Vel)
        If InStr("0123456789", Mid$(Vel, X, 1)) Then
          total = total & Mid(Vel, X, 1)
          N = total
        End If
      Next X
    
      dataIn = (Right(dataIn, 4))
      C = Left(dataIn, 1)
    
      dataIn = Right(dataIn, 3)
      T = Left(dataIn, 1)
    
      Text3.Text = C
      Text4.Text = T
      Text5.Text = N
    End If
  End If
End Sub

  • Text1: Lectura de toda la trama de datos enviados por el PIC.
  • Text2: Lectura de los caracteres de confirmación (AK).
  • Text3: Lectura de la Variable2
  • Text4: Lectura de la Variable3
  • Text5: Lectura de la Variable1


El tema de como sacar el los números de una cadena, viene muy bien explicado y con varios ejemplos en este magnifico foro de Visual Basic.


Espero que les sea de ayuda para entender como comunicar un microcontrolador PIC 16F628 o 16F876A con un sistema Visual Basic 6

Saludos a todos y todas!!!

miércoles, 21 de marzo de 2012

Control de tren en Visual Basic

Bien ya tengo terminado mi primer boceto del programa para el control de trenes de mi maqueta con Visual Basic y Pic Basic Pro.

primero hice el programa que voy a utilizar para mi maqueta particular, pero primero para no agobiarme he decidido hacer pequeños programas para luego solo tener que montarlos en el principal.

Bien este es el control para una sola locomotora:


Control de locomotoras Visual Basic

Es bastante básico, pero tiene todas las funciones marcha, paro e inversión de la dirección.

La velocidad cuenta con 255 pasos (desde 0 has 254)

Puerto COM hasta desde 300 hasta 9600 Baudios

Botones de Avance, Retroceso y Stop

Y bueno todo esto lo podéis aplicar directamente y os puede servir de ejemplo para algo más elaborado, ya que en el archivo también se incluye el código fuente lopodéis encontrar en la sección de Descargas O bájate directamente elarchivo control del trenes en visual basic

Espero que os guste este pequeño aporte al mundo del modelismo ferroviario.

Y proximamente intentare hacer el programa en PBP para el 16F876A o 16F628A


By PeYuTrOn

lunes, 20 de febrero de 2012

Maqueta tren a escala control con VB6

Buenas a todos y todas!!!

Esta es la interfaz que estoy diseñando para el control de la maqueta mediante el ordenador con Visual Basic 6.

Por el momento no publico el código porque solo esta empezado y falta bastantes partes que no están terminadas.

Con el teclado se controlan los desvíos, numerados desde el 1 al 7 y "/" y "\" para los cruces de vías.



Los controles son 3 uno para el circuito exterior, otro para el interior y el tercero para realizar maniobras.

Y bueno esto sera a grandes rasgos la pantalla de control.

Espero hacerle también una especie de base de datos de los sensores para poder hacer paradas programadas y saber en que parte de la maqueta se encuentran los trenes.



Después de un tiempo y algunos problemas con el PC he conseguido comunicar el micro 16f876A con el programa que he estado realizando para la maqueta.

Como se puede ver en la imagen los cambios no son muchos, pero suficientes para que quedara todo mucho más claro.

Las lineas representan la posición de los desvíos. Azul para abierto y Negro para la posición de cerrado.

A día de hoy funciona perfectamente la velocidad y espero tener pronto los botones para las direcciones y los botones de Stop.

Los botones de Stop pararan la maqueta en su totalidad sea cual sea el botón que se pulse.

También tengo que resolver como mandar los datos de una manera más ordenada.

He visto algo pero no he tenido mucho tiempo. Otra función que me tengo pendiente es para hacer itinerarios y paradas programadas.

Aquí esta para descargar lo ultimo que hice de este programa: Visual Maqueta VB6

Próximamente más avances!!

Un saludo!!!

jueves, 8 de diciembre de 2011

BrutusShutdown 1.2

Ya esta disponible la nueva versión para BrutusShutdown. BrutusShutdown 1.2 añade las opciones de reiniciar y suspender.

La opción "Suspender" es muy útil sobre todo en portátiles.


Descargar BrutusShutdown 1.2

By PeYuTrOn

sábado, 2 de julio de 2011

Coche RC VB6

Muy buenas a todos y todas!!!

Aprovechando software que ya tenia por ahí y haciendo unas pocas modificaciones, a salido este programa para controlar un coche RC vía puerto COM con Visual Basic 6. Algo que, sin duda, junta lo mejor de ambos mundos, programación y RC.

Me ha llevado un par de días ya que aun sigo aprendiendo pero ya esta terminado y funcionando 100%.


Coche RC Visual Basic 6

Fácil de configurar también utiliza el DTR - RTS por si necesitamos alimentar algo con los 5V que salen del puerto COM teniendo cuidado de no meter mucha carga como ya explique en otro post llamado Activar DTR RTS Visual Basic


En la configuración se puede cambiar el puerto de comunicaciones COM que queramos y cambiar el modo de transmisión.

La configuración del joystick es también sencilla, podemos buscar el joystick y definir la velocidad del mismo.

Es un programa sencillo y fácil de entender para quien quiera aprender un poco de programación y electrónica.



Otros artículos sobre Visual Basic 6.0 que te pueden interesar:

Saludos a todos!!!

sábado, 5 de marzo de 2011

Veotutoriales

Después de darme cuenta de que muchos amigos consultan tutoriales online, normalmente de Youtube, me he decidido a crear veotutoriales.blogspot.com.

Principalmente estoy subiendo videos relacionados con programas informáticos y electrónica, pero ahora mismo estoy empezando y no descarto ampliar los temas, así que estoy abierto a sugerencias.

Los más completos son:

By PeYuTrOn