Rover: mudanças entre as edições

De Caninos Loucos
Ir para navegação Ir para pesquisar
Add seção código fonte.
Sem resumo de edição
 
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 27: Linha 27:
*gunicorn 21.2.0.
*gunicorn 21.2.0.


Recomenda-se o uso de um arquivo '''requirements.txt''' para as bibliotecas.
Recomenda-se o uso de um arquivo '''requirements.txt''' para as bibliotecas. Vale ressaltar que as aplicações desse projeto adotam o uso do arquivo '''requirements.txt'''.


= Código fonte =
= Código fonte =
Linha 33: Linha 33:
Há duas bases de código para o Rover. Uma delas é uma aplicação web, que roda em um servidor (computador) e atua como uma interface entre o usuário e o Rover. A aplicação apresenta uma página web onde os usuários utilizam o teclado para emitir comandos de movimento para o Rover. Vale ressaltar que essa aplicação não movimenta o carrinho diretamente; ela apenas captura e emite eventos. A movimentação do carrinho ocorre através do interpretador de movimentos, que será apresentado a seguir.
Há duas bases de código para o Rover. Uma delas é uma aplicação web, que roda em um servidor (computador) e atua como uma interface entre o usuário e o Rover. A aplicação apresenta uma página web onde os usuários utilizam o teclado para emitir comandos de movimento para o Rover. Vale ressaltar que essa aplicação não movimenta o carrinho diretamente; ela apenas captura e emite eventos. A movimentação do carrinho ocorre através do interpretador de movimentos, que será apresentado a seguir.
Trabalhando em conjunto com a aplicação web, há o interpretador de movimentos (script), que efetua o movimento do carrinho. O interpretador é executado no Rover e mantém uma conexão ativa e em tempo real com a aplicação web. Os comandos de movimento emitidos na interface da aplicação são processados por esse script, que então envia sinais de high ou low para movimentar ou parar o carrinho.
Trabalhando em conjunto com a aplicação web, há o interpretador de movimentos (script), que efetua o movimento do carrinho. O interpretador é executado no Rover e mantém uma conexão ativa e em tempo real com a aplicação web. Os comandos de movimento emitidos na interface da aplicação são processados por esse script, que então envia sinais de high ou low para movimentar ou parar o carrinho.
[https://github.com/inova-steam-lab/rover-api-socketio/tree/main Acesse o código fonte da aplicação web aqui] e [https://github.com/inova-steam-lab/rover-remote-control acesse o interpretador dos eventos aqui].
Em cada repositório há instruções de como rodar as aplicações, portanto basta seguir o passo a passo para executar os códigos.
= Referências =
*https://www.reddit.com/r/FastAPI/comments/neds9c/integrate_socketio_with_fastapi/;
*https://python-socketio.readthedocs.io/en/latest/intro.html;
*https://fastapi.tiangolo.com/
*https://stackoverflow.com/questions/73335010/how-to-set-fastapi-websocket-properly-with-nginx
*https://dylancastillo.co/fastapi-nginx-gunicorn/#tech-stack
*https://github.com/caninos-loucos

Edição atual tal como às 19h41min de 25 de junho de 2024

Tanque de controle remoto

Introdução

O projeto Rover consiste em uma prova de conceito para a viabilidade de um remote lab. De forma resumida, um remote lab consiste em conduzir e operar experimentos e equipamentos em um laboratório de maneira remota. Nesse sentido, foi desenvolvido o projeto Rover, que utiliza a placa labrador e pode ser controlado remotamente através de uma interface web.

Preparando o ambiente de desenvolvimento

Tecnologias

  • Python 3.8.10;
  • Labrador 32 bits;
  • Debian 10.

Componentes

  • Chassi OSEPP Tank Kit;
  • Labrador;
  • Ponte H L298;
  • Bateria 9v, cabos e conectores.

Bibliotecas

  • fastapi 0.103.0;
  • uvicorn 0.22.0;
  • python-socketio 5.9.0;
  • gunicorn 21.2.0.

Recomenda-se o uso de um arquivo requirements.txt para as bibliotecas. Vale ressaltar que as aplicações desse projeto adotam o uso do arquivo requirements.txt.

Código fonte

Há duas bases de código para o Rover. Uma delas é uma aplicação web, que roda em um servidor (computador) e atua como uma interface entre o usuário e o Rover. A aplicação apresenta uma página web onde os usuários utilizam o teclado para emitir comandos de movimento para o Rover. Vale ressaltar que essa aplicação não movimenta o carrinho diretamente; ela apenas captura e emite eventos. A movimentação do carrinho ocorre através do interpretador de movimentos, que será apresentado a seguir. Trabalhando em conjunto com a aplicação web, há o interpretador de movimentos (script), que efetua o movimento do carrinho. O interpretador é executado no Rover e mantém uma conexão ativa e em tempo real com a aplicação web. Os comandos de movimento emitidos na interface da aplicação são processados por esse script, que então envia sinais de high ou low para movimentar ou parar o carrinho.

Acesse o código fonte da aplicação web aqui e acesse o interpretador dos eventos aqui.

Em cada repositório há instruções de como rodar as aplicações, portanto basta seguir o passo a passo para executar os códigos.

Referências