fga-eps-mds / 2019.1-unbrake

A software to control the steps in configuration, calibration, simulation e viewing of results from braking simulator that is in UnB - FGA shed.
https://fga-eps-mds.github.io/2019.1-unbrake/
MIT License
5 stars 1 forks source link
concurrency cross-compile cross-platform distributed-systems django django2 full-stack golang graphql iot javascript messaging mqtt python react reactjs real-time realtime

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](https://github.com/braketestbench/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](https://github.com/fga-eps-mds/2019.1-unbrake#como-contribuir) com o UnBrake :smiley: | Nome | Github | E-mail | Matricula UnB | | :--------------------: | :-------------: | :-----------------------: | :--------: | |Gabriel Marques Tiveron | [@GabrielTiveron](https://github.com/GabrielTiveron) | gabrielmtiveron@gmail.com | 17/0103471 | |Ícaro Pires de Souza Aragão | [@icaropires](https://github.com/icaropires) | icaropsa@gmail.com | 15/0129815 | |João Robson Santos Martins | [@joaorobson](https://github.com/joaorobson) | joaorobsonmartins@gmail.com | 15/0154003 | |Letícia Karla Soares Rodrigues de Araújo | [@leticiaarj](https://github.com/leticiaarj) | leticiards.04@gmail.com | 15/0135039 | |Lucas Medeiros Rosa | [@medeiroslucas](https://github.com/medeiroslucas) | medeirosrosalucas@gmail.com | 17/0039803 | |Tiago Miguel Caetano Da Silva | [@tmcstiago](https://github.com/tmcstiago) | Tmcstiago@gmail.com | 17/0046176 | |Victor Levi Peixoto | [@VictorLeviPeixoto](https://github.com/VictorLeviPeixoto) | victorlevipeixoto@gmail.com | 17/0115208 | |Vinicius Ferreira Bernardo de Lima | [@ViniciusBernardo](https://github.com/ViniciusBernardo) | vfbdelima@gmail.com | 15/0151331 | ## Utilizando a aplicação Execute o binário (checar [releases](https://github.com/fga-eps-mds/2019.1-unbrake/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](#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) ### 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: ``` json { "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](CONTRIBUTING.md) tem instruções de como subir/compilar cada um dos módulos. Cheque as seções [Subindo parte Web localmente](https://github.com/fga-eps-mds/2019.1-unbrake/blob/master/CONTRIBUTING.md#subindo-parte-web-localmente) para a parte Web da aplicação e o script [compile](https://github.com/fga-eps-mds/2019.1-unbrake/blob/master/CONTRIBUTING.md#scripts-dispon%C3%ADveis-local) para o módulo local. Se ainda restarem dúvidas, [abra uma issue](https://github.com/fga-eps-mds/2019.1-unbrake/issues/new/choose). 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: ``` sh 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 ``` sh $ 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 ``` sh # 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](https://www.arduino.cc/en/Guide/Linux)
Minha placa não é reconhecida pelo meu Sistema Operacional
**Solução:** Consulte [aqui](https://www.arduino.cc/en/Guide/HomePage)
## Como contribuir Contribuições ao nosso projeto são muito bem vindas! Cheque nosso [guia de contribuição](CONTRIBUTING.md) para mais informações. ### Licença

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

   Logo criada por Freepik.