Autor Tema: Dudas sobre teclado/raton por usb con pic 18f4550. Ejemplo Ex_USB_KBMOUSE2  (Leído 3036 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Sir_Egnos

  • PIC12
  • **
  • Mensajes: 92
Estoy trabajando ya hace dias con este ejemplo intentando ver como funciona. Me refiero al ejemplo Ex_USB_KBMOUSE2 que viene en los ejemplos del compilador de ccs para pics. Esto ejemplo simula el uso de un raton y un teclado.

Mi duda esta en el envio de pa posicion del raton para el movimiento del puntero.

La informacion se envia usando un vector de 5 posiciones. El vector en el ejemplo se llama Out_data y contiene la siguiente informacion.

 Out_data[0] -> Hid report del id.
 Out_data[1] -> Estado de los botones del raton.
 Out_data[2] -> movimiento eje x.
 Out_data[3] -> Movimiento eje y.
 Out_data[4] -> Movimiento de la rueda del raton.

  Segun lo que fui inventigando (siempre puedo estar equivocado) se usa una variable de 8 bits con signo, con lo que tenemos valores desde +127 a -128. Con eso hacemos que se mueva en un sentido u otro tanto el eje x como el eje y.

  Mi duda esta en que no entiendo que formula se le aplica a ese numero para que salga el movimiento de pixeles que se desplaza. Al principio crei que eran pixeles puros, pero no. Por que si le mandar moverse 1 pixel, casi siempre lo hace, pero cada 4 o 5 saltos hay uno que no lo hace.Si le pones que salte 10 pixeles,a veces salta 10 a veces 11, pero si le decimos que salte 20, ya pasa a saltar 33 pixeles. Lo probe en dos ordenadores de diferente resoluciion y no me dio la sensacion que dependiera de la resolucion que tenia el pc.

  
Tampoco vi ningun comando que enviandolo desde el pic, pudieramos cambiar la resoluccion en el sistema operativo.

En definitiva, alguien podria dar algo de luz sobre estas cuestiones?

Un saludo a todos.











« Última modificación: 06 de Abril de 2011, 09:16:05 por Sir_Egnos »

Desconectado chichepic

  • PIC12
  • **
  • Mensajes: 56
    • MidiQuet
Re: Dudas sobre teclado/raton por usb con pic 18f4550. Ejemplo Ex_USB_KBMOUSE2
« Respuesta #1 en: 05 de Abril de 2011, 21:00:20 »
Me parece que tenes que tener en cuenta que ese Descriptor para el Mouse es para trabajar de modo "relativo", es decir, lo que le indicas con esas variables es cuànto se va a desplazar desde donde se encuentra el mouse (ultima posicion).
Fijate en "Panel de control" " Propiedades del Mouse" "Opciones del puntero" .. ahi puedes cambiar la "resolucion".
Podes  modificar el rango de esas variables, en el  HID Report .
Hay un programa util para hacer los Descriptor (HID Descriptor Tool) y para monitorear  el protocolo Usb recomiendo "USBLyzer".
saludos!

Desconectado Sir_Egnos

  • PIC12
  • **
  • Mensajes: 92
Re: Dudas sobre teclado/raton por usb con pic 18f4550. Ejemplo Ex_USB_KBMOUSE2
« Respuesta #2 en: 06 de Abril de 2011, 09:15:40 »
Efectivamente, yo sabia que trabaja de modo relativo, lo que no entiendo es como hace para calcular los pixeles que se mueve por cada unidad que le enviamos desde Out_data.
En las opciones de puntero solo pone movimiento mas lento o mas rapido, pero se mueve con una barra.
Todo esto viene a que yo intento posicionar el puntero de forma directa en un pixel. Por ejemplo, si yo estoy en la posicion real 100,100 y quiero ir a la 800,100, en un principio pensaba que con enviar 7 veces el valor 100 en byte de Out_data[3] ya se posicionaria en este pixel. Me acabo de dar cuenta que puse mal el vector en mi pos inicial y a todos le di el valos 
  • . Lo corrijo ahora. El problema es que si cuando manda 1 se me mueve un pixel, pero cuando mando 100 se mueve sabe dios a donde, no puedo posicionarme de forma rapida y directa.


 El usblyzer no lo conocia. Yo usaba en usbTrace, que fue como entendi algo de como enviaba los datos al pc. Tampoco conocia el HID descriptor tool. Intentare entender como se ajustan los valores.

 Y nada mas, solo darte las gracias por la ayuda.


Desconectado Sir_Egnos

  • PIC12
  • **
  • Mensajes: 92
Re: Dudas sobre teclado/raton por usb con pic 18f4550. Ejemplo Ex_USB_KBMOUSE2
« Respuesta #3 en: 06 de Abril de 2011, 10:02:24 »
Tus palabras ahora me hacen pensar lo siguiente :" ¿Se podra configurar el hid para que trabaje con posiciones absolutas? "

gracias

Desconectado chichepic

  • PIC12
  • **
  • Mensajes: 56
    • MidiQuet
Re: Dudas sobre teclado/raton por usb con pic 18f4550. Ejemplo Ex_USB_KBMOUSE2
« Respuesta #4 en: 06 de Abril de 2011, 21:37:08 »
Fijate esta linea del HID Report;
 0x81, 0x06, // input (data, variable, absolute) Defined bits above are data bits //48, 49
pero me parece que acà hay un error del CCS porque "absolute" es 0x02 , no 06 (rel.) ..... asi lo puedes poner en "Abs" . En El HID Desc Tool , abrì el ejemplo de mouse y dale doble click a esa linea ,en el bit2 se hace el cambio....
contame de tus avances, que tengo varias dudas..

Desconectado Sir_Egnos

  • PIC12
  • **
  • Mensajes: 92
Re: Dudas sobre teclado/raton por usb con pic 18f4550. Ejemplo Ex_USB_KBMOUSE2
« Respuesta #5 en: 07 de Abril de 2011, 09:19:55 »
Me he descargado el manual de las clases HID y estoy intentando leerlo, pero mi ingles es francamente malo y me esta costando mucho entender algo.

Podrias explicar que son estes dos numeros? Supongo que uno sera la direccion y otro el valor, pero seria de ayuda que me lo explicaras.

Te tendre al tanto de los avances que haga.

Desconectado chichepic

  • PIC12
  • **
  • Mensajes: 56
    • MidiQuet
Re: Dudas sobre teclado/raton por usb con pic 18f4550. Ejemplo Ex_USB_KBMOUSE2
« Respuesta #6 en: 08 de Abril de 2011, 10:04:27 »
Estoy en la misma que vos...modificando  0x02 pasa a trabajar a modo "absoluto", ahora tendriamos que adaptar el rango de las variable a la resolucion de pantalla que se este usando ¿?
algunos datos mas
http://www.microchip.com/forums/m482197.aspx
http://www.todopic.com.ar/foros/index.php?topic=31189.20
alguien que nos ayude?