Вы находитесь на странице: 1из 7
ALGORITMO DE ENLACE VISUAL BASIC 6.0 CON MATLAB Ingeniero Electrónico: Monteza Zevallos Fidel Tomas
ALGORITMO DE ENLACE VISUAL BASIC 6.0 CON MATLAB Ingeniero Electrónico: Monteza Zevallos Fidel Tomas

ALGORITMO DE ENLACE VISUAL BASIC 6.0 CON MATLAB

Ingeniero Electrónico: Monteza Zevallos Fidel Tomas

Las siguientes líneas corresponden a la programación en VISUAL BASIC 6.0 de una interface que se comunica directamente con MATLAB. Realiza

la apertura de MATLAB y luego controla en forma AUTOMATICA o en forma MANUAL el manejo de una superficie tri dimensional, tan solo debe

copiar y pegar todas las líneas de programación en el respectivo formulario de Visual, además debe tener cuidado en dar los valores correspondientes de cada herramienta en la Ventana de Propiedades. Por ejemple deberá cambiar los nombres de cada Command de acuerdo las líneas programadas, el intervalo del Timer1 será 50 y el intervalo del Timer2 será 250. Para esto se anexan las respectivas figuras demostrando su aplicación paso a paso.

Como mencione antes, la potencialidad de esta aplicación está en el proceso digital de imágenes, bastaría con instalar sensores en cada articulación de un usuario llevarlas a Visual y luego estas ser llevadas a MATLAB para que por medio de la Cinemática Inversa poder graficarlos. El tiempo que se pueda dedicar a este proyecto es muy importante, tengo la idea de cómo hacerlo y espero que sirva para ayudar a otros investigadores.

Posteriormente estaré publicando líneas de programación en MATLAB de diversas aplicaciones como Sistema Gravitacional, Interacción de partículas, Cinemática Directa y Cinemática Inversa para robótica, Comunicación RS232 con microcontroladores, etc.

En la siguiente publicación estaré comentando acerca de la comunicación RS232 en Visual Basic 6.0 con un microcontrolador para controlar un sistema de conteo en display siete segmentos de cuatro dígitos, estar atentos.

'PROGRAMA DE INTERFACE ENTRE VISUAL BASIC Y MATLAB PARA EL CONTROL DE UNA SUPERFICIE EN 3D DENOMINADA "VOLCAN"

'Option Explicit Dim ml As Object Dim f As Integer Dim R1 As Integer Dim xx As Boolean 'Dim c1 As Integer

'SE DESHABILITA ESTA LINEA PARA OBSERVAR EL MENSAJE EN LA ESQUINA IZQUIERDA DEL FORMULARIO

Private Sub Form_Load() Form1.WindowState = 0

Form1.Caption = " ENLACE DE MATLAB CON VISUAL BASIC - GRAFICO DEL VOLCAN " Set ml = CreateObject("matlab.application") ml.execute "[x,y]=meshgrid(-8:0.5:8)"

xx = True

End Sub

'xx empieza en la condicion boolena de True

Private Sub Cmdautomatico_Click() f = hsbF.Value ml.execute "[x,y]=meshgrid(-8:0.5:8)" ml.execute "r=sqrt(x.^2+y.^2)+eps" ml.execute "z=sin(2*pi*" & f & "*r*0.01)./(2*pi*" & f & "*r*0.01)"

ml.execute "surf(x,y,z)" ml.execute "axis on" Timer1.Enabled = True hsbF.Enabled = False Cmddetener.Enabled = True End Sub

Private Sub Cmdmanual_Click() Timer1.Enabled = False hsbF.Enabled = True Cmddetener.Enabled = False End Sub

Private Sub Cmddetener_Click() Timer1.Enabled = False hsbF.Enabled = False End Sub

'Presentar los ejes en cada plano

Private Sub hsbF_Change()

f = hsbF.Value

Text1.Text = f ml.execute "[x,y]=meshgrid(-8:0.5:8)" ml.execute "r=sqrt(x.^2+y.^2)+eps" ml.execute "z=sin(2*pi*" & f & "*r*0.01)./(2*pi*" & f & "*r*0.01)" ml.execute "surf(x,y,z)" End Sub

Private Sub hsbF_Scroll()

hsbF_Change

End Sub

Private Sub Timer2_Timer() c1 = Left(Form1.Caption, 1) Form1.Caption = Mid(Form1.Caption, 2) & c1 End Sub

Private Sub Timer1_Timer()

If xx = True Then

f = f + 1

Text1.Text = f

' Como xx empezo en True en la linea del Form_Load se considera la ejecucion de las siguientes lineas

' f inicia un conteo en pasos de uno

ml.execute "[x,y]=meshgrid(-8:0.5:8)" ml.execute "r=sqrt(x.^2+y.^2)+eps" ml.execute "z=sin(2*pi*" & f & "*r*0.01)./(2*pi*" & f & "*r*0.01)" ' f es variable en la ecuacion del grafico ml.execute "surf(x,y,z)"

If f = 100 Then xx = False Else f = f - 1 Text1.Text = f If f = 1 Then xx = True

ml.execute "[x,y]=meshgrid(-8:0.5:8)" ml.execute "r=sqrt(x.^2+y.^2)+eps" ml.execute "z=sin(2*pi*" & f & "*r*0.01)./(2*pi*" & f & "*r*0.01)" ml.execute "surf(x,y,z)" End If End Sub

Private Sub Cmdsalir_Click() R1 = MsgBox("¿Desea salir del Programa?", 4 + 32, " V.J.M.J. ") If R1 = 6 Then End End Sub

En las siguientes figuras se observara paso a paso el desarrollo del proceso de simulación del enlace en tiempo real

del proceso de simulación del enlace en tiempo real Se puede apreciar en el fondo la

Se puede apreciar en el fondo la ventana de Proyecto1 Form1(Codigo) y en primer plano la ventana Proyecto1 Form1(Form), estos serán todas las herramientas a ser utilizadas

Se aprecia el momento en que comienza la simulacion del proceso, aparece un pequeño mensaje

Se aprecia el momento en que comienza la simulacion del proceso, aparece un pequeño mensaje en la parte superior de la ventana de interface

mensaje en la parte superior de la ventana de interface Aquí se muestra que MATLAB ha

Aquí se muestra que MATLAB ha sido aperturado para comenzar el control AUTOMATICO o MANUAL

Se inicia el control AUTOMATICO la superficie en tres dimensiones. Continuacion del proceso de control

Se inicia el control AUTOMATICO la superficie en tres dimensiones.

Se inicia el control AUTOMATICO la superficie en tres dimensiones. Continuacion del proceso de control AUTOMATICO

Continuacion del proceso de control AUTOMATICO

Continuacion del proceso de control AUTOMATICO. Observe los diferentes valores decimales que toma la ventana

Continuacion del proceso de control AUTOMATICO. Observe los diferentes valores decimales que toma la ventana adjunta

los diferentes valores decimales que toma la ventana adjunta Continuacion inversa del proceso de control AUTOMATICO

Continuacion inversa del proceso de control AUTOMATICO

Espero que esta aplicación sea de mucha utilidad y de seguro debera tener mejoras, las que posteriormente estare publicando. Gracias

Ingeniero Electronico Monteza Zevallos Fidel Tomas V.J.M.J.