Voo Virtual
Olá, seja bem-vindo(a) ao Voo Virtual. Caso ainda não seja membro da nossa comunidade, registre-se, para que possa participar ativamente e ter acesso a todos os conteúdos do site.
Por favor leia as regras do fórum aqui antes de postar, para evitar advertências e suspensão.


MMJoy2 controlador USB Gse_multipart13851

MMJoy2 controlador USB

Ir em baixo

MMJoy2 controlador USB Empty MMJoy2 controlador USB

Mensagem por 1lokoS em Qua 03 Ago 2016, 22:17

Saudações comandantes virtuais.

Tempos atrás abri um tópico aqui sobre uma atualização para o antigo Mjoy8/Mjoy16 para MMJoy com o firmware desenvolvido pelo Mega_MOZG a partir do original "Mjoy".
Como já a algum tempo o Mega_MOZG desenvolveu o firmware MMjoy2 para placas Arduino, atualmente bem acessíveis, e não achei informação aqui pelo pesquisar, vou postar o que sei a respeito.

O que é MMJoy2? Um firmware para criar um controlador de joystick USB, gratuito para uso não comercial conforme a licença GNU.

Precisará montar placa como o Mjoy/MMJoy?

Não, embora seja possível, a opção de montar (corroer PCB, soldar componentes) não é mais economicamente interessante, basta comprar um Arduino PRO Micro, original ou clone Chinês -  este por cerca de 5 dolares no eBay/Aliexpress - ou Teensy 2.0. Exemplos:

Teensy 2.0

MMJoy2 controlador USB Teensy_2
https://www.pjrc.com/store/teensy.html

Sparkfun PRO Micro:

MMJoy2 controlador USB 12640-01a
https://www.sparkfun.com/products/12640

Arduino PRO Micro clone - Atenção que deve ser com o microcontrolador ATMEGA32u4, voltagem 5V, 16 MHZ.
Alguns anúncios no Ebay/Aliexpress enganam passando ATMEGA328 como PRO Micro.

MMJoy2 controlador USB Arduino_PRO_Microimage hosting 10mb limit

http://www.ebay.com/itm/New-Pro-Micro-ATmega32U4-5V-16MHz-Replace-ATmega328-Arduino-Pro-Mini-new-/261809188156?hash=item3cf50b2d3c:g:GjMAAOSwrklVHUgv

Este modêlo do anúncio é interessante por usar conector USB Mini e não Micro, com quatro pontos de solda do PCB, portando mais resistente.

Estes modelos são as placas mais acessíveis, outros modelos de placas Arduino compatíveis nestes links de tópico similar no SimHQ.

http://simhq.com/forum/ubbthreads.php/topics/3994326/Re:_MMJoy_-_Build_your_own_USB#Post3994326
http://simhq.com/forum/ubbthreads.php/topics/3954366/Re:_MMJoy_-_Build_your_own_USB#Post3954366

Placas Arduino maiores/mais caras não tornam o MMjoy2 melhor, apenas mais flexível para conexões, vide comentário sobre pinos de conexão do PRO Micro abaixo.

Percebe-se que para usar estas placas o usuário precisa saber fazer soldas e ter ferramentas adequadas, já que os pinos de conexão não vem soldados (opcional na Teensy), aliás isso é requisito mínimo para se utilizar um "controlador de joystick", pois será preciso soldar cabos em potenciometros, botões... e ligar no controlador para fazer uso prático dele.  wink

Adquirindo a placa Arduino precisará de um cabo com tomada USB Mini ou Micro - conforme o modelo da placa que comprar - e tomada USB A normal para conectar no computador. Vide eBay, M.Livre, lojas de informática/celulares - cabo USB micro para celular não serve, a tomada é diferente (cantos arredondados).

Firmware: baixar o pacote MMjoy2 do link, o mais atual é MMJOY2 [v20151118].rar

https://sites.google.com/site/mmjoyproject/fajly-dla-skacivania

Este pacote contém:

"MMJoySetup" - programa de gravação/atualização de firmware e configuração do joystick - mais sobre esta configuração abaixo.
"MMJoyLEDControl" - programa para controle de LED's - atualmente é compatível apenas com o War Thunder - preferido do autor.  cool  
"Pictures" - pasta com fotos com dicas para conexão de diversos controles conhecidos.
"PCB" - pasta com diversos layout de PCB  - em SprintLayout 6.0 - para confecção placas auxiliares, exemplo de conexão que poderão ser opcionalmente usadas.
"Drivers" - pasta com drivers necessários para instalar a porta COM do Arduino no Windows, possibilitando a gravação do firmware.
"Firmware" - pasta com fimware, atenção para selecionar o correto, no caso das placas acima o ATMEGA43u4.
"JoyLoader_arduino" / "JoyLoader_atmeldfu" / "JoyLoader_teensy2" - pastas com programas flash, não é necessário acionar manualmente, são usadas pelo JoySetup.
"Tools" - pasta com diversos utiliários de teste/calibração de joystick.

Caracteristcas do MMjoy2:

USB 2.0 - taxa de atualização de até 1000 pacotes por segundo, configuráveis pelo usuário.

Possibilidade definição pelo usuário de números de VID/PID/Nome do "joystick" - facilitando usar vários MMjoy2 num mesmo computador sem conflitos.

Entradas: até 8 eixos e até 128 botões.

Eixos no modo analógico (variação de voltagem) pode usar: potenciometro, HALL sensor, sensor de resistencia magnética.

Resolução: 10 bits (1024 pontos) usando o conversor ADC integrado no ATMEGA32u4, 12 bits (4096 pontos) usando um conversor ADC externo como o MCP3201, 3202, 3204, 3208 (o último dígito indica a quantidade de eixos suportados).

Eixos no modo digital (código binário) podem usar: sensor de resistência magnética TLE5010/5011, KMA200, KMZ60 + MCP3202 em 12 bits (4096 pontos).

Funções disponíveis para os eixos: calibração, inversão, filtro reduzindo ruídos, deadzones, curva de resposta, zoom (menos) no eixo, axis2button (pressionar botão usando o eixo).

Conexão disponiveis para os botões: através de matriz de diodos ou circuito Shift Register 74HC165, HEF4021B (este é usado nos grip dos joysticks Thrustmaster F16FLCS, FD22PRO, Cougar, Warthog, Cobra M-5).

Funções para os botões: PoV HAT (camera), chave de alavanca (toggle switches), encoder rotativo,  chaves momentânea (soft toggle), função "shift".

Dispositivo composto: emulação de mouse e algumas funções de teclado.

Saida de LED's: suporta as fitas de LED  WS2811/2812 RGB 20 ou o LCD MAX7219 - funções limitadas ao War Thunder. Note-se que além deste suporte limitado ao War Thunder o MMjoy2 não é uma placa I/O como Open Cockpits, sua meta é ser um "controlador de joystick" apenas.

Observações: O uso de até 128 botões depende da disponibilidade de pinos na placa Arduino utilizada, a PRO Micro faz juz ao none, é bem pequena por isso tem limitado número de pinos, sendo prática para:

6 eixos
32 botões + HAT (matrix 6 x6) - O que é o suporte básico do Windows para joystick, para usar botões acima disso precisará usar keymapers (Joy2Key, Xpadder, SVMapper...)

MMJoy2 controlador USB PRO_Microcapture screen

Pode-se usar mais 2 eixos usando um ADC externo para entradas de eixos, ex. MPC3208 e mais botões do que 36 usando circuitos Shift Register ligados em cadeia.

Tutorial em Português para a instalação dos drivers da porta COM e a gravação do firmware no Arduino PRO Micro, o que é feito usando o próprio cabo de conexão USB e o programa JoySetup, sendo simples como gravar um DVD.  Download do tutorial: http://www.gavca.com/phpBB3/download/file.php?id=183

MMJoy2 controlador USB Firmwareimage ru

Tópicos relacionados em outros foruns com dicas e exemplos, problemas e soluções:

http://www.gavca.com/phpBB3/viewtopic.php?f=49&t=22542&start=105

http://simhq.com/forum/ubbthreads.php/topics/3899105/1

http://forums.eagle.ru/showthread.php?t=120049

http://forum.il2sturmovik.ru/topic/2668-mmjoy2-i-cobram5/

http://forum.warthunder.ru/index.php?/topic/64234-mjoy-mjoy8-mjoy16-mmjoy/&page=1

https://forum.warthunder.ru/index.php?/topic/147338-polushturval-alia-spitfaer/

Diferente dos antigos MJoy8/16, em que se criava um controlador de joystick com um número fixo de eixos e botões, no MMjoy2 isso é configurável pelo usuário, permitindo definir quantos eixos e botões quiser - dentro dos limites do firmware.

Por exemplo, quer atualizar para USB um antigo pedal de leme gameporte CH Products, configure o MMjoy2 para 3 eixos e 0 botões.

MMJoy2 controlador USB CH_HALLadult image
CH Pedal modernizado para USB com Arduino PRO Micro+MMJoy2, HALL sensor nos eixos do leme e freios.

No mercado nacional atualmente encontra-se por um preço razoável ~77$ (mas caro em relação ao exterior) o Joystick Speedlink - que é distribuidora de hardware, não fabrica nada, compra produtos OEM na China e vende com sua marca, assim como fazem Clone, Leaderhip, aliás este mesmo joystick já foi vendido com as marcas Trust e Clone - Phantom Hawk que tem o diferencial de usar um grip com dois HAT's e botão "shift" possibilitando ter mais funções, porém a sua eletrônica é a básica deste tipo de josytick, controlador USB e potenciometros o mais baratos possíveis.

Assim quando der problema remova a eletrônica e instale um MMjoy2, transforme os potenciometros em sensor HALL:

MMJoy2 controlador USB Full-37484-99347-dscf5844

Potênciometro típico de joystick barato, seja de marca tradicional (Thrustmaster, Saitek, Logitech) ou genérica (Clones, Lederships, Speedlinks...) transformado para sensor HALL com imã de neódimio e sensor HALL (Honeywell SS495A1 ou Allegro A1324EUAT).

Ou instale um "sensor de resistência magnética" TLE5010/11:

MMJoy2 controlador USB Magnet

MMJoy2 controlador USB Cobra_M5image hosting over 5mb
TLE5010 sendo instalados no gimbal (cardâ) de um Cobra M-5 (sem "parentesco" com o famigerado e de má lembrança Clone Cobra), que em versões anteriores usava eletrônica VKB, mas na versão atual mudou para a eletronica  genérica "baratinha" comum a joysticks OEM, o que justifica a sua substituição pelo MMjoy2, já que este joystick tem uma funcionabilidade acima da média do que os de preço similar.

Exemplo de um joystick gameporte antigo Thrustmaster FCS Mk.I (anterior ao Top Gun), transformado para USB com a instalação de um Arduino+MMjoy2 e usando os potenciometros originais - joysticks da epóca gameporte em geral tem potenciometros melhores do que os usados nos modelos atuais. Conversão bem simples.

MMJoy2 controlador USB 1dj53

MMJoy2 controlador USB Qp2gdv

Quadrante multi-eixos "Faça você mesmo" com  Teensy++2.0+MMjoy2, sensores TLE5011, eixos das alavancas com rolamentos, manoplas impressas em impressora 3D, caixa plástica com adesivo imitando "carbon fiber".

MMJoy2 controlador USB Con_TROLLercapture

Esta imagem de um anúncio* de MMJoy2 no Taobao mostra bem o que é possível conectar num MMjoy2.

MMJoy2 controlador USB MMjoy2
Neste anúncio o Arduino esta sobre uma placa de conexões, o que facilita plugar sensores e chaves/botões.
As placas externas com 4 chips são "Shift Register", cada uma controla até 32 botões/chaves/encoders.

* Tal comercialização vai contra a licensa GNU de uso de software livre, mas China é China. Smile

Nos foruns linkados acima tem mais exemplos.

1lokoS
Segundo-Tenente
Segundo-Tenente

Masculino
Inscrito em : 01/10/2013
Mensagens : 43
Reputação : 5
Idade : 63
Nacionalidade : Brasil

Voltar ao Topo Ir em baixo

MMJoy2 controlador USB Empty Re: MMJoy2 controlador USB

Mensagem por 1lokoS em Seg 08 Ago 2016, 13:20

Novo firmware Beta MMJoy2 disponível:

MMJOY2[20160812]

Mudanças:


1) Removida a emulação de mouse e teclado, o que acelerera a resposta do firmware e reduz o trabalho do controlador, considerada de pouco uso.
2) Suporte para botões aumentato para 128. Funções especiais para botões (Encoder, Toggle Switches, Timers, etc) estão disponíveis apenas para os  botões 1 a 32, acima disso os botões funcionarão como botões momentâneos simples.
3) Otimizado o protocolo de comunicação do sensor TLE5011, reduzindo o tempo em 30%.
4) Otimizado o protocolo de leitura de Shift Register - controlador de botões externo, opção à matrix de diodos.
5) Otimizado a precisão do calcúlo matemático para o TLE5011, agora é 40.000 pontos num ângulo de 360 graus (antes era 21.000), removido a "auto-sincronia" com o imã (se o curso do eixo ultrapassar 40.000, sera exibido um aviso, "fora do campo do imã). Na prática o TLE agora tem 40.000 pontos de resolução (cerca de 15 bits) em 360 graus de rotação do imã, ou cerca de 111 pontos de resolução por grau. (1)
6) Adicionada o opção para uso de chave toggle switch NC (Normally closed) - contatos fechados na posição OFF:

MMJoy2 controlador USB Full-37484-125226-mmjoy_beta_btn

7) Adicionada "sincronização" para aceleradores (throttle) duplos, que ativada por botão, copia a leitura do primeiro eixo para o segundo, fazendo os motores responder 100% iguais. (2)

(1) Um típico gimbal (cardã) de joystick move cerca de 20+20 graus, então na prática se consegue ~4.400 pontos de resolução com o TLE5011, mais ou menos 12 bits.

(2) Essa sincronização de eixos é usada no throttle X-55/56, quando as manetes estão travadas juntas um sensor ótico é ativado e faz com que os dois motores respondam à leitura do primeiro eixo, assim a aceleração ou desacelerção dos motores é igual.

1lokoS
Segundo-Tenente
Segundo-Tenente

Masculino
Inscrito em : 01/10/2013
Mensagens : 43
Reputação : 5
Idade : 63
Nacionalidade : Brasil

Voltar ao Topo Ir em baixo

MMJoy2 controlador USB Empty Re: MMJoy2 controlador USB

Mensagem por 1lokoS em Sab 29 Out 2016, 14:37

Um exemplo de uso do MMjoy2 para modernizar equipamentos antigos - de gameporte - da CH Products para USB a um baixo custo e umas tantas soldagens.  thumbsup
O joystick - que estava com o "pescoço" quebrado - custou coisa de R$ 60,00 no M.Livre.

MMJoy2 controlador USB 20161016_215341

http://www.gavca.com/phpBB3/viewtopic.php?f=49&t=24079

O resultado, um conjunto melhor que qualquer Logitech, Saitek, Thrustmaster "entry-level" de baixo custo (lá fora, porque aqui...  pinch  )

1lokoS
Segundo-Tenente
Segundo-Tenente

Masculino
Inscrito em : 01/10/2013
Mensagens : 43
Reputação : 5
Idade : 63
Nacionalidade : Brasil

Voltar ao Topo Ir em baixo

MMJoy2 controlador USB Empty Re: MMJoy2 controlador USB

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum