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.
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 | 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 |
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
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
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.
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
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!
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
Contribuições ao nosso projeto são muito bem vindas! Cheque nosso guia de contribuição para mais informações.
O UnBrake é distribuído sob a licença MIT disponível aqui.
Logo criada por Freepik.