Criando uma telemetria e conectando em tempo real o Power BI ao jogo Assetto Corsa

Criando uma telemetria e conectando em tempo real o Power BI ao jogo Assetto Corsa

A principal ideia desse artigo é ensinar como podemos utilizar esse mesmo exemplo para diversas aplicações diferentes, principalmente para usos de sensores embarcados (IOT).

Utilizei o Simulador de Corridas Assetto Corsa para demostrar o que seria um exemplo de Telemetria das informações importantes de um carro de F1 em uma volta em Interlagos, tudo isso em tempo real e com o Power BI.

Quase senão todo programa de computador em sua programação possui variáveis e essas variáveis em grande maioria ficam armazenas na memória RAM do computador em tempo de execução ( com mais detalhes : Ponteiros e Memória ), como esses programas rodam em nosso computador, eles utilizam recursos da nossa máquina para rodar como nossa memória RAM para armazenar essas variáveis, com conhecimentos de programação podemos ler e manipular os endereços da memória do nosso computador e com isso ver e editar o conteúdo dessas variáveis, essa prática se chama Engenharia Reversa (Assim que a galera faz Cheats par jogos, o Cheat Engine é um bom exemplo do que estou falando).

-Tá Tadeu, você explicou e explicou mas o que isso tem haver com o meu relatório do Power BI?

-Calma, eu vou explicar…

Para obter os dados da memória do Jogo eu utilizei uma biblioteca pronta que fazia isso para mim. Eu até estava conseguindo extrair tudo sozinho com Python, mas por sorte assistindo esse Vídeo no Youtube que mostrava o uso do Arduino com o jogo para um lcd, onde encontrei essa Documentação e a biblioteca em C#, onde ela fazia a leitura da memória do Jogo e me entregava as informações em três eventos : Physics, Graphic e Static Info. No meu exemplo eu utilizei os eventos de Physics que me retornava informações do Carro e Graphic para informações de tempo de volta. Com isso no meu programa feito em C# eu montei as requisições para a API de Streaming do Power BI com as informações do jogo, e com isso acabei montando dois datasets, um para as voltas e outro para as informações do carro e no final crei um Painel no Power BI que consumia esses dois datasets em tempo real.

O tutorial e código utilizado para esse exemplo eu vou disponibilizar no meu GitHub

https://github.com/3t1n/AssetoPBI

Você pode aplicar essa mesma ideia para vários cenários diferentes, utilizando sensores e IOT ou mesmo outras aplicações que não possuem uma API oficial para extrair dados.

Referências:

https://github.com/mdjarv/assettocorsasharedmemory

https://github.com/3t1n/AssetoPBI

Deixe uma resposta