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

















































