Zedomax DIY121 - Como fazer seu próprio "do controlador PS3 SIXAXIS" estilo básico dispositivo USB programável!

Clique aqui para ver em Tela Cheia

Dispositivos USB são fáceis para os usuários a instalar e configurar (enquanto tudo está funcionando corretamente). Muitas vezes, basta conectar um dispositivo USB e ele funciona de imediato. Isto é especialmente verdadeiro para os dispositivos de entrada, como mouses e teclados.

Esses dispositivos estão em conformidade com a especificação em camadas em cima do protocolo USB: Dispositivo de interface humana. Quase qualquer tipo de entrada é possível definir; um descritor relatório inteiro "linguagem" é usado para dizer ao computador como processar a entrada. Isto não é muito simples de implementar; dezenas de pedidos específicos, devem ser tratadas adequadamente. Há muitas etapas entre conectar um dispositivo USB e ser capaz de usá-lo; todos estes ocorrem em alguns milissegundos e falha de uma etapa significa que o dispositivo não vai funcionar.

E se você não precisa se preocupar com nada disso? E se você pudesse utilizar o seu microcontrolador preferido, fazer "alguma coisa" ea entrada é exibida no computador no formato correto? Você não teria que se preocupar com o código USB complexo, especificações HID, ou quebrar o seu código de USB ao adicionar as outras funções que você precisa. Você não teria que se preocupar muito sobre como escrever código otimizado, ou sempre ficar no caminho de interrupções USB.

HID Portal

É exatamente isso que eu decidi fazer. Um par de anos atrás, eu desenvolvi um dispositivo USB e passou por todas as dores de cabeça de ficar um USB HID instalado e funcionando. Desde que eu já tinha feito o trabalho duro, eu decidi adicionar um método de receber dados de outro micro e usar esses dados como o fluxo de entrada para o código HID. Eu queria usar um BASIC Cubloc controlador programável para processar os meus dados de entrada e enviá-lo ao Portal HID. Minha aplicação de teste seria um acelerómetro baseado joystick HID, basta conectar o dispositivo no computador e ele vai trabalhar.

Ele não tem que ser um joystick, que poderia ser um teclado, um mouse, ou muitos outros controles definidos pelo padrão HID. É possível adicionar botões de controle de volume para um dispositivo ... talvez tenha um circuito de som do seu computador quando o telefone toca? Turn any voltage input into a joystick axis, any switch into a button? Tudo é possível!

Update: Eu decidi encolher o hardware CUBLOC até uma CB220, e tudo se encaixam em um modelo de avião. O modelo foi escolhido para coincidir com um avião disponível no Heroes of The Game Pacífico foi utilizado para testar a interface de joystick.

Hardware Explicação

O Portal HID é baseado em um projeto antigo meu, baseada em um microcontrolador MC68HC908JB8 e programados em linguagem assembly. Por razões de certeza de que não podem realmente liberar o código agora, mas há uma abundância de outros projectos USB lá fora, que poderia ser adaptada para esta finalidade. Há um código aberto implementação USB macio para o microcontrolador ATtiny, por exemplo.

Meu micro não tem embutido I2C ou SPI, assim que eu precisava para realizar um dos meus próprios. Eu também não têm pinos de interrupções disponíveis, ou seja, a minha solução precisava ser baseada em pesquisa. Quando tudo foi dito e feito e otimizado, eu não poderia detectar bordas mais rápido do que 16kHz. Isso é cerca de dez vezes mais lenta do que a saída de turnos disponíveis a partir do controlador CUBLOC, então eu não podia usar isso. Acabei escrevendo meu próprio deslocamento de saída de rotina em BASIC para obter os dados para o Portal HID. Isso poderia ser evitado pelo uso de um microcontrolador que tem SPI ou I2C construído no já, mas o JB8 é o que eu tinha na mão.

Eu uso três sinais para se comunicar com o controlador CUBLOC. Primeiro, há um sinal CLK. O Portal HID detecta uma borda de subida. Nesse ponto, ele lê o valor presente na linha de dados. Esta é deslocado em um registro até que um byte foi recebido, e os movimentos de código para o próximo byte. A / RST linha é uma maneira de sincronizar o início de cada pacote de dados, caso houvesse qualquer entrada espúrios; quando baixo ele define o pacote e os índices de bit para zero.

O Portal HID está programado para agir como um joystick, com três eixos e oito botões. Eu também testou-o como um teclado. No desenvolvimento futuro, eu gostaria de fazer o Portal HID mais flexível; deixar o controlador externo selecionar o tipo de dispositivo e quantos de cada entrada são necessários. Seria a mais flexível, se aceita diretamente descritores relatório HID, mas que abre a possibilidade de cometer mais erros e acabar com um dispositivo de não-trabalho.

O acelerómetro é DE-ACCM3D da Dimensão Engenharia. O CUBLOC simplesmente lê a tensão em seus portos ADIN e converte para um valor entre -127 e 127.

Continua na Próxima Página

Categoria

1 Star2 Stars3 Stars4 Stars5 Stars
Loading ... Carregando ...
  • Joe Brock
    Estou interessado no mesmo prédio / tipo de projeto semelhante. Foram fussing com VB.net, e não estou em tudo isso.
    Já não mexeram com pic's (microcontroladores) Como programa destes para porta USB ou é a parte já fez?
  • Phil
    Ei projeto awesome ....

    Você tihnk você poderia aplicar processo similar para permitir uma keyborad e configuração do mouse para trabalhar com jogos de PS3? O que eu estava pensando era se você sabia que a saída que o controlador envia, você oculd usar um programa de computador para simular um botão quando u apertou um botão no teclado. Isto é, quando eu pressionar a tecla enter no meu teclado, um programa envia o comando para o "start" para o PlayStation ... qualquer feedback / uma idéia de como poderia começar em um projeto como este?
  • Steve Ellis
    Acho que você está absolutamente incrível como posso entrar em contato com você que eu tenho algumas perguntas sobre um projeto que eu estou tentando iniciar que eu acho que você pode ser capaz de responder a meu email é ellis90002@gmail.com favor email mim se você estiver dispostas a responder a algumas perguntas
  • doesn'tmatter
    Eu vi HJM fidiling com a frente do avião com a mão esquerda durante todo o vídeo
  • max
    haha ...
  • bem.
    eu volto para ver amigo.
  • max
    hey, welcome back horisly! Será que os playoffs chegar a você? hehe ...
  • Napsey
    Oi, depois de bater o meu avião modelo bastante caro para a terceira e última vez que eu imaginei que era por causa dos controles minúsculo na caixa de controle de rádio que eu acho difícil de dominar com meus polegares desajeitado na minha idade. O que eu preciso é ser capaz de fazer algo como o encaixe de um joystick em um computador portátil e deixar o laptop unidade da aeronave modelo lá fora, no mundo real através do camarada conexão caixa. Eu também poderia então colocar uma pequena câmera de TV remoto no cockpit que pode retransmitir o sinal de vídeo ao computador portátil através de outra porta. Isso iria me ajudar a fazer o avião e me dê uma visão real do mundo, através do modelo. O próximo passo seria fazer o modelo com menos crashable dizer, um giroscópio helicóptero modelo instalado na fábrica, para que, deixando de lado os controles, o avião iria encontrar sua própria linha reta e nivelada. Será que este som exigência muito longe para buscar no quintal esquema das coisas?
  • andy
    hey eu tenho uma sp tubarão jogo com cabo USB e estava tentando rodar o Linux nele, mas o tubarão jogo é HID (me diga como é que funciona) e tudo que eu posso enviar com as fraudes é enganar programa! De qualquer forma eu possa editar os arquivos do flash no gameshark?
  • max
    Você pode querer enviar e-mail o perito HID Garrett em garrett@comfiletech.com
  • pertinência
    Oi ~
    DIY nice

    Posso fazer uma pergunta?
    PS3 controlador USB tamanho Endpoint é 32Byte?
    ou deveria usar 64Byte?
    Eu captura do pacote é de 64 bytes
    mas o seu parecer 32 byte pode ser trabalho??
  • M07
    uma vez bonito again.keep o bom trabalho.
  • Espero que eu posso fazer isso ..... :)
  • max
    sim o fazem! Eu nem sequer tentar ...
  • Wow this is great!
    Brilhante idéia, bem feito.
  • Clint Fishburne
    Awsome e é exatamente o que eu estava procurando. Posso comprar um montado?
blog comentários powered by Disqus

Featured Sites From Zedomax Blog Network