Controlando carros LEGO com pedais e direção com XAC

Para os mais especializados em mecânica e electrónica em LEGO.
Responder
Avatar do Utilizador
CyberX
Sócio
Sócio
Mensagens: 4335
Registado: 10 mar 2014, 20:09
Localização: Mira Sintra
Contacto:

Controlando carros LEGO com pedais e direção com XAC

Mensagem por CyberX »

Há relativamente pouco tempo o projecto Pybricks adicionou suporte ao gamepad da Xbox o que levantou algumas ondas já que é muito mais fácil usar um gamepad para conduzir um set LEGO do que um smartphone. Além disso como o gamepad tem um número bastante considerável de botões o controlo de coisas como gruas ou outros modelos mais complexos fica mais facilitado.

Eu tenho há algum tempo um XAC (Xbox Adaptive Controller) que implementa os mesmos controlos do gamepad tradicional mas associados a dispositivos mais orientados para utilizadores com necessidades especiais (por exemplo microswitches que permitem o controlo com o queixo ou sensores de pressão que permitem o controlo com a pressão dos maxilares).

Também tenho interruptores de pedal, microswitches e mais algumas traquitanas de electrónica.

Foi só necessário um update de firmware da Microsoft que implementa BT BLE no XAC para conseguir emparelhá-lo com um hub a correr pybricks e eles já têm no site um script para controlo de carros Technic, inclusive para o Audi RS Q e-tron.

Este script usa os botões "left trigger" e "right trigger" do gamepad para controlar o travão/acelerador (na verdade a velocidade, de um máximo positivo a um mínimo negativo) e o joystick esquerdo para controlar a direção. Na XAC isso corresponde às fichas LT, RT e X1 por isso foi aí que liguei as minhas traquitanas.

A primeira tentativa não correu bem como eu esperava - os "trigger" da Xbox são analógicos e os meus pedais são meros interruptores portanto apenas consegui valores extremos (para a frente ou para trás à máxima velocidade e parado). Mas encontrei na Egitana (uma loja de artigos musicais) pedais analógicos bastante mais baratos que os das lojas de artigos para electrónica (e das lojas de jogos nem se fala).

Estes pedais funcionam mas infelizmente nem dão a gama toda de valores nem são consistentes, cada um deles dando valores um pouco diferentes, mesmo ajustando o botão incluído. Por isso tive de adaptar uma linha de código, mudando:

Código: Selecionar todos

    # Drive using the trigger inputs.
    brake, acceleration = controller.triggers()
    car.drive_power(acceleration - brake)
para

Código: Selecionar todos

    # Drive using the trigger inputs.
    brake, acceleration = controller.triggers()
    car.drive_power((100 - acceleration)*(100/31) - (100 - brake)*(100/14))
Para a direção já correu melhor, um potenciómetro linear deu a gama completa de valores, colocando-o a meio fica a direção "neutra". Foi só uma questão de usar duas tábuas que tinha praí, algumas ferragens e meia dúzia de peças Technic para fazer uma direção ghetto e algumas peças Technic.

O resultado não é mau, até parece que sei conduzir:


Algumas fotos da traquitana:

Imagem

Imagem

Imagem

Imagem

A direção está uma bela treta mas funciona, pode ser que a consiga melhorar na próxima semana para a mostrar em Oeiras.
Jorge Pereira
«De génio, criança e louco... porquê só 1 pouco?»
Avatar do Utilizador
JMCampos
Sócio
Sócio
Mensagens: 3269
Registado: 08 jul 2007, 21:26
Localização: Amadora
Contacto:

Re: Controlando carros LEGO com pedais e direção com XAC

Mensagem por JMCampos »

Muito bom, mais uma excelente e bem conseguida surpresa tecnológica do nosso Jorge 'Doc Brown' Pereira! :clapping: :clapping: :clapping:
#EuCáNãoUsoHashtags
Responder