Utilizar pcDuino como un ratón cuando su conexión a un PC a través de USB OTG (3 / 4 paso)

Paso 3: Probar el controlador

Vamos a utilizar el programa de prueba de linux-sunxi/documentación/usb.

A continuación se muestra el código (puede descargarse desde aquí):
LIST_HEAD(hidg_func_list) estática;

/ * hid descriptor para un teclado * /

Static struct hidg_func_descriptor pcduino_keyboard_date = {}

.Subclass = 0, / * no subclase * /

.Protocol = 1, / * teclado * /

.report_length = 8,

.report_desc_length = 63,

.report_desc = {}

0 × 05, 0 × 01, / * USAGE_PAGE (escritorio genérico) * /

0 × 09, 0 × 06, / * uso (teclado) * /

0xa1, 0 × 01, / * colección (aplicación) * /

0 × 05, 0 × 07, / * USAGE_PAGE (teclado) * /

0 × 19, 0xe0, / * USAGE_MINIMUM (teclado LeftControl) * /

0 × 29, 0xe7, / * USAGE_MAXIMUM (GUI de la derecha del teclado) * /

0 × 15, 0 × 00, / * LOGICAL_MINIMUM (0) * /

0 × 25, 0 × 01, / * LOGICAL_MAXIMUM (1) * /

0 × 75, 0 × 01, / * REPORT_SIZE (1) * /

0 × 95, 0 × 08, / * REPORT_COUNT (8) * /

0 × 81, 0 × 02, / * entrada (datos, Var, Abs) * /

0 × 95, 0 × 01, / * REPORT_COUNT (1) * /

0 × 75, 0 × 08, / * REPORT_SIZE (8) * /

0 × 81, 0 × 03, / * entrada (Cnst, Var, Abs) * /

0 × 95, 0 × 05 / * REPORT_COUNT (5) * /

0 × 75, 0 × 01, / * REPORT_SIZE (1) * /

0 × 05, 0 × 08, / * USAGE_PAGE (LED) * /

0 × 19, 0 × 01, / * USAGE_MINIMUM (Bloq Num) * /

0 × 29, 0 × 05, / * USAGE_MAXIMUM (Kana) * /

0 × 91, 0 × 02, / * salida (datos, Var, Abs) * /

0 × 95, 0 × 01, / * REPORT_COUNT (1) * /

0 × 75, 0 × 03, / * REPORT_SIZE (3) * /

0 × 91, 0 × 03, / * salida (Cnst, Var, Abs) * /

0 × 95, 0 × 06, / * REPORT_COUNT (6) * /

0 × 75, 0 × 08, / * REPORT_SIZE (8) * /

0 × 15, 0 × 00, / * LOGICAL_MINIMUM (0) * /

0 × 25, 0 × 65, / * LOGICAL_MAXIMUM (101) * /

0 × 05, 0 × 07, / * USAGE_PAGE (teclado) * /

0 × 19, 0 × 00, / * USAGE_MINIMUM (reservado) * /

0 × 29, 0 × 65, / * USAGE_MAXIMUM (aplicación de teclado) * /

0 × 81, 0 × 00, / * entrada (datos, Ary, Abs) * /

0XC0 / * END_COLLECTION * /

}

};

Static struct platform_device pcduino_hid_keyboard = {}

Name = "hidg",

.id         = 0,

.num_resources = 0,

recursos = 0,

. dev.platform_data = & amp; amp; pcduino_keyboard_date,

};

/ * hid descriptor para un ratón * /

Static struct hidg_func_descriptor pcduino_mouse_data = {}

.Subclass = 0, //No subclase

.Protocol = 2, //Mouse

.report_length = 4,

.report_desc_length = 52,

.report_desc = {}

0 × 05, 0 × 01, //Usage página (controles de escritorio genéricas)

0 × 09, 0 × 02, //Usage (ratón)

0xa1, 0 × 01, //Collction (aplicación)

0 × 09, 0 × 01, //Usage (puntero)

0xa1, 0 × 00, //Collction (físico)

0 × 05, 0 × 09, //Usage página (botón)

0 × 19, 0 × 01, //Usage Minimum(1)

0 × 29, 0 × 05, //Usage Maximum(5)

0 × 15, 0 × 00, //Logical Minimum(1)

0 × 25, 0 × 01, //Logical Maximum(1)

0 × 95, 0 × 05, //Report Count(5)

0 × 75, 0 × 01, //Report Size(1)

0 × 81, 0 × 02, //Input(Data,Variable,Absolute,BitField)

0 × 95, 0 × 01, //Report Count(1)

0 × 75, 0 × 03, //Report Size(3)

0 × 81, 0 × 01, //Input(Constant,Array,Absolute,BitField)

0 × 05, 0 × 01, //Usage página (controles de escritorio genéricas)

0 × 09, 0 × 30, //Usage(x)

0 × 09, 0 × 31, //Usage(y)

0 × 09, 0 × 38, //Usage(Wheel)

0 × 15, 0 × 81, //Logical Minimum(-127)

0 × 25, 0x7F, //Logical Maximum(127)

0 × 75, 0 × 08, //Report Size(8)

0 × 95, 0 × 03, //Report Count(3)

0 × 81, 0 × 06, //Input(Data,Variable,Relative,BitField)

0xc0, colección //End

0xc0 //End colección

}

};

Static struct platform_device pcduino_hid_mouse = {}

Name = "hidg",

.ID = 1,

.num_resources = 0,

recursos = 0,

. dev.platform_data = & amp; amp; pcduino_mouse_data,

};

Static int __init hidg_init(void)

{

int estado;

Estado = platform_device_register (& amp; amp; pcduino_hid_keyboard);

Si (condición & amp; lt; 0) {}

han ("teclado hid reg fallo en");

platform_device_unregister (& amp; amp; pcduino_hid_keyboard);

volver estado;

}

Estado = platform_device_register (& amp; amp; pcduino_hid_mouse);

Si (condición & amp; lt; 0) {}

han ("ratón hid reg fallo en");

platform_device_unregister (& amp; amp; pcduino_hid_mouse);

volver estado;

}

Estado = platform_driver_probe (& amp; amp; hidg_plat_driver,

hidg_plat_driver_probe);

Si (condición & amp; lt; 0)

volver estado;

Estado = usb_composite_probe (& amp; amp; hidg_driver, hid_bind);

Si (condición & amp; lt; 0)

platform_driver_unregister (& amp; amp; hidg_plat_driver);

volver estado;

}

module_init(hidg_init);

Static void __exit hidg_cleanup(void)

{

platform_driver_unregister (& amp; amp; hidg_plat_driver);

platform_device_unregister (& amp; amp; pcduino_hid_keyboard);

platform_device_unregister (& amp; amp; pcduino_hid_mouse);

usb_composite_unregister (& amp; amp; hidg_driver);

}

Compilar:

$gcc gadget_hid.c
Por conectar pcDuino a un PC a través de USB OTG y luego ejecute el comando siguiente en pcDuino:

raíz. /a.out/dev/hidg0 k #keyboard

Opciones de teclado:

– Mantenga

– izquierda-ctrl

– derecho-ctrl

– izquierda-cambio

– derecho-cambio

– izquierda-alt

– derecho-alt

– izquierda-meta

– derecho-meta

valores de teclado:

[a-z] o

– volver – esc

– bckspc – ficha

– barra espaciadora – caps-lock

–f1                –f2

–f3                –f4

–f5                –f6

–f7                –f8

– f9 – f10

-f11-f12

– insertar – Inicio

– y – del

– terminar – pagedown

– la derecha – izquierda

– abajo – kp-entrar

– arriba – num-lock

Introduce: a b c d e f

Ahora se puede ver algo en la pantalla de la PC.

Cuando ejecute los comandos siguientes en pcDunio:

raíz. /a.out/dev/hidg1 m #keyboard

Opciones de ratón:

– Mantenga

– b1

– b2

– b3

valores de ratón:

Dos números firmados

– dejar de fumar para cerrar

Aquí le damos una pequeña explicación:

– b1 10 10

Cuando se ejecuta esto, actúa como el botón izquierdo del ratón.

– b2 1

Cuando se ejecuta esto, actúa como el botón derecho del ratón.

– b3-10 100

Cuando se ejecuta esto, actúa como moviendo el ratón.

Artículos Relacionados

Utilizar pcDuino como controlador de cabina de la foto

Utilizar pcDuino como controlador de cabina de la foto

pcDuino puede controlar diferentes cámaras réflex como la Nikon D40 a través de una conexión USB utilizando una utilidad denominada Gphoto2.Paso 1: Instalación del SoftwareLa guía de instalación de software se copia delVamos a instalar en el siguient
Webcam Motion Capture / utilizar una antorcha como un ratón

Webcam Motion Capture / utilizar una antorcha como un ratón

este Instructable le mostrará cómo configurar su webcam para que pueda utilizar una antorcha como un ratón. Esto funciona mejor en la noche pero aún se puede hacer durante el día.Paso 1: Lo que usted necesita:Una webcam, cualquier cámara web debería
Cómo utilizar el wiimote como un ratón de ordenador usando velas como un sensor!!!!

Cómo utilizar el wiimote como un ratón de ordenador usando velas como un sensor!!!!

Esta guía le mostrará cómo conectar tu mando de Wii (Wiimote) para tu pc y utilizarlo como un ratón!Paso 1: Lo que se necesitaEsto es bastante simple completar y sólo necesita lo siguiente:-WiimoteAdaptador Bluetooth--Velas (o barra de sensores si qu
Utilizar un controlador de xbox 360 como un ratón

Utilizar un controlador de xbox 360 como un ratón

te voy a mostrar cómo configurar el controlador 360 para su uso como un ratón y cómo usarlo para juegos de pc en lugar de utilizar un ratón y un teclado.Te hace falta1.) un controlador de 360 alámbrico o inalámbrico con un adaptadoracceso a internet
Utilizar tu móvil como un ratón inalámbrico

Utilizar tu móvil como un ratón inalámbrico

Hola a todos. En este sencillo proyecto usamos a Arduino Leonardo para controlar el ratón del ordenador. Utiliza un módulo bluetooth, que está conectado a Arduino, somos capaces de conectar inalámbricamente a un móvil Android que podemos usar el telé
Usar un mando de Xbox 360 como un ratón

Usar un mando de Xbox 360 como un ratón

inicialmente compré un regulador de Xbox 360 para utilizar con emuladores. Descubrí que no sólo realiza la tarea de mímica admirablemente un controlador SNES, pero con un programa gratuito puede utilizar en lugar de un ratón convencional. Mientras qu
Como hacer un controlador de consola funciona como un ratón.

Como hacer un controlador de consola funciona como un ratón.

Estas instrucciones lo guiarán a través del proceso de configuración de un controlador para utilizarse como un ratón para mover el cursor o alguna vez como botón de su teclado. Usted necesitará un controlador de juegos por cable USB y una computadora
Utilizando pcDuino como cliente de IP NO

Utilizando pcDuino como cliente de IP NO

mismo como situación de Averageman, la IP externa de mi casa es también asigna de forma dinámica. También necesito un DNS dinámico.   Utilizamos pcDuino como el cliente de noip para reportar la IP de la casa como una IP normal consume mucha electrici
Utilizar hierbas como libre, sabrosa y saludable ensalada

Utilizar hierbas como libre, sabrosa y saludable ensalada

Muchas personas hoy en día ven las malas hierbas como plantas inútiles que tienen que exterminar. Pero no todas las malezas son "malas" y muchos de ellos son incluso muy sabrosas.En este instructivo se llega a conocer y aprender a cosechar un mo
PcDuino como dispositivo de red para alimentar datos a Xively (Internet de las cosas)

PcDuino como dispositivo de red para alimentar datos a Xively (Internet de las cosas)

Xively (anteriormente Cosm y antes de eso Pachube (pronunciado Patch bay)) es un servicio de base de datos en línea, permitiendo a los desarrolladores conectar datos derivados de sensor (por ejemplo, energía y medio ambiente datos de objetos, aparato
¿Disfrazar su unidad flash como un ratón

¿Disfrazar su unidad flash como un ratón

siempre idea sobre la protección de sus datos en la más segura manera alguna vez? Este es un buen método para disimular su unidad flash/thumb/pluma: sencillamente dentro de un ratón.Paso 1: materiales Te necesita:-un ratón viejo-un viejo pendrive-peq
Utilizar Gmail como un disco externo (7GB)

Utilizar Gmail como un disco externo (7GB)

esto es le enseña a utilizar tu cuenta de Gmail como un disco extra con 7,18 GB de espacio adicional.Necesita estar conectado a internet para acceder a él.Este bonito utiliza mucho tu espacio de gmail como una unidad en línea.Paso 1: Descargar el pro
Utilizar monedas como arandelas

Utilizar monedas como arandelas

si no tienes lavadora en mano y solo tienes que terminar un proyecto, pueden taladrar agujeros en monedas y usarlos en su lugar. Utilizar una moneda de diez centavos o un penique para una lavadora pequeña y un cuarto o medio dólar para simular una ar
Cómo utilizar Gmail como un disco duro Online

Cómo utilizar Gmail como un disco duro Online

¿has pensado que oh-tan-preciosos los archivos que has sido almacenar podrían ser fácilmente barridos una vez las pausas de la unidad de disco duro?¿O alguna vez ha experimentado dejando un archivo en casa e internet todo pero que no hará nada?O ¿has