Skip to content
This repository has been archived by the owner on Oct 27, 2022. It is now read-only.

fga-eps-mds/2019.1-unbrake

Repository files navigation

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.

Equipe inicial

Abaixo estão informações sobre as pessoas que criaram e desenvolveram esse projeto em seu início. Mas qualquer um pode contribuir com o UnBrake 😃

Nome Github E-mail Matricula UnB
Gabriel Marques Tiveron @GabrielTiveron [email protected] 17/0103471
Ícaro Pires de Souza Aragão @icaropires [email protected] 15/0129815
João Robson Santos Martins @joaorobson [email protected] 15/0154003
Letícia Karla Soares Rodrigues de Araújo @leticiaarj [email protected] 15/0135039
Lucas Medeiros Rosa @medeiroslucas [email protected] 17/0039803
Tiago Miguel Caetano Da Silva @tmcstiago [email protected] 17/0046176
Victor Levi Peixoto @VictorLeviPeixoto [email protected] 17/0115208
Vinicius Ferreira Bernardo de Lima @ViniciusBernardo [email protected] 15/0151331

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.

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

Personalizando a aplicação

Se você quiser personalizar o UnBrake para ser executado do seu jeito, nosso guia de contribuição tem instruções de como subir/compilar cada um dos módulos. Cheque as seções Subindo parte Web localmente para a parte Web da aplicação e o script compile para o módulo local.

Se ainda restarem dúvidas, abra uma issue. Responderemos o quanto antes!

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.