rubensalexsander / artificial-horizon-py

Biblioteca que cria horizonte artificial para projetos em Python.
1 stars 0 forks source link
aviation pygame python robotics tkinter

artificial-horizon-py

Biblioteca que cria horizonte artificial para projetos em Python.

Passos:

Idéia básica da biblioteca:

horizon = ArtificialHorizon(vortex, size)

(vortex:Ponto central do instrumento, size: Tamanho do instrumento)

Atributo tk_canvas: Recebe um objeto do tipo "Canvas", da biblioteca Tkinter, em que escreve o horizonte automaticamente quando o método "horizon.update()" é chamado.

Atributo pygame_display: Recebe um objeto do tipo "pygame.display", da biblioteca Pygame, em que escreve o horizonte automaticamente quando o método "horizon.update()" é chamado.

horizon_lines = horizon.update(angle_value)

"horizon_lines" será uma array que contém outras arrays que são linhas que devem ser desenhadas na tela fazendo um loop for.

horizon_lines[0] -> [ponto1, ponto2]

Uma linha pode ser definida por 2 pontos.

horizon_lines[0][0] -> [10, 20] (Valores hipotéticos de um dos pontos da linha)

Caso já tenha passado o atributo tk_canvas ou pygame_display, não será nessessário armazenar as linhas na variável "horizon_lines":

horizon.update(angle_value)

Imagens de referância para o modelo do projeto (serão reproduzidas apenas as informações de giroscópio):

ha1

ha3

Resultados:

Screencast from 2023-03-10 11-31-47.webm

Adicionado blur na atualização do ângulo que deixa a atualização mais suave.

Adicionado text que descreve o ângulo do objeto.

Outras modificações

Screencast from 2023-03-10 23-19-02.webm

O horizonte no resultado foi utilizado em um projeto de robótica privado que monitora sensores de um arduino pela porta serial e utiliza C++.

Adicionado eixo x.

Screencast from 2023-03-13 18-05-19.webm