2019.1-unbrake

module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 25, 2019 License: MIT

README

UnBrake

GoDoc

UnBrake

» Mais informações

Sobre o projeto

UnBrake é um software que controla de forma remota a configuração, calibração e visualização de ensaios de aceleração e frenagem. O controle do hardware é realizado através de um firmware, desenvolvido pelo ex-aluno João Guimarães, que foi gravado em um arduíno Leornardo para controlar o simulador de frenagem. O UnBrake será utilizado por alunos e professores do curso de Engenharia Automotiva da UnB - Campus Gama.

O software é dividido em três partes, parte local, API e frontend.

A parte local foi realizada utilizando Golang. E é responsável por receber as configurações do ensaio, coletar os dados produzidos pelos sensores do simulador e por fornecê-los em stream para o frontend.

A API foi feita utilizando Django, ela recebe os arquivos de configuração, os relaciona com os ensaios, armazena e realiza a autenticação dos usuários.

O frontend, que foi gerado utilizando React JS, permite que o usuário configure e calibre o ensaio.

Utilizando a aplicação

Execute o binário (checar releases) e acesse a interface da aplicação em https://unbrake.ml ou algum servidor local.

Se o binário estiver em execução, será adicionado um ícone na área de notificações do seu sistema operacional, pelo qual é possível interagir com a aplicação.

  • A aplicação não deve ser executada como root (administrador)!

Problemas com a execução? Consulte o troubleshooting

Interagindo com o módulo local

A aplicação irá iniciar e ficará esperando pela seleção de porta por parte do usuário. No Windows serão listadas todas as portas seriais e no linux apenas as que baterem com o seguinte padrão /dev/ttyACM* (é o padrão de nome dado pelo Linux ao arduíno leonardo).

Se desejar utilizar uma porta não listada, você pode fazer isso via configuração

Configuração do módulo local

As configurações podem ser feitas via arquivo de configuração e/ou variáveis de ambiente.

O arquivo de configuração deve ser criado com o nome config.json em ~/UnBrake no Linux e em %APPDATA%/UnBrake no Windows.

Exemplo de arquivo de configuração:

{
    "serialPort": "/dev/ttyACM0",
    "mqttHost": "unbrake.ml",
    "mqttPort": "8080",
    "mqttKey": "minhachavecompermissãodeescrita",
    "mqttChannelPrefix": "unbrake/galpao"
}
  • serialPort: nome/caminho da porta serial em que a placa está conectada. Ex: /dev/ttyACM0, COM1.
  • mqttHost: host do MQTT broker que será utilizado na comunicação
  • mqttPort: porta na qual o MQTT broker está escutando
  • mqttKey: chave do MQTT broker (emitter-io utilizado)
  • mqttChannelPrefix: todos os canais do MQTT terão esse prefixo. Útil para lidar com vários dispositivos em paralelo.

Todos esses parâmetros também podem ser configurados através de variáveis de ambiente apenas fazendo a alteração do nome do parâmetro de camelcase para snake case e em caixa alta. Ex: serialPort se torna SERIAL_PORT.

As variáveis de ambiente tem precedência sobre o arquivo de configuração. Caso a variável de ambiente não seja setada e nem haja arquivo de configuração, serão usadas valores default onde possível.

Todos esses parâmetros também podem ser configurados através de variáveis de ambiente apenas fazendo a alteração do nome do parâmetro de camelcase para snake case e em caixa alta. Ex: serialPort se torna SERIAL_PORT.

As variáveis de ambiente tem precedência sobre o arquivo de configuração. Caso a variável de ambiente não seja setada e nem haja arquivo de configuração, serão usadas valores default onde possível.

Logs

Todo o funcionamento da aplicação é registrado em arquivos de log. No Linux eles são atualmente gravados em ~/UnBrake/logs, já no Windows em %APPDATA%/UnBrake/logs

Troubleshooting
Problemas com a parte local

Antes de analisar as seguintes opções cheque o log para ter mais informações.

Não tenho permissão nem de executar o binário

Solução (Linux): Provavelmente o binário está sem permissão de execução. Comando:

chmod +x unbrake
Arquivo de log não aparece no lugar especificado

Solução (Linux): Executar sem sudo

Log informa que tentou abrir arquivo que não foi encontrado

Solução (Linux): Você especificou o arquivo certo que referencia a placa? Ex: /dev/ttyACM0

Log informa que não tenho permissões para abrir um arquivo

Solução (Linux):

  • Verifique a qual grupo o arquivo que representa sua placa pertence
$ ls -l /dev/ttyACM0
crw-rw---- 1 root dialout 188, 0 5 apr 23.01 ttyACM0 # Saída

Nesse exemplo o arquivo pertence ao grupo dialout (No meu ambiente é uucp ao invés dialout)

  • Adicione seu usuário ao grupo encontrado
# Trocar 'dialout' pelo grupo encontrado no comando anterior!
sudo usermod -a $USER -G dialout
  • Faça logout e login novamente no seu usuário para as alterações funionarem!!! (reiniciar também funciona)

OBS: Esses passos não precisam ser executados sempre, apenas uma vez

Mais detalhes podem ser encontrados aqui

Minha placa não é reconhecida pelo meu Sistema Operacional

Solução: Consulte aqui

Como contribuir

Contribuições ao nosso projeto são muito bem vindas! Cheque nosso guia de contribuição para mais informações.

Licença

   O UnBrake é distribuído sob a licença MIT disponível aqui.

   Logo criada por Freepik.

Directories

Path Synopsis
Generates a self contained binary application which reads data from a serial connection (was developed thinking on arduíno via USB) and send it through network.
Generates a self contained binary application which reads data from a serial connection (was developed thinking on arduíno via USB) and send it through network.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL