💻 Command-line interface
🔍 O que é?
A CLI (Command Line Interface) é uma forma de interação entre o usuário e o sistema através de comandos de texto. Ao contrário das interfaces gráficas (GUI), onde a interação é feita por meio de botões, janelas e ícones visuais, a CLI permite que o usuário execute operações digitando comandos diretamente no terminal.
Essa abordagem é amplamente utilizada por desenvolvedores devido à sua flexibilidade, rapidez e capacidade de automação. Com a CLI, é possível acessar funcionalidades avançadas, executar scripts e realizar tarefas em massa com eficiência, tornando ela uma ferramenta essencial em diversos ambientes de desenvolvimento e infraestrutura.
🎯 Impacto no projeto?
No Prescript, o uso da CLI impacta diretamente os desenvolvimentos iniciais do código para o robô utilizado, sendo possível, por meio dela, movimentar o braço robótico, gravar posições, realizar testes nos periféricos e até mesmo criar sequências de movimentações, de modo geral é uma exclente ferramenta para os otimizar os primeiros passos do sistema que está sendo desenvolvido.
🏗 Arquitetura em nosso projeto:
No esquema atual de organização do projeto nós possuímos 3 arquivos responsáveis pelo funcionamento adequado da CLI, sendo eles: cli.py
, dobotController.py
e positions.py
, isso sem contar o arquivo config.json
que é responsável por armazenar valores importantes para o código.
CLI
Esse arquivo é o cérebro da CLI
, É por meio dele que todas as movimentações e comandos são processados para depois serem enviados ao controller.
Controller
O controller
é um arquivo que possui todas as funções base para controle e leitura de sensores presentes no robô, com ele somos capazes de:
- Nos conectar e desconectar ao robô;
- Receber as informações das posições atuais de seus eixos e juntas;
- Modificar sua velocidade de movimento;
- Realizar movimentações dos seus eixos de forma linear ou por meio das juntas;
- Enviá-lo para uma posição padrão denominada "home";
- Ativar e desativar o mecanismo de sucção;
Positions
O arquivo de positions
é um facilitador e possui algumas funções dentro de sí que nos permitem exportar as posições do robô no formato .json
e também realizar a leitura de arquivos no mesmo formato para informar quais movimentações o robô deve fazer.
Config
Por fim, o arquivo config.json
é responsável por armazenar posições pré-definidas para a movimentação do robô, é nele que salvamos a "home", as posições de cada bin
, as múltiplas posições para a entrega dos medicamentos e as informações sobre qual tipo de movimento deve ser feito em cada momento e quando acionar a sucção ou não.
⌨️ Execução
Para executar a CLI basta ter o python instalado em sua máquina, por meio de um terminal acessar a pasta src
na raiz do repositório e executar os seguintes comandos para configurar seu ambiente:
python3 -m venv (nome para sua venv)
-> Cria um ambiente virtual para instalar as bibliotecas.;source /(nome da sua venv)/bin/activate
(se estiver usando uma distribuição Linux ou macOs) ou/(nome da sua venv)/Scripts/Activate
(caso esteja utilizando Windows) -> Comando para ativar o ambiente virtual.;pip install -r requirements.txt
-> Para baixar todas as bibliotecas necessárias para o funcionamento do projeto;
Após o ambiente ser configurado basta executar o comando python3 cli.py --help
para ver as funções da CLI e começar a operar o robô.