Proyecto PC-PIC por usb con PicBasicPro + Vb2008 + Pic18f2550

Alguna sugerencia compañero? yo hice un joystick con hid, pero recien estoy empezando... habra que ver si hay algo por ahi. Me faltan muchas horas de estudio todavia ;)
 
Yo tuve problemas para ejecutar aplicaciones en SO x64 (compiladas en Visual Studio 2010), mientras que en 32 bits funcionaban sin problemas. Era una aplicación de control USB de un PIC, aunque no utilizando ese modo HID, sino BULK.

Para solucionarlo, coloqué en la opción "Destino de la plataforma": x86 (en lugar de Any CPU que viene por defecto). Con ese cambio las aplicaciones me corren correctamente en ambos sistemas.

Saludos
 
Última edición:
Esto de los 32 y 64 bits es para dolores de cabeza y problemas de compatibilidad nomás! en windows 7 tenés idea como hacerlas andar en modo de 32 bits? que se yo, con lo compatibilidad o algo...
 
Hola Moyano, tengo una pequeña duda sobre el codigo que nos compartiste y el cual agradesco infinitamente, la duda es con respecto a la siguiente seccion;
Código:
 ' Si se conecta el dispositivo al host...
    Public Sub OnPlugged(ByVal pHandle As Integer)
        If hidGetVendorID(pHandle) = VendorID And hidGetProductID(pHandle) = ProductID Then
            Me.estado.BackColor = Color.Green
            Me.estado_conexion.Text = "CONECTADO"
        End If
    End Sub

    ' Si se desconecta el dispositivo del host...
    Public Sub OnUnplugged(ByVal pHandle As Integer)
        If hidGetVendorID(pHandle) = VendorID And hidGetProductID(pHandle) = ProductID Then
            hidSetReadNotify(hidGetHandle(VendorID, ProductID), False)
            Me.estado.BackColor = Color.Red
            Me.estado_conexion.Text = "DESCONECTADO"
        End If
    End Sub

No logro hacer que el "cuadro de estado" y el "estado_conexion" cambien de estado cuando conecto/desconecto mi dispositivo (pic12f2550), sin embargo tengo comunicación ya que puedo enviar y recibir datos con las funciones WriteSomeData() y onread().

Lo curioso de todo es que corriendo tu aplicación compilada "easyHID_VB.net 2008.exe" que esta incluida en la carpeta : \easyHID_VB.net 2008\easyHID_VB.net 2008\bin\release, ahí si que me funciona el cambio de estado.

No se si me falte cambiar el código, llamar a alguna función o configuración del propio visual basic 2010, que es la versión donde lo estoy compilando ojala me pudieras orientar al respecto, o es una travesura mas por migrar al visual basic 2010 y habrá que descubrir el problema. Por cierto estoy trabajando bajo Windows 7 (32bits)

De antemano te agradezco como siempre la ayuda que nos prestas.

Saludos
 
Última edición:
o es una travesura mas por migrar al visual basic 2010 y habrá que descubrir el problema.

Es eso :)

El problema a mi se me presentó cuando quise pasar una aplicación hecha en Visual C# 2008, para VC# 2010. Ni siquiera me compilaba; lo que tuve que hacer es reescribir el código completamente y me funcionó...no hice ningún cambio, solo reescribí el código.

Trabajar con esta librería igual no es lo más recomendable, es mucho mejor usar la hid.dll de windows, con esa librería se acaban todos los problemas de compatibilidad, pero todavía no he realizado pruebas concretas.

Igual te digo que si podés enviar y recibir datos, analices el evento que trata los mensajes de conexión y desconexión, quizás estás comentiendo algún error o hay que tener algún otro punto en cuenta. Usá try - catch en las funciones...con eso te vas a dar cuenta si lo que haces es válido o estás cometiendo errores. A mi me es de gran ayuda.

Saludos !
 
Hola Moyano:

Siguiendo tu consejo "es mucho mejor usar la hid.dll de windows" me di a la tarea de buscar información al respecto y encontré el siguiente sitio en internet:

http://www.lvr.com/hidpage.htm

de Jan Axelson´s el cual me a parecido muy bueno con respecto al tema que comentamos en este post , baje y he tratado de traducir al español una de sus aplicaciones para visual basic 2008 que dejo anexada (ya parcialmente traducida).

Pero debo confesar que me queda grande para mis conocimientos de principiante con visual basic y el .net, alcanzo a comprender que dentro de todo el proyecto hay un archivo (HidDeclarations.vb) que es centro o parte neuralgica de este proyecto.

Con toda mi ignorancia, he logrado cosas bastante buenas, y tengo compatibilidad tanto en winxp, vista y win7 (32bits) lo cual es un aliciente para proseguir y tomar como base el trabajo de Jan Axelson´s.

Quizas ya conozcas el trabajo que comento, y el motivo principal de mi comentario aparte de compartir lo que he investigado, es que pudieses comentarme al respecto y/o si tienes alguna plantilla para visualbasic 2008 o visual basic 2010 (que es el que uso), que sea mas básica con respecto al uso del HID.DLL que lo que encontre.

Reciba todo el foro un cordial saludo.


Nota.- Por el lado del microcontrolador PIC, por el momento me queda muy claro todo, estoy usando un programa muy básico que envía al USB 8 bytes en el buffer, y uno de los buffers que recibo del usb, lo dejo desplegado con leds.
 

Adjuntos

  • generichid_vb.rar
    207.9 KB · Visitas: 210
Última edición:
Simplemente para anexar a mis comentarios que con respecto a la programación en windows 64 bits, el programa base que he dejado en el ultimo comentario es que funciona perfectamente tanto en 32 y 64 bits sin ningún cambio en la programación.

Por mi parte dejo por finiquitada la búsqueda de una plantilla para visual basic 2010 que tanto buscaba y agradezco como siempre la ayuda prestada en tan bien nutrido foro.


Reciban un cordial saludo.
 
Hola que tal, lo que pasa es que no puedo abrir con el vb2010 express el archivo del hid del 2008, no se a que se deba, he estado trabajando con este modo en vb6, y he decido actualizarme, pero al hacer la conversion, me dice que no se a podido convertir todo, y de ahi vienen los problemas, si yo traspasar ael codigo del vb6 al vb2010 funcionaria?
gracias por leerme. :)
 
drmesmer como estás :cool:
Para ayudarte un poco con tu proyecto te paso el código en VB.net para usar la librería easyHID..
Espero que te ayude !:D


-----Hola Moyano Jonathan, quisiera me puedas ayudar con un inconveniente al compilar el código que me general el EasyHID en Microcodestudio usando PBP me da un total de 21 errores, entre los cuales tengo los siguientes:

PBPPIC18.LIB ERROR Redefinition of label ifndef
PBPPIC18.LIB ERROR bad expression (en la linea que tiene este texto if (OSC == 3) )
PBPPIC18.LIB ERROR Redefinition of label NOLIST
PBPPIC18.LIB ERROR Redefinition of label LIST
PBPPIC18.LIB ERROR Redefinition of label OSC_VALID

Te agradecería mucho si me puedes dar una idea del motivo por el cual el código generado por el EasyHID no se compila, muchas gracias.......:confused:
 
drmesmer como estás :cool:
Para ayudarte un poco con tu proyecto te paso el código en VB.net para usar la librería easyHID..
Espero que te ayude !:D

Hola moyano, muchas gracias por ese programa, te cuento que estoy tratando de hacer una conexión USB entre un PIC18F2550, el código generado por EasyHID wizard luego de leer por la red he logrado compilarlo y grabarlo en el PIC; agradecería me puedas aclarar ciertas dudas: Al conectarlo no me reconocía pro fue porque estaba trabajando con un cristal de 4MHZ y lo puse de 20MHz y el XP le reconocio y apareció el mensaje de nuevo dispositivo reconocido y salio el nombre que puse en EasyHID Wizard, al conectar con win 7 de 32 o 64 bits no me sale el mensaje con el nombre que puse en HID wizard y empieza a buscar driver posterior a lo cual luego de un tiempo me dice dispositivo reconocido "Dispositivo de entrada USB" así lo cataloga el windows, he copiado la el dll denominado mcHID.dll en system 32 de mi windows 7 de 32 bits pero al ejecutar el programa "easyHID_VB.net 2008" en la label denominada "estado_conexion" sigue con la palabra "DESCONECTADO" no me lo reconoce saco el USb y lo vuelvo a colocar y no hay cambio, me podría dar una idea de que puede ser, te agradezco mucho y gracias por los buenos aportes nuevamente. :apreton:
 
Hola como estás.

Con respecto a los programas hechos en Basic..no te sabría ayudar por que uso C para mis programas y las librerías trabajan diferente. Con respecto a Windows 7 de 32 o de 64 bits la PC te lo tendría que reconocer exactamente igual por que es un dispositivo HID y no requiere que instales ningún driver.
Con respecto a la conexión desconexión defectuosa que me mostras puede ser un problema de la PC.
El software para VB.net está un poco desactualizado y quizás no funcione correctamente, vas a tener que investigarlo más a fondo.
 
Atrás
Arriba