Zedomax DIY121 - Como facer o seu propio "do controlador PS3 SIXAXIS" estilo básico dispositivo USB programable!

Prema aquí para ver a Pantalla

Dispositivos USB son fáciles para os usuarios a instalar e configurar (mentres todo está funcionando correctamente). Moitas veces, basta con conectar un dispositivo USB e funciona de inmediato. Isto é especialmente verdadeiro para os dispositivos de entrada, como rato e teclado.

Estes dispositivos están en conformidade coa especificación en capas enriba do protocolo USB: Dispositivo de interfaz humana. Case calquera tipo de entrada é posible definir; un descritor informe completo "linguaxe" é usado para dicir ao ordenador como analizar a entrada. Isto non é moi simple de implementar, decenas de peticións específicas, deben ser tratadas axeitadamente. Hai moitas etapas entre conectar un dispositivo USB e ser capaz de usalo, todos estes aparecen nalgúns milissegundos e falla de unha etapa significa que o dispositivo non vai funcionar.

E se non se preocupe de nada diso? E se poida utilizar o seu microcontrolador preferido, facer "algo" ea entrada é amosarse en ordenador en formato correcto? Non tería que preocuparse co código USB complexo, especificacións HID, ou romper o seu código de USB ao engadir as outras funcións que precisa. Non tería que preocuparse moito sobre como escribir código óptimo, ou sempre ficar no camiño de interrupcións USB.

HID Portal

É exactamente iso o que eu decidir que facer. Un par de anos, eu desenvolvín un dispositivo USB e pasou por todas as dores de cabeza de ser un USB HID instalado e funcionando. Dende que eu xa tiña feito o traballo duro, eu decidín engadir un método de recibir datos de outro micro e usar estes datos como o fluxo de entrada para o código HID. Eu quería usar un BASIC Cubloc controlador programable para procesar os meus datos de entrada e enviá-lo ao Portal HID. Mi aplicación de proba sería un Acelerómetro baseado mando HID, basta con conectar o dispositivo no ordenador e el vai traballar.

Non ten que ser un mando, que podería ser un teclado, un rato, ou moitos outros controis definidos polo estándar HID. É posible engadir botóns de control de volume para un dispositivo ... talvez teña un circuito de son do teu ordenador cando o teléfono toca? Transforma calquera tensión de entrada nun eixe do mando, calquera cambio no botón? Todo é posíbel!

Update: Eu decidir encolher o hardware CUBLOC ata unha CB220, e todo se encaixan nun modelo de avión. O modelo foi escollido para coincidir cun avión dispoñible no Heroes of The Game Pacífico foi utilizado para probar a interface de mando.

Hardware Explicación

O Portal HID está baseado nun proxecto antigo meu, baseada nun microcontrolador MC68HC908JB8 e programados en lingua assembly. Por razóns de seguridade de que non poden realmente liberar o código agora, pero hai unha abundancia de outros proxectos USB alí fóra, que podería ser adaptada para esta finalidade. Hai un código aberto implementación USB brando para o microcontrolador ATtiny, por exemplo.

Meu micro non ten embutido I2C ou SPI, así que eu precisaba para realizar un dos meus propios. Eu tamén non teñen patas de interrupcións dispoñibles, é dicir, a miña solución precisaba ser baseada en investigación. Cando todo foi dito e feito e óptimo, eu non podería detectar bordes máis rápido que 16kHz. Isto é aproximadamente dez veces máis lento que a saída de quendas dispoñibles a partir do controlador CUBLOC, entón eu non podía usar iso. Acaba escribindo o meu propio movemento de saída de rutina en BASIC para obter os datos para o Portal HID. Isto podería ser evitado polo uso dun microcontrolador que ten SPI ou I2C construído no xa, pero o JB8 é o que eu tiña na man.

Eu uso tres signos para se comunicar co controlador CUBLOC. Primeiro, hai un sinal CLK. O Portal HID detecta un borde de subida. Nese punto, el le o valor presente na liña de datos. Esta é desprazado nun rexistro ata que un byte foi recibido, e os movementos de código para o próximo byte. A / RST liña é unha maneira de sincronizar o principio de cada paquete de datos, se houbese ningunha entrada espurios; cando baixo el define o paquete e os índices de bit a cero.

O Portal HID está programa para actuar como un mando, con tres eixes e oito botóns. Eu tamén deu-o como un teclado. No desenvolvemento futuro, gustaríame facer a Confederación HID máis flexible; deixar o controlador externo seleccionar o tipo de dispositivo e cantos de rexistro son necesarios. Sería o máis flexible, se acepta directamente descritores informe HID, pero que abre a posibilidade de cometer máis erros e acabar cun dispositivo de non-traballo.

O acelerômetro é un DE-ACCM3D da Dimensión Enxeñaría. O CUBLOC simplemente le a tensión nos seus portos Adina e converte a un valor entre -127 e 127.

Continúa na seguinte páxina

Categoría

1 Star2 Stars3 Stars4 Stars5 Stars
Loading ... Cargando ...
  • Joe Brock
    Estou interesado no mesmo predio / tipo de proxecto semellante. Foron fussing con VB.net, e non estou en todo isto.
    Xa non mexeram con pic's (microcontrolador) Como programa destes para porto USB ou é a parte xa fixo?
  • Phil
    Ei proxecto awesome ....

    Vostede tihnk vostede podería aplicar proceso similar para permitir unha keyborad e configuración do rato para traballar con xogos de PS3? O que eu estaba a pensar era se sabía que a saída que o controlador envía, vostede oculd usar un programa de ordenador para simular un botón cando u presione un botón no teclado. Isto é, cando presionar a tecla enter no meu teclado, un programa envía o comando para o "start" para PlayStation ... calquera feedback / unha idea de como podería comezar nun proxecto como este?
  • Steve Ellis
    Creo que está absolutamente incrible como podo entrar en contacto con vostede que eu teño algunhas preguntas sobre un proxecto que eu estou tentando iniciar que coido que pode ser capaz de responder a meu correo é ellis90002@gmail.com favor correo min se está dispostos a responder a algunhas preguntas
  • doesn'tmatter
    Vin HJM fidiling coa fronte do avión coa man esquerda durante todo o vídeo
  • max
    haha ...
  • ben.
    eu volto para ver amigo.
  • max
    hey, welcome back horisly! Será que os playoffs chegar a vostede? hehe ...
  • Napsey
    Ola, despois de bater o meu avión modelo moi caro para a terceira e última vez que podo imaxinar que era por mor dos controis minúsculo no cadro de control de radio que eu acho difícil de dominar con meus polgadas desajeitado na miña idade. O que eu teño é ser capaz de facer algo como o encaixe de mando en un ordenador portátil e deixar o laptop unidade da aeronave modelo alá fóra, no mundo real a través do camarada conexión caixa. Eu tamén podería entón poñer unha pequena cámara de TV remoto no cockpit que pode retransmitido o sinal de vídeo ó ordenador portátil a través de outra porta. Isto iría me axudar a facer o avión e me dea unha visión real do mundo, a través do modelo. O seguinte paso sería facer o modelo con menos crashable dicir, un Xiroscopio helicóptero modelo instalar na fábrica, para que, deixando de lado os controis, o avión ía atopar a súa propia liña recta e nivelada. Será que son esixencia moi lonxe para buscar no curro esquema das cousas?
  • Andy
    hey eu teño unha sp quenlla partido con cable USB e estabas tentando rodar Linux nel, pero o obxectivo xogo é HID (me diga como é que funciona) e todo o que podo enviar as fraudes é enganar programa! De calquera xeito eu poida editar os arquivos de flash no gameshark?
  • max
    Pode querer enviar e-mail o experto HID Garrett en garrett@comfiletech.com
  • pertinencia
    Ola ~
    DIY nice

    Podo facer unha pregunta?
    PS3 controlador USB tamaño Endpoint é 32Byte?
    ou usar 64Byte?
    Eu captura do paquete é de 64 bytes
    pero o seu parecer 32 byte pode ser traballo?
  • M07
    unha vez bonito again.keep o bo traballo.
  • Espero que podo facer iso ..... :)
  • max
    si o fan! Eu nin sequera tentar ...
  • Wow this is great!
    Brillante idea, ben feito.
  • Clint Fishburne
    Awsome e é o que eu estaba a buscar. Podo mercar un montado?
blog comments powered by Disqus

Featured Sites From Zedomax Blog Network