Manejar el puerto USB con Visual Basic?

Servius

Lanero Regular
16 Ene 2005
15
Hola, Estoy interesado en saber como controlar el puerto USB desde Visaul Basic. Estoy trabajando con el microcontrolador PIC16C765 de la Microchip como periferico. Pero no logro controlarlo desde Visaul Basic. Si alguien me pudiera ayudar se lo agradeceria mucho.

Ate. Servius
Venezuela
 
Manejar puerto USB con VB

Hola, he entrado en este foro buscando lo mismo, he oido que hay un ActiveX que permite dicha comunicación pero no he logrado conseguirlo aún. A ver si alguien nos ayuda.
 
Hola LANeros Novatos...
La verdad controlar el puerto USB desde VB no es muy facil, pero si existe una forma, aunque muy cumplicada... pero expliquen mejor para que quieren controlar el USB, para una impresora, u otro perisferico y tal vez les pueda ayudar un poco.
 
Hola, bueno lo que necesitaria hacer no es muy simple pero se tiene que poder!!
Tengo una camara web y necesitaria enviar datos para controlar unos servos conectados al mismo cable de la camara. Esto en visual basic.
Lo que pude encontrar en internet es que se usa una libreria VBHIDCOMM.OCX pero no he podido bajarla.
Bueno si me puedes ayudar te lo agradezco.
 
Hola GeNeTiKo, yo estoy interesada en poder leer la información que recibo de un GPS al conectarlo al puerto USB. Podrías ayudarame.

Muchas gracias
 
Claro, Margye dime mas acerca del tema, modelo del GPS , que version del basic y dame mas datos y te ayudo... yo controlo las WebCam de la empresa desde VB,para eso no hubo mayor complicacion VB lo hizo casi solo...
 
Al percer tiene el concepto de lo que toca hacer, pero algunos no tienen el hardware para hacerlo, recuerden que el puerto USB es un puerto DIGITAL, y en el caso de mover servos es un caso analogo...hay que tener una interface para poder manejar esos datos...

Suerte
 
si tenes un adaptador USB a puerto serie con un DB9 podes conectar la PIC en el Serial y listo programas con el puerto serial ( el puerto USB es un serial al fin y al cabo) pero de todas formas ya te doy un linck de donde podes bajar un control de USB para VB...

un par de linck's con informacion:
http://www.usb.org/home (las espesificaciones)
http://www.idg.es/pcworld/ShowSol.asp?ID=1667
http://www.beyondlogic.org/usb/usbhard.htm
http://www.ak-modul-bus.de/technik/clusbvb.html (muy buena)

En esta direccion encontraran ejemplos, api y codigo para leer y escribir en el puerto USB:
http://www.intel.com/intelpress/usb/examples/vboverview.htm

otras con relacion al tema:
http://www.codeproject.com/csharp/csppleds.asp (es de puertos paralelos)

______________________________________________________________________
http://home.t-online.de/home/holger.klabunde/usb/usbpic.htm (sobre el control que encontraste VBHIDCOMM.OCX)

.... si encuentro mas informacion te edito el post y te la dejo aca.
suerte bye

EDIT:
(agregado de webs)
http://www.alecmcnamara.freeserve.co.uk/piccalc/ (tutorial de coneccion PIC to PC)
 
Estoy trabajando en mi proyecto final de carrera, basado en la implementación de un módulo en visual basic que maneje un controlador hardware que a su vez moverá el motor de una antena parabólica para la recepción de señales de satélites meteorólogicos. Hasta el momento la implementación del programa está completa en lo que respecta al sistema de cálculo de elevación y azimut de la antena y obtención de datos del satélite. El programa implementa un gráfico de seguimiento del satélite en cada momento (incluyendo cualquier fecha y hora decidida por el usuario, lo que permite predecir de una forma no sé cuan fiable la posición de diversos satélites meteorológicos en el futuro), del cúal se obtienen los valores de elevación y azimut del satélite y son mostrados por pantalla.
Hasta aquí todo bien.
La idea es que el programa sea capaz de manejar la antena (con la implementación de control discreto que requiere), moviéndola hasta la posición que ha sido calculada para obtener una imagen del satélite meteorológico de total calidad. Hasta ahora las pruebas de funcionamiento del programa se han realizado con una antena de dipolos cruzados, con lo cual no había antena que mover. En un principio el planteamiento era realizar la comunicación entre antena y PC mediante el puerto serie, pero dado que los puertos USB ofrecen una mayor velocidad de transmisión de datos, con lo cual el periodo de muestreo del sistema, que es con lo que debería trabajar en control discreto, es menor.
He estado buscando información de como manejar los puertos USB con Visual Basic, y hasta el momento he encontrado algunos ejemplos que tendré que repasar para sacar algo en claro.
Si alguien sabe como y dónde encontrar el control VBHIDCOMM.OCX que habéis mencionado me sería de gran ayuda, ya que sería la forma más cómoda de programar mi módulo. Si no me gustaría saber si sabéis la forma de obtener y enviar datos a través del puerto USB mediante alguna DLL del sistema.

Agradecido de antemano
 
Bru dijo:
....Si alguien sabe como y dónde encontrar el control VBHIDCOMM.OCX que habéis mencionado me sería de gran ayuda, ya que sería la forma más cómoda de programar mi módulo. Si no me gustaría saber si sabéis la forma de obtener y enviar datos a través del puerto USB mediante alguna DLL del sistema.
Agradecido de antemano

Lee mi post ahy tenes en la pagina de intel otro controlador para el puerto USB con ejemplos y demas...
EDIT: correccion no es mi post es este mismo pero mas arriba
 
Muchisimas gracias upszot.

El link que pusiste de Alec McNamara me resultó de gran ayuda ya que allí conseguí el control Activex que necesitaba (HIDCOMM en un archivo autoinstalable). Realmente lo que necesitaba era un control que me permitiera escribir y leer de un pic y este parece que lo hace. Ahora tendré que realizar un prototipo del controlador para ver si es así y además empezar a ver si la entena se mueve.

Nota: Digamos que el otro link al control VBHIDCOMM no me sirvió de mucho porque mi alemán es tan bueno como mi suahilli...
 
hola, como estas, yo estoy tratando de leer el numero de serie de un dispositivo USB, un pendrive mas especificamente, encontre un ejemplo muy lindo en este link pero esta en visual basic, a vos te va a servir pero yo lo necesito en visual fox pro, asi que fijate y contame como te fue.
http://www.alanmacek.com/usb/index.html
al final de esta pagina hay unos link's para acceder a una pagina de ejemplos, en esa pagina tenes un ejemplo en visual basic con formularios y todo lo que necesitas.


Servius dijo:
Hola, Estoy interesado en saber como controlar el puerto USB desde Visaul Basic. Estoy trabajando con el microcontrolador PIC16C765 de la Microchip como periferico. Pero no logro controlarlo desde Visaul Basic. Si alguien me pudiera ayudar se lo agradeceria mucho.

Ate. Servius
Venezuela
 
Hola y ayuda por favor

Hola, soy nuevo en este foro y me encantaría que me ayudasen un poco con una aplicación que me encuentro desarrollando en Visual Basic como proyecto escolar. La idea, es utilizar un lector biométrico de huella digital para almacenar entradas y salidas de los empleados del plantel. Ya llevamos la interfaz y algunas funciones extras que tendrá el programa, pero lo principal es hacer que nuestra aplicación de Visual Basic logre comunicarse y funcionar con dicho dispositivo.

El dispositivo es un lector BioPod marca APC (www.apc.com), ya revisé tanto el manual como los controladores del dispositivo, pero aún así no logro que eso funcione.

Gracias de antemano y feliz programación, :p
 
Os comento los avances en mi proyecto de la interfaz para el maejo de un rotor para mover una antena parabólica:

Hasta el momento los problemas han ido surgiendo poco a poco pero sin parar. En mi diseño dispongo de un PIC 16C765 y un conversor A/D de 12 bits de Maxim, el MAX180, que conecto de forma paralela al microcontrolador. Al principio el conversor fallaba con el control "manual" del mismo (a mano, vamos, moviendo los cables uno a uno); con el tiempo descubrí que fallaba porque estaba sencillamente muerto y todo porque obvié la alimentación suplementaria que según las especificaciones del dispositivo debía de ser de -12 a -15 voltios. En definitiva, el primer conversor A/D acabó muy quemado. Después de una primera prueba fallida tardé cerca de mes y medio en recibir otro conversor idéntico, que esta vez funcionó a la primera en las pruebas manuales, tras lo cual decidí que antes de lanzarme a la aventura y conectarlo a saco al 16C765 prefería testear el control del conversor con un 16F877 de toda la vida. Los sucesivos tests con este otro PIC fueron totalmente satisfactorios, comprobando además que el tiempo entre conversión y conversión es de 39,6 microsegundos, a pesar de que Maxim dice garantizar el tiempo de conversión en poco más de 10 microsegundos (en realidad tarda cerca de 25 microsegundos), pero aún así se ajusta a mis necesidades de tiempos de conversión.
Después aparecieron los problemas con el PIC 16C765. Por error lo programé con un programa que no funcionaba y entonces tuve que borrarlo; fácil, pensaréis todos, se tomá un borrador por UV y ya está. Pero nunca es tan fácil, en mi universidad, la Universidad Miguel Hernández de Elche (Alicante, España), como supon go que pasa en casi todas las universidades del mundo, el mes de agosto es no lectivo y por lo tanto los profesores y todo el personal desaparece. En mi caso un profesor tuvo que venir todos los días debido a una especie de intercambio con un profesor brasileño que trabajó durante dicho mes aquí. El problema se presentó debido a que el laboratorio en el que trabajo (laboratorio del departamento de señales y sistemas de mi universidad) no dispone de borrador UV, y el laboratorio que dispone de una fuente UV se encontraba cerrado todo ese mes. Así que opté por comprar una lampara UV para mí. Al igual que la universidad, durante el mes de agosto, debido a que en mi ciudad son fiestas patronales, casi todas las tiendas de electricidad e iluminación permanecían cerradas y tuve que esperar otras dos semanas para poder tener la dichosa lampara. Acabé comprando un tuvo germicida de emisión UVC que es capaz de borrar el PIC en un minuto y medio (cuando los borradores habituales dicen que se tarda de 15 a 20 minutos, por fin una buena noticia).
Y ahora es cuando viene la madre de todos los problemas:
EL ORDENADOR NO RECONOCE EL DISPOSITIVO
Cuando por fin diseñé el firmware todo lo correctamente que pude y conecté los integrados, conecté el circuito al PC y éste la primera vez que se conectó el dispositivo lo detectó pero no lo reconoció, mientras que las veces posteriores ni siquiera lo detecta. He probado con otro firmware, como el PicCalc de Alec McNamara, pero con idéntico resultado. Probé entonces a ver si el PIC también había pasado a mejor vida programándolo con el mismo programa que al 16F877 y comprobé que funcionaba, así que no sé si es que hago algo mal, que es bastante probable, o es que se ha estropeado la parte del puerto USB que corresponde al PIC.

A ver si alguien podría ayudarme, que ahora ya estoy luchando contra el tiempo, ya que me gustaría acabar con el proyecto y presentarlo antes de que acabé este mes de septiembre. Gracias a todos
 
Proyecto USB 16C765

Hola Bru,

Es un placer conocerte. Referente a tu proyecto, yo tengo unos archivos que tal ves te puedan servir.

Escribeme un correo para asi poder enviarte estos archivos que te podrian servir.

Espero tu correo.

Atte.Servius

servioelectron@hotmail.com
 
Sigo teniendo problemas y son por alguna cuestión del driver.
El ordenador ahora por fin detecta el dispositivo, pero siempre me lo reconoce como dispositivo desconocido. Según el Administrador de dispositivos el error se debe a que el controlador no está cargado o no se reconoce.
Descargué de la página de Jungo el WinDriver para ver si podía editar un driver para mi dispositivo. Este programa también permite crear firmware pero no para chips de Microchip, con lo cual esa opción no me convence. Cuando intento editar un driver me encuentro con que, por más que en el firmware con que programo el PIC indica el vendorId y el productId de microchip en su ratón de prueba que tiene colgado en la página, el Windriver reconoce el dispositivo como no registrado y con las Id's antes nombradas como 0, y aunque intente modificarlo desde el programa sigue igual.
Ahora aparece otra posible causa de los problemas del firmware: todo el firmware que he encontrado por la red, el de microchip, el PicCalc de Alec McNamara, etc., están realizados con la versión 5.7 de MPLAB, mientras que yo uso la 7.20. la principal diferencia entre ambos es que la extensión del archivo del proyecto es diferente y no se pueden usar en las dos versiones indistintamente. Uso la 7.20 porque cuando intento programar con la 5.7 los errores son continuos y nunca acaba de programar el 16C765. Lo que hice fue generar proyectos nuevos para la versión 7.20 con los archivos de los proyectos hechos para la 5.7. Esto no debería ser causa de error pero como ya no sé cuál puede ser no se me ocurren más ideas.
Lo mejor de todo es que resulta que si consigo solucionar este error el trabajo lo tendré acabado del todo, ya que, al menos en teoría, todo lo demás funciona.
Agradezco cualquier ayuda que me podáis facilitar.
 
Hola Bru,

Si quieres enviame el archivo que conseguistes en un archivo ZIP para yo verificarlo aqui. Y ver en que puedo ayudarte. Yo tambien tengo la version 7.20 de MPLAB. Tratare de compilarlo alli para no diferenciar me de tu trabajo.

Enviame el archivo a mi correo. Saludos

Atte. Servius
 
Aquí sigo con mis problemas.

He probado con varios firmware disponibles en la red y por el momento con todos tengo el mismo problema. Voy a tratar de explicarlo lo mejor posible. Cuando conecto el dispositivo el ordenador lo encuentra pero no lo reconoce, es decir aparece como dispositivo desconocido, pero dentro del apartado de dispositivos USB. EL error que me indica Windows es qu no están instalados los drivers para el dispositivo o no se encuentran. Decidí descargarme el programa WinDriver de la página de Jungo, para probar de desarrollar el driver para el dispositivo en cuestión. Cuando lo inicio me aparece el dispositivo como desconocido y su VendorId y su ProductId son ambos 0; aquí es donde radica el problema, creo, ya que si esto es así no se reconoce ningún dispositivo. La cuestión es ahora descubrir por qué esto es así. Según todos los pasos que he seguido hasta ahora todo debería funcionar correctamente ya que los firmware encontrados funcionan según sus creadores y yo no los he modificado en absoluto.
Por lo tanto, ¿dónde está el error? ¿Se trata de un problema en el envío de tramas? ¿Es un defecto del PIC? ¿Conecto algo mal, aunque he seguido las conexiones de resistencias y condensadores que he encontrado en la red?
Lo cierto es que he llegado a la determinación de que si en un máximo de dos semanas no encuentro una solución definitiva daré por concluido el proyecto, y aunque no consiga la matrícula que esperaba obtener por lo menos tendré el título en la mano.