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)
Código: Selecionar todos
# Drive using the trigger inputs.
brake, acceleration = controller.triggers()
car.drive_power((100 - acceleration)*(100/31) - (100 - brake)*(100/14))
O resultado não é mau, até parece que sei conduzir:
Algumas fotos da traquitana:




A direção está uma bela treta mas funciona, pode ser que a consiga melhorar na próxima semana para a mostrar em Oeiras.